switch to base16 project-wide

This commit is contained in:
Sean Kovacs 2026-01-21 14:04:21 -05:00
commit fb18ff7455
Signed by: sckova
GPG key ID: 00F325187C68651A
28 changed files with 847 additions and 810 deletions

159
flake.lock generated
View file

@ -21,6 +21,40 @@
"type": "github" "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": { "cachyos-kernel": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -53,89 +87,6 @@
"type": "github" "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": { "flake-compat": {
"locked": { "locked": {
"lastModified": 1761640442, "lastModified": 1761640442,
@ -245,6 +196,22 @@
"type": "github" "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": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -583,11 +550,8 @@
"root": { "root": {
"inputs": { "inputs": {
"apple-silicon": "apple-silicon", "apple-silicon": "apple-silicon",
"catppuccin": "catppuccin", "base16": "base16",
"catppuccin-btop": "catppuccin-btop", "base16-discord": "base16-discord",
"catppuccin-discord": "catppuccin-discord",
"catppuccin-mpv": "catppuccin-mpv",
"catppuccin-palette": "catppuccin-palette",
"home-manager": "home-manager", "home-manager": "home-manager",
"niri": "niri", "niri": "niri",
"nix-cachyos-kernel": "nix-cachyos-kernel", "nix-cachyos-kernel": "nix-cachyos-kernel",
@ -598,7 +562,8 @@
"nur": "nur", "nur": "nur",
"openmw": "openmw", "openmw": "openmw",
"plasma-manager": "plasma-manager", "plasma-manager": "plasma-manager",
"spicetify-nix": "spicetify-nix" "spicetify-nix": "spicetify-nix",
"tt-schemes": "tt-schemes"
} }
}, },
"spicetify-nix": { "spicetify-nix": {
@ -667,6 +632,22 @@
"type": "github" "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": { "xwayland-satellite-stable": {
"flake": false, "flake": false,
"locked": { "locked": {

View file

@ -7,13 +7,18 @@
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel"; nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel";
catppuccin = { base16 = {
url = "github:catppuccin/nix"; url = "github:SenchoPens/base16.nix";
inputs.nixpkgs.follows = "nixpkgs";
}; };
catppuccin-palette = { tt-schemes = {
url = "github:abhinandh-s/catppuccin-nix"; url = "github:tinted-theming/schemes";
flake = false;
};
base16-discord = {
url = "github:imbypass/base16-discord";
flake = false;
}; };
home-manager = { home-manager = {
@ -61,21 +66,6 @@
url = "gitlab:OpenMW/openmw"; url = "gitlab:OpenMW/openmw";
flake = false; 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 = outputs =
@ -83,8 +73,9 @@
nixpkgs, nixpkgs,
nixpkgs-unstable, nixpkgs-unstable,
nix-cachyos-kernel, nix-cachyos-kernel,
catppuccin, base16,
catppuccin-palette, tt-schemes,
base16-discord,
home-manager, home-manager,
plasma-manager, plasma-manager,
niri, niri,
@ -94,9 +85,6 @@
nixvim, nixvim,
apple-silicon, apple-silicon,
openmw, openmw,
catppuccin-discord,
catppuccin-btop,
catppuccin-mpv,
... ...
}: }:
let let
@ -123,7 +111,7 @@
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { specialArgs = {
inherit catppuccin system; inherit system;
pkgs-unstable = import nixpkgs-unstable { pkgs-unstable = import nixpkgs-unstable {
inherit system; inherit system;
config = pkgConfig; config = pkgConfig;
@ -135,15 +123,12 @@
nixpkgs = { nixpkgs = {
config = pkgConfig; config = pkgConfig;
overlays = [ overlays = [
catppuccin-palette.overlays.default
niri.overlays.niri niri.overlays.niri
noctalia.overlays.default noctalia.overlays.default
nur.overlays.default nur.overlays.default
(final: prev: { (final: prev: {
openmw-git = openmw; openmw-git = openmw;
catppuccin-discord-git = catppuccin-discord; base16-discord-git = base16-discord;
catppuccin-btop-git = catppuccin-btop;
catppuccin-mpv-git = catppuccin-mpv;
}) })
(import ./packages/overlay.nix) (import ./packages/overlay.nix)
]; ];
@ -207,7 +192,6 @@
./system/tailscale ./system/tailscale
./system/hosts/${hostname} ./system/hosts/${hostname}
./hardware/${hostname} ./hardware/${hostname}
catppuccin.nixosModules.catppuccin
niri.nixosModules.niri niri.nixosModules.niri
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
noctalia.nixosModules.default noctalia.nixosModules.default
@ -218,6 +202,7 @@
users.sckova = { users.sckova = {
imports = [ imports = [
./home ./home
./options.nix
./home/apps ./home/apps
./home/games ./home/games
./home/hosts/${hostname} ./home/hosts/${hostname}
@ -228,7 +213,13 @@
]; ];
}; };
sharedModules = [ sharedModules = [
catppuccin.homeModules.catppuccin base16.nixosModule
(
{ config, ... }:
{
scheme = "${tt-schemes}/base24/${config.colors.scheme}.yaml";
}
)
plasma-manager.homeModules.plasma-manager plasma-manager.homeModules.plasma-manager
noctalia.homeModules.default noctalia.homeModules.default
spicetify-nix.homeManagerModules.default spicetify-nix.homeManagerModules.default
@ -267,7 +258,6 @@
modules = [ modules = [
./home ./home
./home/hosts/${hostname}.nix ./home/hosts/${hostname}.nix
catppuccin.homeModules.catppuccin
home-manager.homeModules.home-manager home-manager.homeModules.home-manager
plasma-manager.homeModules.plasma-manager plasma-manager.homeModules.plasma-manager
niri.homeModules.default niri.homeModules.default

View file

@ -3,6 +3,6 @@
./discord.nix ./discord.nix
./librewolf.nix ./librewolf.nix
./mpv.nix ./mpv.nix
./vscode.nix # ./vscode.nix
]; ];
} }

View file

@ -4,19 +4,17 @@
... ...
}: }:
let let
catppuccin-discord = "${pkgs.catppuccin-discord}/share/catppuccin-discord/catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}.theme.css";
mergedThemes = pkgs.runCommand "mergedConfig" { } '' mergedThemes = pkgs.runCommand "mergedConfig" { } ''
mkdir -p $out mkdir -p $out
cp ${catppuccin-discord} $out/catppuccin.css cp ${pkgs.base16-discord-git}/base16.css $out/theme.css
''; '';
vesktopSettings = { vesktopSettings = {
discordBranch = "stable"; discordBranch = "stable";
minimizeToTray = true; minimizeToTray = true;
arRPC = true; arRPC = true;
splashColor = "${pkgs.catppuccin.rgb.${config.catppuccin.flavor}.text}"; splashColor = config.scheme.withHashtag.base05;
splashBackground = "${pkgs.catppuccin.rgb.${config.catppuccin.flavor}.base}"; splashBackground = config.scheme.withHashtag.base00;
spellCheckLanguages = [ spellCheckLanguages = [
"en-US" "en-US"
"en" "en"
@ -47,12 +45,31 @@ in
force = true; force = true;
}; };
home.file.".config/vesktop/settings/quickCss.css" = { home.file.".config/vesktop/settings/quickCss.css" = with config.scheme.withHashtag; {
text = '' text = ''
* { * {
font-family: "${config.userOptions.fontSans.name}" !important; font-family: "${config.userOptions.fontSans.name}" !important;
font-size: ${toString config.userOptions.fontSans.size}px; 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; force = true;
}; };

View file

@ -12,45 +12,40 @@
recursive = true; recursive = true;
}; };
home.file.".librewolf/default/chrome/colors.css" = home.file.".librewolf/default/chrome/colors.css" = with config.scheme.withHashtag; {
let text = ''
color = pkgs.catppuccin.rgb.${config.catppuccin.flavor}; * {
accent = color.${config.catppuccin.accent}; --accent: ${base09};
in --rosewater: ${base06};
{ --flamingo: ${base0F};
text = '' --pink: ${base17};
* { --mauve: ${base0E};
--accent: ${accent}; --red: ${base08};
--rosewater: ${color.rosewater}; --maroon: ${base12};
--flamingo: ${color.flamingo}; --peach: ${base09};
--pink: ${color.pink}; --yellow: ${base0A};
--mauve: ${color.mauve}; --green: ${base0B};
--red: ${color.red}; --teal: ${base0C};
--maroon: ${color.maroon}; --sky: ${base15};
--peach: ${color.peach}; --sapphire: ${base16};
--yellow: ${color.yellow}; --blue: ${base0D};
--green: ${color.green}; --lavender: ${base07};
--teal: ${color.teal}; --text: ${base05};
--sky: ${color.sky}; --subtext1: ${base04};
--sapphire: ${color.sapphire}; --subtext0: ${base04};
--blue: ${color.blue}; --overlay2: ${base03};
--lavender: ${color.lavender}; --overlay1: ${base03};
--text: ${color.text}; --overlay0: ${base03};
--subtext1: ${color.subtext1}; --surface2: ${base02};
--subtext0: ${color.subtext0}; --surface1: ${base01};
--overlay2: ${color.overlay2}; --surface0: ${base01};
--overlay1: ${color.overlay1}; --base: ${base00};
--overlay0: ${color.overlay0}; --mantle: ${base10};
--surface2: ${color.surface2}; --crust: ${base11};
--surface1: ${color.surface1}; }
--surface0: ${color.surface0}; '';
--base: ${color.base}; force = true;
--mantle: ${color.mantle}; };
--crust: ${color.crust};
}
'';
force = true;
};
home.file.".local/share/firefoxpwa/profiles/01KEYXH9TC4B54J5CTPNE75JP0/prefs.js" = { home.file.".local/share/firefoxpwa/profiles/01KEYXH9TC4B54J5CTPNE75JP0/prefs.js" = {
text = '' text = ''

View file

@ -3,14 +3,6 @@
pkgs, 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; [ home.packages = with pkgs; [
(mpv.override { (mpv.override {
@ -21,9 +13,31 @@ in
]; ];
}) })
]; ];
home.file.".config/mpv" = { home.file.".config/mpv/mpv.conf" = {
source = mergedConfig; text = with config.scheme; ''
recursive = true; # 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; force = true;
}; };
} }

View file

@ -4,7 +4,7 @@
useQuickCss = true; useQuickCss = true;
themeLinks = [ ]; themeLinks = [ ];
eagerPatches = false; eagerPatches = false;
enabledThemes = [ "catppuccin.css" ]; enabledThemes = [ "theme.css" ];
enableReactDevtools = false; enableReactDevtools = false;
frameless = false; frameless = false;
transparent = true; transparent = true;

View file

@ -2,210 +2,68 @@
config, config,
pkgs, pkgs,
pkgs-unstable, 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 = { config = {
home.packages = home.packages = with pkgs; [
(with pkgs; [ # cli utilities
# cli utilities tmux
tmux fastfetch
fastfetch btop
btop wget
wget ripgrep
ripgrep ncdu
ncdu fzf
fzf wl-clipboard
wl-clipboard rclone
rclone waypipe
waypipe spotdl
spotdl browsh
browsh mosh
mosh gh
gh
# development & tooling # development & tooling
jdk21_headless jdk21_headless
quickemu quickemu
nerd-fonts.noto nerd-fonts.noto
noto-fonts noto-fonts
noto-fonts-color-emoji noto-fonts-color-emoji
nix-prefetch nix-prefetch
prowlarr prowlarr
radarr radarr
sonarr sonarr
flaresolverr flaresolverr
# kde and kde theming # kde and kde theming
kde-rounded-corners kde-rounded-corners
kdePackages.partitionmanager kdePackages.partitionmanager
pkgs.catppuccin-cursors.mochaPeach
# gui applications # gui applications
input-leap input-leap
libreoffice-qt-fresh libreoffice-qt-fresh
# nur.repos.forkprince.helium-nightly # nur.repos.forkprince.helium-nightly
qbittorrent qbittorrent
nautilus nautilus
fractal fractal
tuba tuba
# gui applications ( multimedia ) # gui applications ( multimedia )
audacity audacity
strawberry strawberry
musescore musescore
gimp gimp
calibre calibre
riff riff
dissent dissent
# overrides # overrides
# (chromium.override { # (chromium.override {
# enableWideVine = true; # enableWideVine = true;
# }) # })
(catppuccin-kde.override { ];
flavour = [ config.catppuccin.flavor ];
accents = [ config.catppuccin.accent ];
})
])
++ [
pkgs.catppuccin-cursors."${config.catppuccin.flavor}${config.catppuccinUpper.accent}"
];
services = { services = {
spotifyd = { spotifyd = {
@ -226,26 +84,20 @@
}; };
}; };
catppuccin = { # programs.plasma = {
enable = false; # workspace = {
cursors.enable = false; # colorScheme = "Catppuccin${config.catppuccinUpper.flavor}${config.catppuccinUpper.accent}";
cache.enable = true; # cursor.theme = "catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}-cursors";
}; # splashScreen.theme = "Catpppuccin-${config.catppuccinUpper.flavor}-${config.catppuccinUpper.accent}";
# };
programs.plasma = { # configFile = {
workspace = { # kdeglobals.KDE = {
colorScheme = "Catppuccin${config.catppuccinUpper.flavor}${config.catppuccinUpper.accent}"; # DefaultDarkLookAndFeel = "Catpppuccin-${config.catppuccinUpper.flavor}-${config.catppuccinUpper.accent}";
cursor.theme = "catppuccin-${config.catppuccin.flavor}-${config.catppuccin.accent}-cursors"; # DefaultLightLookAndFeel = "Catpppuccin-Latte-${config.catppuccinUpper.accent}";
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}";
};
};
};
# This value determines the Home Manager release that your # This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage # configuration is compatible with. This helps avoid breakage

View file

@ -6,9 +6,9 @@
... ...
}: }:
{ {
catppuccin = { colors = {
accent = "blue"; scheme = "catppuccin-mocha";
flavor = "mocha"; accent = "base0D";
}; };
home.packages = [ home.packages = [
@ -41,7 +41,7 @@
]; ];
theme = spicePkgs.themes.catppuccin; theme = spicePkgs.themes.catppuccin;
colorScheme = config.catppuccin.flavor; colorScheme = "mocha";
}; };
programs.plasma = { programs.plasma = {

View file

@ -1,8 +1,8 @@
{ pkgs, ... }: { pkgs, config, ... }:
{ {
catppuccin = { colors = {
accent = "peach"; scheme = "catppuccin-mocha";
flavor = "mocha"; accent = "base09";
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [

View file

@ -4,9 +4,9 @@
... ...
}: }:
{ {
catppuccin = { colors = {
accent = "green"; scheme = "catppuccin-mocha";
flavor = "mocha"; accent = "base0B";
}; };
home.packages = with pkgs; [ ]; home.packages = with pkgs; [ ];

View file

@ -36,7 +36,7 @@
gtk = { gtk = {
enable = true; enable = true;
colorScheme = if config.userOptions.isDark then "dark" else "light"; # colorScheme = if config.userOptions.isDark then "dark" else "light";
# theme = { # theme = {
# package = pkgs.kdePackages.breeze-gtk; # package = pkgs.kdePackages.breeze-gtk;
@ -46,8 +46,14 @@
# else "Breeze"; # else "Breeze";
# }; # };
# iconTheme = {
# name = if config.userOptions.isDark then "Colloid-Dark" else "Colloid-Light";
# package = pkgs.colloid-icon-theme;
# };
colorScheme = "dark";
iconTheme = { iconTheme = {
name = if config.userOptions.isDark then "Colloid-Dark" else "Colloid-Light"; name = "Colloid-Dark";
package = pkgs.colloid-icon-theme; package = pkgs.colloid-icon-theme;
}; };

View file

@ -1,106 +1,98 @@
{ {
config, config,
pkgs,
lib,
... ...
}: }:
let let
colors = pkgs.catppuccin.hex.${config.catppuccin.flavor};
mkColorSection = name: value: "@define-color ${name} ${value};"; mkColorSection = name: value: "@define-color ${name} ${value};";
generateCSS = '' generateCSS = with config.scheme.withHashtag; ''
/* Catppuccin ${lib.toUpper (builtins.substring 0 1 config.catppuccin.flavor)}${ /* Kova's Nixified GTK */
builtins.substring 1 (-1) config.catppuccin.flavor
} ${lib.toUpper (builtins.substring 0 1 config.catppuccin.accent)}${
builtins.substring 1 (-1) config.catppuccin.accent
} Palette */
/* Base colors */ /* Base colors */
${mkColorSection "window_bg_color" colors.base} ${mkColorSection "window_bg_color" base00}
${mkColorSection "window_fg_color" colors.text} ${mkColorSection "window_fg_color" base05}
/* View styling */ /* View styling */
${mkColorSection "view_bg_color" colors.base} ${mkColorSection "view_bg_color" base00}
${mkColorSection "view_fg_color" colors.text} ${mkColorSection "view_fg_color" base05}
/* Header bar */ /* Header bar */
${mkColorSection "headerbar_bg_color" colors.mantle} ${mkColorSection "headerbar_bg_color" base10}
${mkColorSection "headerbar_backdrop_color" colors.mantle} ${mkColorSection "headerbar_backdrop_color" base10}
${mkColorSection "headerbar_fg_color" colors.text} ${mkColorSection "headerbar_fg_color" base05}
/* Popovers and dialogs */ /* Popovers and dialogs */
${mkColorSection "popover_bg_color" colors.base} ${mkColorSection "popover_bg_color" base00}
${mkColorSection "popover_fg_color" colors.text} ${mkColorSection "popover_fg_color" base05}
@define-color dialog_bg_color @popover_bg_color; @define-color dialog_bg_color @popover_bg_color;
@define-color dialog_fg_color @popover_fg_color; @define-color dialog_fg_color @popover_fg_color;
/* Cards and sidebars */ /* Cards and sidebars */
${mkColorSection "card_bg_color" colors.mantle} ${mkColorSection "card_bg_color" base10}
${mkColorSection "card_fg_color" colors.text} ${mkColorSection "card_fg_color" base05}
${mkColorSection "sidebar_bg_color" colors.mantle} ${mkColorSection "sidebar_bg_color" base10}
${mkColorSection "sidebar_fg_color" colors.text} ${mkColorSection "sidebar_fg_color" base05}
@define-color sidebar_backdrop_color @sidebar_bg_color; @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_bg_color @sidebar_bg_color;
@define-color secondary_sidebar_fg_color @sidebar_fg_color; @define-color secondary_sidebar_fg_color @sidebar_fg_color;
@define-color secondary_sidebar_backdrop_color @sidebar_backdrop_color; @define-color secondary_sidebar_backdrop_color @sidebar_backdrop_color;
@define-color secondary_sidebar_border_color @sidebar_border_color; @define-color secondary_sidebar_border_color @sidebar_border_color;
/* Catppuccin accent colors */ /* Catppuccin accent colors */
${mkColorSection "blue_1" colors.blue} ${mkColorSection "blue_1" base0D}
${mkColorSection "blue_2" colors.sapphire} ${mkColorSection "blue_2" base16}
${mkColorSection "blue_3" colors.sky} ${mkColorSection "blue_3" base15}
${mkColorSection "blue_4" colors.teal} ${mkColorSection "blue_4" base0C}
${mkColorSection "blue_5" colors.lavender} ${mkColorSection "blue_5" base07}
${mkColorSection "green_1" colors.green} ${mkColorSection "green_1" base0B}
${mkColorSection "green_2" colors.teal} ${mkColorSection "green_2" base0C}
${mkColorSection "green_3" colors.sky} ${mkColorSection "green_3" base15}
${mkColorSection "green_4" colors.sapphire} ${mkColorSection "green_4" base16}
${mkColorSection "green_5" colors.blue} ${mkColorSection "green_5" base0D}
${mkColorSection "yellow_1" colors.yellow} ${mkColorSection "yellow_1" base0A}
${mkColorSection "yellow_2" colors.peach} ${mkColorSection "yellow_2" base09}
${mkColorSection "yellow_3" colors.yellow} ${mkColorSection "yellow_3" base0A}
${mkColorSection "yellow_4" colors.red} ${mkColorSection "yellow_4" base08}
${mkColorSection "yellow_5" colors.maroon} ${mkColorSection "yellow_5" base12}
${mkColorSection "orange_1" colors.peach} ${mkColorSection "orange_1" base09}
${mkColorSection "orange_2" colors.red} ${mkColorSection "orange_2" base08}
${mkColorSection "orange_3" colors.maroon} ${mkColorSection "orange_3" base12}
${mkColorSection "orange_4" colors.yellow} ${mkColorSection "orange_4" base0A}
${mkColorSection "orange_5" colors.green} ${mkColorSection "orange_5" base0B}
${mkColorSection "red_1" colors.red} ${mkColorSection "red_1" base08}
${mkColorSection "red_2" colors.maroon} ${mkColorSection "red_2" base12}
${mkColorSection "red_3" colors.pink} ${mkColorSection "red_3" base17}
${mkColorSection "red_4" colors.flamingo} ${mkColorSection "red_4" base0F}
${mkColorSection "red_5" colors.rosewater} ${mkColorSection "red_5" base13}
${mkColorSection "purple_1" colors.mauve} ${mkColorSection "purple_1" base0E}
${mkColorSection "purple_2" colors.lavender} ${mkColorSection "purple_2" base07}
${mkColorSection "purple_3" colors.pink} ${mkColorSection "purple_3" base17}
${mkColorSection "purple_4" colors.flamingo} ${mkColorSection "purple_4" base0F}
${mkColorSection "purple_5" colors.rosewater} ${mkColorSection "purple_5" base13}
${mkColorSection "brown_1" colors.surface2} ${mkColorSection "brown_1" base02}
${mkColorSection "brown_2" colors.overlay0} ${mkColorSection "brown_2" base03}
${mkColorSection "brown_3" colors.overlay1} ${mkColorSection "brown_3" base03}
${mkColorSection "brown_4" colors.overlay2} ${mkColorSection "brown_4" base03}
${mkColorSection "brown_5" colors.subtext1} ${mkColorSection "brown_5" base04}
${mkColorSection "light_1" colors.text} ${mkColorSection "light_1" base05}
${mkColorSection "light_2" colors.subtext0} ${mkColorSection "light_2" base04}
${mkColorSection "light_3" colors.subtext1} ${mkColorSection "light_3" base04}
${mkColorSection "light_4" colors.blue} ${mkColorSection "light_4" base0D}
${mkColorSection "light_5" colors.overlay0} ${mkColorSection "light_5" base03}
${mkColorSection "dark_1" colors.surface0} ${mkColorSection "dark_1" base01}
${mkColorSection "dark_2" colors.surface1} ${mkColorSection "dark_2" base02}
${mkColorSection "dark_3" colors.surface2} ${mkColorSection "dark_3" base02}
${mkColorSection "dark_4" colors.mantle} ${mkColorSection "dark_4" base10}
${mkColorSection "dark_5" colors.crust} ${mkColorSection "dark_5" base11}
/* Custom rules */ /* Custom rules */
toast { toast {
@ -118,7 +110,7 @@ let
} }
/* Accent */ /* Accent */
${mkColorSection "accent_bg_color" colors.${config.catppuccin.accent}} ${mkColorSection "accent_bg_color" base09}
@define-color accent_fg_color @window_bg_color; @define-color accent_fg_color @window_bg_color;
''; '';
in in

View file

@ -34,82 +34,82 @@
}; };
ColorScheme = ColorScheme =
with config.scheme;
let let
c = pkgs.catppuccin.bare.${config.catppuccin.flavor}; accent = base09;
accent = c.${config.catppuccin.accent};
mkColors = roles: builtins.concatStringsSep ", " (map (r: "#ff${r}") roles); mkColors = roles: builtins.concatStringsSep ", " (map (r: "#ff${r}") roles);
in in
{ {
active_colors = mkColors [ active_colors = mkColors [
c.text base05
c.surface0 base01
c.surface1 base02
c.surface0 base01
c.base base00
c.mantle base10
c.text base05
c.text base05
c.text base05
c.base base00
c.mantle base10
c.crust base11
accent accent
c.base base00
accent accent
c.mauve base0E
c.mantle base10
"000000" "000000"
c.base base00
c.text base05
c.overlay0 base03
accent accent
]; ];
disabled_colors = mkColors [ disabled_colors = mkColors [
c.overlay0 base03
c.surface0 base01
c.surface1 base02
c.surface0 base01
c.overlay0 base03
c.mantle base10
c.overlay0 base03
c.text base05
c.overlay0 base03
c.surface0 base01
c.surface0 base01
c.mantle base10
c.overlay1 base03
c.text base05
"0000ff" "0000ff"
"ff00ff" "ff00ff"
c.surface0 base01
"000000" "000000"
c.surface0 base01
c.base base00
"80000000" "80000000"
c.overlay1 base03
]; ];
inactive_colors = mkColors [ inactive_colors = mkColors [
c.text base05
c.surface0 base01
c.surface1 base02
c.surface0 base01
c.base base00
c.mantle base10
c.text base05
c.text base05
c.text base05
c.base base00
c.mantle base10
c.crust base11
accent accent
c.base base00
accent accent
c.mauve base0E
c.mantle base10
"000000" "000000"
c.base base00
c.text base05
c.overlay0 base03
accent accent
]; ];
}; };

View file

@ -4,12 +4,102 @@
... ...
}: }:
let 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" { } '' mergedConfig = pkgs.runCommand "mergedConfig" { } ''
mkdir -p $out/themes mkdir -p $out/themes
${pkgs.gnused}/bin/sed 's/blankFlavor/${config.catppuccin.flavor}/g' \ cp -r ${btop-colors-file}/nixos.theme $out/themes/nixos.theme
${./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
''; '';
in in
{ {

View file

@ -43,18 +43,4 @@
}; };
}; };
programs.man.generateCaches = false; 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;
};
} }

View file

@ -1,24 +1,24 @@
source ~/.config/fish/colors.fish # source ~/.config/fish/colors.fish
set -l last_status $status set -l last_status $status
set -l nix_shell_info ( set -l nix_shell_info (
if test -n "$IN_NIX_SHELL" if test -n "$IN_NIX_SHELL"
echo -n "<nix-shell> " echo -n "<nix-shell> "
end end
) )
set -g color_user $color_sky set -g color_user cyan
set -g color_host $color_red set -g color_host red
set -g color_cwd $color_green set -g color_cwd green
# Set host color based on hostname # Set host color based on hostname
if test (hostname) = peach if test (hostname) = peach
set -g color_host $color_accent set -g color_host yellow
else if test (hostname) = alien else if test (hostname) = alien
set -g color_host $color_accent set -g color_host yellow
else if test (hostname) = vm else if test (hostname) = vm
set -g color_host $color_accent set -g color_host yellow
set -g color_cwd normal set -g color_cwd normal
else if test (uname) = Darwin else if test (uname) = Darwin
set -g color_host $color_yellow set -g color_host yellow
end end
set -l user_host (set_color $color_user)"$USER"(set_color normal)"@"(set_color $color_host)(prompt_hostname)(set_color normal) set -l user_host (set_color $color_user)"$USER"(set_color normal)"@"(set_color $color_host)(prompt_hostname)(set_color normal)

View file

@ -4,11 +4,8 @@
... ...
}: }:
let let
colors = pkgs.catppuccin.hex.${config.catppuccin.flavor};
accent = colors.${config.catppuccin.accent};
# Map Catppuccin colors to Kitty theme structure # Map Catppuccin colors to Kitty theme structure
kitty-colors = '' kitty-colors = with config.scheme.withHashtag; ''
# vim:ft=kitty # vim:ft=kitty
## name: Kova's Nixified Kitty ## name: Kova's Nixified Kitty
## author: Catppuccin Org & sckova ## author: Catppuccin Org & sckova
@ -17,70 +14,70 @@ let
## blurb: The theme generated from the NixOS configuration! ## blurb: The theme generated from the NixOS configuration!
# The basic colors # The basic colors
foreground ${colors.text} foreground ${base05}
background ${colors.base} background ${base00}
selection_foreground ${colors.base} selection_foreground ${base00}
selection_background ${colors.rosewater} selection_background ${base06}
# Cursor colors # Cursor colors
cursor ${colors.rosewater} cursor ${base06}
cursor_text_color ${colors.base} cursor_text_color ${base00}
# URL underline color when hovering with mouse # URL underline color when hovering with mouse
url_color ${colors.rosewater} url_color ${base06}
# Kitty window border colors # Kitty window border colors
active_border_color ${accent} active_border_color ${base09}
inactive_border_color ${colors.overlay0} inactive_border_color ${base03}
bell_border_color ${colors.yellow} bell_border_color ${base0A}
# Tab bar colors # Tab bar colors
active_tab_foreground ${colors.crust} active_tab_foreground ${base11}
active_tab_background ${accent} active_tab_background ${base09}
inactive_tab_foreground ${colors.text} inactive_tab_foreground ${base05}
inactive_tab_background ${colors.mantle} inactive_tab_background ${base10}
tab_bar_background ${colors.crust} tab_bar_background ${base11}
# Colors for marks (marked text in the terminal) # Colors for marks (marked text in the terminal)
mark1_foreground ${colors.base} mark1_foreground ${base00}
mark1_background ${accent} mark1_background ${base09}
mark2_foreground ${colors.base} mark2_foreground ${base00}
mark2_background ${colors.blue} mark2_background ${base0D}
mark3_foreground ${colors.base} mark3_foreground ${base00}
mark3_background ${colors.sky} mark3_background ${base15}
# The 16 terminal colors # The 16 terminal colors
# black # black
color0 ${colors.surface1} color0 ${base02}
color8 ${colors.surface2} color8 ${base02}
# red # red
color1 ${colors.red} color1 ${base08}
color9 ${colors.red} color9 ${base08}
# green # green
color2 ${colors.green} color2 ${base0B}
color10 ${colors.green} color10 ${base0B}
# yellow # yellow
color3 ${colors.yellow} color3 ${base0A}
color11 ${colors.yellow} color11 ${base0A}
# blue # blue
color4 ${colors.blue} color4 ${base0D}
color12 ${colors.blue} color12 ${base0D}
# magenta # magenta
color5 ${colors.pink} color5 ${base17}
color13 ${colors.pink} color13 ${base17}
# cyan # cyan
color6 ${colors.teal} color6 ${base0C}
color14 ${colors.teal} color14 ${base0C}
# white # white
color7 ${colors.subtext1} color7 ${base04}
color15 ${colors.subtext0} color15 ${base04}
''; '';
kitty-colors-file = pkgs.writeTextFile { kitty-colors-file = pkgs.writeTextFile {
@ -132,7 +129,7 @@ in
}; };
bat = { bat = {
enable = true; enable = true;
config.theme = "Catppuccin ${config.catppuccinUpper.flavor}"; # config.theme = "Catppuccin ${config.catppuccinUpper.flavor}";
}; };
}; };
} }

View file

@ -36,12 +36,49 @@
expandtab = true; expandtab = true;
number = true; number = true;
}; };
colorschemes.catppuccin = { colorschemes.palette = {
enable = true; enable = true;
settings = { 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 = [ keymaps = [
# --- Normal mode mappings --- # --- Normal mode mappings ---
{ {
@ -186,110 +223,106 @@
nixd.enable = true; nixd.enable = true;
}; };
}; };
lualine = lualine = with config.scheme.withHashtag; {
let enable = true;
palette = pkgs.catppuccin.${config.catppuccin.flavor}; settings = {
in options = {
{ theme = {
enable = true; normal = {
settings = { a = {
options = { fg = base00;
theme = { bg = base0E;
normal = {
a = {
fg = palette.base;
bg = palette.mauve;
};
b = {
fg = palette.text;
bg = palette.surface0;
};
c = {
fg = palette.text;
};
}; };
insert = { b = {
a = { fg = base05;
fg = palette.base; bg = base01;
bg = palette.blue;
};
}; };
visual = { c = {
a = { fg = base05;
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;
};
}; };
}; };
component_separators = ""; insert = {
section_separators = { a = {
left = ""; fg = base00;
right = ""; 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;
};
}; };
}; };
component_separators = "";
sections = { section_separators = {
lualine_a = [ left = "";
{ right = "";
__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 = [ ];
}; };
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 = [ ];
}; };
};
}; };
}; };
} }

View file

@ -5,7 +5,7 @@
}: }:
{ {
# https://github.com/sodiboo/niri-flake/blob/main/docs.md # https://github.com/sodiboo/niri-flake/blob/main/docs.md
programs.niri = { programs.niri = with config.scheme.withHashtag; {
# handle package systemwide # handle package systemwide
package = null; package = null;
@ -16,7 +16,7 @@
gestures.hot-corners.enable = false; gestures.hot-corners.enable = false;
spawn-at-startup = [ ]; # systemd is based sorry spawn-at-startup = [ ]; # systemd is based sorry
overview = { overview = {
backdrop-color = pkgs.catppuccin.${config.catppuccin.flavor}.crust; backdrop-color = base11;
workspace-shadow.enable = false; workspace-shadow.enable = false;
}; };
input = { input = {
@ -90,7 +90,7 @@
}; };
layout = { layout = {
gaps = 4; gaps = 4;
# background-color = pkgs.catppuccin.${config.catppuccin.flavor}.mantle; # background-color = base10;
background-color = "transparent"; background-color = "transparent";
default-column-width = { default-column-width = {
proportion = 0.5; proportion = 0.5;
@ -103,16 +103,16 @@
border = { border = {
enable = true; enable = true;
width = 2; width = 2;
active.color = pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent}; active.color = base09;
inactive.color = pkgs.catppuccin.${config.catppuccin.flavor}.surface0; inactive.color = base01;
urgent.color = pkgs.catppuccin.${config.catppuccin.flavor}.maroon; urgent.color = base12;
}; };
focus-ring = { focus-ring = {
enable = false; enable = false;
width = 2; width = 2;
active.color = pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent}; active.color = base09;
inactive.color = pkgs.catppuccin.${config.catppuccin.flavor}.surface0; inactive.color = base01;
urgent.color = pkgs.catppuccin.${config.catppuccin.flavor}.maroon; urgent.color = base12;
}; };
shadow = { shadow = {
enable = true; enable = true;
@ -120,7 +120,7 @@
offset.x = 0; offset.x = 0;
offset.y = 5; offset.y = 5;
softness = 30; softness = 30;
color = pkgs.catppuccin.${config.catppuccin.flavor}.base + "77"; color = base00 + "77";
}; };
}; };
window-rules = [ window-rules = [

View file

@ -6,23 +6,39 @@
{ {
programs.noctalia-shell = { programs.noctalia-shell = {
enable = true; enable = true;
colors = { colors = with config.scheme.withHashtag; {
mPrimary = pkgs.catppuccin.${config.catppuccin.flavor}.${config.catppuccin.accent}; # mPrimary = base09;
mOnPrimary = pkgs.catppuccin.${config.catppuccin.flavor}.crust; # mOnPrimary = base11;
mSecondary = pkgs.catppuccin.${config.catppuccin.flavor}.subtext0; # mSecondary = base04;
mOnSecondary = pkgs.catppuccin.${config.catppuccin.flavor}.crust; # mOnSecondary = base09;
mTertiary = pkgs.catppuccin.${config.catppuccin.flavor}.teal; # mTertiary = base0C;
mOnTertiary = pkgs.catppuccin.${config.catppuccin.flavor}.crust; # mOnTertiary = base11;
mError = pkgs.catppuccin.${config.catppuccin.flavor}.red; # mError = base08;
mOnError = pkgs.catppuccin.${config.catppuccin.flavor}.crust; # mOnError = base11;
mSurface = pkgs.catppuccin.${config.catppuccin.flavor}.mantle; # mSurface = base10;
mOnSurface = pkgs.catppuccin.${config.catppuccin.flavor}.text; # mOnSurface = base05;
mSurfaceVariant = pkgs.catppuccin.${config.catppuccin.flavor}.surface0; # mSurfaceVariant = base04;
mOnSurfaceVariant = pkgs.catppuccin.${config.catppuccin.flavor}.lavender; # mOnSurfaceVariant = base07;
mOutline = pkgs.catppuccin.${config.catppuccin.flavor}.surface2; # mOutline = base02;
mShadow = pkgs.catppuccin.${config.catppuccin.flavor}.crust; # mShadow = base11;
mHover = pkgs.catppuccin.${config.catppuccin.flavor}.subtext1; # mHover = base04;
mOnHover = pkgs.catppuccin.${config.catppuccin.flavor}.crust; # 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 = { settings = {
settingsVersion = 0; settingsVersion = 0;
@ -203,7 +219,7 @@
enableMultiMonitorDirectories = false; enableMultiMonitorDirectories = false;
recursiveSearch = false; recursiveSearch = false;
setWallpaperOnAllMonitors = true; setWallpaperOnAllMonitors = true;
fillColor = "${pkgs.catppuccin.${config.catppuccin.flavor}.base}"; fillColor = config.scheme.withHashtag.base00;
fillMode = "crop"; fillMode = "crop";
hideWallpaperFilenames = true; hideWallpaperFilenames = true;
panelPosition = "follow_bar"; panelPosition = "follow_bar";

152
options.nix Normal file
View file

@ -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";
# };
};
};
}

View file

@ -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;
};
}

View file

@ -1,10 +1,6 @@
final: prev: { final: prev: {
spotify-webapp = final.callPackage ./spotify-webapp { }; spotify-webapp = final.callPackage ./spotify-webapp { };
catppuccin-discord = final.callPackage ./catppuccin-discord {
inherit (final) catppuccin-discord-git;
};
openmw = prev.openmw.overrideAttrs (oldAttrs: { openmw = prev.openmw.overrideAttrs (oldAttrs: {
pname = "openmw"; pname = "openmw";
src = final.openmw-git; src = final.openmw-git;

View file

@ -42,11 +42,6 @@
initrd.verbose = false; initrd.verbose = false;
}; };
catppuccin = {
enable = true;
cache.enable = true;
};
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
@ -81,11 +76,7 @@
services = { services = {
displayManager = { displayManager = {
sddm = { cosmic-greeter.enable = true;
enable = true;
wayland.enable = true;
enableHidpi = true;
};
defaultSession = "niri"; defaultSession = "niri";
}; };

View file

@ -22,11 +22,6 @@
''; '';
hardware.i2c.enable = true; hardware.i2c.enable = true;
catppuccin = {
accent = "blue";
flavor = "mocha";
};
boot.loader.systemd-boot.consoleMode = "max"; boot.loader.systemd-boot.consoleMode = "max";
boot.kernelPackages = pkgs.linuxPackages; boot.kernelPackages = pkgs.linuxPackages;

View file

@ -6,11 +6,6 @@
{ {
boot.kernelParams = [ "appledrm.show_notch=1" ]; boot.kernelParams = [ "appledrm.show_notch=1" ];
catppuccin = {
accent = "peach";
flavor = "mocha";
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
ddcutil ddcutil
]; ];

View file

@ -1,10 +1,5 @@
{ catppuccin, ... }: { catppuccin, ... }:
{ {
catppuccin = {
accent = "green";
flavor = "mocha";
};
home-manager.users.sckova = { home-manager.users.sckova = {
imports = [ catppuccin.homeModules.catppuccin ]; imports = [ catppuccin.homeModules.catppuccin ];
}; };