diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/core.nix | 55 | ||||
| -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 |
12 files changed, 305 insertions, 0 deletions
diff --git a/modules/core.nix b/modules/core.nix new file mode 100644 index 0000000..15d3581 --- /dev/null +++ b/modules/core.nix @@ -0,0 +1,55 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + boot.loader = { + efi.canTouchEfiVariables = true; + systemd-boot = { + enable = true; + editor = false; + memtest86.enable = true; + }; + + timeout = 1; + }; + + environment.systemPackages = with pkgs; [ + kakoune + ]; + + hardware.enableRedistributableFirmware = true; + nix.settings.experimental-features = [ + "flakes" + "nix-command" + ]; + + programs = { + git = { + enable = true; + package = pkgs.gitMinimal; + }; + + nano.enable = false; + zsh = { + enable = true; + setOptions = [ "HIST_IGNORE_ALL_DUPS" ]; + shellInit = '' + PS1="%n@%m %~ %# " + ''; + }; + }; + + 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' |
