461 lines
15 KiB
Nix
461 lines
15 KiB
Nix
{
|
|
config,
|
|
inputs,
|
|
lib,
|
|
username,
|
|
pkgs,
|
|
vars,
|
|
...
|
|
}:
|
|
let
|
|
accent-lower = "lavender";
|
|
accent-upper = "Lavender";
|
|
flavor-lower = "mocha";
|
|
flavor-upper = "Mocha";
|
|
cfg = config.catppuccinTheming;
|
|
mono-font = "JetBrainsMono Nerd Font";
|
|
sans-font = "Inter";
|
|
sans-font-pkg = pkgs.inter;
|
|
#serif-font = "IBM Plex Serif";
|
|
GTK-THEME = "Breeze-Dark";
|
|
cursor-theme = "breeze_cursors";
|
|
in
|
|
#cursor-theme = "Catppuccin-${flavor-upper}-${accent-upper}";
|
|
{
|
|
options = {
|
|
catppuccinTheming = {
|
|
enable = lib.mkEnableOption "Enable catppuccinTheming in NixOS & home-manager";
|
|
};
|
|
};
|
|
config = lib.mkIf cfg.enable {
|
|
stylix = {
|
|
enable = true;
|
|
image = ./wallpapers/beautifulmountainscape.jpg;
|
|
};
|
|
|
|
catppuccin = {
|
|
enable = true;
|
|
accent = "${accent-lower}";
|
|
cache.enable = true;
|
|
flavor = "${flavor-lower}";
|
|
sddm = {
|
|
background = "/home/${username}/Pictures/wallpapers/lavender-wave-haikei.png";
|
|
font = "${mono-font}";
|
|
fontSize = "11";
|
|
};
|
|
};
|
|
console = {
|
|
packages = with pkgs; [ terminus_font ];
|
|
};
|
|
environment = {
|
|
sessionVariables = {
|
|
# Breaks theming but forces the color scheme
|
|
#GTK_THEME = "${GTK-THEME}";
|
|
};
|
|
systemPackages = with pkgs; [
|
|
(catppuccin-kde.override {
|
|
accents = [ "${accent-lower}" ];
|
|
flavour = [ "${flavor-lower}" ];
|
|
})
|
|
(catppuccin-papirus-folders.override {
|
|
accent = "${accent-lower}";
|
|
flavor = "${flavor-lower}";
|
|
})
|
|
#inputs.kwin-effects-forceblur.packages.${pkgs.system}.default
|
|
inputs.lightly.packages.${pkgs.system}.darkly-qt5
|
|
inputs.lightly.packages.${pkgs.system}.darkly-qt6
|
|
];
|
|
};
|
|
services = {
|
|
displayManager = {
|
|
sddm = {
|
|
settings = {
|
|
Theme = {
|
|
CursorTheme = "${cursor-theme}";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.dconf.enable = true;
|
|
|
|
home-manager.users.${username} =
|
|
{
|
|
inputs,
|
|
lib,
|
|
config,
|
|
username,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
catppuccin = {
|
|
enable = true;
|
|
accent = "${accent-lower}";
|
|
flavor = "${flavor-lower}";
|
|
cursors = {
|
|
enable = false;
|
|
accent = "${accent-lower}";
|
|
flavor = "${flavor-lower}";
|
|
};
|
|
};
|
|
|
|
# gtk = {
|
|
# enable = true;
|
|
# cursorTheme = {
|
|
# name = lib.mkDefault "${cursor-theme}";
|
|
# size = 24;
|
|
# };
|
|
# font = {
|
|
# name = "${sans-font}";
|
|
# size = 12;
|
|
# package = sans-font-pkg;
|
|
# };
|
|
# gtk2 = {
|
|
# configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
|
# # force = true; # https://github.com/nix-community/home-manager/pull/5263
|
|
# };
|
|
# gtk3 = {
|
|
# extraConfig = {
|
|
# gtk-application-prefer-dark-theme = true;
|
|
# gtk-button-images = true;
|
|
# gtk-decoration-layout = "icon:minimize,maximize,close";
|
|
# gtk-enable-animations = true;
|
|
# gtk-menu-images = true;
|
|
# gtk-modules = "colorreload-gtk-module";
|
|
# gtk-primary-button-warps-slider = true;
|
|
# gtk-sound-theme-name = "ocean";
|
|
# gtk-toolbar-style = "3";
|
|
# gtk-xft-antialias = 1;
|
|
# gtk-xft-hinting = 1;
|
|
# gtk-xft-hintstyle = "hintslight";
|
|
# gtk-xft-rgba = "rgb";
|
|
# };
|
|
# };
|
|
# gtk4 = {
|
|
# extraConfig = {
|
|
# gtk-decoration-layout = "icon:minimize,maximize,close";
|
|
# gtk-enable-animations = true;
|
|
# gtk-primary-button-warps-slider = true;
|
|
# gtk-sound-theme-name = "ocean";
|
|
# gtk-xft-antialias = 1;
|
|
# gtk-xft-hinting = 1;
|
|
# gtk-xft-hintstyle = "hintslight";
|
|
# gtk-xft-rgba = "rgb";
|
|
# };
|
|
# };
|
|
# /*
|
|
# theme = {
|
|
# name = "${GTK-THEME}";
|
|
# package = pkgs.kdePackages.breeze-gtk;
|
|
# };
|
|
# */
|
|
# };
|
|
home = {
|
|
file = {
|
|
# UMU cursor workaround
|
|
breeze-cursors = {
|
|
enable = true;
|
|
source = config.lib.file.mkOutOfStoreSymlink "${pkgs.kdePackages.breeze}/share/icons/breeze_cursors";
|
|
target = "${config.xdg.dataHome}/icons/breeze_cursors";
|
|
};
|
|
# Flatpak theming issue workarounds
|
|
catppuccin-gtk = {
|
|
enable = true;
|
|
source = config.lib.file.mkOutOfStoreSymlink "${pkgs.kdePackages.breeze-gtk}/share/themes/${GTK-THEME}";
|
|
target = "${config.xdg.dataHome}/themes/${GTK-THEME}";
|
|
};
|
|
catppuccin-ghostwriter = {
|
|
enable = true;
|
|
source = config.lib.file.mkOutOfStoreSymlink "${inputs.catppuccin-ghostwriter}/colours/Catppuccin-Latte-${flavor-upper}-${accent-upper}.json";
|
|
target = "${config.xdg.dataHome}/ghostwriter/themes/Catppuccin-Latte-${flavor-upper}-${accent-upper}.json";
|
|
};
|
|
catppuccin-halloy = {
|
|
enable = true;
|
|
source = config.lib.file.mkOutOfStoreSymlink "${inputs.catppuccin-halloy}/themes/catppuccin-${flavor-lower}.toml";
|
|
target = "${config.xdg.configHome}/halloy/themes/catppuccin-${flavor-lower}.toml";
|
|
};
|
|
catppuccin-heroic = {
|
|
enable = vars.gaming;
|
|
source = config.lib.file.mkOutOfStoreSymlink "${inputs.catppuccin-heroic}/themes/catppuccin-${flavor-lower}.css";
|
|
target = "Games/Heroic/catppuccin-${flavor-lower}.css";
|
|
};
|
|
catppuccin-obs-flatpak = {
|
|
enable = true;
|
|
recursive = true;
|
|
source = config.lib.file.mkOutOfStoreSymlink "${inputs.catppuccin-obs}/themes";
|
|
target = ".var/app/com.obsproject.Studio/config/obs-studio/themes";
|
|
};
|
|
catppuccin-powershell = {
|
|
enable = true;
|
|
source = config.lib.file.mkOutOfStoreSymlink "${inputs.catppuccin-powershell}";
|
|
target = "${config.xdg.dataHome}/powershell/Modules/Catppuccin";
|
|
};
|
|
catppuccin-vesktop = {
|
|
enable = true;
|
|
text = ''
|
|
@import url("https://catppuccin.github.io/discord/dist/catppuccin-${flavor-lower}-${accent-lower}.theme.css");
|
|
'';
|
|
target = "${config.xdg.configHome}/vesktop/themes/${flavor-lower}.theme.css";
|
|
};
|
|
catppuccin-zen-flatpak = {
|
|
enable = true;
|
|
source = config.lib.file.mkOutOfStoreSymlink "${inputs.catppuccin-zen}/themes/${flavor-upper}/${accent-upper}";
|
|
target = ".var/app/app.zen_browser.zen/.zen/${username}/chrome";
|
|
};
|
|
# cursor-theme-default = {
|
|
# enable = true;
|
|
# text = ''
|
|
# [Icon Theme]
|
|
# Inherits=${cursor-theme}
|
|
# '';
|
|
# target = "${config.xdg.dataHome}/icons/default/index.theme";
|
|
# };
|
|
klassy-config = {
|
|
enable = true;
|
|
text = ''
|
|
[ButtonBehaviour]
|
|
ShowCloseOutlineOnHoverActive=false
|
|
ShowCloseOutlineOnHoverInactive=false
|
|
ShowCloseOutlineOnPressActive=false
|
|
ShowCloseOutlineOnPressInactive=false
|
|
ShowOutlineOnHoverActive=false
|
|
ShowOutlineOnHoverInactive=false
|
|
ShowOutlineOnPressActive=false
|
|
ShowOutlineOnPressInactive=false
|
|
|
|
[ButtonColors]
|
|
ButtonBackgroundColorsActive=TitleBarTextNegativeClose
|
|
ButtonBackgroundColorsInactive=TitleBarTextNegativeClose
|
|
ButtonBackgroundOpacityActive=10
|
|
ButtonBackgroundOpacityInactive=10
|
|
ButtonOverrideColorsActiveClose={"BackgroundHover":["NegativeFullySaturated"],"BackgroundPress":["NegativeSaturated",80]}
|
|
ButtonOverrideColorsInactiveClose={"BackgroundHover":["NegativeFullySaturated"],"BackgroundPress":["NegativeSaturated",80]}
|
|
OnPoorIconContrastActive=Nothing
|
|
OnPoorIconContrastInactive=Nothing
|
|
|
|
[ButtonSizing]
|
|
ButtonCornerRadius=Custom
|
|
ButtonCustomCornerRadius=0
|
|
FullHeightButtonSpacingLeft=0
|
|
FullHeightButtonSpacingRight=0
|
|
FullHeightButtonWidthMarginRight=14
|
|
IntegratedRoundedRectangleBottomPadding=0.5
|
|
|
|
[ShadowStyle]
|
|
ShadowSize=ShadowSmall
|
|
|
|
[TitleBarOpacity]
|
|
ActiveTitleBarOpacity=75
|
|
|
|
[TitleBarSpacing]
|
|
LockTitleBarLeftRightMargins=false
|
|
PercentMaximizedTopBottomMargins=50
|
|
TitleAlignment=AlignLeft
|
|
TitleBarBottomMargin=2.25
|
|
TitleBarLeftMargin=2
|
|
TitleBarTopMargin=2.25
|
|
|
|
[Windeco]
|
|
BoldButtonIcons=BoldIconsFine
|
|
ButtonIconStyle=StyleSystemIconTheme
|
|
ButtonShape=ShapeFullHeightRectangle
|
|
ColorizeThinWindowOutlineWithButton=false
|
|
IconSize=IconMedium
|
|
WindowCornerRadius=8
|
|
|
|
[WindowOutlineStyle]
|
|
LockThinWindowOutlineStyleActiveInactive=true
|
|
ThinWindowOutlineStyleActive=WindowOutlineContrast
|
|
ThinWindowOutlineStyleInactive=WindowOutlineContrast
|
|
'';
|
|
target = "${config.xdg.configHome}/klassy/klassyrc";
|
|
};
|
|
powershell-profile = {
|
|
enable = true;
|
|
text = ''
|
|
Import-Module Catppuccin
|
|
$Flavor = $Catppuccin['${flavor-upper}']
|
|
'';
|
|
target = "${config.xdg.configHome}/powershell/Microsoft.PowerShell_profile.ps1";
|
|
};
|
|
};
|
|
packages = with pkgs; [
|
|
hicolor-icon-theme
|
|
vivid
|
|
## GNOME
|
|
adwaita-icon-theme
|
|
gnome-settings-daemon
|
|
gsettings-desktop-schemas
|
|
gsettings-qt
|
|
];
|
|
sessionVariables = {
|
|
GSETTINGS_BACKEND = "keyfile";
|
|
GTK_USE_PORTAL = "1";
|
|
LS_COLORS = "$(vivid generate catppuccin-${flavor-lower})";
|
|
XCURSOR_NAME = "${cursor-theme}";
|
|
XCURSOR_SIZE = "24";
|
|
};
|
|
};
|
|
programs = {
|
|
bat = {
|
|
config = {
|
|
pager = "less -FR";
|
|
};
|
|
};
|
|
btop = {
|
|
settings = {
|
|
theme_background = false;
|
|
};
|
|
};
|
|
foot = {
|
|
settings = {
|
|
colors = {
|
|
alpha = 0.7;
|
|
};
|
|
main = {
|
|
font = "${mono-font}:size=12";
|
|
};
|
|
};
|
|
};
|
|
git = {
|
|
delta = { };
|
|
};
|
|
kitty = {
|
|
font = {
|
|
name = "${mono-font}";
|
|
size = 14;
|
|
};
|
|
settings = {
|
|
background_opacity = "0.7";
|
|
};
|
|
};
|
|
lazygit = {
|
|
settings = {
|
|
gui = {
|
|
border = "single";
|
|
mainPanelSplitMode = "vertical";
|
|
nerdFontsVersion = "3";
|
|
scrollHeight = 10;
|
|
scrollOffMargin = 4;
|
|
showFileTree = false;
|
|
sidePanelWidth = 0.3333;
|
|
};
|
|
};
|
|
};
|
|
nixvim = {
|
|
colorschemes.catppuccin = {
|
|
enable = true;
|
|
settings = {
|
|
background.dark = "${flavor-lower}";
|
|
flavor = "${flavor-lower}";
|
|
integrations = {
|
|
cmp = true;
|
|
coc_nvim = true;
|
|
gitsigns = true;
|
|
markdown = true;
|
|
neotree = true;
|
|
overseer = true;
|
|
treesitter = true;
|
|
treesitter_context = true;
|
|
which_key = true;
|
|
};
|
|
term_colors = true;
|
|
transparentBackground = true;
|
|
};
|
|
};
|
|
};
|
|
nvf = {
|
|
settings = {
|
|
vim = {
|
|
theme = {
|
|
enable = true;
|
|
name = "catppuccin";
|
|
style = "mocha";
|
|
transparent = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
vscode = {
|
|
extensions = with inputs.nix-vscode-extensions.extensions.x86_64-linux.vscode-marketplace; [
|
|
catppuccin.catppuccin-vsc-icons
|
|
catppuccin.catppuccin-vsc
|
|
];
|
|
userSettings = {
|
|
"catppuccin.accentColor" = "${accent-lower}";
|
|
"catppuccin.customUIColors"."${flavor-lower}"."statusBar.foreground" = "accent";
|
|
"editor.fontFamily" = "'${mono-font}', 'monospace', monospace";
|
|
"editor.fontLigatures" = true;
|
|
"editor.fontSize" = 18;
|
|
"glassit.alpha" = 210;
|
|
"terminal.integrated.fontFamily" = "${mono-font}";
|
|
"terminal.integrated.fontSize" = 14;
|
|
"terminal.integrated.fontWeight" = "normal";
|
|
"workbench.colorTheme" = "Catppuccin ${flavor-upper}";
|
|
"workbench.iconTheme" = "catppuccin-${flavor-lower}";
|
|
};
|
|
};
|
|
};
|
|
services = {
|
|
flatpak = {
|
|
overrides = {
|
|
"com.fightcade.Fightcade" = {
|
|
Environment = {
|
|
GTK_THEME = "${GTK-THEME}";
|
|
};
|
|
};
|
|
"app.zen_browser.zen" = {
|
|
Environment = {
|
|
GTK_THEME = "${GTK-THEME}";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
# xsettingsd = {
|
|
# settings = {
|
|
# "Gtk/CursorThemeSize" = 24;
|
|
# "Gtk/CursorThemeName" = "${cursor-theme}";
|
|
# "Gtk/FontName" = "${sans-font}, 12";
|
|
# "Net/IconThemeName" = "Papirus-Dark";
|
|
# "Net/ThemeName" = "${GTK-THEME}";
|
|
# };
|
|
# };
|
|
};
|
|
|
|
# xresources = {
|
|
# properties = {
|
|
# "Xcursor.size" = 24;
|
|
# "Xcursor.theme" = "${cursor-theme}";
|
|
# "Xft.autohint" = 1;
|
|
# "Xft.lcdfilter" = "lcddefault";
|
|
# "Xft.hintstyle" = "hintfull";
|
|
# "Xft.hinting" = 1;
|
|
# "Xft.antialias" = 1;
|
|
# "Xft.rgba" = "rgb";
|
|
# # Catppuccin
|
|
# "*background" = "#1E1E2E";
|
|
# "*foreground" = "#CDD6F4";
|
|
# "*color0" = "#45475A";
|
|
# "*color8" = "#585B70";
|
|
# "*color1" = "#F38BA8";
|
|
# "*color9" = "#F38BA8";
|
|
# "*color2" = "#A6E3A1";
|
|
# "*color10" = "#A6E3A1";
|
|
# "*color3" = "#F9E2AF";
|
|
# "*color11" = "#F9E2AF";
|
|
# "*color4" = "#89B4FA";
|
|
# "*color12" = "#89B4FA";
|
|
# "*color5" = "#F5C2E7";
|
|
# "*color13" = "#F5C2E7";
|
|
# "*color6" = "#94E2D5";
|
|
# "*color14" = "#94E2D5";
|
|
# "*color7" = "#BAC2DE";
|
|
# "*color15" = "#A6ADC8";
|
|
# };
|
|
# };
|
|
};
|
|
};
|
|
}
|