Files
lux/modules/features/theme.nix
T
2026-04-26 22:37:43 +02:00

95 lines
2.0 KiB
Nix

{
config,
...
}:
let
repo = config.repo;
repoHelpers = repo.helpers;
in
{
flake.modules.nixos.theme =
{
pkgs,
...
}:
let
repoTheme = repo.theme;
cursorTheme = repoTheme.cursor // {
package = repoHelpers.resolvePackagePath {
inherit pkgs;
path = repoTheme.cursor.packagePath;
};
};
in
{
environment.systemPackages = [ cursorTheme.package ];
services.displayManager.sddm.settings = {
Theme = {
CursorTheme = cursorTheme.name;
CursorSize = cursorTheme.size;
};
};
};
flake.modules.homeManager.theme =
{ config, pkgs, ... }:
let
repoTheme = repo.theme;
cursorTheme = repoTheme.cursor // {
package = repoHelpers.resolvePackagePath {
inherit pkgs;
path = repoTheme.cursor.packagePath;
};
};
kanagawaThemeSrc = pkgs.fetchFromGitHub {
inherit (repoTheme.kanagawa)
hash
owner
repo
rev
;
};
kanagawaOverride = {
version = repoTheme.kanagawa.version;
src = kanagawaThemeSrc;
};
in
{
home.pointerCursor = {
inherit (cursorTheme)
name
package
size
;
dotIcons.enable = false;
gtk.enable = true;
};
gtk = {
enable = true;
gtk3.bookmarks = [
"sftp://orion Orion VPS"
];
theme = {
name = repoTheme.kanagawa.gtkThemeName;
package = pkgs.kanagawa-gtk-theme.overrideAttrs (_: kanagawaOverride);
};
gtk4.theme = {
inherit (config.gtk.theme) name package;
};
iconTheme = {
name = repoTheme.kanagawa.iconThemeName;
package = pkgs.kanagawa-icon-theme.overrideAttrs (_: kanagawaOverride);
};
};
qt = {
enable = true;
platformTheme.name = "gtk3";
};
};
}