split catppuccin profile
This commit is contained in:
parent
001ab33d7b
commit
418084f2c9
@ -1,33 +1,12 @@
|
|||||||
{ config, pkgs, lib, inputs, ... }:
|
{ cfg }: { config, pkgs, lib, inputs, ... }: {
|
||||||
let
|
catppuccin.accent = cfg.accent;
|
||||||
thm = config.lib.base16.theme;
|
catppuccin.flavor = cfg.flavor;
|
||||||
# this capitalizes the first letter in a string.
|
|
||||||
mkUpper =
|
|
||||||
str:
|
|
||||||
(lib.toUpper (builtins.substring 0 1 str)) +
|
|
||||||
(builtins.substring 1 (builtins.stringLength str) str);
|
|
||||||
|
|
||||||
accent = "mauve";
|
|
||||||
# accent = "lavender";
|
|
||||||
flavor = "mocha";
|
|
||||||
size = "standard"; # "standard" "compact"
|
|
||||||
tweaks = [ "normal" ]; # "black" "rimless" "normal"
|
|
||||||
flavorUpper = mkUpper flavor;
|
|
||||||
accentUpper = mkUpper accent;
|
|
||||||
sizeUpper = mkUpper size;
|
|
||||||
gtkTheme = if flavor == "latte" then "Light" else "Dark";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [ inputs.catppuccin.nixosModules.catppuccin ];
|
|
||||||
catppuccin.accent = accent;
|
|
||||||
catppuccin.flavor = flavor;
|
|
||||||
boot.loader.grub.catppuccin.enable = true;
|
boot.loader.grub.catppuccin.enable = true;
|
||||||
console.catppuccin.enable = true;
|
console.catppuccin.enable = true;
|
||||||
|
|
||||||
home-manager.users.${config.mainuser} = rec {
|
home-manager.users.${config.mainuser} = rec {
|
||||||
imports = [ inputs.catppuccin.homeManagerModules.catppuccin ];
|
catppuccin.accent = cfg.accent;
|
||||||
catppuccin.accent = accent;
|
catppuccin.flavor = cfg.flavor;
|
||||||
catppuccin.flavor = flavor;
|
|
||||||
|
|
||||||
qt.style.catppuccin.enable = true;
|
qt.style.catppuccin.enable = true;
|
||||||
qt.style.catppuccin.apply = true;
|
qt.style.catppuccin.apply = true;
|
||||||
@ -47,85 +26,18 @@ in
|
|||||||
zsh.syntaxHighlighting.catppuccin.enable = true;
|
zsh.syntaxHighlighting.catppuccin.enable = true;
|
||||||
waybar.catppuccin.enable = true;
|
waybar.catppuccin.enable = true;
|
||||||
waybar.catppuccin.mode = "createLink";
|
waybar.catppuccin.mode = "createLink";
|
||||||
|
|
||||||
vscode = {
|
|
||||||
extensions = let
|
|
||||||
ext-vscode = inputs.nix-vscode-marketplace.extensions.${pkgs.system}.vscode-marketplace;
|
|
||||||
in [
|
|
||||||
ext-vscode.alexdauenhauer.catppuccin-noctis
|
|
||||||
ext-vscode.catppuccin.catppuccin-vsc-icons
|
|
||||||
(inputs.catppuccin-vsc.packages.${pkgs.system}.catppuccin-vsc.override {
|
|
||||||
accent = accent;
|
|
||||||
boldKeywords = false;
|
|
||||||
italicComments = false;
|
|
||||||
italicKeywords = false;
|
|
||||||
extraBordersEnabled = false;
|
|
||||||
workbenchMode = "flat";
|
|
||||||
bracketMode = "dimmed";
|
|
||||||
colorOverrides = {
|
|
||||||
mocha = {
|
|
||||||
base = "#1c1c2d";
|
|
||||||
mantle = "#191925";
|
|
||||||
crust = "#151511";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
customUIColors = {
|
|
||||||
"statusBar.foreground" = "accent";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
userSettings = {
|
|
||||||
"editor.semanticHighlighting.enabled" = lib.mkForce true;
|
|
||||||
"terminal.integrated.minimumContrastRatio" = lib.mkForce 1;
|
|
||||||
"window.titleBarStyle" = lib.mkForce "custom";
|
|
||||||
"workbench.colorTheme" = lib.mkForce "Catppuccin ${flavorUpper}";
|
|
||||||
"workbench.iconTheme" = lib.mkForce "catppuccin-${flavor}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
wayland.windowManager.hyprland.extraConfig = ''
|
wayland.windowManager.hyprland.extraConfig = ''
|
||||||
exec=hyprctl setcursor catppuccin-${flavor}-${accent}-cursors ${toString thm.cursorSize}
|
exec=hyprctl setcursor catppuccin-${cfg.flavor}-${cfg.accent}-cursors ${toString cfg.thm.cursorSize}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# GTK
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
theme = {
|
|
||||||
name = "Catppuccin-${flavorUpper}-${sizeUpper}-${accentUpper}-${gtkTheme}";
|
|
||||||
package = pkgs.catppuccin-gtk.override {
|
|
||||||
inherit tweaks;
|
|
||||||
accents = [ accent ];
|
|
||||||
variant = flavor;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
cursorTheme = {
|
|
||||||
name = "catppuccin-${flavor}-${accent}-cursors";
|
|
||||||
package = pkgs.catppuccin-cursors.${flavor + accentUpper};
|
|
||||||
};
|
|
||||||
iconTheme = {
|
|
||||||
name = "Papirus-${gtkTheme}";
|
|
||||||
package = pkgs.catppuccin-papirus-folders.override { inherit accent flavor; };
|
|
||||||
};
|
|
||||||
font = {
|
|
||||||
name = "${thm.fonts.main.family}";
|
|
||||||
size = thm.fontSizes.normal.int;
|
|
||||||
};
|
|
||||||
gtk3.extraConfig = {
|
|
||||||
gtk-application-prefer-dark-theme = 1;
|
|
||||||
};
|
|
||||||
gtk4.extraConfig = {
|
|
||||||
gtk-application-prefer-dark-theme = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
home.sessionVariables.GTK_THEME = gtk.theme.name;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
themes.base16.extraParams = {
|
themes.base16.extraParams = {
|
||||||
iconTheme = lib.mkForce "Papirus-${gtkTheme}";
|
iconTheme = lib.mkForce "Papirus-${cfg.gtkTheme}";
|
||||||
iconPackage = lib.mkForce (pkgs.catppuccin-papirus-folders.override { inherit accent flavor; });
|
iconPackage = lib.mkForce (pkgs.catppuccin-papirus-folders.override { inherit (cfg) accent flavor; });
|
||||||
cursorPackage = lib.mkForce (pkgs.catppuccin-cursors.${flavor + accentUpper});
|
cursorPackage = lib.mkForce (pkgs.catppuccin-cursors.${cfg.flavor + cfg.accentUpper});
|
||||||
cursorTheme = lib.mkForce "catppuccin-${flavor}-${accent}-cursors";
|
cursorTheme = lib.mkForce "catppuccin-${cfg.flavor}-${cfg.accent}-cursors";
|
||||||
cursorSize = lib.mkForce 32;
|
cursorSize = lib.mkForce 32;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,34 @@
|
|||||||
{ ... }: {
|
{ config, lib, inputs, ... }: {
|
||||||
imports = [
|
imports = let
|
||||||
./catppuccin.nix
|
cfg = rec {
|
||||||
|
thm = config.lib.base16.theme;
|
||||||
|
# this capitalizes the first letter in a string.
|
||||||
|
mkUpper =
|
||||||
|
str:
|
||||||
|
(lib.toUpper (builtins.substring 0 1 str)) +
|
||||||
|
(builtins.substring 1 (builtins.stringLength str) str);
|
||||||
|
|
||||||
|
accent = "mauve";
|
||||||
|
flavor = "mocha";
|
||||||
|
size = "standard"; # "standard" "compact"
|
||||||
|
tweaks = [ "normal" ]; # "black" "rimless" "normal"
|
||||||
|
flavorUpper = mkUpper flavor;
|
||||||
|
accentUpper = mkUpper accent;
|
||||||
|
sizeUpper = mkUpper size;
|
||||||
|
gtkTheme = if flavor == "latte" then "Light" else "Dark";
|
||||||
|
};
|
||||||
|
in [
|
||||||
|
inputs.catppuccin.nixosModules.catppuccin
|
||||||
|
# Custom modules
|
||||||
|
(import ./catppuccin.nix { inherit cfg; })
|
||||||
|
# Until https://github.com/catppuccin/nix/pull/179 is merged
|
||||||
|
(import ./gitea.nix { inherit cfg; gitea = "gitea"; })
|
||||||
|
# Deprecated on catppuccin-nix
|
||||||
|
(import ./gtk.nix { inherit cfg; })
|
||||||
|
(import ./vscode.nix { inherit cfg; })
|
||||||
];
|
];
|
||||||
|
|
||||||
|
home-manager.users.${config.mainuser} = {
|
||||||
|
imports = [ inputs.catppuccin.homeManagerModules.catppuccin ];
|
||||||
|
};
|
||||||
}
|
}
|
55
profiles/workspace/catppuccin/gitea.nix
Normal file
55
profiles/workspace/catppuccin/gitea.nix
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
{ cfg, gitea ? "gitea" }: { config, pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
theme = pkgs.fetchzip {
|
||||||
|
url = "https://github.com/catppuccin/gitea/releases/download/v0.4.1/catppuccin-gitea.tar.gz";
|
||||||
|
sha256 = "sha256-14XqO1ZhhPS7VDBSzqW55kh6n5cFZGZmvRCtMEh8JPI=";
|
||||||
|
stripRoot = false;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
config = lib.mkIf (gitea != "" && config.services.${gitea}.enable) {
|
||||||
|
systemd.services.${gitea}.preStart = let
|
||||||
|
customDir = config.services.${gitea}.customDir;
|
||||||
|
baseDir =
|
||||||
|
if lib.versionAtLeast config.services.${gitea}.package.version "1.21.0" then
|
||||||
|
"${customDir}/public/assets"
|
||||||
|
else
|
||||||
|
"${customDir}/public";
|
||||||
|
in lib.mkAfter ''
|
||||||
|
rm -rf ${baseDir}/css
|
||||||
|
mkdir -p ${baseDir}
|
||||||
|
ln -sf ${theme} ${baseDir}/css
|
||||||
|
'';
|
||||||
|
|
||||||
|
services.${gitea}.settings.ui = {
|
||||||
|
DEFAULT_THEME = lib.mkForce "catppuccin-${cfg.flavor}-${cfg.accent}";
|
||||||
|
THEMES = let
|
||||||
|
builtinThemes = {
|
||||||
|
gitea = [
|
||||||
|
"auto"
|
||||||
|
"gitea"
|
||||||
|
"arc-greeen"
|
||||||
|
];
|
||||||
|
forgejo = [
|
||||||
|
"forgejo-auto"
|
||||||
|
"forgejo-light"
|
||||||
|
"forgejo-dark"
|
||||||
|
"gitea-auto"
|
||||||
|
"gitea-light"
|
||||||
|
"gitea-dark"
|
||||||
|
"forgejo-auto-deuteranopia-protanopia"
|
||||||
|
"forgejo-light-deuteranopia-protanopia"
|
||||||
|
"forgejo-dark-deuteranopia-protanopia"
|
||||||
|
"forgejo-auto-tritanopia"
|
||||||
|
"forgejo-light-tritanopia"
|
||||||
|
"forgejo-dark-tritanopia"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in lib.mkForce builtins.concatStringsSep "," (
|
||||||
|
builtinThemes.${gitea}
|
||||||
|
++ (map (name: lib.removePrefix "theme-" (lib.removeSuffix ".css" name)) (
|
||||||
|
builtins.attrNames (builtins.readDir theme)
|
||||||
|
))
|
||||||
|
);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
34
profiles/workspace/catppuccin/gtk.nix
Normal file
34
profiles/workspace/catppuccin/gtk.nix
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{ cfg }: { config, pkgs, ... }: {
|
||||||
|
home-manager.users.${config.mainuser} = rec {
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme = {
|
||||||
|
name = "Catppuccin-${cfg.flavorUpper}-${cfg.sizeUpper}-${cfg.accentUpper}-${cfg.gtkTheme}";
|
||||||
|
package = pkgs.catppuccin-gtk.override {
|
||||||
|
inherit (cfg) tweaks;
|
||||||
|
accents = [ cfg.accent ];
|
||||||
|
variant = cfg.flavor;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cursorTheme = {
|
||||||
|
name = "catppuccin-${cfg.flavor}-${cfg.accent}-cursors";
|
||||||
|
package = pkgs.catppuccin-cursors.${cfg.flavor + cfg.accentUpper};
|
||||||
|
};
|
||||||
|
iconTheme = {
|
||||||
|
name = "Papirus-${cfg.gtkTheme}";
|
||||||
|
package = pkgs.catppuccin-papirus-folders.override { inherit (cfg) accent flavor; };
|
||||||
|
};
|
||||||
|
font = {
|
||||||
|
name = cfg.thm.fonts.main.family;
|
||||||
|
size = cfg.thm.fontSizes.normal.int;
|
||||||
|
};
|
||||||
|
gtk3.extraConfig = {
|
||||||
|
gtk-application-prefer-dark-theme = 1;
|
||||||
|
};
|
||||||
|
gtk4.extraConfig = {
|
||||||
|
gtk-application-prefer-dark-theme = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home.sessionVariables.GTK_THEME = gtk.theme.name;
|
||||||
|
};
|
||||||
|
}
|
38
profiles/workspace/catppuccin/vscode.nix
Normal file
38
profiles/workspace/catppuccin/vscode.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ cfg }: { config, lib, pkgs, inputs, ... }: {
|
||||||
|
home-manager.users.${config.mainuser} = {
|
||||||
|
programs.vscode = {
|
||||||
|
extensions = let
|
||||||
|
ext-vscode = inputs.nix-vscode-marketplace.extensions.${pkgs.system}.vscode-marketplace;
|
||||||
|
in [
|
||||||
|
ext-vscode.alexdauenhauer.catppuccin-noctis
|
||||||
|
ext-vscode.catppuccin.catppuccin-vsc-icons
|
||||||
|
(inputs.catppuccin-vsc.packages.${pkgs.system}.catppuccin-vsc.override {
|
||||||
|
accent = cfg.accent;
|
||||||
|
boldKeywords = false;
|
||||||
|
italicComments = false;
|
||||||
|
italicKeywords = false;
|
||||||
|
extraBordersEnabled = false;
|
||||||
|
workbenchMode = "flat";
|
||||||
|
bracketMode = "dimmed";
|
||||||
|
colorOverrides = {
|
||||||
|
mocha = {
|
||||||
|
base = "#1c1c2d";
|
||||||
|
mantle = "#191925";
|
||||||
|
crust = "#151511";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
customUIColors = {
|
||||||
|
"statusBar.foreground" = "accent";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
userSettings = {
|
||||||
|
"editor.semanticHighlighting.enabled" = lib.mkForce true;
|
||||||
|
"terminal.integrated.minimumContrastRatio" = lib.mkForce 1;
|
||||||
|
"window.titleBarStyle" = lib.mkForce "custom";
|
||||||
|
"workbench.colorTheme" = lib.mkForce "Catppuccin ${cfg.flavorUpper}";
|
||||||
|
"workbench.iconTheme" = lib.mkForce "catppuccin-${cfg.flavor}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user