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;
 | |
|         }
 | |
|       ];
 | |
|     };
 | |
|   };
 | |
| }
 |