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,7 +1,14 @@
{ 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];
# Modules # Modules
mods.xdg.enable = true; mods.xdg.enable = true;
@ -20,11 +27,12 @@ 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
## Monitors ## Monitors

View file

@ -1,9 +1,14 @@
{ pkgs, lib, config, osConfig, ... }: {
let pkgs,
lib,
config,
osConfig,
...
}: let
fsss = with pkgs; fsss = with pkgs;
writeShellApplication { writeShellApplication {
name = "fsss"; name = "fsss";
runtimeInputs = [ flameshot curl xsel ]; runtimeInputs = [flameshot curl xsel];
text = '' text = ''
flameshot gui -r -s > /tmp/ss.png;if [ ! -s /tmp/ss.png ]; then flameshot gui -r -s > /tmp/ss.png;if [ ! -s /tmp/ss.png ]; then
exit 1 exit 1
@ -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";
@ -27,26 +33,28 @@ in with lib; {
blocks = lib.mkBefore [ blocks = lib.mkBefore [
{ {
block = "privacy"; block = "privacy";
driver = [ { name = "v4l"; } { name = "pipewire"; } ]; driver = [{name = "v4l";} {name = "pipewire";}];
}
{
block = "net";
format = " $icon ";
inactive_format = " $icon ";
} }
# {
# block = "net";
# 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 [
{ separator = ""; } {separator = "";}
config.lib.stylix.i3status-rust.bar config.lib.stylix.i3status-rust.bar
]; ];
icons = "awesome5"; icons = "awesome5";
@ -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 = {
@ -97,41 +106,41 @@ in with lib; {
# }]; # }];
assigns = { assigns = {
"2" = [{ class = "Vesktop"; }]; "2" = [{class = "Vesktop";}];
"3" = [{ class = "^Steam$"; }]; "3" = [{class = "^Steam$";}];
}; };
keybindings = let keybindings = let
# 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,9 +149,10 @@ in with lib; {
workspaceButtons = true; workspaceButtons = true;
workspaceNumbers = true; workspaceNumbers = true;
trayOutput = "primary"; trayOutput = "primary";
} // config.lib.stylix.i3.bar; }
in [ stylix_bar ]; // config.lib.stylix.i3.bar;
in [stylix_bar];
}; };
}; };
}; };
} }