From ff7048f53d8f02f9bb730714838e1df4702be5b8 Mon Sep 17 00:00:00 2001 From: KoenDR06 Date: Thu, 6 Nov 2025 00:12:03 +0100 Subject: [PATCH] started work on making all dotfiles managed by nix and automatic Catppuccin theming --- config/dotfiles/.config/albert/config | 44 --- config/dotfiles/.config/eza/theme.yml | 54 ---- config/dotfiles/.config/kitty/kitty.conf | 15 - config/dotfiles/.config/kitty/theme.conf | 70 ----- config/dotfiles/.warprc | 5 - dots/.warprc.nix | 25 ++ dots/config/eza/theme.yml.nix | 72 +++++ dots/config/kitty/kitty.conf.nix | 105 +++++++ dots/config/wofi/style.css.nix | 138 +++++++++ dots/default.nix | 8 + flake.nix | 2 + modules/apps/terminal/default.nix | 4 + modules/apps/terminal/zsh.nix | 7 +- modules/apps/visual/default.nix | 4 + modules/catppuccin/default.nix | 348 ++++++++++++++++++++++ modules/default.nix | 9 +- modules/wm/hyprland/config/wofi/style.css | 170 ----------- modules/wm/hyprland/options.nix | 4 + 18 files changed, 723 insertions(+), 361 deletions(-) delete mode 100644 config/dotfiles/.config/albert/config delete mode 100644 config/dotfiles/.config/eza/theme.yml delete mode 100644 config/dotfiles/.config/kitty/kitty.conf delete mode 100644 config/dotfiles/.config/kitty/theme.conf delete mode 100644 config/dotfiles/.warprc create mode 100644 dots/.warprc.nix create mode 100644 dots/config/eza/theme.yml.nix create mode 100644 dots/config/kitty/kitty.conf.nix create mode 100644 dots/config/wofi/style.css.nix create mode 100644 dots/default.nix create mode 100644 modules/catppuccin/default.nix delete mode 100644 modules/wm/hyprland/config/wofi/style.css diff --git a/config/dotfiles/.config/albert/config b/config/dotfiles/.config/albert/config deleted file mode 100644 index 90f8448..0000000 --- a/config/dotfiles/.config/albert/config +++ /dev/null @@ -1,44 +0,0 @@ -[General] -hotkey=Alt+Space -showTray=true -telemetry=false - -[applications] -enabled=true -fuzzy=true - -[calculator_qalculate] -enabled=true - -[clipboard] -enabled=true -trigger="clip " - -[mpris] -enabled=true - -[ssh] -enabled=false - -[system] -command_poweroff=shutdown now -command_reboot=reboot -enabled=true -hibernate_enabled=false -lock_enabled=false -logout_enabled=false -suspend_enabled=false -title_poweroff=shutdown - -[widgetsboxmodel] -alwaysOnTop=true -clearOnHide=false -clientShadow=true -displayScrollbar=false -followCursor=true -hideOnFocusLoss=true -historySearch=true -itemCount=8 -quitOnClose=false -showCentered=true -systemShadow=true diff --git a/config/dotfiles/.config/eza/theme.yml b/config/dotfiles/.config/eza/theme.yml deleted file mode 100644 index bbcd955..0000000 --- a/config/dotfiles/.config/eza/theme.yml +++ /dev/null @@ -1,54 +0,0 @@ -date: - foreground: White - -users: - user_you: - foreground: Yellow - is_bold: false - user_others: - foreground: Yellow - user_root: - foreground: Red - -size: - number_byte: - is_bold: false - number_kilo: - is_bold: false - number_mega: - is_bold: false - number_giga: - is_bold: false - number_huge: - is_bold: false - -perms: - user_read: - foreground: Green - is_bold: false - user_write: - foreground: Green - is_bold: false - user_execute: - foreground: Green - is_bold: false - group_read: - foreground: Blue - is_bold: false - group_write: - foreground: Blue - is_bold: false - group_execute: - foreground: Blue - is_bold: false - other_read: - foreground: Red - is_bold: false - other_write: - foreground: Red - is_bold: false - other_execute: - foreground: Red - is_bold: false - - diff --git a/config/dotfiles/.config/kitty/kitty.conf b/config/dotfiles/.config/kitty/kitty.conf deleted file mode 100644 index ad7dc2e..0000000 --- a/config/dotfiles/.config/kitty/kitty.conf +++ /dev/null @@ -1,15 +0,0 @@ -remember_window_size no -initial_window_width 80c -initial_window_height 24c - -enable_audio_bell no -confirm_os_window_close 0 - -background_opacity 1 - -font_family family='CaskaydiaCove Nerd Font' postscript_name=CaskaydiaCoveNF-Light -bold_font family='CaskaydiaCove Nerd Font' style=SemiBold -italic_font family='CaskaydiaCove Nerd Font' postscript_name=CaskaydiaCoveNF-LightItalic -bold_italic_font family='CaskaydiaCove Nerd Font' style='SemiBold Italic' - -include theme.conf diff --git a/config/dotfiles/.config/kitty/theme.conf b/config/dotfiles/.config/kitty/theme.conf deleted file mode 100644 index 3e4871f..0000000 --- a/config/dotfiles/.config/kitty/theme.conf +++ /dev/null @@ -1,70 +0,0 @@ -# The basic colors -foreground #cad3f5 -background #24273a -selection_foreground #24273a -selection_background #f4dbd6 - -# Cursor colors -cursor #f4dbd6 -cursor_text_color #24273a - -# URL underline color when hovering with mouse -url_color #f4dbd6 - -# Kitty window border colors -active_border_color #b7bdf8 -inactive_border_color #6e738d -bell_border_color #eed49f - -# OS Window titlebar colors -wayland_titlebar_color system -macos_titlebar_color system - -# Tab bar colors -active_tab_foreground #181926 -active_tab_background #c6a0f6 -inactive_tab_foreground #cad3f5 -inactive_tab_background #1e2030 -tab_bar_background #181926 - -# Colors for marks (marked text in the terminal) -mark1_foreground #24273a -mark1_background #b7bdf8 -mark2_foreground #24273a -mark2_background #c6a0f6 -mark3_foreground #24273a -mark3_background #7dc4e4 - -# The 16 terminal colors - -# black -color0 #494d64 -color8 #5b6078 - -# red -color1 #ed8796 -color9 #ed8796 - -# green -color2 #a6da95 -color10 #a6da95 - -# yellow -color3 #eed49f -color11 #eed49f - -# blue -color4 #8aadf4 -color12 #8aadf4 - -# magenta -color5 #f5bde6 -color13 #f5bde6 - -# cyan -color6 #8bd5ca -color14 #8bd5ca - -# white -color7 #b8c0e0 -color15 #a5adcb diff --git a/config/dotfiles/.warprc b/config/dotfiles/.warprc deleted file mode 100644 index 6e1cb33..0000000 --- a/config/dotfiles/.warprc +++ /dev/null @@ -1,5 +0,0 @@ -docs:~/Documents -down:~/Downloads -nix:~/nix-config -obs:~/Documents/Uni -prog:~/Programming diff --git a/dots/.warprc.nix b/dots/.warprc.nix new file mode 100644 index 0000000..028c5cf --- /dev/null +++ b/dots/.warprc.nix @@ -0,0 +1,25 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.horseman.dots.warprc; + username = config.horseman.username; +in { + options = { + horseman.dots.warprc = { + enable = mkEnableOption "~/.warprc"; + }; + }; + + config = mkIf cfg.enable { + home-manager.users.${username}.home.file.".warprc".text = '' + docs:~/Documents + down:~/Downloads + nix:~/nix-config + obs:~/Documents/Uni + prog:~/Programming + ''; + }; +} diff --git a/dots/config/eza/theme.yml.nix b/dots/config/eza/theme.yml.nix new file mode 100644 index 0000000..8204822 --- /dev/null +++ b/dots/config/eza/theme.yml.nix @@ -0,0 +1,72 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.horseman.dots.eza; + username = config.horseman.username; +in { + options = { + horseman.dots.eza = { + enable = mkEnableOption "~/.config/eza/theme.yml"; + }; + }; + + config = mkIf cfg.enable { + home-manager.users.${username}.xdg.configFile."eza/theme.yml".text = '' + date: + foreground: White + + users: + user_you: + foreground: Yellow + is_bold: false + user_others: + foreground: Yellow + user_root: + foreground: Red + + size: + number_byte: + is_bold: false + number_kilo: + is_bold: false + number_mega: + is_bold: false + number_giga: + is_bold: false + number_huge: + is_bold: false + + perms: + user_read: + foreground: Green + is_bold: false + user_write: + foreground: Green + is_bold: false + user_execute: + foreground: Green + is_bold: false + group_read: + foreground: Blue + is_bold: false + group_write: + foreground: Blue + is_bold: false + group_execute: + foreground: Blue + is_bold: false + other_read: + foreground: Red + is_bold: false + other_write: + foreground: Red + is_bold: false + other_execute: + foreground: Red + is_bold: false + ''; + }; +} diff --git a/dots/config/kitty/kitty.conf.nix b/dots/config/kitty/kitty.conf.nix new file mode 100644 index 0000000..be3aec5 --- /dev/null +++ b/dots/config/kitty/kitty.conf.nix @@ -0,0 +1,105 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.horseman.dots.kitty; + username = config.horseman.username; + colors = config.horseman.catppuccin.colors; +in { + options = { + horseman.dots.kitty = { + enable = mkEnableOption "~/.config/kitty/kitty.conf"; + }; + }; + + config = mkIf cfg.enable { + home-manager.users.${username}.xdg.configFile."kitty/kitty.conf".text = '' + remember_window_size no + initial_window_width 80c + initial_window_height 24c + + enable_audio_bell no + confirm_os_window_close 0 + + background_opacity 0.7 + + font_family family='CaskaydiaCove Nerd Font' postscript_name=CaskaydiaCoveNF-Light + bold_font family='CaskaydiaCove Nerd Font' style=SemiBold + italic_font family='CaskaydiaCove Nerd Font' postscript_name=CaskaydiaCoveNF-LightItalic + bold_italic_font family='CaskaydiaCove Nerd Font' style='SemiBold Italic' + + # The basic colors + foreground ${colors.text} + background #000000 + selection_foreground ${colors.base} + selection_background ${colors.rosewater} + + # Cursor colors + cursor ${colors.rosewater} + cursor_text_color ${colors.base} + + # URL underline color when hovering with mouse + url_color ${colors.rosewater} + + # Kitty window border colors + active_border_color ${colors.lavender} + inactive_border_color ${colors.overlay0} + bell_border_color ${colors.yellow} + + # OS Window titlebar colors + wayland_titlebar_color system + macos_titlebar_color system + + # Tab bar colors + active_tab_foreground ${colors.crust} + active_tab_background ${colors.mauve} + inactive_tab_foreground ${colors.text} + inactive_tab_background ${colors.mantle} + tab_bar_background ${colors.crust} + + # Colors for marks (marked text in the terminal) + mark1_foreground ${colors.base} + mark1_background ${colors.lavender} + mark2_foreground ${colors.base} + mark2_background ${colors.mauve} + mark3_foreground ${colors.base} + mark3_background ${colors.sapphire} + + # The 16 terminal colors + + # black + color0 ${colors.surface1} + color8 ${colors.surface2} + + # red + color1 ${colors.red} + color9 ${colors.red} + + # green + color2 ${colors.green} + color10 ${colors.green} + + # yellow + color3 ${colors.yellow} + color11 ${colors.yellow} + + # blue + color4 ${colors.blue} + color12 ${colors.blue} + + # magenta + color5 ${colors.pink} + color13 ${colors.pink} + + # cyan + color6 ${colors.teal} + color14 ${colors.teal} + + # white + color7 ${colors.subtext1} + color15 ${colors.subtext0} + ''; + }; +} diff --git a/dots/config/wofi/style.css.nix b/dots/config/wofi/style.css.nix new file mode 100644 index 0000000..89a005f --- /dev/null +++ b/dots/config/wofi/style.css.nix @@ -0,0 +1,138 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.horseman.dots.wofi; + username = config.horseman.username; + colors = config.horseman.catppuccin.colors; +in { + options = { + horseman.dots.wofi = { + enable = mkEnableOption "~/.config/wofi/style.css"; + }; + }; + + config = mkIf cfg.enable { + home-manager.users.${username}.xdg.configFile."wofi/style.css".text = '' + * { + font-family: 'Inconsolata Nerd Font', monospace; + font-size: 14px; + } + + /* Window */ + window { + margin: 0px; + padding: 10px; + border: 3px solid ${colors.lavender}; + border-radius: 10px; + background-color: ${builtins.replaceStrings ["rgb" ")"] ["rgba" ", 0.99)"] colors.base-rgb}; + /* animation: slideIn 0.5s ease-in-out both; */ + } + + /* Slide In */ + @keyframes slideIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } + } + + /* Inner Box */ + #inner-box { + margin: 5px; + padding: 10px; + border: none; + background-color: ${colors.base}; + /* animation: fadeIn 0.5s ease-in-out both; */ + } + + /* Fade In */ + @keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } + } + + /* Outer Box */ + #outer-box { + margin: 5px; + padding: 10px; + border: none; + background-color: ${colors.base}; + } + + /* Scroll */ + #scroll { + margin: 0px; + padding: 10px; + border: none; + background-color: ${colors.base}; + } + + /* Input */ + #input { + margin: 5px 20px; + padding: 10px; + border: 2px solid ${colors.lavender}; + border-radius: 10px; + color: ${colors.text}; + background-color: ${colors.base}; + /* animation: fadeIn 0.5s ease-in-out both; */ + } + + #input image { + border: none; + color: ${colors.red}; + } + + #input * { + outline: 4px solid ${colors.red}!important; + } + + /* Text */ + #text { + margin: 5px; + border: none; + color: ${colors.text}; + /* animation: fadeIn 0.5s ease-in-out both; */ + } + + #entry { + background-color: ${colors.base}; + } + + #entry arrow { + border: none; + color: ${colors.lavender}; + } + + /* Selected Entry */ + #entry:selected arrow { + overflow: hidden; + color: ${colors.mauve}; + } + + #entry:selected { + border: 1px solid ${colors.lavender}; + border-radius: 10px; + } + + #entry:selected #text { + color: ${colors.mauve}; + } + + #entry:drop(active) { + background-color: ${colors.lavender}!important; + } + ''; + }; +} diff --git a/dots/default.nix b/dots/default.nix new file mode 100644 index 0000000..1638b5a --- /dev/null +++ b/dots/default.nix @@ -0,0 +1,8 @@ +{...}: { + imports = [ + ./.warprc.nix + ./config/kitty/kitty.conf.nix + ./config/eza/theme.yml.nix + ./config/wofi/style.css.nix + ]; +} diff --git a/flake.nix b/flake.nix index 5a1f24c..84c8175 100644 --- a/flake.nix +++ b/flake.nix @@ -54,6 +54,8 @@ inherit inputs outputs; }; modules = [ + ./modules + ./dots ./machines/${host}/configuration.nix home-manager.nixosModules.home-manager agenix.nixosModules.default diff --git a/modules/apps/terminal/default.nix b/modules/apps/terminal/default.nix index ae55580..a6cad74 100644 --- a/modules/apps/terminal/default.nix +++ b/modules/apps/terminal/default.nix @@ -23,6 +23,10 @@ in { imports = [./helix.nix]; }; + horseman.dots = { + eza.enable = true; + }; + environment.variables = { EDITOR = "hx"; TERM = "kitty"; diff --git a/modules/apps/terminal/zsh.nix b/modules/apps/terminal/zsh.nix index c48378e..83d7d0b 100644 --- a/modules/apps/terminal/zsh.nix +++ b/modules/apps/terminal/zsh.nix @@ -17,6 +17,10 @@ in { users.defaultUserShell = pkgs.zsh; environment.shells = with pkgs; [zsh]; + horseman.dots = { + warprc.enable = true; + }; + programs.zsh = { enable = true; enableCompletion = true; @@ -24,8 +28,7 @@ in { histSize = 10000; shellAliases = { - clone-dotfiles = "cp -r /home/horseman/nix-config/config/dotfiles/.\* /home/horseman/"; - rebuild = "function _rebuild(){clone-dotfiles && sudo nixos-rebuild switch --flake \"$@\" && nix fmt *}; _rebuild"; + rebuild = "function _rebuild(){sudo nixos-rebuild switch --flake \"$@\" && nix fmt *}; _rebuild"; update = "sudo nix flake update && git commit flake.lock -m 'Update flake.lock: $(date +%y-%m-%d)' && rebuild"; compose = "sudo docker compose"; wolpc = "wakeonlan D8:5E:D3:A8:B1:0A"; diff --git a/modules/apps/visual/default.nix b/modules/apps/visual/default.nix index f1cc4f3..269c132 100644 --- a/modules/apps/visual/default.nix +++ b/modules/apps/visual/default.nix @@ -22,6 +22,10 @@ in { firefox.enable = true; }; + horseman.dots = { + kitty.enable = true; + }; + environment.systemPackages = with pkgs; [ bitwarden blender diff --git a/modules/catppuccin/default.nix b/modules/catppuccin/default.nix new file mode 100644 index 0000000..7f0b3e9 --- /dev/null +++ b/modules/catppuccin/default.nix @@ -0,0 +1,348 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkOption types; + + cfg = config.horseman.catppuccin; + + flavors = { + mocha = { + rosewater = "#f5e0dc"; + rosewater-rgb = "rgb(245, 224, 220)"; + rosewater-hsl = "hsl(10, 56%, 91%)"; + flamingo = "#f2cdcd"; + flamingo-rgb = "rgb(242, 205, 205)"; + flamingo-hsl = "hsl(0, 59%, 88%)"; + pink = "#f5c2e7"; + pink-rgb = "rgb(245, 194, 231)"; + pink-hsl = "hsl(316, 72%, 86%)"; + mauve = "#cba6f7"; + mauve-rgb = "rgb(203, 166, 247)"; + mauve-hsl = "hsl(267, 84%, 81%)"; + red = "#f38ba8"; + red-rgb = "rgb(243, 139, 168)"; + red-hsl = "hsl(343, 81%, 75%)"; + maroon = "#eba0ac"; + maroon-rgb = "rgb(235, 160, 172)"; + maroon-hsl = "hsl(350, 65%, 77%)"; + peach = "#fab387"; + peach-rgb = "rgb(250, 179, 135)"; + peach-hsl = "hsl(23, 92%, 75%)"; + yellow = "#f9e2af"; + yellow-rgb = "rgb(249, 226, 175)"; + yellow-hsl = "hsl(41, 86%, 83%)"; + green = "#a6e3a1"; + green-rgb = "rgb(166, 227, 161)"; + green-hsl = "hsl(115, 54%, 76%)"; + teal = "#94e2d5"; + teal-rgb = "rgb(148, 226, 213)"; + teal-hsl = "hsl(170, 57%, 73%)"; + sky = "#89dceb"; + sky-rgb = "rgb(137, 220, 235)"; + sky-hsl = "hsl(189, 71%, 73%)"; + sapphire = "#74c7ec"; + sapphire-rgb = "rgb(116, 199, 236)"; + sapphire-hsl = "hsl(199, 76%, 69%)"; + blue = "#89b4fa"; + blue-rgb = "rgb(137, 180, 250)"; + blue-hsl = "hsl(217, 92%, 76%)"; + lavender = "#b4befe"; + lavender-rgb = "rgb(180, 190, 254)"; + lavender-hsl = "hsl(232, 97%, 85%)"; + text = "#cdd6f4"; + text-rgb = "rgb(205, 214, 244)"; + text-hsl = "hsl(226, 64%, 88%)"; + subtext1 = "#bac2de"; + subtext1-rgb = "rgb(186, 194, 222)"; + subtext1-hsl = "hsl(227, 35%, 80%)"; + subtext0 = "#a6adc8"; + subtext0-rgb = "rgb(166, 173, 200)"; + subtext0-hsl = "hsl(228, 24%, 72%)"; + overlay2 = "#9399b2"; + overlay2-rgb = "rgb(147, 153, 178)"; + overlay2-hsl = "hsl(228, 17%, 64%)"; + overlay1 = "#7f849c"; + overlay1-rgb = "rgb(127, 132, 156)"; + overlay1-hsl = "hsl(230, 13%, 55%)"; + overlay0 = "#6c7086"; + overlay0-rgb = "rgb(108, 112, 134)"; + overlay0-hsl = "hsl(231, 11%, 47%)"; + surface2 = "#585b70"; + surface2-rgb = "rgb(88, 91, 112)"; + surface2-hsl = "hsl(233, 12%, 39%)"; + surface1 = "#45475a"; + surface1-rgb = "rgb(69, 71, 90)"; + surface1-hsl = "hsl(234, 13%, 31%)"; + surface0 = "#313244"; + surface0-rgb = "rgb(49, 50, 68)"; + surface0-hsl = "hsl(237, 16%, 23%)"; + base = "#1e1e2e"; + base-rgb = "rgb(30, 30, 46)"; + base-hsl = "hsl(240, 21%, 15%)"; + mantle = "#181825"; + mantle-rgb = "rgb(24, 24, 37)"; + mantle-hsl = "hsl(240, 21%, 12%)"; + crust = "#11111b"; + crust-rgb = "rgb(17, 17, 27)"; + crust-hsl = "hsl(240, 23%, 9%)"; + }; + macchiato = { + rosewater = "#f4dbd6"; + rosewater-rgb = "rgb(244, 219, 214)"; + rosewater-hsl = "hsl(10, 58%, 90%)"; + flamingo = "#f0c6c6"; + flamingo-rgb = "rgb(240, 198, 198)"; + flamingo-hsl = "hsl(0, 58%, 86%)"; + pink = "#f5bde6"; + pink-rgb = "rgb(245, 189, 230)"; + pink-hsl = "hsl(316, 74%, 85%)"; + mauve = "#c6a0f6"; + mauve-rgb = "rgb(198, 160, 246)"; + mauve-hsl = "hsl(267, 83%, 80%)"; + red = "#ed8796"; + red-rgb = "rgb(237, 135, 150)"; + red-hsl = "hsl(351, 74%, 73%)"; + maroon = "#ee99a0"; + maroon-rgb = "rgb(238, 153, 160)"; + maroon-hsl = "hsl(355, 71%, 77%)"; + peach = "#f5a97f"; + peach-rgb = "rgb(245, 169, 127)"; + peach-hsl = "hsl(21, 86%, 73%)"; + yellow = "#eed49f"; + yellow-rgb = "rgb(238, 212, 159)"; + yellow-hsl = "hsl(40, 70%, 78%)"; + green = "#a6da95"; + green-rgb = "rgb(166, 218, 149)"; + green-hsl = "hsl(105, 48%, 72%)"; + teal = "#8bd5ca"; + teal-rgb = "rgb(139, 213, 202)"; + teal-hsl = "hsl(171, 47%, 69%)"; + sky = "#91d7e3"; + sky-rgb = "rgb(145, 215, 227)"; + sky-hsl = "hsl(189, 59%, 73%)"; + sapphire = "#7dc4e4"; + sapphire-rgb = "rgb(125, 196, 228)"; + sapphire-hsl = "hsl(199, 66%, 69%)"; + blue = "#8aadf4"; + blue-rgb = "rgb(138, 173, 244)"; + blue-hsl = "hsl(220, 83%, 75%)"; + lavender = "#b7bdf8"; + lavender-rgb = "rgb(183, 189, 248)"; + lavender-hsl = "hsl(234, 82%, 85%)"; + text = "#cad3f5"; + text-rgb = "rgb(202, 211, 245)"; + text-hsl = "hsl(227, 68%, 88%)"; + subtext1 = "#b8c0e0"; + subtext1-rgb = "rgb(184, 192, 224)"; + subtext1-hsl = "hsl(228, 39%, 80%)"; + subtext0 = "#a5adcb"; + subtext0-rgb = "rgb(165, 173, 203)"; + subtext0-hsl = "hsl(227, 27%, 72%)"; + overlay2 = "#939ab7"; + overlay2-rgb = "rgb(147, 154, 183)"; + overlay2-hsl = "hsl(228, 20%, 65%)"; + overlay1 = "#8087a2"; + overlay1-rgb = "rgb(128, 135, 162)"; + overlay1-hsl = "hsl(228, 15%, 57%)"; + overlay0 = "#6e738d"; + overlay0-rgb = "rgb(110, 115, 141)"; + overlay0-hsl = "hsl(230, 12%, 49%)"; + surface2 = "#5b6078"; + surface2-rgb = "rgb(91, 96, 120)"; + surface2-hsl = "hsl(230, 14%, 41%)"; + surface1 = "#494d64"; + surface1-rgb = "rgb(73, 77, 100)"; + surface1-hsl = "hsl(231, 16%, 34%)"; + surface0 = "#363a4f"; + surface0-rgb = "rgb(54, 58, 79)"; + surface0-hsl = "hsl(230, 19%, 26%)"; + base = "#24273a"; + base-rgb = "rgb(36, 39, 58)"; + base-hsl = "hsl(232, 23%, 18%)"; + mantle = "#1e2030"; + mantle-rgb = "rgb(30, 32, 48)"; + mantle-hsl = "hsl(233, 23%, 15%)"; + crust = "#181926"; + crust-rgb = "rgb(24, 25, 38)"; + crust-hsl = "hsl(236, 23%, 12%)"; + }; + frappe = { + rosewater = "#f2d5cf"; + rosewater-rgb = "rgb(242, 213, 207)"; + rosewater-hsl = "hsl(10, 57%, 88%)"; + flamingo = "#eebebe"; + flamingo-rgb = "rgb(238, 190, 190)"; + flamingo-hsl = "hsl(0, 59%, 84%)"; + pink = "#f4b8e4"; + pink-rgb = "rgb(244, 184, 228)"; + pink-hsl = "hsl(316, 73%, 84%)"; + mauve = "#ca9ee6"; + mauve-rgb = "rgb(202, 158, 230)"; + mauve-hsl = "hsl(277, 59%, 76%)"; + red = "#e78284"; + red-rgb = "rgb(231, 130, 132)"; + red-hsl = "hsl(359, 68%, 71%)"; + maroon = "#ea999c"; + maroon-rgb = "rgb(234, 153, 156)"; + maroon-hsl = "hsl(358, 66%, 76%)"; + peach = "#ef9f76"; + peach-rgb = "rgb(239, 159, 118)"; + peach-hsl = "hsl(20, 79%, 70%)"; + yellow = "#e5c890"; + yellow-rgb = "rgb(229, 200, 144)"; + yellow-hsl = "hsl(40, 62%, 73%)"; + green = "#a6d189"; + green-rgb = "rgb(166, 209, 137)"; + green-hsl = "hsl(96, 44%, 68%)"; + teal = "#81c8be"; + teal-rgb = "rgb(129, 200, 190)"; + teal-hsl = "hsl(172, 39%, 65%)"; + sky = "#99d1db"; + sky-rgb = "rgb(153, 209, 219)"; + sky-hsl = "hsl(189, 48%, 73%)"; + sapphire = "#85c1dc"; + sapphire-rgb = "rgb(133, 193, 220)"; + sapphire-hsl = "hsl(199, 55%, 69%)"; + blue = "#8caaee"; + blue-rgb = "rgb(140, 170, 238)"; + blue-hsl = "hsl(222, 74%, 74%)"; + lavender = "#babbf1"; + lavender-rgb = "rgb(186, 187, 241)"; + lavender-hsl = "hsl(239, 66%, 84%)"; + text = "#c6d0f5"; + text-rgb = "rgb(198, 208, 245)"; + text-hsl = "hsl(227, 70%, 87%)"; + subtext1 = "#b5bfe2"; + subtext1-rgb = "rgb(181, 191, 226)"; + subtext1-hsl = "hsl(227, 44%, 80%)"; + subtext0 = "#a5adce"; + subtext0-rgb = "rgb(165, 173, 206)"; + subtext0-hsl = "hsl(228, 29%, 73%)"; + overlay2 = "#949cbb"; + overlay2-rgb = "rgb(148, 156, 187)"; + overlay2-hsl = "hsl(228, 22%, 66%)"; + overlay1 = "#838ba7"; + overlay1-rgb = "rgb(131, 139, 167)"; + overlay1-hsl = "hsl(227, 17%, 58%)"; + overlay0 = "#737994"; + overlay0-rgb = "rgb(115, 121, 148)"; + overlay0-hsl = "hsl(229, 13%, 52%)"; + surface2 = "#626880"; + surface2-rgb = "rgb(98, 104, 128)"; + surface2-hsl = "hsl(228, 13%, 44%)"; + surface1 = "#51576d"; + surface1-rgb = "rgb(81, 87, 109)"; + surface1-hsl = "hsl(227, 15%, 37%)"; + surface0 = "#414559"; + surface0-rgb = "rgb(65, 69, 89)"; + surface0-hsl = "hsl(230, 16%, 30%)"; + base = "#303446"; + base-rgb = "rgb(48, 52, 70)"; + base-hsl = "hsl(229, 19%, 23%)"; + mantle = "#292c3c"; + mantle-rgb = "rgb(41, 44, 60)"; + mantle-hsl = "hsl(231, 19%, 20%)"; + crust = "#232634"; + crust-rgb = "rgb(35, 38, 52)"; + crust-hsl = "hsl(229, 20%, 17%)"; + }; + latte = { + rosewater = "#dc8a78"; + rosewater-rgb = "rgb(220, 138, 120)"; + rosewater-hsl = "hsl(11, 59%, 67%)"; + flamingo = "#dd7878"; + flamingo-rgb = "rgb(221, 120, 120)"; + flamingo-hsl = "hsl(0, 60%, 67%)"; + pink = "#ea76cb"; + pink-rgb = "rgb(234, 118, 203)"; + pink-hsl = "hsl(316, 73%, 69%)"; + mauve = "#8839ef"; + mauve-rgb = "rgb(136, 57, 239)"; + mauve-hsl = "hsl(266, 85%, 58%)"; + red = "#d20f39"; + red-rgb = "rgb(210, 15, 57)"; + red-hsl = "hsl(347, 87%, 44%)"; + maroon = "#e64553"; + maroon-rgb = "rgb(230, 69, 83)"; + maroon-hsl = "hsl(355, 76%, 59%)"; + peach = "#fe640b"; + peach-rgb = "rgb(254, 100, 11)"; + peach-hsl = "hsl(22, 99%, 52%)"; + yellow = "#df8e1d"; + yellow-rgb = "rgb(223, 142, 29)"; + yellow-hsl = "hsl(35, 77%, 49%)"; + green = "#40a02b"; + green-rgb = "rgb(64, 160, 43)"; + green-hsl = "hsl(109, 58%, 40%)"; + teal = "#179299"; + teal-rgb = "rgb(23, 146, 153)"; + teal-hsl = "hsl(183, 74%, 35%)"; + sky = "#04a5e5"; + sky-rgb = "rgb(4, 165, 229)"; + sky-hsl = "hsl(197, 97%, 46%)"; + sapphire = "#209fb5"; + sapphire-rgb = "rgb(32, 159, 181)"; + sapphire-hsl = "hsl(189, 70%, 42%)"; + blue = "#1e66f5"; + blue-rgb = "rgb(30, 102, 245)"; + blue-hsl = "hsl(220, 91%, 54%)"; + lavender = "#7287fd"; + lavender-rgb = "rgb(114, 135, 253)"; + lavender-hsl = "hsl(231, 97%, 72%)"; + text = "#4c4f69"; + text-rgb = "rgb(76, 79, 105)"; + text-hsl = "hsl(234, 16%, 35%)"; + subtext1 = "#5c5f77"; + subtext1-rgb = "rgb(92, 95, 119)"; + subtext1-hsl = "hsl(233, 13%, 41%)"; + subtext0 = "#6c6f85"; + subtext0-rgb = "rgb(108, 111, 133)"; + subtext0-hsl = "hsl(233, 10%, 47%)"; + overlay2 = "#7c7f93"; + overlay2-rgb = "rgb(124, 127, 147)"; + overlay2-hsl = "hsl(232, 10%, 53%)"; + overlay1 = "#8c8fa1"; + overlay1-rgb = "rgb(140, 143, 161)"; + overlay1-hsl = "hsl(231, 10%, 59%)"; + overlay0 = "#9ca0b0"; + overlay0-rgb = "rgb(156, 160, 176)"; + overlay0-hsl = "hsl(228, 11%, 65%)"; + surface2 = "#acb0be"; + surface2-rgb = "rgb(172, 176, 190)"; + surface2-hsl = "hsl(227, 12%, 71%)"; + surface1 = "#bcc0cc"; + surface1-rgb = "rgb(188, 192, 204)"; + surface1-hsl = "hsl(225, 14%, 77%)"; + surface0 = "#ccd0da"; + surface0-rgb = "rgb(204, 208, 218)"; + surface0-hsl = "hsl(223, 16%, 83%)"; + base = "#eff1f5"; + base-rgb = "rgb(239, 241, 245)"; + base-hsl = "hsl(220, 23%, 95%)"; + mantle = "#e6e9ef"; + mantle-rgb = "rgb(230, 233, 239)"; + mantle-hsl = "hsl(220, 22%, 92%)"; + crust = "#dce0e8"; + crust-rgb = "rgb(220, 224, 232)"; + crust-hsl = "hsl(220, 21%, 89%)"; + }; + }; +in { + options = { + horseman.catppuccin = { + flavor = mkOption { + type = types.enum ["latte" "frappe" "mocha" "macchiato"]; + default = "mocha"; + }; + + colors = mkOption { + type = types.attrsOf types.anything; + readOnly = true; + }; + }; + }; + + config.horseman.catppuccin.colors = lib.mkDefault flavors.${cfg.flavor}; +} diff --git a/modules/default.nix b/modules/default.nix index 02abdf2..563e8a2 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,4 +1,10 @@ -{lib, ...}: let +{ + lib, + config, + pkgs, + outputs, + ... +}: let inherit (lib) mkOption types; in { imports = [ @@ -10,6 +16,7 @@ in { ./boot ./base ./timers + ./catppuccin ]; options = { diff --git a/modules/wm/hyprland/config/wofi/style.css b/modules/wm/hyprland/config/wofi/style.css deleted file mode 100644 index 9673eeb..0000000 --- a/modules/wm/hyprland/config/wofi/style.css +++ /dev/null @@ -1,170 +0,0 @@ -@define-color rosewater #f4dbd6; -@define-color rosewater-rgb rgb(244, 219, 214); -@define-color flamingo #f0c6c6; -@define-color flamingo-rgb rgb(240, 198, 198); -@define-color pink #f5bde6; -@define-color pink-rgb rgb(245, 189, 230); -@define-color mauve #c6a0f6; -@define-color mauve-rgb rgb(198, 160, 246); -@define-color red #ed8796; -@define-color red-rgb rgb(237, 135, 150); -@define-color maroon #ee99a0; -@define-color maroon-rgb rgb(238, 153, 160); -@define-color peach #f5a97f; -@define-color peach-rgb rgb(245, 169, 127); -@define-color yellow #eed49f; -@define-color yellow-rgb rgb(238, 212, 159); -@define-color green #a6da95; -@define-color green-rgb rgb(166, 218, 149); -@define-color teal #8bd5ca; -@define-color teal-rgb rgb(139, 213, 202); -@define-color sky #91d7e3; -@define-color sky-rgb rgb(145, 215, 227); -@define-color sapphire #7dc4e4; -@define-color sapphire-rgb rgb(125, 196, 228); -@define-color blue #8aadf4; -@define-color blue-rgb rgb(138, 173, 244); -@define-color lavender #b7bdf8; -@define-color lavender-rgb rgb(183, 189, 248); -@define-color text #cad3f5; -@define-color text-rgb rgb(202, 211, 245); -@define-color subtext1 #b8c0e0; -@define-color subtext1-rgb rgb(184, 192, 224); -@define-color subtext0 #a5adcb; -@define-color subtext0-rgb rgb(165, 173, 203); -@define-color overlay2 #939ab7; -@define-color overlay2-rgb rgb(147, 154, 183); -@define-color overlay1 #8087a2; -@define-color overlay1-rgb rgb(128, 135, 162); -@define-color overlay0 #6e738d; -@define-color overlay0-rgb rgb(110, 115, 141); -@define-color surface2 #5b6078; -@define-color surface2-rgb rgb(91, 96, 120); -@define-color surface1 #494d64; -@define-color surface1-rgb rgb(73, 77, 100); -@define-color surface0 #363a4f; -@define-color surface0-rgb rgb(54, 58, 79); -@define-color base #24273a; -@define-color base-rgb rgba(36, 39, 58, 0.99); -@define-color mantle #1e2030; -@define-color mantle-rgb rgb(30, 32, 48); -@define-color crust #181926; -@define-color crust-rgb rgb(24, 25, 38); - -* { - font-family: 'Inconsolata Nerd Font', monospace; - font-size: 14px; -} - -/* Window */ -window { - margin: 0px; - padding: 10px; - border: 3px solid @lavender; - border-radius: 10px; - background-color: @base-rgb; - /* animation: slideIn 0.5s ease-in-out both; */ -} - -/* Slide In */ -@keyframes slideIn { - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} - -/* Inner Box */ -#inner-box { - margin: 5px; - padding: 10px; - border: none; - background-color: @base; - /* animation: fadeIn 0.5s ease-in-out both; */ -} - -/* Fade In */ -@keyframes fadeIn { - 0% { - opacity: 0; - } - - 100% { - opacity: 1; - } -} - -/* Outer Box */ -#outer-box { - margin: 5px; - padding: 10px; - border: none; - background-color: @base; -} - -/* Scroll */ -#scroll { - margin: 0px; - padding: 10px; - border: none; - background-color: @base; -} - -/* Input */ -#input { - margin: 5px 20px; - padding: 10px; - border: 2px solid @lavender; - border-radius: 10px; - color: @text; - background-color: @base; - /* animation: fadeIn 0.5s ease-in-out both; */ -} - -#input image { - border: none; - color: @red; -} - -#input * { - outline: 4px solid @red!important; -} - -/* Text */ -#text { - margin: 5px; - border: none; - color: @text; - /* animation: fadeIn 0.5s ease-in-out both; */ -} - -#entry { - background-color: @base; -} - -#entry arrow { - border: none; - color: @lavender; -} - -/* Selected Entry */ -#entry:selected arrow { - overflow: hidden; - color: @mauve; -} - -#entry:selected { - border: 1px solid @lavender; - border-radius: 10px; -} - -#entry:selected #text { - color: @mauve; -} - -#entry:drop(active) { - background-color: @lavender!important; -} diff --git a/modules/wm/hyprland/options.nix b/modules/wm/hyprland/options.nix index 5da3100..600d9ae 100644 --- a/modules/wm/hyprland/options.nix +++ b/modules/wm/hyprland/options.nix @@ -1264,6 +1264,10 @@ in { }; config = mkIf cfg.enable { + horseman.dots = { + wofi.enable = true; + }; + home-manager.users.${homeCfg.username} = { xdg.configFile."hypr/hypridle.conf".text = '' # This file has been auto-generated.