nixos/home/catppuccin/gui.nix
2025-01-13 11:52:09 +08:00

122 lines
2.9 KiB
Nix

{
pkgs,
lib,
config,
...
}:
with lib;
let
cfg = config.passthrough.catppuccin;
palette =
(lib.importJSON "${config.catppuccin.sources.palette}/palette.json")
.${config.catppuccin.flavor}.colors;
in
mkIf cfg.enable {
gtk.theme = { inherit (cfg.gtk) package name; };
qt.style.name = "kvantum";
qt.platformTheme.name = "kvantum";
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;
};
# i3status colour palette override
programs.i3status.general = with palette; {
color_good = lavender.hex;
color_degraded = yellow.hex;
color_bad = red.hex;
};
}