Changes
11 changed files (+494/-424)
-
modules/hm/palette/catppuccin.nix (deleted)
-
@@ -1,94 +0,0 @@# Copyright 2023 Shota FUJI <pockawoooh@gmail.com> # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # SPDX-License-Identifier: 0BSD # # Catppuccin color schema. { config, lib, pkgs, ... }: let cfg = config.palette.catppuccin; json = builtins.fromJSON ( builtins.readFile ( pkgs.fetchFromGitHub { owner = "catppuccin"; repo = "palette"; rev = "205dd54c6158b7648621cf9fd00e91f03888ce7e"; sha256 = "y14fd8lvnG9hNY6CRU0JgxWouexEw91aIEMkr1NaM/4="; } + "/palette.json" ) ); flavor = lib.types.enum [ "latte" "frappe" "macchiato" "mocha" ]; color = lib.types.submodule { options = { hex = lib.mkOption { type = lib.types.nonEmptyStr; }; hsl = lib.mkOption { type = lib.types.nonEmptyStr; }; raw = lib.mkOption { type = lib.types.nonEmptyStr; }; rgb = lib.mkOption { type = lib.types.nonEmptyStr; }; }; }; palette = lib.types.attrsOf color; in { options = { palette.catppuccin = { light-flavor = lib.mkOption { type = flavor; default = "latte"; description = '' Specify which Catppuccin _flavor_ (color palette) to use on light mode. ''; }; dark-flavor = lib.mkOption { type = flavor; default = "mocha"; description = '' Specify which Catppuccin _flavor_ (color palette) to use on dark mode. ''; }; light-palette = lib.mkOption { type = palette; default = { }; }; dark-palette = lib.mkOption { type = palette; default = { }; }; }; }; config = { palette.catppuccin.light-palette = json.${cfg.light-flavor}; palette.catppuccin.dark-palette = json.${cfg.dark-flavor}; }; }
-
-
-
@@ -17,5 +17,5 @@{ ... }: { imports = [ ./catppuccin.nix ]; imports = [ ./rose-pine.nix ]; }
-
-
-
@@ -0,0 +1,127 @@# Copyright 2023 Shota FUJI <pockawoooh@gmail.com> # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # SPDX-License-Identifier: 0BSD # # Rosé Pine (https://rosepinetheme.com/) { config, lib, pkgs, ... }: let variant = lib.types.enum [ "main" "moon" "dawn" ]; mkColorOption = opts: lib.mkOption (opts // { type = lib.types.nonEmptyStr; }); palette = lib.types.submodule { options = { base = mkColorOption { }; surface = mkColorOption { }; overlay = mkColorOption { }; muted = mkColorOption { }; subtle = mkColorOption { }; text = mkColorOption { }; love = mkColorOption { }; gold = mkColorOption { }; rose = mkColorOption { }; pine = mkColorOption { }; foam = mkColorOption { }; iris = mkColorOption { }; highlightLow = mkColorOption { }; highlightMed = mkColorOption { }; highlightHigh = mkColorOption { }; }; }; in { options = { palette.rose-pine = { variants.main = lib.mkOption { type = palette; }; variants.moon = lib.mkOption { type = palette; }; variants.dawn = lib.mkOption { type = palette; }; light-variant = lib.mkOption { type = variant; default = "dawn"; }; dark-variant = lib.mkOption { type = variant; default = "main"; }; }; }; config = { palette.rose-pine.variants.main = { base = "#191724"; surface = "#1f1d2e"; overlay = "#26233a"; muted = "#6e6a86"; subtle = "#908caa"; text = "#e0def4"; love = "#eb6f92"; gold = "#f6c177"; rose = "#ebbcba"; pine = "#31748f"; foam = "#9ccfd8"; iris = "#c4a7e7"; highlightLow = "#21202e"; highlightMed = "#403d52"; highlightHigh = "#524f67"; }; palette.rose-pine.variants.moon = { base = "#232136"; surface = "#2a273f"; overlay = "#393552"; muted = "#6e6a86"; subtle = "#908caa"; text = "#e0def4"; love = "#eb6f92"; gold = "#f6c177"; rose = "#ea9a97"; pine = "#3e8fb0"; foam = "#9ccfd8"; iris = "#c4a7e7"; highlightLow = "#2a283e"; highlightMed = "#44415a"; highlightHigh = "#56526e"; }; palette.rose-pine.variants.dawn = { base = "#faf4ed"; surface = "#fffaf3"; overlay = "#f2e9e1"; muted = "#9893a5"; subtle = "#797593"; text = "#575279"; love = "#b4637a"; gold = "#ea9d34"; rose = "#d7827e"; pine = "#286983"; foam = "#56949f"; iris = "#907aa9"; highlightLow = "#f4ede8"; highlightMed = "#dfdad9"; highlightHigh = "#cecacd"; }; }; }
-
-
-
@@ -20,17 +20,10 @@config, lib, pkgs, nix-colorizer, ... }: let palette = config.palette.catppuccin; in { imports = [ ../fonts/monaspace.nix ../palette/catppuccin.nix ]; imports = [ ../fonts/monaspace.nix ]; config = { programs.ghostty = {
-
@@ -80,51 +73,8 @@ in"ctrl+shift+m=new_window" ]; theme = "light:catppuccin-${palette.light-flavor},dark:catppuccin-${palette.dark-flavor}"; theme = "light:Rose Pine Dawn,dark:Rose Pine"; }; # Both iterm2-color-schemes (Ghostty sources from) and catppuccin/ghostty # inverts 0/7 and 15/8 (bg and fg) to make colors "bright." This is unusable # as the colors' semantics no longer works. 15 can't be used for foreground, # so the program have to read background color. The reason 4-bit colors is # still used today is compatibility AND theming. Theme violates widely-used # context is completely useless. This code defines correct Catppuccin theme. themes = let stripSharp = hex: lib.strings.removePrefix "#" hex; lighten = hex: nix-colorizer.hex.lighten hex 0.1; toTheme = p: { palette = [ "0=${p.surface0.hex}" "1=${p.red.hex}" "2=${p.green.hex}" "3=${p.yellow.hex}" "4=${p.blue.hex}" "5=${p.pink.hex}" "6=${p.teal.hex}" "7=${p.subtext0.hex}" "8=${p.surface2.hex}" "9=${lighten p.red.hex}" "10=${lighten p.green.hex}" "11=${lighten p.yellow.hex}" "12=${lighten p.blue.hex}" "13=${lighten p.pink.hex}" "14=${lighten p.teal.hex}" "15=${p.text.hex}" ]; background = stripSharp p.base.hex; foreground = stripSharp p.text.hex; cursor-color = stripSharp p.rosewater.hex; selection-background = stripSharp p.surface2.hex; selection-foreground = stripSharp p.text.hex; }; in { "catppuccin-${palette.light-flavor}" = toTheme palette.light-palette; "catppuccin-${palette.dark-flavor}" = toTheme palette.dark-palette; }; }; }; }
-
-
-
@@ -20,9 +20,9 @@config = { home.pointerCursor = { gtk.enable = true; name = "Afterglow-Recolored-Catppuccin-Mauve"; name = "BreezeX-RosePine-Linux"; size = 32; package = pkgs.afterglow-cursors-recolored; package = pkgs.rose-pine-cursor; }; }; }
-
-
-
@@ -16,57 +16,92 @@# > Lightweight and customizable notification daemon # https://dunst-project.org/ { config, ... }: { config, pkgs, ... }: { imports = [ ../palette/catppuccin.nix ]; imports = [ ../palette/rose-pine.nix ]; config = { services = { dunst = { config = let light = config.palette.rose-pine.variants.${config.palette.rose-pine.light-variant}; dark = config.palette.rose-pine.variants.${config.palette.rose-pine.dark-variant}; in { services.dunst = { enable = true; settings = let dark = config.palette.catppuccin.dark-palette; in { global = { follow = "keyboard"; settings = { global = { follow = "keyboard"; mouse_left_click = "do_action"; mouse_middle_click = "close_current"; mouse_right_click = "context"; mouse_left_click = "do_action"; mouse_middle_click = "close_current"; mouse_right_click = "context"; width = 400; height = 300; offset = "4x4"; padding = 4; horizontal_padding = 8; frame_width = 2; gap_size = 6; font = "Monospace 10"; corner_radius = 2; }; width = 400; height = 300; offset = "4x4"; padding = 8; horizontal_padding = 8; frame_width = 2; gap_size = 6; font = "Monospace 10"; corner_radius = 4; }; }; }; xdg.configFile."dunst/dunstrc.d/00-noop.conf" = { text = ""; }; urgency_low = { background = dark.base.hex; foreground = dark.subtext0.hex; frame_color = dark.overlay1.hex; }; xdg.configFile."dunst/themes/light.conf" = { text = '' [urgency_low] background="${light.overlay}" foreground="${light.subtle}" frame_color="${light.highlightHigh}" urgency_normal = { background = dark.base.hex; foreground = dark.text.hex; frame_color = dark.blue.hex; }; [urgency_normal] background="${light.overlay}" foreground="${light.text}" frame_color="${light.foam}" urgency_critical = { background = dark.base.hex; foreground = dark.text.hex; frame_color = dark.yellow.hex; }; }; [urgency_critical] background="${light.overlay}" foreground="${light.text}" frame_color="${light.love}" ''; }; xdg.configFile."dunst/themes/dark.conf" = { text = '' [urgency_low] background="${dark.overlay}" foreground="${dark.subtle}" frame_color="${dark.highlightHigh}" [urgency_normal] background="${dark.overlay}" foreground="${dark.text}" frame_color="${dark.foam}" [urgency_critical] background="${dark.overlay}" foreground="${dark.text}" frame_color="${dark.love}" ''; }; services.darkman = { lightModeScripts.dunst = '' ln -sf ${config.xdg.configHome}/dunst/themes/light.conf ${config.xdg.configHome}/dunst/dunstrc.d/99-theme.conf ${pkgs.dunst}/bin/dunstctl reload ''; darkModeScripts.dunst = '' ln -sf ${config.xdg.configHome}/dunst/themes/dark.conf ${config.xdg.configHome}/dunst/dunstrc.d/99-theme.conf ${pkgs.dunst}/bin/dunstctl reload ''; }; }; }; }
-
-
-
@@ -48,12 +48,196 @@ letserializeSpawnArg = a: builtins.concatStringsSep " " (builtins.map (s: "\"${s}\"") a); dark = config.palette.catppuccin.dark-palette; light = config.palette.rose-pine.variants.${config.palette.rose-pine.light-variant}; dark = config.palette.rose-pine.variants.${config.palette.rose-pine.dark-variant}; # https://github.com/YaLTeR/niri/wiki/Configuration:-Overview configFile = { backdropColor, activeFocusRingColor, inactiveFocusRingColor, activeBorderColor, inactiveBorderColor, cursorTheme ? "default", gap ? 16, }: '' input { keyboard { repeat-delay ${builtins.toString cfg.input.keyboard.repeat-delay} repeat-rate ${builtins.toString cfg.input.keyboard.repeat-rate} } // This section includes libinput settings. // Omitting settings disables them, or leaves them at their default values. touchpad { natural-scroll accel-speed 0.2 accel-profile "adaptive" scroll-method "two-finger" scroll-factor 0.3 click-method "clickfinger" } } ${lib.strings.concatStringsSep "\n" (builtins.map serializeOutput cfg.outputs)} overview { backdrop-color "${backdropColor}" workspace-shadow { off } } layout { gaps ${builtins.toString gap} center-focused-column "never" background-color "transparent" preset-column-widths { // Proportion sets the width as a fraction of the output width, taking gaps into account. // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. // The default preset widths are 1/3, 1/2 and 2/3 of the output. proportion 0.25 proportion 0.5 proportion 0.75 } preset-window-heights { proportion 0.25 proportion 0.5 proportion 0.75 } // You can change the default width of the new windows. // If you leave the brackets empty, the windows themselves will decide their initial width. default-column-width { proportion 0.5 } focus-ring { width 1 active-color "${activeFocusRingColor}" inactive-color "${inactiveFocusRingColor}" } border { width ${builtins.toString (gap / 5)} active-color "${activeBorderColor}" inactive-color "${inactiveBorderColor}" } shadow { on softness 15 spread 1 } struts { left 0 right 0 top 0 bottom ${builtins.toString (gap / -2)} } } gap = 16; ${if cfg.prefer-no-csd then "" else "//"}prefer-no-csd screenshot-path "${cfg.screenshot-path}" animations { } // Open the Firefox picture-in-picture player as floating by default. window-rule { // This app-id regular expression will work for both: // - host Firefox (app-id is "firefox") // - Flatpak Firefox (app-id is "org.mozilla.firefox") match app-id=r#"firefox$"# title="^Picture-in-Picture$" open-floating true } window-rule { match app-id="^com\\.mitchellh\\.ghostty$" default-column-width { proportion 0.25 } } // Enable rounded corners for all windows. window-rule { geometry-corner-radius 2 clip-to-geometry true } hotkey-overlay { ${if cfg.hotkey-overlay.skip-at-startup then "" else "//"}skip-at-startup } ${builtins.concatStringsSep "\n" ( builtins.map (a: "spawn-at-startup ${serializeSpawnArg a}") cfg.spawn-at-startup )} spawn-at-startup "${pkgs.waybar}/bin/waybar" binds { Mod+Shift+Slash { show-hotkey-overlay; } Mod+T { spawn "${config.lib.nixGL.wrap pkgs.ghostty}/bin/ghostty" "--working-directory=home"; } Mod+X { spawn "swaylock"; } Mod+Q { close-window; } Mod+Space { spawn "${pkgs.walker}/bin/walker" "--modules" "applications,commands,calc,power"; } Mod+H { focus-column-left; } Mod+J { focus-window-down-or-column-right; } Mod+K { focus-window-up-or-column-left; } Mod+L { focus-column-right; } Mod+Ctrl+H { move-column-left; } Mod+Ctrl+J { consume-or-expel-window-left; } Mod+Ctrl+K { consume-or-expel-window-right; } Mod+Ctrl+L { move-column-right; } Mod+U { focus-workspace-down; } Mod+I { focus-workspace-up; } Mod+Ctrl+U { move-column-to-workspace-down; } Mod+Ctrl+I { move-column-to-workspace-up; } Mod+BracketLeft { consume-or-expel-window-left; } Mod+BracketRight { consume-or-expel-window-right; } Mod+Comma { consume-window-into-column; } Mod+Period { expel-window-from-column; } Mod+R { switch-preset-column-width; } Mod+Shift+R { switch-preset-window-height; } Mod+Ctrl+R { reset-window-height; } Mod+F { maximize-column; } Mod+Shift+F { fullscreen-window; } Mod+C { center-column; } Mod+Minus { set-column-width "-10%"; } Mod+Equal { set-column-width "+10%"; } Mod+Shift+Minus { set-window-height "-10%"; } Mod+Shift+Equal { set-window-height "+10%"; } Mod+V { toggle-window-floating; } Mod+Shift+V { switch-focus-between-floating-and-tiling; } Mod+Shift+E { quit; } Ctrl+Alt+Delete { quit; } Mod+Shift+P { power-off-monitors; } } cursor { xcursor-theme "${cursorTheme}" } ''; in { imports = [ ../palette/catppuccin.nix ]; imports = [ ../palette/rose-pine.nix ]; options = { wayland-desktop.niri = {
-
@@ -122,176 +306,35 @@ in}; config = { xdg.configFile."niri/config.kdl" = { # https://github.com/YaLTeR/niri/wiki/Configuration:-Overview text = '' input { keyboard { repeat-delay ${builtins.toString cfg.input.keyboard.repeat-delay} repeat-rate ${builtins.toString cfg.input.keyboard.repeat-rate} } // This section includes libinput settings. // Omitting settings disables them, or leaves them at their default values. touchpad { natural-scroll accel-speed 0.2 accel-profile "adaptive" scroll-method "two-finger" scroll-factor 0.3 click-method "clickfinger" } } ${lib.strings.concatStringsSep "\n" (builtins.map serializeOutput cfg.outputs)} overview { backdrop-color "${dark.base.hex}" workspace-shadow { off } } layout { gaps ${builtins.toString gap} center-focused-column "never" background-color "transparent" preset-column-widths { // Proportion sets the width as a fraction of the output width, taking gaps into account. // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. // The default preset widths are 1/3, 1/2 and 2/3 of the output. proportion 0.25 proportion 0.5 proportion 0.75 } preset-window-heights { proportion 0.25 proportion 0.5 proportion 0.75 } // You can change the default width of the new windows. // If you leave the brackets empty, the windows themselves will decide their initial width. default-column-width { proportion 0.5 } focus-ring { width 1 active-color "${dark.overlay1.hex}" inactive-color "${dark.surface1.hex}" } border { width ${builtins.toString (gap / 5)} active-color "${dark.overlay2.hex}" inactive-color "${dark.surface0.hex}" } shadow { on softness 40 spread 5 } struts { left 0 right 0 top 0 bottom ${builtins.toString (gap / -2)} } } ${if cfg.prefer-no-csd then "" else "//"}prefer-no-csd screenshot-path "${cfg.screenshot-path}" animations { } // Open the Firefox picture-in-picture player as floating by default. window-rule { // This app-id regular expression will work for both: // - host Firefox (app-id is "firefox") // - Flatpak Firefox (app-id is "org.mozilla.firefox") match app-id=r#"firefox$"# title="^Picture-in-Picture$" open-floating true } window-rule { match app-id="^com\\.mitchellh\\.ghostty$" default-column-width { proportion 0.25 } } // Enable rounded corners for all windows. window-rule { geometry-corner-radius 2 clip-to-geometry true } hotkey-overlay { ${if cfg.hotkey-overlay.skip-at-startup then "" else "//"}skip-at-startup } ${builtins.concatStringsSep "\n" ( builtins.map (a: "spawn-at-startup ${serializeSpawnArg a}") cfg.spawn-at-startup )} spawn-at-startup "${pkgs.waybar}/bin/waybar" binds { Mod+Shift+Slash { show-hotkey-overlay; } Mod+T { spawn "${config.lib.nixGL.wrap pkgs.ghostty}/bin/ghostty" "--working-directory=home"; } Mod+X { spawn "swaylock"; } Mod+Q { close-window; } Mod+Space { spawn "${pkgs.walker}/bin/walker" "--modules" "applications,commands,calc,power"; } Mod+H { focus-column-left; } Mod+J { focus-window-down-or-column-right; } Mod+K { focus-window-up-or-column-left; } Mod+L { focus-column-right; } Mod+Ctrl+H { move-column-left; } Mod+Ctrl+J { consume-or-expel-window-left; } Mod+Ctrl+K { consume-or-expel-window-right; } Mod+Ctrl+L { move-column-right; } Mod+U { focus-workspace-down; } Mod+I { focus-workspace-up; } Mod+Ctrl+U { move-column-to-workspace-down; } Mod+Ctrl+I { move-column-to-workspace-up; } Mod+BracketLeft { consume-or-expel-window-left; } Mod+BracketRight { consume-or-expel-window-right; } Mod+Comma { consume-window-into-column; } Mod+Period { expel-window-from-column; } Mod+R { switch-preset-column-width; } Mod+Shift+R { switch-preset-window-height; } Mod+Ctrl+R { reset-window-height; } Mod+F { maximize-column; } Mod+Shift+F { fullscreen-window; } Mod+C { center-column; } Mod+Minus { set-column-width "-10%"; } Mod+Equal { set-column-width "+10%"; } Mod+Shift+Minus { set-window-height "-10%"; } Mod+Shift+Equal { set-window-height "+10%"; } xdg.configFile."niri/dark.kdl" = { text = configFile { backdropColor = dark.base; activeFocusRingColor = dark.rose; inactiveFocusRingColor = dark.highlightHigh; activeBorderColor = dark.highlightLow; inactiveBorderColor = dark.highlightLow; cursorTheme = "BreezeX-RosePine-Linux"; }; }; Mod+V { toggle-window-floating; } Mod+Shift+V { switch-focus-between-floating-and-tiling; } xdg.configFile."niri/light.kdl" = { text = configFile { backdropColor = light.base; activeFocusRingColor = light.rose; inactiveFocusRingColor = light.highlightHigh; activeBorderColor = light.highlightLow; inactiveBorderColor = light.highlightLow; cursorTheme = "BreezeX-RosePineDawn-Linux"; }; }; Mod+Shift+E { quit; } Ctrl+Alt+Delete { quit; } services.darkman = { lightModeScripts.niri = '' ln -sf ${config.xdg.configHome}/niri/light.kdl ${config.xdg.configHome}/niri/config.kdl ''; Mod+Shift+P { power-off-monitors; } } darkModeScripts.niri = '' ln -sf ${config.xdg.configHome}/niri/dark.kdl ${config.xdg.configHome}/niri/config.kdl ''; }; };
-
-
-
@@ -16,41 +16,49 @@# > Screen locker for Wayland # https://github.com/swaywm/swaylock { config, lib, ... }: { config, pkgs, ... }: { imports = [ ../palette/catppuccin.nix ]; imports = [ ../palette/rose-pine.nix ]; config = { programs.swaylock = { enable = true; config = let themes = pkgs.fetchFromGitHub { owner = "d2718nis"; repo = "rose-pine-swaylock"; rev = "8a2aefbc9996941535bb10f0df5357687c43c06a"; sha256 = "sha256-xgWeudcgyrDJXP3WFoOCuBSLs+7103BamsVuI5GjNpY="; }; settings = let palette = config.palette.catppuccin.dark-palette; stripSharp = hex: lib.strings.removePrefix "#" hex; in { color = stripSharp palette.base.hex; indicator-thickness = 8; indicator-idle-visible = true; inside-color = stripSharp palette.base.hex; inside-clear-color = stripSharp palette.base.hex; inside-ver-color = stripSharp palette.base.hex; inside-wrong-color = stripSharp palette.base.hex; key-hl-color = stripSharp palette.mauve.hex; line-color = stripSharp palette.surface0.hex; line-clear-color = stripSharp palette.surface0.hex; line-ver-color = stripSharp palette.overlay2.hex; line-wrong-color = stripSharp palette.red.hex; ring-color = stripSharp palette.base.hex; ring-clear-color = stripSharp palette.base.hex; ring-ver-color = stripSharp palette.overlay0.hex; ring-wrong-color = stripSharp palette.maroon.hex; text-color = stripSharp palette.text.hex; text-clear-color = stripSharp palette.text.hex; text-ver-color = stripSharp palette.subtext1.hex; text-wrong-color = stripSharp palette.red.hex; }; variantToFile = variant: if variant == "dawn" then "rose-pine-dawn" else if variant == "moon" then "rose-pine-moon" else "rose-pine"; in { programs.swaylock = { enable = true; }; xdg.configFile."swaylock/light" = { source = "${themes}/${variantToFile config.palette.rose-pine.light-variant}"; }; xdg.configFile."swaylock/dark" = { source = "${themes}/${variantToFile config.palette.rose-pine.dark-variant}"; }; services.darkman = { lightModeScripts.swaylock = '' ln -sf ${config.xdg.configHome}/swaylock/light ${config.xdg.configHome}/swaylock/config ''; darkModeScripts.swaylock = '' ln -sf ${config.xdg.configHome}/swaylock/dark ${config.xdg.configHome}/swaylock/config ''; }; }; }; }
-
-
-
@@ -18,6 +18,8 @@{ config, ... }: { imports = [ ../palette/rose-pine.nix ]; config = { services.walker = { enable = true;
-
@@ -224,26 +226,26 @@style = let light = config.palette.catppuccin.light-palette; dark = config.palette.catppuccin.dark-palette; light = config.palette.rose-pine.variants.${config.palette.rose-pine.light-variant}; dark = config.palette.rose-pine.variants.${config.palette.rose-pine.dark-variant}; in '' ${builtins.readFile ./walker/theme.css} #window.dark { --background-color: ${dark.base.hex}; --surface-background-color: ${dark.surface0.hex}; --border-color: ${dark.lavender.hex}; --foreground-color: ${dark.text.hex}; --dimmed-foreground-color: ${dark.subtext0.hex}; --background-color: ${dark.base}; --surface-background-color: ${dark.surface}; --border-color: ${dark.foam}; --foreground-color: ${dark.text}; --dimmed-foreground-color: ${dark.subtle}; } #window.light { --background-color: ${light.base.hex}; --surface-background-color: ${light.surface0.hex}; --border-color: ${light.lavender.hex}; --foreground-color: ${light.text.hex}; --dimmed-foreground-color: ${light.subtext0.hex}; --background-color: ${light.base}; --surface-background-color: ${light.surface}; --border-color: ${light.foam}; --foreground-color: ${light.text}; --dimmed-foreground-color: ${light.subtle}; } ''; };
-
-
-
@@ -25,13 +25,13 @@let waybar-text = pkgs.callPackage ../../../programs/waybar-text { }; light = config.palette.catppuccin.light-palette; dark = config.palette.catppuccin.dark-palette; light = config.palette.rose-pine.variants.${config.palette.rose-pine.light-variant}; dark = config.palette.rose-pine.variants.${config.palette.rose-pine.dark-variant}; cfg = config.wayland-desktop.waybar; in { imports = [ ../palette/catppuccin.nix ]; imports = [ ../palette/rose-pine.nix ]; options.wayland-desktop.waybar.soundSystem = lib.mkOption { type = lib.types.enum [
-
@@ -121,16 +121,16 @@ in${baseStyle} window#waybar { background-color: ${light.base.hex}; color: ${light.text.hex}; background-color: ${light.surface}; color: ${light.text}; } #tray { background-color: ${light.sapphire.hex}; background-color: ${light.overlay}; } #pulseaudio:hover { background-color: ${light.surface0.hex}; background-color: ${light.highlightLow}; } '';
-
@@ -138,8 +138,8 @@ in${baseStyle} window#waybar { background-color: ${dark.base.hex}; color: ${dark.text.hex}; background-color: ${dark.base}; color: ${dark.text}; } #tray {
-
@@ -147,7 +147,7 @@ in} #pulseaudio:hover { background-color: ${dark.surface0.hex}; background-color: ${dark.highlightLow}; } ''; };
-
-
-
@@ -16,20 +16,19 @@# Desktop environment on Wayland. This module assumes user imports # "modules/hm/wayland-desktop". { pkgs, ... }: { lib, pkgs, ... }: { config = { security.pam.services.swaylock = { }; programs.niri.enable = true; services.displayManager = { defaultSession = "niri"; sddm = { enable = true; wayland.enable = true; theme = "${pkgs.catppuccin-sddm}/share/sddm/themes/catppuccin-mocha-mauve"; services.greetd = { enable = true; settings = { default_session = { command = "${lib.getExe pkgs.cage} -d -- ${lib.getExe pkgs.gtkgreet} --command niri-session"; }; }; }; };
-