109 lines
2.4 KiB
Nix
109 lines
2.4 KiB
Nix
{ pkgs, ... }:
|
|
let
|
|
kbd_switch = pkgs.writeShellScriptBin "kbd_switch" ''
|
|
declare -A -r KBD_CYCLE_MAP=(
|
|
["English (US)"]="de"
|
|
["German"]="ba"
|
|
)
|
|
LAYOUT="$(${pkgs.sway}/bin/swaymsg -t get_inputs -r | ${pkgs.jq}/bin/jq -r 'map(select(.type == "keyboard")).[0].xkb_layout_names.[]')"
|
|
swaymsg input "*" xkb_layout ''${KBD_CYCLE_MAP["$LAYOUT"]:-"us"}
|
|
'';
|
|
in
|
|
{
|
|
programs.i3status-rust = {
|
|
bars.top = {
|
|
icons = "awesome5";
|
|
theme = "gruvbox-dark";
|
|
settings.theme = {
|
|
theme = "plain";
|
|
overrides = {
|
|
separator_fg = "#3287a8";
|
|
};
|
|
};
|
|
|
|
blocks = [
|
|
{
|
|
block = "keyboard_layout";
|
|
driver = "sway";
|
|
click = [
|
|
{
|
|
cmd = "${kbd_switch}/bin/kbd_switch";
|
|
button = "left";
|
|
}
|
|
];
|
|
}
|
|
{
|
|
block = "battery";
|
|
interval = 10;
|
|
format = "$icon $percentage $time";
|
|
}
|
|
{
|
|
block = "disk_space";
|
|
path = "/nix";
|
|
info_type = "available";
|
|
interval = 20;
|
|
warning = 20.0;
|
|
alert = 10.0;
|
|
}
|
|
{
|
|
block = "disk_space";
|
|
path = "/home";
|
|
info_type = "available";
|
|
interval = 20;
|
|
warning = 20.0;
|
|
alert = 10.0;
|
|
}
|
|
{
|
|
block = "net";
|
|
device = "wlan0";
|
|
if_command = "ip link show wlan0";
|
|
interval = 2;
|
|
}
|
|
{
|
|
block = "net";
|
|
device = "enp5s0";
|
|
if_command = "ip link show enp5s0";
|
|
interval = 2;
|
|
}
|
|
{
|
|
block = "net";
|
|
device = "enp7s0f3u1u1";
|
|
if_command = "ip link show enp7s0f3u1u1";
|
|
interval = 2;
|
|
}
|
|
{
|
|
block = "net";
|
|
device = "enp7s0f4u1u1";
|
|
if_command = "ip link show enp7s0f4u1u1";
|
|
interval = 2;
|
|
}
|
|
{
|
|
block = "net";
|
|
if_command = "ip link show eno1";
|
|
device = "eno1";
|
|
interval = 2;
|
|
}
|
|
{
|
|
block = "memory";
|
|
}
|
|
{
|
|
block = "cpu";
|
|
interval = 1;
|
|
format = "$utilization $barchart $frequency";
|
|
}
|
|
{
|
|
block = "temperature";
|
|
interval = 3;
|
|
}
|
|
{
|
|
block = "sound";
|
|
}
|
|
{
|
|
block = "time";
|
|
interval = 60;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|