Add docker and fish to murk

Fix i3status
This commit is contained in:
muon 2025-08-05 08:34:53 +00:00
parent 0b2342ff13
commit 6478868ff0
2 changed files with 153 additions and 135 deletions

View file

@ -1,5 +1,12 @@
{ pkgs, lib, config, osConfig, inputs, ... }: {
let cfg = osConfig.mods; pkgs,
lib,
config,
osConfig,
inputs,
...
}: let
cfg = osConfig.mods;
in { in {
imports = [inputs.impermanence.homeManagerModules.impermanence]; imports = [inputs.impermanence.homeManagerModules.impermanence];
@ -20,10 +27,11 @@ in {
pulseaudio pulseaudio
pavucontrol pavucontrol
alsa-utils alsa-utils
docker
fish
] ]
# Non-free </3 # Non-free </3
++ [google-cloud-sdk]; ++ [google-cloud-sdk];
# Hardware preferences # Hardware preferences

View file

@ -1,5 +1,10 @@
{ pkgs, lib, config, osConfig, ... }: {
let pkgs,
lib,
config,
osConfig,
...
}: let
fsss = with pkgs; fsss = with pkgs;
writeShellApplication { writeShellApplication {
name = "fsss"; name = "fsss";
@ -12,7 +17,8 @@ let
curl -H "authorization: $AUTH" https://share.muon.host/api/upload -F file=@/tmp/ss.png -H "Content-Type: multipart/form-data" -H "Format: date" -H "Image-Compression-Percent: 90" -H "No-JSON: true" | tr -d '\n' | xsel -ib; curl -H "authorization: $AUTH" https://share.muon.host/api/upload -F file=@/tmp/ss.png -H "Content-Type: multipart/form-data" -H "Format: date" -H "Image-Compression-Percent: 90" -H "No-JSON: true" | tr -d '\n' | xsel -ib;
''; '';
}; };
in with lib; { in
with lib; {
options.mods.i3.enable = mkEnableOption "enables i3"; options.mods.i3.enable = mkEnableOption "enables i3";
options.mods.battery.enable = mkEnableOption "enables battery"; options.mods.battery.enable = mkEnableOption "enables battery";
@ -29,20 +35,22 @@ in with lib; {
block = "privacy"; block = "privacy";
driver = [{name = "v4l";} {name = "pipewire";}]; driver = [{name = "v4l";} {name = "pipewire";}];
} }
{ # {
block = "net"; # block = "net";
format = " $icon "; # format = " $icon ";
inactive_format = " $icon "; # inactive_format = " $icon ";
} # }
]; ];
} }
(lib.mkIf config.mods.battery.enable { (lib.mkIf config.mods.battery.enable {
blocks = [{ blocks = [
{
block = "battery"; block = "battery";
format = " $icon $percentage "; format = " $icon $percentage ";
# format_alt = # format_alt =
# " $icon $percentage {$time_remaining.dur(hms:true, min_unit:m) |}"; # " $icon $percentage {$time_remaining.dur(hms:true, min_unit:m) |}";
}]; }
];
}) })
{ {
settings.theme.overrides = lib.mkMerge [ settings.theme.overrides = lib.mkMerge [
@ -54,10 +62,12 @@ in with lib; {
{ {
block = "sound"; block = "sound";
format = " $icon {$volume |} "; format = " $icon {$volume |} ";
click = [{ click = [
{
button = "left"; button = "left";
cmd = "${lib.getExe pkgs.pavucontrol}"; cmd = "${lib.getExe pkgs.pavucontrol}";
}]; }
];
} }
{ {
block = "time"; block = "time";
@ -75,7 +85,6 @@ in with lib; {
wsAmount = 10; wsAmount = 10;
genSpaces = f: map builtins.toString (builtins.genList f wsAmount); genSpaces = f: map builtins.toString (builtins.genList f wsAmount);
workspaces = genSpaces (x: x + 1); workspaces = genSpaces (x: x + 1);
in { in {
enable = true; enable = true;
config = { config = {
@ -105,33 +114,33 @@ in with lib; {
# modKeyComb: string -> valueAction: string # modKeyComb: string -> valueAction: string
# -> keys: [string] -> values: [string] # -> keys: [string] -> values: [string]
# -> keybindings: attrSet { string -> string } # -> keybindings: attrSet { string -> string }
zipBinds = comb: action: keys: values: zipBinds = comb: action: keys: values: (builtins.listToAttrs (zipListsWith (k: v: {
(builtins.listToAttrs (zipListsWith (k: v: {
name = "${modifier}${comb}${k}"; name = "${modifier}${comb}${k}";
value = "${action} ${v}"; value = "${action} ${v}";
}) keys values)); })
keys
values));
moveKeys = ["h" "j" "k" "l"]; moveKeys = ["h" "j" "k" "l"];
moveDirs = ["left" "down" "up" "right"]; moveDirs = ["left" "down" "up" "right"];
workspKeys = genSpaces (x: mod (x + 1) wsAmount); workspKeys = genSpaces (x: mod (x + 1) wsAmount);
in
in mkOptionDefault ((zipBinds "+" "focus" moveKeys moveDirs) mkOptionDefault ((zipBinds "+" "focus" moveKeys moveDirs)
// (zipBinds "+Shift+" "move" moveKeys moveDirs) // (zipBinds "+Shift+" "move" moveKeys moveDirs)
// (zipBinds "+" "workspace number" workspKeys workspaces) // (zipBinds "+" "workspace number" workspKeys workspaces)
// (zipBinds "+Shift+" "move container to workspace number" workspKeys // (zipBinds "+Shift+" "move container to workspace number" workspKeys
workspaces) // { workspaces)
"XF86AudioRaiseVolume" = // {
"exec --no-startup-id pactl set-sink-volume 0 +2%"; "XF86AudioRaiseVolume" = "exec --no-startup-id pactl set-sink-volume 0 +2%";
"XF86AudioLowerVolume" = "XF86AudioLowerVolume" = "exec --no-startup-id pactl set-sink-volume 0 -2%";
"exec --no-startup-id pactl set-sink-volume 0 -2%";
"Print" = "exec ${getExe fsss}"; "Print" = "exec ${getExe fsss}";
}); });
bars = let bars = let
status_conf = status_conf = "${config.xdg.configHome}/i3status-rust/config-default.toml";
"${config.xdg.configHome}/i3status-rust/config-default.toml"; stylix_bar =
stylix_bar = { {
mode = "dock"; mode = "dock";
hiddenState = "hide"; hiddenState = "hide";
position = "bottom"; position = "bottom";
@ -140,7 +149,8 @@ in with lib; {
workspaceButtons = true; workspaceButtons = true;
workspaceNumbers = true; workspaceNumbers = true;
trayOutput = "primary"; trayOutput = "primary";
} // config.lib.stylix.i3.bar; }
// config.lib.stylix.i3.bar;
in [stylix_bar]; in [stylix_bar];
}; };
}; };