From fb18ff74559d47d554b3353bf12f6c2347bbaa46 Mon Sep 17 00:00:00 2001 From: Sean Kovacs Date: Wed, 21 Jan 2026 14:04:21 -0500 Subject: [PATCH] switch to base16 project-wide --- flake.lock | 159 +++++----- flake.nix | 56 ++-- home/apps/default.nix | 2 +- home/apps/discord.nix | 29 +- home/apps/librewolf.nix | 73 +++-- home/apps/mpv.nix | 36 ++- home/apps/vencord.nix | 2 +- home/default.nix | 278 ++++-------------- home/hosts/alien/default.nix | 8 +- home/hosts/peach/default.nix | 8 +- home/hosts/vm-generic/default.nix | 6 +- home/services/default.nix | 10 +- home/services/gtk.nix | 132 ++++----- home/services/qt.nix | 112 +++---- home/terminal/btop.nix | 98 +++++- home/terminal/fish.nix | 14 - home/terminal/fish_functions/fish-prompt.fish | 16 +- home/terminal/kitty.nix | 81 +++-- home/terminal/neovim.nix | 227 ++++++++------ home/tiling/niri.nix | 20 +- home/tiling/noctalia.nix | 52 ++-- options.nix | 152 ++++++++++ packages/catppuccin-discord/default.nix | 56 ---- packages/overlay.nix | 4 - system/default.nix | 11 +- system/hosts/alien/default.nix | 5 - system/hosts/peach/default.nix | 5 - system/hosts/vm-generic/default.nix | 5 - 28 files changed, 847 insertions(+), 810 deletions(-) create mode 100644 options.nix delete mode 100644 packages/catppuccin-discord/default.nix diff --git a/flake.lock b/flake.lock index 4da3f6d..9b37ad7 100644 --- a/flake.lock +++ b/flake.lock @@ -21,6 +21,40 @@ "type": "github" } }, + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1755819240, + "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-discord": { + "flake": false, + "locked": { + "lastModified": 1768273180, + "narHash": "sha256-uw7lz53YHxvPEyXZiS+NJFhKMb6AMUvVpCLH81NjM7U=", + "owner": "imbypass", + "repo": "base16-discord", + "rev": "d4df17db31276d94cc1a8988f34e813aae1f3fb4", + "type": "github" + }, + "original": { + "owner": "imbypass", + "repo": "base16-discord", + "type": "github" + } + }, "cachyos-kernel": { "flake": false, "locked": { @@ -53,89 +87,6 @@ "type": "github" } }, - "catppuccin": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1768575137, - "narHash": "sha256-e0SsKnkSnq+UwZNS9ZyPJjTjabzq9TRc1hqeDnvOF1Q=", - "owner": "catppuccin", - "repo": "nix", - "rev": "48e67b4ad22072f1ae30b0ed8e1cb020cf06c611", - "type": "github" - }, - "original": { - "owner": "catppuccin", - "repo": "nix", - "type": "github" - } - }, - "catppuccin-btop": { - "flake": false, - "locked": { - "lastModified": 1727050041, - "narHash": "sha256-mEGZwScVPWGu+Vbtddc/sJ+mNdD2kKienGZVUcTSl+c=", - "owner": "catppuccin", - "repo": "btop", - "rev": "f437574b600f1c6d932627050b15ff5153b58fa3", - "type": "github" - }, - "original": { - "owner": "catppuccin", - "repo": "btop", - "type": "github" - } - }, - "catppuccin-discord": { - "flake": false, - "locked": { - "lastModified": 1768037813, - "narHash": "sha256-ExRNnxvG2PSGmpuaPxzCKL6GK6ETs7Gq4Roa74HXp+s=", - "owner": "catppuccin", - "repo": "discord", - "rev": "0fcfe2e15ed91f8c5f1f3c6855f3b2024f78d86c", - "type": "github" - }, - "original": { - "owner": "catppuccin", - "repo": "discord", - "type": "github" - } - }, - "catppuccin-mpv": { - "flake": false, - "locked": { - "lastModified": 1754544320, - "narHash": "sha256-oUheJNWk2R6gNEmkK8H6PWX0iofx2KMGDoFWtnr420A=", - "owner": "catppuccin", - "repo": "mpv", - "rev": "08e90daf511eee2c10c98f0031b51bb9de240d60", - "type": "github" - }, - "original": { - "owner": "catppuccin", - "repo": "mpv", - "type": "github" - } - }, - "catppuccin-palette": { - "locked": { - "lastModified": 1760672867, - "narHash": "sha256-hbBM+5fS39YrDXdQKBLP33D0cu54FQ5hk/7XESTTRXY=", - "owner": "abhinandh-s", - "repo": "catppuccin-nix", - "rev": "b482f6e3ee1ae61c83e52f50653e54bf72900b13", - "type": "github" - }, - "original": { - "owner": "abhinandh-s", - "repo": "catppuccin-nix", - "type": "github" - } - }, "flake-compat": { "locked": { "lastModified": 1761640442, @@ -245,6 +196,22 @@ "type": "github" } }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -583,11 +550,8 @@ "root": { "inputs": { "apple-silicon": "apple-silicon", - "catppuccin": "catppuccin", - "catppuccin-btop": "catppuccin-btop", - "catppuccin-discord": "catppuccin-discord", - "catppuccin-mpv": "catppuccin-mpv", - "catppuccin-palette": "catppuccin-palette", + "base16": "base16", + "base16-discord": "base16-discord", "home-manager": "home-manager", "niri": "niri", "nix-cachyos-kernel": "nix-cachyos-kernel", @@ -598,7 +562,8 @@ "nur": "nur", "openmw": "openmw", "plasma-manager": "plasma-manager", - "spicetify-nix": "spicetify-nix" + "spicetify-nix": "spicetify-nix", + "tt-schemes": "tt-schemes" } }, "spicetify-nix": { @@ -667,6 +632,22 @@ "type": "github" } }, + "tt-schemes": { + "flake": false, + "locked": { + "lastModified": 1768516483, + "narHash": "sha256-AWTIYZ1tZab0YwAQwgt5yO4ucqZoc4iXX002Byy7pRY=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "43dd14f6466a782bd57419fdfb5f398c74d6ac53", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, "xwayland-satellite-stable": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 0ae60ec..545461c 100644 --- a/flake.nix +++ b/flake.nix @@ -7,13 +7,18 @@ nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel"; - catppuccin = { - url = "github:catppuccin/nix"; - inputs.nixpkgs.follows = "nixpkgs"; + base16 = { + url = "github:SenchoPens/base16.nix"; }; - catppuccin-palette = { - url = "github:abhinandh-s/catppuccin-nix"; + tt-schemes = { + url = "github:tinted-theming/schemes"; + flake = false; + }; + + base16-discord = { + url = "github:imbypass/base16-discord"; + flake = false; }; home-manager = { @@ -61,21 +66,6 @@ url = "gitlab:OpenMW/openmw"; flake = false; }; - - catppuccin-discord = { - url = "github:catppuccin/discord"; - flake = false; - }; - - catppuccin-btop = { - url = "github:catppuccin/btop"; - flake = false; - }; - - catppuccin-mpv = { - url = "github:catppuccin/mpv"; - flake = false; - }; }; outputs = @@ -83,8 +73,9 @@ nixpkgs, nixpkgs-unstable, nix-cachyos-kernel, - catppuccin, - catppuccin-palette, + base16, + tt-schemes, + base16-discord, home-manager, plasma-manager, niri, @@ -94,9 +85,6 @@ nixvim, apple-silicon, openmw, - catppuccin-discord, - catppuccin-btop, - catppuccin-mpv, ... }: let @@ -123,7 +111,7 @@ nixpkgs.lib.nixosSystem { inherit system; specialArgs = { - inherit catppuccin system; + inherit system; pkgs-unstable = import nixpkgs-unstable { inherit system; config = pkgConfig; @@ -135,15 +123,12 @@ nixpkgs = { config = pkgConfig; overlays = [ - catppuccin-palette.overlays.default niri.overlays.niri noctalia.overlays.default nur.overlays.default (final: prev: { openmw-git = openmw; - catppuccin-discord-git = catppuccin-discord; - catppuccin-btop-git = catppuccin-btop; - catppuccin-mpv-git = catppuccin-mpv; + base16-discord-git = base16-discord; }) (import ./packages/overlay.nix) ]; @@ -207,7 +192,6 @@ ./system/tailscale ./system/hosts/${hostname} ./hardware/${hostname} - catppuccin.nixosModules.catppuccin niri.nixosModules.niri home-manager.nixosModules.home-manager noctalia.nixosModules.default @@ -218,6 +202,7 @@ users.sckova = { imports = [ ./home + ./options.nix ./home/apps ./home/games ./home/hosts/${hostname} @@ -228,7 +213,13 @@ ]; }; sharedModules = [ - catppuccin.homeModules.catppuccin + base16.nixosModule + ( + { config, ... }: + { + scheme = "${tt-schemes}/base24/${config.colors.scheme}.yaml"; + } + ) plasma-manager.homeModules.plasma-manager noctalia.homeModules.default spicetify-nix.homeManagerModules.default @@ -267,7 +258,6 @@ modules = [ ./home ./home/hosts/${hostname}.nix - catppuccin.homeModules.catppuccin home-manager.homeModules.home-manager plasma-manager.homeModules.plasma-manager niri.homeModules.default diff --git a/home/apps/default.nix b/home/apps/default.nix index 863e312..280bc95 100644 --- a/home/apps/default.nix +++ b/home/apps/default.nix @@ -3,6 +3,6 @@ ./discord.nix ./librewolf.nix ./mpv.nix - ./vscode.nix + # ./vscode.nix ]; } diff --git a/home/apps/discord.nix b/home/apps/discord.nix index a42a41e..f8e3fde 100644 --- a/home/apps/discord.nix +++ b/home/apps/discord.nix @@ -4,19 +4,17 @@ ... }: let - catppuccin-discord = "${pkgs.catppuccin-discord}/share/catppuccin-discord/catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}.theme.css"; - mergedThemes = pkgs.runCommand "mergedConfig" { } '' mkdir -p $out - cp ${catppuccin-discord} $out/catppuccin.css + cp ${pkgs.base16-discord-git}/base16.css $out/theme.css ''; vesktopSettings = { discordBranch = "stable"; minimizeToTray = true; arRPC = true; - splashColor = "${pkgs.catppuccin.rgb.${config.catppuccin.flavor}.text}"; - splashBackground = "${pkgs.catppuccin.rgb.${config.catppuccin.flavor}.base}"; + splashColor = config.scheme.withHashtag.base05; + splashBackground = config.scheme.withHashtag.base00; spellCheckLanguages = [ "en-US" "en" @@ -47,12 +45,31 @@ in force = true; }; - home.file.".config/vesktop/settings/quickCss.css" = { + home.file.".config/vesktop/settings/quickCss.css" = with config.scheme.withHashtag; { text = '' * { font-family: "${config.userOptions.fontSans.name}" !important; font-size: ${toString config.userOptions.fontSans.size}px; } + + :root { + --base00: ${base00}; + --base01: ${base01}; + --base02: ${base02}; + --base03: ${base03}; + --base04: ${base04}; + --base05: ${base05}; + --base06: ${base06}; + --base07: ${base07}; + --base08: ${base08}; + --base09: ${base09}; + --base0A: ${base0A}; + --base0B: ${base0B}; + --base0C: ${base0C}; + --base0D: ${base0D}; + --base0E: ${base0E}; + --base0F: ${base0F}; + } ''; force = true; }; diff --git a/home/apps/librewolf.nix b/home/apps/librewolf.nix index 1e7ede3..19b8f89 100644 --- a/home/apps/librewolf.nix +++ b/home/apps/librewolf.nix @@ -12,45 +12,40 @@ recursive = true; }; - home.file.".librewolf/default/chrome/colors.css" = - let - color = pkgs.catppuccin.rgb.${config.catppuccin.flavor}; - accent = color.${config.catppuccin.accent}; - in - { - text = '' - * { - --accent: ${accent}; - --rosewater: ${color.rosewater}; - --flamingo: ${color.flamingo}; - --pink: ${color.pink}; - --mauve: ${color.mauve}; - --red: ${color.red}; - --maroon: ${color.maroon}; - --peach: ${color.peach}; - --yellow: ${color.yellow}; - --green: ${color.green}; - --teal: ${color.teal}; - --sky: ${color.sky}; - --sapphire: ${color.sapphire}; - --blue: ${color.blue}; - --lavender: ${color.lavender}; - --text: ${color.text}; - --subtext1: ${color.subtext1}; - --subtext0: ${color.subtext0}; - --overlay2: ${color.overlay2}; - --overlay1: ${color.overlay1}; - --overlay0: ${color.overlay0}; - --surface2: ${color.surface2}; - --surface1: ${color.surface1}; - --surface0: ${color.surface0}; - --base: ${color.base}; - --mantle: ${color.mantle}; - --crust: ${color.crust}; - } - ''; - force = true; - }; + home.file.".librewolf/default/chrome/colors.css" = with config.scheme.withHashtag; { + text = '' + * { + --accent: ${base09}; + --rosewater: ${base06}; + --flamingo: ${base0F}; + --pink: ${base17}; + --mauve: ${base0E}; + --red: ${base08}; + --maroon: ${base12}; + --peach: ${base09}; + --yellow: ${base0A}; + --green: ${base0B}; + --teal: ${base0C}; + --sky: ${base15}; + --sapphire: ${base16}; + --blue: ${base0D}; + --lavender: ${base07}; + --text: ${base05}; + --subtext1: ${base04}; + --subtext0: ${base04}; + --overlay2: ${base03}; + --overlay1: ${base03}; + --overlay0: ${base03}; + --surface2: ${base02}; + --surface1: ${base01}; + --surface0: ${base01}; + --base: ${base00}; + --mantle: ${base10}; + --crust: ${base11}; + } + ''; + force = true; + }; home.file.".local/share/firefoxpwa/profiles/01KEYXH9TC4B54J5CTPNE75JP0/prefs.js" = { text = '' diff --git a/home/apps/mpv.nix b/home/apps/mpv.nix index 960d73b..af437ef 100644 --- a/home/apps/mpv.nix +++ b/home/apps/mpv.nix @@ -3,14 +3,6 @@ pkgs, ... }: -let - mergedConfig = pkgs.runCommand "mergedConfig" { } '' - mkdir -p $out - ${pkgs.gnused}/bin/sed 's/${pkgs.catppuccin.${config.catppuccin.flavor}.base}/#000000/g' \ - ${pkgs.catppuccin-mpv-git}/themes/${config.catppuccin.flavor}/${config.catppuccin.accent}.conf \ - > $out/mpv.conf - ''; -in { home.packages = with pkgs; [ (mpv.override { @@ -21,9 +13,31 @@ in ]; }) ]; - home.file.".config/mpv" = { - source = mergedConfig; - recursive = true; + home.file.".config/mpv/mpv.conf" = { + text = with config.scheme; '' + # Credit to https://github.com/catppuccin/mpv + # Main mpv options + background-color='#000000' + osd-back-color='${config.scheme.withHashtag.base11}' + osd-border-color='${config.scheme.withHashtag.base11}' + osd-color='${config.scheme.withHashtag.base05}' + osd-shadow-color='${config.scheme.withHashtag.base00}' + + # Stats script options + # Options are on separate lines for clarity + # Colors are in #BBGGRR format + script-opts-append=stats-border_color=${base08} + script-opts-append=stats-font_color=${base06} + script-opts-append=stats-plot_bg_border_color=${base16} + script-opts-append=stats-plot_bg_color=${base08} + script-opts-append=stats-plot_color=${base16} + + # External script options + # It is fine to leave these here even if one does not use these scripts because they are just ignored unless a script uses them + + # UOSC options + script-opts-append=uosc-color=foreground=${base09},foreground_text=${base01},background=${base00},background_text=${base05},curtain=${base10},success=${base0B},error=${base08} + ''; force = true; }; } diff --git a/home/apps/vencord.nix b/home/apps/vencord.nix index 9442180..d34c001 100644 --- a/home/apps/vencord.nix +++ b/home/apps/vencord.nix @@ -4,7 +4,7 @@ useQuickCss = true; themeLinks = [ ]; eagerPatches = false; - enabledThemes = [ "catppuccin.css" ]; + enabledThemes = [ "theme.css" ]; enableReactDevtools = false; frameless = false; transparent = true; diff --git a/home/default.nix b/home/default.nix index 394c519..5c0e851 100755 --- a/home/default.nix +++ b/home/default.nix @@ -2,210 +2,68 @@ config, pkgs, pkgs-unstable, - lib, ... }: { - options = { - catppuccinUpper = { - accent = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = - builtins.substring 0 1 (lib.toUpper config.catppuccin.accent) - + builtins.substring 1 (-1) config.catppuccin.accent; - }; - flavor = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = - builtins.substring 0 1 (lib.toUpper config.catppuccin.flavor) - + builtins.substring 1 (-1) config.catppuccin.flavor; - }; - }; - userOptions = { - name = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = "Sean Kovacs"; - }; - username = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = "sckova"; - }; - hostname = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = config.system.name; - }; - fontSans = { - name = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = "Noto Sans"; - }; - size = lib.mkOption { - type = lib.types.int; - readOnly = true; - default = 11; - }; - package = lib.mkOption { - type = lib.types.package; - readOnly = true; - default = pkgs.noto-fonts; - }; - }; - fontSerif = { - name = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = "Noto Serif"; - }; - size = lib.mkOption { - type = lib.types.int; - readOnly = true; - default = 11; - }; - package = lib.mkOption { - type = lib.types.package; - readOnly = true; - default = pkgs.noto-fonts; - }; - }; - fontMono = { - name = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = "NotoSansM Nerd Font Mono"; - }; - size = lib.mkOption { - type = lib.types.int; - readOnly = true; - default = 10; - }; - package = lib.mkOption { - type = lib.types.package; - readOnly = true; - default = pkgs.nerd-fonts.noto; - }; - }; - fontEmoji = { - name = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = "Noto Emoji"; - }; - size = lib.mkOption { - type = lib.types.int; - readOnly = true; - default = 10; - }; - package = lib.mkOption { - type = lib.types.package; - readOnly = true; - default = pkgs.noto-fonts-color-emoji; - }; - }; - cursor = - let - attrName = config.catppuccin.flavor + config.catppuccinUpper.accent; - in - { - name = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = "catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}-cursors"; - }; - package = lib.mkOption { - type = lib.types.package; - readOnly = true; - default = pkgs.catppuccin-cursors.${attrName}; - }; - size = lib.mkOption { - type = lib.types.int; - readOnly = true; - default = 24; - }; - path = lib.mkOption { - type = lib.types.str; - readOnly = true; - default = "${pkgs.catppuccin-cursors.${attrName}}/share/icons"; - }; - }; - isDark = lib.mkOption { - type = lib.types.bool; - readOnly = true; - default = config.catppuccin.flavor != "latte"; - }; - }; - }; config = { - home.packages = - (with pkgs; [ - # cli utilities - tmux - fastfetch - btop - wget - ripgrep - ncdu - fzf - wl-clipboard - rclone - waypipe - spotdl - browsh - mosh - gh + home.packages = with pkgs; [ + # cli utilities + tmux + fastfetch + btop + wget + ripgrep + ncdu + fzf + wl-clipboard + rclone + waypipe + spotdl + browsh + mosh + gh - # development & tooling - jdk21_headless - quickemu - nerd-fonts.noto - noto-fonts - noto-fonts-color-emoji - nix-prefetch - prowlarr - radarr - sonarr - flaresolverr + # development & tooling + jdk21_headless + quickemu + nerd-fonts.noto + noto-fonts + noto-fonts-color-emoji + nix-prefetch + prowlarr + radarr + sonarr + flaresolverr - # kde and kde theming - kde-rounded-corners - kdePackages.partitionmanager + # kde and kde theming + kde-rounded-corners + kdePackages.partitionmanager + pkgs.catppuccin-cursors.mochaPeach - # gui applications - input-leap - libreoffice-qt-fresh - # nur.repos.forkprince.helium-nightly - qbittorrent - nautilus - fractal - tuba + # gui applications + input-leap + libreoffice-qt-fresh + # nur.repos.forkprince.helium-nightly + qbittorrent + nautilus + fractal + tuba - # gui applications ( multimedia ) - audacity - strawberry - musescore - gimp - calibre - riff - dissent + # gui applications ( multimedia ) + audacity + strawberry + musescore + gimp + calibre + riff + dissent - # overrides - # (chromium.override { - # enableWideVine = true; - # }) - (catppuccin-kde.override { - flavour = [ config.catppuccin.flavor ]; - accents = [ config.catppuccin.accent ]; - }) - ]) - ++ [ - pkgs.catppuccin-cursors."${config.catppuccin.flavor}${config.catppuccinUpper.accent}" - ]; + # overrides + # (chromium.override { + # enableWideVine = true; + # }) + ]; services = { spotifyd = { @@ -226,26 +84,20 @@ }; }; - catppuccin = { - enable = false; - cursors.enable = false; - cache.enable = true; - }; + # programs.plasma = { + # workspace = { + # colorScheme = "Catppuccin${config.catppuccinUpper.flavor}${config.catppuccinUpper.accent}"; + # cursor.theme = "catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}-cursors"; + # splashScreen.theme = "Catpppuccin-${config.catppuccinUpper.flavor}-${config.catppuccinUpper.accent}"; + # }; - programs.plasma = { - workspace = { - colorScheme = "Catppuccin${config.catppuccinUpper.flavor}${config.catppuccinUpper.accent}"; - cursor.theme = "catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}-cursors"; - splashScreen.theme = "Catpppuccin-${config.catppuccinUpper.flavor}-${config.catppuccinUpper.accent}"; - }; - - configFile = { - kdeglobals.KDE = { - DefaultDarkLookAndFeel = "Catpppuccin-${config.catppuccinUpper.flavor}-${config.catppuccinUpper.accent}"; - DefaultLightLookAndFeel = "Catpppuccin-Latte-${config.catppuccinUpper.accent}"; - }; - }; - }; + # configFile = { + # kdeglobals.KDE = { + # DefaultDarkLookAndFeel = "Catpppuccin-${config.catppuccinUpper.flavor}-${config.catppuccinUpper.accent}"; + # DefaultLightLookAndFeel = "Catpppuccin-Latte-${config.catppuccinUpper.accent}"; + # }; + # }; + # }; # This value determines the Home Manager release that your # configuration is compatible with. This helps avoid breakage diff --git a/home/hosts/alien/default.nix b/home/hosts/alien/default.nix index ba9f7c9..991ea4e 100644 --- a/home/hosts/alien/default.nix +++ b/home/hosts/alien/default.nix @@ -6,9 +6,9 @@ ... }: { - catppuccin = { - accent = "blue"; - flavor = "mocha"; + colors = { + scheme = "catppuccin-mocha"; + accent = "base0D"; }; home.packages = [ @@ -41,7 +41,7 @@ ]; theme = spicePkgs.themes.catppuccin; - colorScheme = config.catppuccin.flavor; + colorScheme = "mocha"; }; programs.plasma = { diff --git a/home/hosts/peach/default.nix b/home/hosts/peach/default.nix index d1298bc..7e1ee13 100644 --- a/home/hosts/peach/default.nix +++ b/home/hosts/peach/default.nix @@ -1,8 +1,8 @@ -{ pkgs, ... }: +{ pkgs, config, ... }: { - catppuccin = { - accent = "peach"; - flavor = "mocha"; + colors = { + scheme = "catppuccin-mocha"; + accent = "base09"; }; home.packages = with pkgs; [ diff --git a/home/hosts/vm-generic/default.nix b/home/hosts/vm-generic/default.nix index ca5ec38..e5488aa 100644 --- a/home/hosts/vm-generic/default.nix +++ b/home/hosts/vm-generic/default.nix @@ -4,9 +4,9 @@ ... }: { - catppuccin = { - accent = "green"; - flavor = "mocha"; + colors = { + scheme = "catppuccin-mocha"; + accent = "base0B"; }; home.packages = with pkgs; [ ]; diff --git a/home/services/default.nix b/home/services/default.nix index 29bd72e..d38c136 100644 --- a/home/services/default.nix +++ b/home/services/default.nix @@ -36,7 +36,7 @@ gtk = { enable = true; - colorScheme = if config.userOptions.isDark then "dark" else "light"; + # colorScheme = if config.userOptions.isDark then "dark" else "light"; # theme = { # package = pkgs.kdePackages.breeze-gtk; @@ -46,8 +46,14 @@ # else "Breeze"; # }; + # iconTheme = { + # name = if config.userOptions.isDark then "Colloid-Dark" else "Colloid-Light"; + # package = pkgs.colloid-icon-theme; + # }; + + colorScheme = "dark"; iconTheme = { - name = if config.userOptions.isDark then "Colloid-Dark" else "Colloid-Light"; + name = "Colloid-Dark"; package = pkgs.colloid-icon-theme; }; diff --git a/home/services/gtk.nix b/home/services/gtk.nix index 7ae6a72..f851508 100644 --- a/home/services/gtk.nix +++ b/home/services/gtk.nix @@ -1,106 +1,98 @@ { config, - pkgs, - lib, ... }: let - colors = pkgs.catppuccin.hex.${config.catppuccin.flavor}; - mkColorSection = name: value: "@define-color ${name} ${value};"; - generateCSS = '' - /* Catppuccin ${lib.toUpper (builtins.substring 0 1 config.catppuccin.flavor)}${ - builtins.substring 1 (-1) config.catppuccin.flavor - } ${lib.toUpper (builtins.substring 0 1 config.catppuccin.accent)}${ - builtins.substring 1 (-1) config.catppuccin.accent - } Palette */ + generateCSS = with config.scheme.withHashtag; '' + /* Kova's Nixified GTK */ /* Base colors */ - ${mkColorSection "window_bg_color" colors.base} - ${mkColorSection "window_fg_color" colors.text} + ${mkColorSection "window_bg_color" base00} + ${mkColorSection "window_fg_color" base05} /* View styling */ - ${mkColorSection "view_bg_color" colors.base} - ${mkColorSection "view_fg_color" colors.text} + ${mkColorSection "view_bg_color" base00} + ${mkColorSection "view_fg_color" base05} /* Header bar */ - ${mkColorSection "headerbar_bg_color" colors.mantle} - ${mkColorSection "headerbar_backdrop_color" colors.mantle} - ${mkColorSection "headerbar_fg_color" colors.text} + ${mkColorSection "headerbar_bg_color" base10} + ${mkColorSection "headerbar_backdrop_color" base10} + ${mkColorSection "headerbar_fg_color" base05} /* Popovers and dialogs */ - ${mkColorSection "popover_bg_color" colors.base} - ${mkColorSection "popover_fg_color" colors.text} + ${mkColorSection "popover_bg_color" base00} + ${mkColorSection "popover_fg_color" base05} @define-color dialog_bg_color @popover_bg_color; @define-color dialog_fg_color @popover_fg_color; /* Cards and sidebars */ - ${mkColorSection "card_bg_color" colors.mantle} - ${mkColorSection "card_fg_color" colors.text} - ${mkColorSection "sidebar_bg_color" colors.mantle} - ${mkColorSection "sidebar_fg_color" colors.text} + ${mkColorSection "card_bg_color" base10} + ${mkColorSection "card_fg_color" base05} + ${mkColorSection "sidebar_bg_color" base10} + ${mkColorSection "sidebar_fg_color" base05} @define-color sidebar_backdrop_color @sidebar_bg_color; - ${mkColorSection "sidebar_border_color" colors.surface0} + ${mkColorSection "sidebar_border_color" base01} @define-color secondary_sidebar_bg_color @sidebar_bg_color; @define-color secondary_sidebar_fg_color @sidebar_fg_color; @define-color secondary_sidebar_backdrop_color @sidebar_backdrop_color; @define-color secondary_sidebar_border_color @sidebar_border_color; /* Catppuccin accent colors */ - ${mkColorSection "blue_1" colors.blue} - ${mkColorSection "blue_2" colors.sapphire} - ${mkColorSection "blue_3" colors.sky} - ${mkColorSection "blue_4" colors.teal} - ${mkColorSection "blue_5" colors.lavender} + ${mkColorSection "blue_1" base0D} + ${mkColorSection "blue_2" base16} + ${mkColorSection "blue_3" base15} + ${mkColorSection "blue_4" base0C} + ${mkColorSection "blue_5" base07} - ${mkColorSection "green_1" colors.green} - ${mkColorSection "green_2" colors.teal} - ${mkColorSection "green_3" colors.sky} - ${mkColorSection "green_4" colors.sapphire} - ${mkColorSection "green_5" colors.blue} + ${mkColorSection "green_1" base0B} + ${mkColorSection "green_2" base0C} + ${mkColorSection "green_3" base15} + ${mkColorSection "green_4" base16} + ${mkColorSection "green_5" base0D} - ${mkColorSection "yellow_1" colors.yellow} - ${mkColorSection "yellow_2" colors.peach} - ${mkColorSection "yellow_3" colors.yellow} - ${mkColorSection "yellow_4" colors.red} - ${mkColorSection "yellow_5" colors.maroon} + ${mkColorSection "yellow_1" base0A} + ${mkColorSection "yellow_2" base09} + ${mkColorSection "yellow_3" base0A} + ${mkColorSection "yellow_4" base08} + ${mkColorSection "yellow_5" base12} - ${mkColorSection "orange_1" colors.peach} - ${mkColorSection "orange_2" colors.red} - ${mkColorSection "orange_3" colors.maroon} - ${mkColorSection "orange_4" colors.yellow} - ${mkColorSection "orange_5" colors.green} + ${mkColorSection "orange_1" base09} + ${mkColorSection "orange_2" base08} + ${mkColorSection "orange_3" base12} + ${mkColorSection "orange_4" base0A} + ${mkColorSection "orange_5" base0B} - ${mkColorSection "red_1" colors.red} - ${mkColorSection "red_2" colors.maroon} - ${mkColorSection "red_3" colors.pink} - ${mkColorSection "red_4" colors.flamingo} - ${mkColorSection "red_5" colors.rosewater} + ${mkColorSection "red_1" base08} + ${mkColorSection "red_2" base12} + ${mkColorSection "red_3" base17} + ${mkColorSection "red_4" base0F} + ${mkColorSection "red_5" base13} - ${mkColorSection "purple_1" colors.mauve} - ${mkColorSection "purple_2" colors.lavender} - ${mkColorSection "purple_3" colors.pink} - ${mkColorSection "purple_4" colors.flamingo} - ${mkColorSection "purple_5" colors.rosewater} + ${mkColorSection "purple_1" base0E} + ${mkColorSection "purple_2" base07} + ${mkColorSection "purple_3" base17} + ${mkColorSection "purple_4" base0F} + ${mkColorSection "purple_5" base13} - ${mkColorSection "brown_1" colors.surface2} - ${mkColorSection "brown_2" colors.overlay0} - ${mkColorSection "brown_3" colors.overlay1} - ${mkColorSection "brown_4" colors.overlay2} - ${mkColorSection "brown_5" colors.subtext1} + ${mkColorSection "brown_1" base02} + ${mkColorSection "brown_2" base03} + ${mkColorSection "brown_3" base03} + ${mkColorSection "brown_4" base03} + ${mkColorSection "brown_5" base04} - ${mkColorSection "light_1" colors.text} - ${mkColorSection "light_2" colors.subtext0} - ${mkColorSection "light_3" colors.subtext1} - ${mkColorSection "light_4" colors.blue} - ${mkColorSection "light_5" colors.overlay0} + ${mkColorSection "light_1" base05} + ${mkColorSection "light_2" base04} + ${mkColorSection "light_3" base04} + ${mkColorSection "light_4" base0D} + ${mkColorSection "light_5" base03} - ${mkColorSection "dark_1" colors.surface0} - ${mkColorSection "dark_2" colors.surface1} - ${mkColorSection "dark_3" colors.surface2} - ${mkColorSection "dark_4" colors.mantle} - ${mkColorSection "dark_5" colors.crust} + ${mkColorSection "dark_1" base01} + ${mkColorSection "dark_2" base02} + ${mkColorSection "dark_3" base02} + ${mkColorSection "dark_4" base10} + ${mkColorSection "dark_5" base11} /* Custom rules */ toast { @@ -118,7 +110,7 @@ let } /* Accent */ - ${mkColorSection "accent_bg_color" colors.${config.catppuccin.accent}} + ${mkColorSection "accent_bg_color" base09} @define-color accent_fg_color @window_bg_color; ''; in diff --git a/home/services/qt.nix b/home/services/qt.nix index ba388a5..0740046 100644 --- a/home/services/qt.nix +++ b/home/services/qt.nix @@ -34,82 +34,82 @@ }; ColorScheme = + with config.scheme; let - c = pkgs.catppuccin.bare.${config.catppuccin.flavor}; - accent = c.${config.catppuccin.accent}; + accent = base09; mkColors = roles: builtins.concatStringsSep ", " (map (r: "#ff${r}") roles); in { active_colors = mkColors [ - c.text - c.surface0 - c.surface1 - c.surface0 - c.base - c.mantle - c.text - c.text - c.text - c.base - c.mantle - c.crust + base05 + base01 + base02 + base01 + base00 + base10 + base05 + base05 + base05 + base00 + base10 + base11 accent - c.base + base00 accent - c.mauve - c.mantle + base0E + base10 "000000" - c.base - c.text - c.overlay0 + base00 + base05 + base03 accent ]; disabled_colors = mkColors [ - c.overlay0 - c.surface0 - c.surface1 - c.surface0 - c.overlay0 - c.mantle - c.overlay0 - c.text - c.overlay0 - c.surface0 - c.surface0 - c.mantle - c.overlay1 - c.text + base03 + base01 + base02 + base01 + base03 + base10 + base03 + base05 + base03 + base01 + base01 + base10 + base03 + base05 "0000ff" "ff00ff" - c.surface0 + base01 "000000" - c.surface0 - c.base + base01 + base00 "80000000" - c.overlay1 + base03 ]; inactive_colors = mkColors [ - c.text - c.surface0 - c.surface1 - c.surface0 - c.base - c.mantle - c.text - c.text - c.text - c.base - c.mantle - c.crust + base05 + base01 + base02 + base01 + base00 + base10 + base05 + base05 + base05 + base00 + base10 + base11 accent - c.base + base00 accent - c.mauve - c.mantle + base0E + base10 "000000" - c.base - c.text - c.overlay0 + base00 + base05 + base03 accent ]; }; diff --git a/home/terminal/btop.nix b/home/terminal/btop.nix index 0f0d406..64d5fe1 100644 --- a/home/terminal/btop.nix +++ b/home/terminal/btop.nix @@ -4,12 +4,102 @@ ... }: let + btop-colors = with config.scheme.withHashtag; '' + # Credit to https://github.com/catppuccin/btop + # Main background, empty for terminal default, need to be empty if you want transparent background + theme[main_bg]="${base00}" + + # Main text color + theme[main_fg]="${base05}" + + # Title color for boxes + theme[title]="${base05}" + + # Highlight color for keyboard shortcuts + theme[hi_fg]="${base0D}" + + # Background color of selected item in processes box + theme[selected_bg]="${base02}" + + # Foreground color of selected item in processes box + theme[selected_fg]="${base0D}" + + # Color of inactive/disabled text + theme[inactive_fg]="${base03}" + + # Color of text appearing on top of graphs, i.e uptime and current network graph scaling + theme[graph_text]="${base06}" + + # Background color of the percentage meters + theme[meter_bg]="${base02}" + + # Misc colors for processes box including mini cpu graphs, details memory graph and details status text + theme[proc_misc]="${base06}" + + # CPU, Memory, Network, Proc box outline colors + theme[cpu_box]="${base0E}" #Mauve + theme[mem_box]="${base0B}" #Green + theme[net_box]="${base12}" #Maroon + theme[proc_box]="${base0D}" #Blue + + # Box divider line and small boxes line color + theme[div_line]="${base03}" + + # Temperature graph color (Green -> Yellow -> Red) + theme[temp_start]="${base0B}" + theme[temp_mid]="${base0A}" + theme[temp_end]="${base08}" + + # CPU graph colors (Teal -> Lavender) + theme[cpu_start]="${base0C}" + theme[cpu_mid]="${base16}" + theme[cpu_end]="${base07}" + + # Mem/Disk free meter (Mauve -> Lavender -> Blue) + theme[free_start]="${base0E}" + theme[free_mid]="${base07}" + theme[free_end]="${base0D}" + + # Mem/Disk cached meter (Sapphire -> Lavender) + theme[cached_start]="${base16}" + theme[cached_mid]="${base0D}" + theme[cached_end]="${base07}" + + # Mem/Disk available meter (Peach -> Red) + theme[available_start]="${base09}" + theme[available_mid]="${base12}" + theme[available_end]="${base08}" + + # Mem/Disk used meter (Green -> Sky) + theme[used_start]="${base0B}" + theme[used_mid]="${base0C}" + theme[used_end]="${base15}" + + # Download graph colors (Peach -> Red) + theme[download_start]="${base09}" + theme[download_mid]="${base12}" + theme[download_end]="${base08}" + + # Upload graph colors (Green -> Sky) + theme[upload_start]="${base0B}" + theme[upload_mid]="${base0C}" + theme[upload_end]="${base15}" + + # Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) + theme[process_start]="${base16}" + theme[process_mid]="${base07}" + theme[process_end]="${base0E}" + ''; + + btop-colors-file = pkgs.writeTextFile { + name = "btop-colors"; + text = btop-colors; + destination = "/nixos.theme"; + }; + mergedConfig = pkgs.runCommand "mergedConfig" { } '' mkdir -p $out/themes - ${pkgs.gnused}/bin/sed 's/blankFlavor/${config.catppuccin.flavor}/g' \ - ${./btop.conf} > $out/btop.conf - cp ${pkgs.catppuccin-btop-git}/themes/catppuccin_latte.theme $out/themes/ - cp ${pkgs.catppuccin-btop-git}/themes/catppuccin_${config.catppuccin.flavor}.theme $out/themes/nixos.theme + cp -r ${btop-colors-file}/nixos.theme $out/themes/nixos.theme ''; in { diff --git a/home/terminal/fish.nix b/home/terminal/fish.nix index 4f32021..0639fa0 100644 --- a/home/terminal/fish.nix +++ b/home/terminal/fish.nix @@ -43,18 +43,4 @@ }; }; programs.man.generateCaches = false; - - home.file.".config/fish/colors.fish" = { - text = - let - flavor = config.catppuccin.flavor; - palette = pkgs.catppuccin.bare.${flavor}; - accent = config.catppuccin.accent; - in - lib.concatStringsSep "\n" ( - (lib.mapAttrsToList (name: value: "set -g color_${name} ${value}") palette) - ++ [ "set -g color_accent ${palette.${accent}}" ] - ); - force = true; - }; } diff --git a/home/terminal/fish_functions/fish-prompt.fish b/home/terminal/fish_functions/fish-prompt.fish index 568a206..e13d31d 100644 --- a/home/terminal/fish_functions/fish-prompt.fish +++ b/home/terminal/fish_functions/fish-prompt.fish @@ -1,24 +1,24 @@ -source ~/.config/fish/colors.fish +# source ~/.config/fish/colors.fish set -l last_status $status set -l nix_shell_info ( if test -n "$IN_NIX_SHELL" echo -n " " end ) -set -g color_user $color_sky -set -g color_host $color_red -set -g color_cwd $color_green +set -g color_user cyan +set -g color_host red +set -g color_cwd green # Set host color based on hostname if test (hostname) = peach - set -g color_host $color_accent + set -g color_host yellow else if test (hostname) = alien - set -g color_host $color_accent + set -g color_host yellow else if test (hostname) = vm - set -g color_host $color_accent + set -g color_host yellow set -g color_cwd normal else if test (uname) = Darwin - set -g color_host $color_yellow + set -g color_host yellow end set -l user_host (set_color $color_user)"$USER"(set_color normal)"@"(set_color $color_host)(prompt_hostname)(set_color normal) diff --git a/home/terminal/kitty.nix b/home/terminal/kitty.nix index 6d7fd44..22c8354 100644 --- a/home/terminal/kitty.nix +++ b/home/terminal/kitty.nix @@ -4,11 +4,8 @@ ... }: let - colors = pkgs.catppuccin.hex.${config.catppuccin.flavor}; - accent = colors.${config.catppuccin.accent}; - # Map Catppuccin colors to Kitty theme structure - kitty-colors = '' + kitty-colors = with config.scheme.withHashtag; '' # vim:ft=kitty ## name: Kova's Nixified Kitty ## author: Catppuccin Org & sckova @@ -17,70 +14,70 @@ let ## blurb: The theme generated from the NixOS configuration! # The basic colors - foreground ${colors.text} - background ${colors.base} - selection_foreground ${colors.base} - selection_background ${colors.rosewater} + foreground ${base05} + background ${base00} + selection_foreground ${base00} + selection_background ${base06} # Cursor colors - cursor ${colors.rosewater} - cursor_text_color ${colors.base} + cursor ${base06} + cursor_text_color ${base00} # URL underline color when hovering with mouse - url_color ${colors.rosewater} + url_color ${base06} # Kitty window border colors - active_border_color ${accent} - inactive_border_color ${colors.overlay0} - bell_border_color ${colors.yellow} + active_border_color ${base09} + inactive_border_color ${base03} + bell_border_color ${base0A} # Tab bar colors - active_tab_foreground ${colors.crust} - active_tab_background ${accent} - inactive_tab_foreground ${colors.text} - inactive_tab_background ${colors.mantle} - tab_bar_background ${colors.crust} + active_tab_foreground ${base11} + active_tab_background ${base09} + inactive_tab_foreground ${base05} + inactive_tab_background ${base10} + tab_bar_background ${base11} # Colors for marks (marked text in the terminal) - mark1_foreground ${colors.base} - mark1_background ${accent} - mark2_foreground ${colors.base} - mark2_background ${colors.blue} - mark3_foreground ${colors.base} - mark3_background ${colors.sky} + mark1_foreground ${base00} + mark1_background ${base09} + mark2_foreground ${base00} + mark2_background ${base0D} + mark3_foreground ${base00} + mark3_background ${base15} # The 16 terminal colors # black - color0 ${colors.surface1} - color8 ${colors.surface2} + color0 ${base02} + color8 ${base02} # red - color1 ${colors.red} - color9 ${colors.red} + color1 ${base08} + color9 ${base08} # green - color2 ${colors.green} - color10 ${colors.green} + color2 ${base0B} + color10 ${base0B} # yellow - color3 ${colors.yellow} - color11 ${colors.yellow} + color3 ${base0A} + color11 ${base0A} # blue - color4 ${colors.blue} - color12 ${colors.blue} + color4 ${base0D} + color12 ${base0D} # magenta - color5 ${colors.pink} - color13 ${colors.pink} + color5 ${base17} + color13 ${base17} # cyan - color6 ${colors.teal} - color14 ${colors.teal} + color6 ${base0C} + color14 ${base0C} # white - color7 ${colors.subtext1} - color15 ${colors.subtext0} + color7 ${base04} + color15 ${base04} ''; kitty-colors-file = pkgs.writeTextFile { @@ -132,7 +129,7 @@ in }; bat = { enable = true; - config.theme = "Catppuccin ${config.catppuccinUpper.flavor}"; + # config.theme = "Catppuccin ${config.catppuccinUpper.flavor}"; }; }; } diff --git a/home/terminal/neovim.nix b/home/terminal/neovim.nix index 901b1d4..aa88118 100644 --- a/home/terminal/neovim.nix +++ b/home/terminal/neovim.nix @@ -36,12 +36,49 @@ expandtab = true; number = true; }; - colorschemes.catppuccin = { + colorschemes.palette = { enable = true; settings = { - flavour = config.catppuccin.flavor; + palettes = { + main = "base16_custom"; + accent = "base16_custom"; + state = "base16_custom"; + }; + + custom_palettes = with config.scheme.withHashtag; { + main.base16_custom = { + color0 = base00; # background + color1 = base01; # lighter background + color2 = base02; # selection background + color3 = base03; # comments + color4 = base04; # dark foreground + color5 = base05; # default foreground + color6 = base06; # light foreground + color7 = base07; # lightest foreground + color8 = base05; # variables/tags + }; + + accent.base16_custom = { + accent0 = base09; # integers/constants + accent1 = base0A; # classes/search + accent2 = base0B; # strings/inherited + accent3 = base0C; # support/regex + accent4 = base0D; # functions/headings + accent5 = base0E; # keywords/bold + accent6 = base0F; # deprecated/embedded + }; + + state.base16_custom = { + error = base08; # red + warning = base0A; # yellow + hint = base0C; # cyan + ok = base0B; # green + info = base0D; # blue + }; + }; }; }; + keymaps = [ # --- Normal mode mappings --- { @@ -186,110 +223,106 @@ nixd.enable = true; }; }; - lualine = - let - palette = pkgs.catppuccin.${config.catppuccin.flavor}; - in - { - enable = true; - settings = { - options = { - theme = { - normal = { - a = { - fg = palette.base; - bg = palette.mauve; - }; - b = { - fg = palette.text; - bg = palette.surface0; - }; - c = { - fg = palette.text; - }; + lualine = with config.scheme.withHashtag; { + enable = true; + settings = { + options = { + theme = { + normal = { + a = { + fg = base00; + bg = base0E; }; - insert = { - a = { - fg = palette.base; - bg = palette.blue; - }; + b = { + fg = base05; + bg = base01; }; - visual = { - a = { - fg = palette.base; - bg = palette.teal; - }; - }; - replace = { - a = { - fg = palette.base; - bg = palette.red; - }; - }; - inactive = { - a = { - fg = palette.text; - bg = palette.base; - }; - b = { - fg = palette.text; - bg = palette.base; - }; - c = { - fg = palette.text; - }; + c = { + fg = base05; }; }; - component_separators = ""; - section_separators = { - left = ""; - right = ""; + insert = { + a = { + fg = base00; + bg = base0D; + }; + }; + visual = { + a = { + fg = base00; + bg = base0C; + }; + }; + replace = { + a = { + fg = base00; + bg = base08; + }; + }; + inactive = { + a = { + fg = base05; + bg = base00; + }; + b = { + fg = base05; + bg = base00; + }; + c = { + fg = base05; + }; }; }; - - sections = { - lualine_a = [ - { - __unkeyed-1 = "mode"; - separator = { - left = " "; - }; - right_padding = 2; - } - ]; - lualine_b = [ - "filename" - "branch" - ]; - lualine_c = [ "%=" ]; - lualine_x = [ ]; - lualine_y = [ - "filetype" - "progress" - ]; - lualine_z = [ - { - __unkeyed-1 = "location"; - separator = { - right = " "; - }; - left_padding = 2; - } - ]; + component_separators = ""; + section_separators = { + left = ""; + right = ""; }; - - inactive_sections = { - lualine_a = [ "filename" ]; - lualine_b = [ ]; - lualine_c = [ ]; - lualine_x = [ ]; - lualine_y = [ ]; - lualine_z = [ "location" ]; - }; - tabline = { }; - extensions = [ ]; }; + + sections = { + lualine_a = [ + { + __unkeyed-1 = "mode"; + separator = { + left = " "; + }; + right_padding = 2; + } + ]; + lualine_b = [ + "filename" + "branch" + ]; + lualine_c = [ "%=" ]; + lualine_x = [ ]; + lualine_y = [ + "filetype" + "progress" + ]; + lualine_z = [ + { + __unkeyed-1 = "location"; + separator = { + right = " "; + }; + left_padding = 2; + } + ]; + }; + + inactive_sections = { + lualine_a = [ "filename" ]; + lualine_b = [ ]; + lualine_c = [ ]; + lualine_x = [ ]; + lualine_y = [ ]; + lualine_z = [ "location" ]; + }; + tabline = { }; + extensions = [ ]; }; + }; }; }; } diff --git a/home/tiling/niri.nix b/home/tiling/niri.nix index f2870f9..2e8080f 100644 --- a/home/tiling/niri.nix +++ b/home/tiling/niri.nix @@ -5,7 +5,7 @@ }: { # https://github.com/sodiboo/niri-flake/blob/main/docs.md - programs.niri = { + programs.niri = with config.scheme.withHashtag; { # handle package systemwide package = null; @@ -16,7 +16,7 @@ gestures.hot-corners.enable = false; spawn-at-startup = [ ]; # systemd is based sorry overview = { - backdrop-color = pkgs.catppuccin.${config.catppuccin.flavor}.crust; + backdrop-color = base11; workspace-shadow.enable = false; }; input = { @@ -90,7 +90,7 @@ }; layout = { gaps = 4; - # background-color = pkgs.catppuccin.${config.catppuccin.flavor}.mantle; + # background-color = base10; background-color = "transparent"; default-column-width = { proportion = 0.5; @@ -103,16 +103,16 @@ border = { enable = true; width = 2; - active.color = pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent}; - inactive.color = pkgs.catppuccin.${config.catppuccin.flavor}.surface0; - urgent.color = pkgs.catppuccin.${config.catppuccin.flavor}.maroon; + active.color = base09; + inactive.color = base01; + urgent.color = base12; }; focus-ring = { enable = false; width = 2; - active.color = pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent}; - inactive.color = pkgs.catppuccin.${config.catppuccin.flavor}.surface0; - urgent.color = pkgs.catppuccin.${config.catppuccin.flavor}.maroon; + active.color = base09; + inactive.color = base01; + urgent.color = base12; }; shadow = { enable = true; @@ -120,7 +120,7 @@ offset.x = 0; offset.y = 5; softness = 30; - color = pkgs.catppuccin.${config.catppuccin.flavor}.base + "77"; + color = base00 + "77"; }; }; window-rules = [ diff --git a/home/tiling/noctalia.nix b/home/tiling/noctalia.nix index bcf9167..05f6f15 100644 --- a/home/tiling/noctalia.nix +++ b/home/tiling/noctalia.nix @@ -6,23 +6,39 @@ { programs.noctalia-shell = { enable = true; - colors = { - mPrimary = pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent}; - mOnPrimary = pkgs.catppuccin.${config.catppuccin.flavor}.crust; - mSecondary = pkgs.catppuccin.${config.catppuccin.flavor}.subtext0; - mOnSecondary = pkgs.catppuccin.${config.catppuccin.flavor}.crust; - mTertiary = pkgs.catppuccin.${config.catppuccin.flavor}.teal; - mOnTertiary = pkgs.catppuccin.${config.catppuccin.flavor}.crust; - mError = pkgs.catppuccin.${config.catppuccin.flavor}.red; - mOnError = pkgs.catppuccin.${config.catppuccin.flavor}.crust; - mSurface = pkgs.catppuccin.${config.catppuccin.flavor}.mantle; - mOnSurface = pkgs.catppuccin.${config.catppuccin.flavor}.text; - mSurfaceVariant = pkgs.catppuccin.${config.catppuccin.flavor}.surface0; - mOnSurfaceVariant = pkgs.catppuccin.${config.catppuccin.flavor}.lavender; - mOutline = pkgs.catppuccin.${config.catppuccin.flavor}.surface2; - mShadow = pkgs.catppuccin.${config.catppuccin.flavor}.crust; - mHover = pkgs.catppuccin.${config.catppuccin.flavor}.subtext1; - mOnHover = pkgs.catppuccin.${config.catppuccin.flavor}.crust; + colors = with config.scheme.withHashtag; { + # mPrimary = base09; + # mOnPrimary = base11; + # mSecondary = base04; + # mOnSecondary = base09; + # mTertiary = base0C; + # mOnTertiary = base11; + # mError = base08; + # mOnError = base11; + # mSurface = base10; + # mOnSurface = base05; + # mSurfaceVariant = base04; + # mOnSurfaceVariant = base07; + # mOutline = base02; + # mShadow = base11; + # mHover = base04; + # mOnHover = base11; + mPrimary = base09; + mOnPrimary = base00; + mSecondary = base13; + mOnSecondary = base00; + mTertiary = base04; + mOnTertiary = base00; + mError = base12; + mOnError = base00; + mSurface = base00; + mOnSurface = base06; + mSurfaceVariant = base01; + mOnSurfaceVariant = base05; + mOutline = base02; + mShadow = base00; + mHover = base04; + mOnHover = base00; }; settings = { settingsVersion = 0; @@ -203,7 +219,7 @@ enableMultiMonitorDirectories = false; recursiveSearch = false; setWallpaperOnAllMonitors = true; - fillColor = "${pkgs.catppuccin.${config.catppuccin.flavor}.base}"; + fillColor = config.scheme.withHashtag.base00; fillMode = "crop"; hideWallpaperFilenames = true; panelPosition = "follow_bar"; diff --git a/options.nix b/options.nix new file mode 100644 index 0000000..bad751d --- /dev/null +++ b/options.nix @@ -0,0 +1,152 @@ +{ + lib, + config, + pkgs, + ... +}: +{ + options = { + colors = { + scheme = lib.mkOption { + type = lib.types.str; + default = "catppuccin-mocha"; + }; + accent = lib.mkOption { + type = lib.types.str; + default = "base09"; + }; + }; + # catppuccinUpper = { + # accent = lib.mkOption { + # type = lib.types.str; + # readOnly = true; + # default = + # builtins.substring 0 1 (lib.toUpper config.catppuccin.accent) + # + builtins.substring 1 (-1) config.catppuccin.accent; + # }; + # flavor = lib.mkOption { + # type = lib.types.str; + # readOnly = true; + # default = + # builtins.substring 0 1 (lib.toUpper config.catppuccin.flavor) + # + builtins.substring 1 (-1) config.catppuccin.flavor; + # }; + # }; + userOptions = { + name = lib.mkOption { + type = lib.types.str; + readOnly = true; + default = "Sean Kovacs"; + }; + username = lib.mkOption { + type = lib.types.str; + readOnly = true; + default = "sckova"; + }; + hostname = lib.mkOption { + type = lib.types.str; + readOnly = true; + default = config.system.name; + }; + fontSans = { + name = lib.mkOption { + type = lib.types.str; + readOnly = true; + default = "Noto Sans"; + }; + size = lib.mkOption { + type = lib.types.int; + readOnly = true; + default = 11; + }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = pkgs.noto-fonts; + }; + }; + fontSerif = { + name = lib.mkOption { + type = lib.types.str; + readOnly = true; + default = "Noto Serif"; + }; + size = lib.mkOption { + type = lib.types.int; + readOnly = true; + default = 11; + }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = pkgs.noto-fonts; + }; + }; + fontMono = { + name = lib.mkOption { + type = lib.types.str; + readOnly = true; + default = "NotoSansM Nerd Font Mono"; + }; + size = lib.mkOption { + type = lib.types.int; + readOnly = true; + default = 10; + }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = pkgs.nerd-fonts.noto; + }; + }; + fontEmoji = { + name = lib.mkOption { + type = lib.types.str; + readOnly = true; + default = "Noto Emoji"; + }; + size = lib.mkOption { + type = lib.types.int; + readOnly = true; + default = 10; + }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = pkgs.noto-fonts-color-emoji; + }; + }; + cursor = + let + attrName = "mocha" + "Peach"; + in + { + name = lib.mkOption { + type = lib.types.str; + readOnly = true; + default = "catppuccin-mocha-peach-cursors"; + }; + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = pkgs.catppuccin-cursors.${attrName}; + }; + size = lib.mkOption { + type = lib.types.int; + readOnly = true; + default = 24; + }; + path = lib.mkOption { + type = lib.types.str; + readOnly = true; + default = "${pkgs.catppuccin-cursors.${attrName}}/share/icons"; + }; + }; + # isDark = lib.mkOption { + # type = lib.types.bool; + # readOnly = true; + # default = config.catppuccin.flavor != "latte"; + # }; + }; + }; +} diff --git a/packages/catppuccin-discord/default.nix b/packages/catppuccin-discord/default.nix deleted file mode 100644 index ec4105e..0000000 --- a/packages/catppuccin-discord/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ - lib, - stdenv, - fetchYarnDeps, - yarn, - nodejs, - fixup-yarn-lock, - nodePackages, - catppuccin-discord-git, -}: -stdenv.mkDerivation rec { - pname = "catppuccin-discord"; - version = "unstable-${catppuccin-discord-git.rev}"; - - src = catppuccin-discord-git; - - yarnOfflineCache = fetchYarnDeps { - yarnLock = "${src}/yarn.lock"; - hash = "sha256-BhE3aKyA/LBErjWx+lbEVb/CIXhqHkXbV+9U2djIBhs="; - }; - - nativeBuildInputs = [ - yarn - nodejs - fixup-yarn-lock - nodePackages.sass - ]; - - postPatch = '' - substituteInPlace package.json \ - --replace-fail "--no-charset --no-source-map" "" - ''; - - configurePhase = '' - export HOME=$TMPDIR - yarn config --offline set yarn-offline-mirror ${yarnOfflineCache} - fixup-yarn-lock yarn.lock - yarn install --offline --frozen-lockfile --ignore-scripts --ignore-platform - ''; - - buildPhase = '' - yarn --offline release - ''; - - installPhase = '' - mkdir -p $out/share/catppuccin-discord - cp -r dist/dist/* $out/share/catppuccin-discord/ - ''; - - meta = { - description = "Soothing pastel theme for Discord"; - homepage = "https://github.com/catppuccin/discord"; - license = lib.licenses.mit; - platforms = lib.platforms.all; - }; -} diff --git a/packages/overlay.nix b/packages/overlay.nix index c1fad61..6cb0e4b 100644 --- a/packages/overlay.nix +++ b/packages/overlay.nix @@ -1,10 +1,6 @@ final: prev: { spotify-webapp = final.callPackage ./spotify-webapp { }; - catppuccin-discord = final.callPackage ./catppuccin-discord { - inherit (final) catppuccin-discord-git; - }; - openmw = prev.openmw.overrideAttrs (oldAttrs: { pname = "openmw"; src = final.openmw-git; diff --git a/system/default.nix b/system/default.nix index bb96e22..dc4e748 100755 --- a/system/default.nix +++ b/system/default.nix @@ -42,11 +42,6 @@ initrd.verbose = false; }; - catppuccin = { - enable = true; - cache.enable = true; - }; - networking.networkmanager.enable = true; hardware.bluetooth.enable = true; @@ -81,11 +76,7 @@ services = { displayManager = { - sddm = { - enable = true; - wayland.enable = true; - enableHidpi = true; - }; + cosmic-greeter.enable = true; defaultSession = "niri"; }; diff --git a/system/hosts/alien/default.nix b/system/hosts/alien/default.nix index 69579b1..49fa567 100644 --- a/system/hosts/alien/default.nix +++ b/system/hosts/alien/default.nix @@ -22,11 +22,6 @@ ''; hardware.i2c.enable = true; - catppuccin = { - accent = "blue"; - flavor = "mocha"; - }; - boot.loader.systemd-boot.consoleMode = "max"; boot.kernelPackages = pkgs.linuxPackages; diff --git a/system/hosts/peach/default.nix b/system/hosts/peach/default.nix index 2a0112d..70c24ae 100644 --- a/system/hosts/peach/default.nix +++ b/system/hosts/peach/default.nix @@ -6,11 +6,6 @@ { boot.kernelParams = [ "appledrm.show_notch=1" ]; - catppuccin = { - accent = "peach"; - flavor = "mocha"; - }; - environment.systemPackages = with pkgs; [ ddcutil ]; diff --git a/system/hosts/vm-generic/default.nix b/system/hosts/vm-generic/default.nix index 25a4278..b2183eb 100644 --- a/system/hosts/vm-generic/default.nix +++ b/system/hosts/vm-generic/default.nix @@ -1,10 +1,5 @@ { catppuccin, ... }: { - catppuccin = { - accent = "green"; - flavor = "mocha"; - }; - home-manager.users.sckova = { imports = [ catppuccin.homeModules.catppuccin ]; };