mirror of
https://github.com/kmein/niveum
synced 2026-03-22 12:51:08 +01:00
feat(sway): add preliminary configuration
This commit is contained in:
143
configs/i3.nix
143
configs/i3.nix
@@ -58,13 +58,6 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
new-workspace = pkgs.writers.writeDash "new-workspace" ''
|
|
||||||
i3-msg workspace $(($(i3-msg -t get_workspaces | tr , '\n' | grep '"num":' | cut -d : -f 2 | sort -rn | head -1) + 1))
|
|
||||||
'';
|
|
||||||
move-to-new-workspace = pkgs.writers.writeDash "new-workspace" ''
|
|
||||||
i3-msg move container to workspace $(($(i3-msg -t get_workspaces | tr , '\n' | grep '"num":' | cut -d : -f 2 | sort -rn | head -1) + 1))
|
|
||||||
'';
|
|
||||||
in {
|
in {
|
||||||
age.secrets = {
|
age.secrets = {
|
||||||
github-token-i3status-rust = {
|
github-token-i3status-rust = {
|
||||||
@@ -106,15 +99,38 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.me.xsession.windowManager.i3 = let
|
home-manager.users.me = let
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
in {
|
modes.resize = {
|
||||||
enable = true;
|
"Escape" = ''mode "default"'';
|
||||||
extraConfig = ''
|
"Return" = ''mode "default"'';
|
||||||
bindsym --release ${modifier}+Shift+w exec /run/wrappers/bin/slock
|
"h" = "resize shrink width 10 px or 5 ppt";
|
||||||
'';
|
"j" = "resize grow height 10 px or 5 ppt";
|
||||||
config = rec {
|
"k" = "resize shrink height 10 px or 5 ppt";
|
||||||
inherit modifier;
|
"l" = "resize grow width 10 px or 5 ppt";
|
||||||
|
};
|
||||||
|
gaps.inner = 4;
|
||||||
|
floating = {
|
||||||
|
titlebar = false;
|
||||||
|
border = 1;
|
||||||
|
};
|
||||||
|
bars = [
|
||||||
|
(config.home-manager.users.me.lib.stylix.i3.bar
|
||||||
|
// rec {
|
||||||
|
workspaceButtons = false;
|
||||||
|
mode = "dock"; # "hide";
|
||||||
|
position = "bottom";
|
||||||
|
statusCommand = toString (pkgs.writers.writeDash "i3status-rust" ''
|
||||||
|
export I3RS_GITHUB_TOKEN="$(cat ${config.age.secrets.github-token-i3status-rust.path})"
|
||||||
|
export OPENWEATHERMAP_API_KEY="$(cat ${config.age.secrets.openweathermap-api-key.path})"
|
||||||
|
${config.home-manager.users.me.programs.i3status-rust.package}/bin/i3status-rs ${config.home-manager.users.me.home.homeDirectory}/.config/i3status-rust/config-${position}.toml
|
||||||
|
'');
|
||||||
|
fonts = {
|
||||||
|
names = ["${config.stylix.fonts.sansSerif.name}" "FontAwesome 6 Free"];
|
||||||
|
size = config.stylix.fonts.sizes.desktop * 0.8;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
window = {
|
window = {
|
||||||
titlebar = false;
|
titlebar = false;
|
||||||
border = 2;
|
border = 2;
|
||||||
@@ -144,28 +160,6 @@ in {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
gaps.inner = 4;
|
|
||||||
floating = {
|
|
||||||
titlebar = false;
|
|
||||||
border = 1;
|
|
||||||
};
|
|
||||||
bars = [
|
|
||||||
(config.home-manager.users.me.lib.stylix.i3.bar
|
|
||||||
// rec {
|
|
||||||
workspaceButtons = false;
|
|
||||||
mode = "dock"; # "hide";
|
|
||||||
position = "bottom";
|
|
||||||
statusCommand = toString (pkgs.writers.writeDash "i3status-rust" ''
|
|
||||||
export I3RS_GITHUB_TOKEN="$(cat ${config.age.secrets.github-token-i3status-rust.path})"
|
|
||||||
export OPENWEATHERMAP_API_KEY="$(cat ${config.age.secrets.openweathermap-api-key.path})"
|
|
||||||
${config.home-manager.users.me.programs.i3status-rust.package}/bin/i3status-rs ${config.home-manager.users.me.home.homeDirectory}/.config/i3status-rust/config-${position}.toml
|
|
||||||
'');
|
|
||||||
fonts = {
|
|
||||||
names = ["${config.stylix.fonts.sansSerif.name}" "FontAwesome 6 Free"];
|
|
||||||
size = config.stylix.fonts.sizes.desktop * 0.8;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
colors = let
|
colors = let
|
||||||
background = config.lib.stylix.colors.withHashtag.base00;
|
background = config.lib.stylix.colors.withHashtag.base00;
|
||||||
in {
|
in {
|
||||||
@@ -174,14 +168,6 @@ in {
|
|||||||
childBorder = lib.mkForce background;
|
childBorder = lib.mkForce background;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
modes.resize = {
|
|
||||||
"Escape" = ''mode "default"'';
|
|
||||||
"Return" = ''mode "default"'';
|
|
||||||
"h" = "resize shrink width 10 px or 5 ppt";
|
|
||||||
"j" = "resize grow height 10 px or 5 ppt";
|
|
||||||
"k" = "resize shrink height 10 px or 5 ppt";
|
|
||||||
"l" = "resize grow width 10 px or 5 ppt";
|
|
||||||
};
|
|
||||||
keybindings = {
|
keybindings = {
|
||||||
"${modifier}+Shift+h" = "move left 25 px";
|
"${modifier}+Shift+h" = "move left 25 px";
|
||||||
"${modifier}+Shift+j" = "move down 25 px";
|
"${modifier}+Shift+j" = "move down 25 px";
|
||||||
@@ -194,10 +180,8 @@ in {
|
|||||||
|
|
||||||
"${modifier}+Shift+b" = "move window to workspace prev";
|
"${modifier}+Shift+b" = "move window to workspace prev";
|
||||||
"${modifier}+Shift+n" = "move window to workspace next";
|
"${modifier}+Shift+n" = "move window to workspace next";
|
||||||
"${modifier}+Shift+x" = "exec ${move-to-new-workspace}";
|
|
||||||
"${modifier}+b" = "workspace prev";
|
"${modifier}+b" = "workspace prev";
|
||||||
"${modifier}+n" = "workspace next";
|
"${modifier}+n" = "workspace next";
|
||||||
"${modifier}+x" = "exec ${new-workspace}";
|
|
||||||
|
|
||||||
"${modifier}+Shift+c" = "reload";
|
"${modifier}+Shift+c" = "reload";
|
||||||
"${modifier}+Shift+q" = "kill";
|
"${modifier}+Shift+q" = "kill";
|
||||||
@@ -228,7 +212,6 @@ in {
|
|||||||
"${modifier}+Shift+p" = "exec rofi-pass --insert";
|
"${modifier}+Shift+p" = "exec rofi-pass --insert";
|
||||||
"${modifier}+u" = "exec ${niveumPackages.unicodmenu}/bin/unicodmenu";
|
"${modifier}+u" = "exec ${niveumPackages.unicodmenu}/bin/unicodmenu";
|
||||||
|
|
||||||
"${modifier}+F6" = "exec ${pkgs.xorg.xkill}/bin/xkill";
|
|
||||||
"${modifier}+F7" = "exec ${pkgs.writers.writeDash "showkeys-toggle" ''
|
"${modifier}+F7" = "exec ${pkgs.writers.writeDash "showkeys-toggle" ''
|
||||||
if ${pkgs.procps}/bin/pgrep screenkey; then
|
if ${pkgs.procps}/bin/pgrep screenkey; then
|
||||||
exec ${pkgs.procps}/bin/pkill screenkey
|
exec ${pkgs.procps}/bin/pkill screenkey
|
||||||
@@ -236,12 +219,7 @@ in {
|
|||||||
exec ${pkgs.screenkey}/bin/screenkey
|
exec ${pkgs.screenkey}/bin/screenkey
|
||||||
fi
|
fi
|
||||||
''}";
|
''}";
|
||||||
"${modifier}+F8" = "exec switch-theme toggle";
|
|
||||||
"${modifier}+F9" = "exec ${pkgs.redshift}/bin/redshift -O 4000 -b 0.85";
|
|
||||||
"${modifier}+F10" = "exec ${pkgs.redshift}/bin/redshift -x";
|
|
||||||
"${modifier}+F11" = "exec ${pkgs.xcalib}/bin/xcalib -invert -alter";
|
|
||||||
"${modifier}+F12" = "exec ${klem}/bin/klem";
|
"${modifier}+F12" = "exec ${klem}/bin/klem";
|
||||||
"Print" = "exec flameshot gui";
|
|
||||||
"XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
|
"XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
|
||||||
"XF86AudioMute" = "exec ${pkgs.pamixer}/bin/pamixer -t";
|
"XF86AudioMute" = "exec ${pkgs.pamixer}/bin/pamixer -t";
|
||||||
"XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
|
"XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
|
||||||
@@ -253,8 +231,6 @@ in {
|
|||||||
"XF86AudioStop" = "exec ${pkgs.playerctl}/bin/playerctl stop";
|
"XF86AudioStop" = "exec ${pkgs.playerctl}/bin/playerctl stop";
|
||||||
"XF86ScreenSaver" = "exec ${niveumPackages.k-lock}/bin/k-lock";
|
"XF86ScreenSaver" = "exec ${niveumPackages.k-lock}/bin/k-lock";
|
||||||
|
|
||||||
"XF86Display" = "exec ${niveumPackages.dmenu-randr}/bin/dmenu-randr";
|
|
||||||
|
|
||||||
# key names detected with xorg.xev:
|
# key names detected with xorg.xev:
|
||||||
# XF86WakeUp (fn twice)
|
# XF86WakeUp (fn twice)
|
||||||
# XF86Battery (fn f3)
|
# XF86Battery (fn f3)
|
||||||
@@ -269,6 +245,63 @@ in {
|
|||||||
# XF86Back
|
# XF86Back
|
||||||
# XF86Launch1 (thinkvantage)
|
# XF86Launch1 (thinkvantage)
|
||||||
};
|
};
|
||||||
|
in {
|
||||||
|
wayland.windowManager.sway = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
menu = "rofi -modi run,ssh,window -show run";
|
||||||
|
inherit modifier modes gaps bars floating window colors keybindings;
|
||||||
|
input = {
|
||||||
|
"*" = {
|
||||||
|
xkb_layout = "de";
|
||||||
|
xkb_variant = "T3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
terminal = (defaultApplications pkgs).terminal;
|
||||||
|
up = "k";
|
||||||
|
down = "j";
|
||||||
|
left = "h";
|
||||||
|
right = "l";
|
||||||
|
seat = {
|
||||||
|
"*" = {
|
||||||
|
hide_cursor = "when-typing enable";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
startup = [
|
||||||
|
{command = "echo hello";}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xsession.windowManager.i3 = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
bindsym --release ${modifier}+Shift+w exec /run/wrappers/bin/slock
|
||||||
|
'';
|
||||||
|
config = lib.mkMerge [
|
||||||
|
{
|
||||||
|
inherit modifier gaps modes bars floating window colors keybindings;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
keybindings = let
|
||||||
|
new-workspace = pkgs.writers.writeDash "new-workspace" ''
|
||||||
|
i3-msg workspace $(($(i3-msg -t get_workspaces | tr , '\n' | grep '"num":' | cut -d : -f 2 | sort -rn | head -1) + 1))
|
||||||
|
'';
|
||||||
|
move-to-new-workspace = pkgs.writers.writeDash "new-workspace" ''
|
||||||
|
i3-msg move container to workspace $(($(i3-msg -t get_workspaces | tr , '\n' | grep '"num":' | cut -d : -f 2 | sort -rn | head -1) + 1))
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
"${modifier}+F6" = "exec ${pkgs.xorg.xkill}/bin/xkill";
|
||||||
|
"${modifier}+F9" = "exec ${pkgs.redshift}/bin/redshift -O 4000 -b 0.85";
|
||||||
|
"${modifier}+F10" = "exec ${pkgs.redshift}/bin/redshift -x";
|
||||||
|
"${modifier}+F11" = "exec ${pkgs.xcalib}/bin/xcalib -invert -alter";
|
||||||
|
"Print" = "exec flameshot gui";
|
||||||
|
"${modifier}+Shift+x" = "exec ${move-to-new-workspace}";
|
||||||
|
"${modifier}+x" = "exec ${new-workspace}";
|
||||||
|
"XF86Display" = "exec ${niveumPackages.dmenu-randr}/bin/dmenu-randr";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user