diff options
| author | Rosa <rosaontheweb@proton.me> | 2026-03-18 12:04:07 -0400 |
|---|---|---|
| committer | Rosa <rosaontheweb@proton.me> | 2026-03-18 12:04:07 -0400 |
| commit | cad9638875c04122b04d47242ddfc76e21e77029 (patch) | |
| tree | d80077f45b7b0d7513b3af0dabe6d2d992c846b7 | |
| parent | ce19b701046c064a1eb39098d8537b2c4964a86e (diff) | |
progress on sway configuration
| -rw-r--r-- | .ssh/id_rosa.pub | 1 | ||||
| -rw-r--r-- | common/region/na-east.nix | 5 | ||||
| -rw-r--r-- | flake.nix | 2 | ||||
| -rw-r--r-- | hosts/meowbook/default.nix | 17 | ||||
| -rw-r--r-- | modules/core.nix (renamed from common/core.nix) | 18 | ||||
| -rw-r--r-- | modules/desktop.nix | 3 | ||||
| -rw-r--r-- | modules/user/default.nix | 8 | ||||
| -rw-r--r-- | modules/user/desktop/default.nix | 5 | ||||
| -rw-r--r-- | modules/user/desktop/sessions/default.nix | 5 | ||||
| -rw-r--r-- | modules/user/desktop/sessions/sway.nix | 147 | ||||
| -rw-r--r-- | modules/user/editors/default.nix | 3 | ||||
| -rw-r--r-- | modules/user/editors/kakoune/default.nix | 42 | ||||
| -rw-r--r-- | modules/user/editors/kakoune/kakrc | 1 | ||||
| -rw-r--r-- | modules/user/git.nix | 10 | ||||
| -rw-r--r-- | modules/user/zsh/default.nix | 25 | ||||
| -rw-r--r-- | modules/user/zsh/zshrc.zsh | 1 |
16 files changed, 284 insertions, 9 deletions
diff --git a/.ssh/id_rosa.pub b/.ssh/id_rosa.pub new file mode 100644 index 0000000..077da0c --- /dev/null +++ b/.ssh/id_rosa.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICcEZBikGjnGveif3TsfBkWCl1Qrw0yZoOAn/LxS8oAa rosa@meowbook diff --git a/common/region/na-east.nix b/common/region/na-east.nix deleted file mode 100644 index 5446801..0000000 --- a/common/region/na-east.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, lib, ... }: -{ - i18n.defaultLocale = "en_CA.UTF-8"; - time.timeZone = lib.mkDefault "Canada/Eastern"; -} @@ -32,10 +32,10 @@ }: nixpkgs.lib.nixosSystem { modules = [ - ./common/core.nix ./hosts/${hostName} ./hosts/${hostName}/hardware-configuration.nix ./modules # include custom system modules + ./modules/core.nix # always include core settings { networking.hostName = hostName; } ] ++ additionalModules; diff --git a/hosts/meowbook/default.nix b/hosts/meowbook/default.nix index 084074e..03acecb 100644 --- a/hosts/meowbook/default.nix +++ b/hosts/meowbook/default.nix @@ -1,10 +1,23 @@ { config, ... }: { imports = [ - ../../common/region/na-east.nix ./disks.nix ]; + home-manager.users.rosa = { + imports = [ + ../../modules/user + ]; + + desktop.sessions.sway.enable = true; + editors.kakoune.enable = true; + home = { + homeDirectory = "/home/rosa"; + stateVersion = "26.05"; + username = "rosa"; + }; + }; + networking.networkmanager = { enable = true; wifi.macAddress = "random"; @@ -17,4 +30,6 @@ enableDesktopDefaults = true; stateVersion = "26.05"; }; + + users.users.rosa.enable = true; } diff --git a/common/core.nix b/modules/core.nix index 664239e..15d3581 100644 --- a/common/core.nix +++ b/modules/core.nix @@ -1,4 +1,9 @@ -{ config, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { boot.loader = { efi.canTouchEfiVariables = true; @@ -37,5 +42,14 @@ }; }; - users.defaultUserShell = pkgs.zsh; + users = { + defaultUserShell = pkgs.zsh; + users.rosa = { + enable = lib.mkDefault false; + description = "Rosa"; + extraGroups = [ "wheel" ]; + isNormalUser = true; + openssh.authorizedKeys.keyFiles = [ ./.ssh/id_rosa.pub ]; + }; + }; } diff --git a/modules/desktop.nix b/modules/desktop.nix index ed16388..0ad8321 100644 --- a/modules/desktop.nix +++ b/modules/desktop.nix @@ -6,6 +6,7 @@ }: { config = lib.mkIf config.system.enableDesktopDefaults { + i18n.defaultLocale = lib.mkDefault "en_CA.UTF-8"; services.pipewire = { enable = true; alsa = { @@ -15,6 +16,8 @@ pulse.enable = true; }; + + time.timeZone = lib.mkDefault "Canada/Eastern"; }; options.system.enableDesktopDefaults = lib.mkEnableOption "core desktop services such as pipewire"; 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' |
