Files
Nomarchy/modules/home/theme-files.nix
2026-04-08 19:26:34 +01:00

42 lines
1.6 KiB
Nix

{ config, lib, ... }:
{
xdg.configFile."nomarchy/current/theme" = {
source = ../../assets/themes/${config.nomarchy.theme};
recursive = true;
};
# Ensure theme-specific hyprland config exists, fallback to nord if not
xdg.configFile."nomarchy/current/theme/hyprland.conf" = lib.mkIf (! builtins.pathExists (../../assets/themes + "/${config.nomarchy.theme}/hyprland.conf")) {
source = ../../assets/themes/nord/hyprland.conf;
};
xdg.configFile."nomarchy/current/theme.name".text = config.nomarchy.theme;
# Expose branding assets
xdg.configFile."nomarchy/branding/logo.png".source = ../../assets/branding/logo.png;
xdg.configFile."nomarchy/branding/logo.txt".source = ../../assets/branding/logo.txt;
xdg.configFile."nomarchy/branding/logo.svg".source = ../../assets/branding/logo.svg;
xdg.configFile."nomarchy/branding/icon.png".source = ../../assets/branding/icon.png;
xdg.configFile."nomarchy/branding/icon.txt".source = ../../assets/branding/icon.txt;
# Expose all themes to the system via local share for script accessibility
# We filter out images to prevent Nix Store bloat
xdg.dataFile."nomarchy/themes".source = builtins.path {
name = "nomarchy-themes-no-images";
path = ../../assets/themes;
filter = path: type:
let
baseName = baseNameOf path;
in
! (type == "regular" && (
lib.hasSuffix ".jpg" baseName ||
lib.hasSuffix ".png" baseName ||
lib.hasSuffix ".jpeg" baseName
));
};
# Nautilus python extensions
xdg.dataFile."nautilus-python/extensions/localsend.py".source = ../../assets/nautilus-python/extensions/localsend.py;
}