feat(gui): switch to catppuccin module

This commit is contained in:
514fpv 2024-06-24 09:56:31 +08:00
parent 2751536816
commit a9b24989ac
Signed by: koishi
SSH key fingerprint: SHA256:axz0uIzzY+5W19i7QOUuiw5LSqhKfCBKPf3L4xFRxLw
13 changed files with 91 additions and 361 deletions

BIN
home/catppuccin/flake.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

59
home/catppuccin/home.nix Normal file
View file

@ -0,0 +1,59 @@
{ pkgs
, lib
, config
, ... }: with lib; let
cfg = config.passthrough.catppuccin;
palette = (import ./palette.nix).${cfg.palette};
in mkIf cfg.enable {
catppuccin = {
enable = true;
accent = "pink";
flavor = "mocha";
};
gtk.theme = { inherit (cfg.gtk) package name; };
home.pointerCursor = { inherit (cfg.cursor) package name; };
# sway colour palette override
wayland.windowManager.sway.config = {
colors = {
focused = { border = "$lavender"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$lavender"; };
focusedInactive = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$overlay0"; };
unfocused = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$rosewater"; childBorder = "$overlay0"; };
urgent = { border = "$peach"; background = "$base"; text = "$peach"; indicator = "$overlay0"; childBorder = "$peach"; };
placeholder = { border = "$overlay0"; background = "$base"; text = "$text"; indicator = "$overlay0"; childBorder = "$overlay0"; };
background = "$base";
};
bars = mkForce [ {
colors = {
background = "$base";
statusline = "$text";
focusedStatusline = "$text";
focusedSeparator = "$base";
focusedWorkspace = { border = "$base"; background = "$base"; text = "$green"; };
activeWorkspace = { border = "$base"; background = "$base"; text = "$blue"; };
inactiveWorkspace = { border = "$base"; background = "$base"; text = "$surface1"; };
urgentWorkspace = { border = "$base"; background = "$base"; text = "$surface1"; };
bindingMode = { border = "$base"; background = "$base"; text = "$surface1"; };
};
mode = "dock";
position = "bottom";
workspaceButtons = true;
workspaceNumbers = true;
statusCommand = "${pkgs.i3status}/bin/i3status";
fonts = {
names = [ "monospace" ];
size = 8.0;
};
trayOutput = "primary";
} ];
output."*".bg = mkForce "${./flake.png} fill";
gaps.inner = 12;
gaps.outer = 5;
# dodge the status bar
gaps.bottom = 0;
};
}

77
home/catppuccin/nixos.nix Normal file
View file

@ -0,0 +1,77 @@
{ pkgs
, lib
, config
, ... }: with lib; let
gui = with config.global.gpu; enable && session;
cfg = config.home.catppuccin;
in {
options.home.catppuccin = {
enable = mkEnableOption "catppuccin colour scheme" // { default = gui; };
gtk = {
package = mkOption {
type = with types; package;
default = (pkgs.catppuccin-gtk.overrideAttrs {
src = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "gtk";
rev = "v1.0.3";
fetchSubmodules = true;
hash = "sha256-q5/VcFsm3vNEw55zq/vcM11eo456SYE5TQA3g2VQjGc=";
};
postUnpack = "";
}).override {
accents = [ "pink" ];
size = "compact";
#tweaks = [ "rimless" "black" ];
variant = "mocha";
};
description = "catppuccin gtk theme package";
};
name = mkOption {
type = with types; str;
default = "catppuccin-mocha-pink-compact+default";
description = "name of catppuccin gtk theme";
};
};
cursor = {
package = mkOption {
type = with types; package;
default = pkgs.catppuccin-cursors.mochaDark;
description = "catppuccin cursor theme package";
};
name = mkOption {
type = with types; str;
default = "catppuccin-mocha-dark-cursors";
description = "name of catppuccin cursor theme";
};
};
};
config = {
users.homeModules = [
# this module passes catppuccin configuration to home-manager
{ passthrough.catppuccin = cfg; }
];
catppuccin.enable = cfg.enable;
# gtk and cursor themes
environment.systemPackages = with cfg; mkIf enable [
gtk.package cursor.package
];
# override greetd theme
programs.regreet = mkIf cfg.enable {
settings = {
background.path = ./solid.png;
GTK = {
theme_name = cfg.gtk.name;
cursor_theme_name = cfg.cursor.name;
};
};
};
};
}

BIN
home/catppuccin/solid.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB