split catppuccin profile
This commit is contained in:
parent
001ab33d7b
commit
418084f2c9
@ -1,33 +1,12 @@
|
||||
{ config, pkgs, lib, inputs, ... }:
|
||||
let
|
||||
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";
|
||||
# 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;
|
||||
{ cfg }: { config, pkgs, lib, inputs, ... }: {
|
||||
catppuccin.accent = cfg.accent;
|
||||
catppuccin.flavor = cfg.flavor;
|
||||
boot.loader.grub.catppuccin.enable = true;
|
||||
console.catppuccin.enable = true;
|
||||
|
||||
home-manager.users.${config.mainuser} = rec {
|
||||
imports = [ inputs.catppuccin.homeManagerModules.catppuccin ];
|
||||
catppuccin.accent = accent;
|
||||
catppuccin.flavor = flavor;
|
||||
catppuccin.accent = cfg.accent;
|
||||
catppuccin.flavor = cfg.flavor;
|
||||
|
||||
qt.style.catppuccin.enable = true;
|
||||
qt.style.catppuccin.apply = true;
|
||||
@ -47,85 +26,18 @@ in
|
||||
zsh.syntaxHighlighting.catppuccin.enable = true;
|
||||
waybar.catppuccin.enable = true;
|
||||
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 = ''
|
||||
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 = {
|
||||
iconTheme = lib.mkForce "Papirus-${gtkTheme}";
|
||||
iconPackage = lib.mkForce (pkgs.catppuccin-papirus-folders.override { inherit accent flavor; });
|
||||
cursorPackage = lib.mkForce (pkgs.catppuccin-cursors.${flavor + accentUpper});
|
||||
cursorTheme = lib.mkForce "catppuccin-${flavor}-${accent}-cursors";
|
||||
iconTheme = lib.mkForce "Papirus-${cfg.gtkTheme}";
|
||||
iconPackage = lib.mkForce (pkgs.catppuccin-papirus-folders.override { inherit (cfg) accent flavor; });
|
||||
cursorPackage = lib.mkForce (pkgs.catppuccin-cursors.${cfg.flavor + cfg.accentUpper});
|
||||
cursorTheme = lib.mkForce "catppuccin-${cfg.flavor}-${cfg.accent}-cursors";
|
||||
cursorSize = lib.mkForce 32;
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,34 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./catppuccin.nix
|
||||
{ config, lib, inputs, ... }: {
|
||||
imports = let
|
||||
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