From cad9638875c04122b04d47242ddfc76e21e77029 Mon Sep 17 00:00:00 2001 From: Rosa Date: Wed, 18 Mar 2026 12:04:07 -0400 Subject: progress on sway configuration --- modules/user/default.nix | 8 ++ modules/user/desktop/default.nix | 5 + modules/user/desktop/sessions/default.nix | 5 + modules/user/desktop/sessions/sway.nix | 147 ++++++++++++++++++++++++++++++ modules/user/editors/default.nix | 3 + modules/user/editors/kakoune/default.nix | 42 +++++++++ modules/user/editors/kakoune/kakrc | 1 + modules/user/git.nix | 10 ++ modules/user/zsh/default.nix | 25 +++++ modules/user/zsh/zshrc.zsh | 1 + 10 files changed, 247 insertions(+) create mode 100644 modules/user/default.nix create mode 100644 modules/user/desktop/default.nix create mode 100644 modules/user/desktop/sessions/default.nix create mode 100644 modules/user/desktop/sessions/sway.nix create mode 100644 modules/user/editors/default.nix create mode 100644 modules/user/editors/kakoune/default.nix create mode 100644 modules/user/editors/kakoune/kakrc create mode 100644 modules/user/git.nix create mode 100644 modules/user/zsh/default.nix create mode 100644 modules/user/zsh/zshrc.zsh (limited to 'modules/user') diff --git a/modules/user/default.nix b/modules/user/default.nix new file mode 100644 index 0000000..0cbd1ff --- /dev/null +++ b/modules/user/default.nix @@ -0,0 +1,8 @@ +{ + imports = [ + ./desktop + ./editors + ./git.nix + ./zsh + ]; +} diff --git a/modules/user/desktop/default.nix b/modules/user/desktop/default.nix new file mode 100644 index 0000000..f5f2e28 --- /dev/null +++ b/modules/user/desktop/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./sessions + ]; +} diff --git a/modules/user/desktop/sessions/default.nix b/modules/user/desktop/sessions/default.nix new file mode 100644 index 0000000..47a721a --- /dev/null +++ b/modules/user/desktop/sessions/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./sway.nix + ]; +} diff --git a/modules/user/desktop/sessions/sway.nix b/modules/user/desktop/sessions/sway.nix new file mode 100644 index 0000000..e853a10 --- /dev/null +++ b/modules/user/desktop/sessions/sway.nix @@ -0,0 +1,147 @@ +{ + config, + lib, + options, + ... +}: +{ + config = { + wayland.windowManager.sway = { + enable = lib.mkDefault config.desktop.sessions.sway.enable; + config = { + bars = [ + { + colors = { + activeWorkspace = { + background = "#11111b"; + border = "#11111b"; + text = "#cdd6f4"; + }; + + background = "#11111b"; + bindingMode = { + background = "#a6e3a1"; + border = "#a6e3a1"; + text = "#11111b"; + }; + + focusedBackground = "#11111b"; + focusedSeparator = "#a6adc8"; + focusedStatusline = "#cdd6f4"; + focusedWorkspace = { + background = "#11111b"; + border = "#11111b"; + text = "#cba6f7"; + }; + + inactiveWorkspace = { + background = "#11111b"; + border = "#11111b"; + text = "#a6adc8"; + }; + + separator = "#a6adc8"; + statusline = "#cdd6f4"; + urgentWorkspace = { + background = "#f38ba8"; + border = "#f38ba8"; + text = "#11111b"; + }; + }; + + fonts = { + names = [ "Fira Mono" ]; + size = 8.0; + }; + + position = "bottom"; + } + ]; + + bindswitches = + let + display = "eDP-1"; + in + { + "lid:on" = { + action = "output ${display} disable"; + locked = true; + reload = true; + }; + + "lid:off" = { + action = "output ${display} enable"; + locked = true; + reload = true; + }; + }; + + colors = { + focused = { + background = "#1e1e2e"; + border = "#cba6f7"; + childBorder = "#cba6f7"; + indicator = "#f5c2e7"; + text = "#1e1e2e"; + }; + + focusedInactive = { + background = "#1e1e2e"; + border = "#585b70"; + childBorder = "#585b70"; + indicator = "#585b70"; + text = "#cdd6f4"; + }; + + unfocused = { + background = "#1e1e2e"; + border = "#313244"; + childBorder = "#313244"; + indicator = "#313244"; + text = "#a6adc8"; + }; + + urgent = { + background = "#1e1e2e"; + border = "#f38ba8"; + childBorder = "#f38ba8"; + indicator = "#f38ba8"; + text = "#1e1e2e"; + }; + }; + + defaultWorkspace = "workspace number 1"; + floating = { + criteria = [ + # TODO + ]; + + titlebar = false; + }; + + focus.followMouse = false; + fonts = { + names = [ "Fira Mono" ]; + size = 8.0; + }; + + gaps = { + inner = 2; + outer = 4; + }; + + input = { + "type:touchpad" = { + accel_profile = "flat"; + drag = "enabled"; + dwt = "enabled"; + natural_scroll = "enabled"; + tap = "enabled"; + }; + }; + }; + }; + }; + + options.desktop.sessions.sway.enable = lib.mkEnableOption "the sway window manager"; +} diff --git a/modules/user/editors/default.nix b/modules/user/editors/default.nix new file mode 100644 index 0000000..fa1b4ff --- /dev/null +++ b/modules/user/editors/default.nix @@ -0,0 +1,3 @@ +{ + imports = [ ./kakoune ]; +} diff --git a/modules/user/editors/kakoune/default.nix b/modules/user/editors/kakoune/default.nix new file mode 100644 index 0000000..0b69e1a --- /dev/null +++ b/modules/user/editors/kakoune/default.nix @@ -0,0 +1,42 @@ +{ + config, + lib, + options, + pkgs, + ... +}: +{ + config.programs.kakoune = lib.mkIf config.editors.kakoune.enable { + enable = true; + colorSchemePackage = pkgs.kakounePlugins.kakoune-catppuccin; + config = { + hooks = [ + { + commands = "set window indentwidth 2"; + group = "set-indentwidth"; + name = "WinSetOption"; + option = "filetype=(nix)"; + } + ]; + + numberLines = { + enable = true; + highlightCursor = true; + relative = true; + }; + + tabStop = 4; + ui.assistant = "cat"; + }; + + defaultEditor = true; + extraConfig = builtins.readFile ./kakrc; + plugins = with pkgs.kakounePlugins; [ + auto-pairs-kak + kakoune-extra-filetypes + kakoune-lsp + ]; + }; + + options.editors.kakoune.enable = lib.mkEnableOption "rosa's kakoune setup"; +} diff --git a/modules/user/editors/kakoune/kakrc b/modules/user/editors/kakoune/kakrc new file mode 100644 index 0000000..a06f5b5 --- /dev/null +++ b/modules/user/editors/kakoune/kakrc @@ -0,0 +1 @@ +enable-auto-pairs diff --git a/modules/user/git.nix b/modules/user/git.nix new file mode 100644 index 0000000..d41fa11 --- /dev/null +++ b/modules/user/git.nix @@ -0,0 +1,10 @@ +{ config, lib, options, ... }: +{ + programs.git = { + enable = lib.mkDefault true; + settings = lib.mkDefault { + user.email = "rosaontheweb@proton.me"; + user.name = "Rosa"; + }; + }; +} diff --git a/modules/user/zsh/default.nix b/modules/user/zsh/default.nix new file mode 100644 index 0000000..6f49406 --- /dev/null +++ b/modules/user/zsh/default.nix @@ -0,0 +1,25 @@ +{ + config, + lib, + options, + ... +}: +{ + config.programs.zsh = { + enable = lib.mkDefault true; # default user shell + autocd = true; + autosuggestion = { + enable = lib.mkDefault true; + strategy = [ + "history" + "completion" + ]; + }; + + history.ignoreAllDups = true; + initContent = builtins.readFile ./zshrc.zsh; + #loginExtra = builtins.readFile ./zlogin.zsh; + setOptions = [ "extendedglob" ]; + syntaxHighlighting.enable = true; + }; +} diff --git a/modules/user/zsh/zshrc.zsh b/modules/user/zsh/zshrc.zsh new file mode 100644 index 0000000..9b2083a --- /dev/null +++ b/modules/user/zsh/zshrc.zsh @@ -0,0 +1 @@ +PS1='%F{8}%(?..(%F{1}%?%F{8}%)-)[%F{1}%n@%M%F{8}]:%F{1}%5~%F{8}%# %f' -- cgit v1.3.1