From 38ad11d7f3f5614cc8a55328adcf449b41ebc617 Mon Sep 17 00:00:00 2001 From: Rosa Date: Tue, 24 Mar 2026 11:11:11 -0400 Subject: settle on sway --- modules/user/default.nix | 5 ++ modules/user/desktop/apps/default.nix | 5 ++ modules/user/desktop/apps/foot.nix | 49 ++++++++++++++++++ modules/user/desktop/default.nix | 1 + modules/user/desktop/sessions/default.nix | 1 + modules/user/desktop/sessions/sway.nix | 86 ++++++++++++++++++++++++++++--- modules/user/git.nix | 7 ++- 7 files changed, 146 insertions(+), 8 deletions(-) create mode 100644 modules/user/desktop/apps/default.nix create mode 100644 modules/user/desktop/apps/foot.nix (limited to 'modules/user') diff --git a/modules/user/default.nix b/modules/user/default.nix index 0cbd1ff..c205c03 100644 --- a/modules/user/default.nix +++ b/modules/user/default.nix @@ -1,3 +1,4 @@ +{ config, pkgs, ... }: { imports = [ ./desktop @@ -5,4 +6,8 @@ ./git.nix ./zsh ]; + + home.packages = with pkgs; [ + fira-code + ]; } diff --git a/modules/user/desktop/apps/default.nix b/modules/user/desktop/apps/default.nix new file mode 100644 index 0000000..c21fc86 --- /dev/null +++ b/modules/user/desktop/apps/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./foot.nix + ]; +} diff --git a/modules/user/desktop/apps/foot.nix b/modules/user/desktop/apps/foot.nix new file mode 100644 index 0000000..6944563 --- /dev/null +++ b/modules/user/desktop/apps/foot.nix @@ -0,0 +1,49 @@ +{ config, ... }: +{ + programs.foot.settings = { + bell.urgent = true; + cursor = { + blink = true; + unfocused-style = "hollow"; + }; + + colors-dark = { + background = "1e1e2e"; + cursor = "11111b f5e0dc"; + foreground = "cdd6f4"; + regular0 = "45475a"; + regular1 = "f38ba8"; + regular2 = "a6e3a1"; + regular3 = "f9e2af"; + regular4 = "89b4fa"; + regular5 = "f5c2e7"; + regular6 = "94e2d5"; + regular7 = "bac2de"; + bright0 = "585b70"; + bright1 = "f38ba8"; + bright2 = "a6e3a1"; + bright3 = "f9e2af"; + bright4 = "89b4fa"; + bright5 = "f5c2e7"; + bright6 = "94e2d5"; + bright7 = "a6adc8"; + "16" = "fab387"; + "17" = "f5e0dc"; + + jump-labels = "11111b fab387"; + search-box-match = "cdd6f4 313244"; + search-box-no-match = "11111b f38ba8"; + selection-background = "414356"; + selection-foreground = "cdd6f4"; + urls = "89b4fa"; + }; + + main = { + font = "Fira Code:size=8"; + selection-target = "none"; + }; + + mouse.hide-when-typing = true; + scrollback.multiplier = 1.0; + }; +} diff --git a/modules/user/desktop/default.nix b/modules/user/desktop/default.nix index f5f2e28..b90e6f4 100644 --- a/modules/user/desktop/default.nix +++ b/modules/user/desktop/default.nix @@ -1,5 +1,6 @@ { imports = [ + ./apps ./sessions ]; } diff --git a/modules/user/desktop/sessions/default.nix b/modules/user/desktop/sessions/default.nix index 47a721a..5c82b63 100644 --- a/modules/user/desktop/sessions/default.nix +++ b/modules/user/desktop/sessions/default.nix @@ -1,5 +1,6 @@ { imports = [ + ./niri ./sway.nix ]; } diff --git a/modules/user/desktop/sessions/sway.nix b/modules/user/desktop/sessions/sway.nix index e853a10..87c03c1 100644 --- a/modules/user/desktop/sessions/sway.nix +++ b/modules/user/desktop/sessions/sway.nix @@ -2,10 +2,12 @@ config, lib, options, + pkgs, ... }: { config = { + programs.foot.enable = lib.mkDefault config.desktop.sessions.sway.enable; wayland.windowManager.sway = { enable = lib.mkDefault config.desktop.sessions.sway.enable; config = { @@ -50,7 +52,7 @@ }; fonts = { - names = [ "Fira Mono" ]; + names = [ "Fira Code" ]; size = 8.0; }; @@ -78,7 +80,7 @@ colors = { focused = { - background = "#1e1e2e"; + background = "#cba6f7"; border = "#cba6f7"; childBorder = "#cba6f7"; indicator = "#f5c2e7"; @@ -86,7 +88,7 @@ }; focusedInactive = { - background = "#1e1e2e"; + background = "#585b70"; border = "#585b70"; childBorder = "#585b70"; indicator = "#585b70"; @@ -94,7 +96,7 @@ }; unfocused = { - background = "#1e1e2e"; + background = "#313244"; border = "#313244"; childBorder = "#313244"; indicator = "#313244"; @@ -102,7 +104,7 @@ }; urgent = { - background = "#1e1e2e"; + background = "#f38ba8"; border = "#f38ba8"; childBorder = "#f38ba8"; indicator = "#f38ba8"; @@ -121,7 +123,7 @@ focus.followMouse = false; fonts = { - names = [ "Fira Mono" ]; + names = [ "Fira Code" ]; size = 8.0; }; @@ -131,14 +133,84 @@ }; input = { - "type:touchpad" = { + "*" = { accel_profile = "flat"; + }; + + "type:touchpad" = { drag = "enabled"; dwt = "enabled"; natural_scroll = "enabled"; tap = "enabled"; }; }; + + keybindings = + let + mod = config.wayland.windowManager.sway.config.modifier; + terminal = "${pkgs.foot}/bin/foot"; + in + { + "${mod}+Return" = "exec ${terminal}"; + "${mod}+Shift+Q" = "exit"; + "${mod}+Q" = "kill"; + "${mod}+1" = "workspace 1"; + "${mod}+2" = "workspace 2"; + "${mod}+3" = "workspace 3"; + "${mod}+4" = "workspace 4"; + "${mod}+5" = "workspace 5"; + "${mod}+6" = "workspace 6"; + "${mod}+7" = "workspace 7"; + "${mod}+8" = "workspace 8"; + "${mod}+9" = "workspace 9"; + "${mod}+F" = "floating toggle"; + "${mod}+H" = "focus left"; + "${mod}+J" = "focus down"; + "${mod}+K" = "focus up"; + "${mod}+L" = "focus right"; + "${mod}+Shift+H" = "move left"; + "${mod}+Shift+J" = "move down"; + "${mod}+Shift+K" = "move up"; + "${mod}+Shift+L" = "move right"; + "${mod}+Equal" = "resize grow width"; + "${mod}+Minus" = "resize shrink width"; + "${mod}+Shift+Equal" = "resize grow height"; + "${mod}+Shift+Minus" = "resize shrink height"; + "${mod}+P" = "focus parent"; + "${mod}+Shift+F" = "fullscreen"; + "${mod}+V" = "splitt"; + "${mod}+G" = "layout toggle tabbed split"; + "${mod}+S" = "sticky toggle"; + }; + + modifier = "Mod4"; + window = { + commands = [ + # TODO + ]; + + titlebar = false; + }; + + workspaceOutputAssign = [ + { + output = "eDP-1"; + workspace = "1"; + } + { + output = "DP-1"; + workspace = "1"; + } + { + output = "DP-2"; + workspace = "2"; + } + ]; + }; + + swaynag = { + enable = lib.mkDefault config.desktop.sessions.sway.enable; + settings = lib.mkDefault { }; }; }; }; diff --git a/modules/user/git.nix b/modules/user/git.nix index d41fa11..18e4725 100644 --- a/modules/user/git.nix +++ b/modules/user/git.nix @@ -1,4 +1,9 @@ -{ config, lib, options, ... }: +{ + config, + lib, + options, + ... +}: { programs.git = { enable = lib.mkDefault true; -- cgit v1.3.1