`core/home/config/nomarchy/default/mako/core.ini` defines the Nomarchy notification UX — urgency rules, app filters (Spotify silenced), do-not-disturb mode, and button handlers for "Setup Wi-Fi" / "Update System" / "Learn Keybindings" notifications. The file was deployed via the bulk `nomarchy/` dir to `~/.config/nomarchy/default/mako/core.ini`, but mako reads `~/.config/mako/config` by default and `autostart.conf` launches it without `--config`. So mako ran with stock defaults and the entire themed UX was inert. Added an explicit `xdg.configFile."mako/config".source` line in core/home/configs.nix pointing at the existing themed file. mako now picks up the Nomarchy rules out of the box. Found during Pillar 8 audit of the desktop stack.
68 lines
2.0 KiB
Nix
68 lines
2.0 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
let
|
|
configDir = ./config;
|
|
|
|
# Explicit list of config items to manage
|
|
# This replaces dynamic builtins.readDir for clarity and faster evaluation
|
|
configItems = {
|
|
# Directories
|
|
fastfetch = "directory";
|
|
fcitx5 = "directory";
|
|
fontconfig = "directory";
|
|
git = "directory";
|
|
imv = "directory";
|
|
"nautilus-python" = "directory";
|
|
nomarchy = "directory";
|
|
"nomarchy-skill" = "directory";
|
|
uwsm = "directory";
|
|
wiremix = "directory";
|
|
|
|
# Files
|
|
"brave-flags.conf" = "regular";
|
|
"chromium-flags.conf" = "regular";
|
|
"starship.toml" = "regular";
|
|
"xdg-terminals.list" = "regular";
|
|
};
|
|
|
|
# Files/directories handled elsewhere or not intended for ~/.config/
|
|
# - nomarchy.ttf: font file, not a config
|
|
# - waybar: handled in waybar.nix
|
|
# - walker: handled in walker.nix
|
|
# - alacritty: handled in alacritty.nix
|
|
# - swayosd: handled in swayosd.nix
|
|
|
|
# Check for user overrides
|
|
userConfigDir = config.nomarchy.configOverrides;
|
|
|
|
# Generate the xdg.configFile attribute set
|
|
makeMapping = name: type:
|
|
let
|
|
source = if userConfigDir != null then "${userConfigDir}/${name}" else "${configDir}/${name}";
|
|
in {
|
|
inherit name;
|
|
value = lib.mkDefault {
|
|
inherit source;
|
|
recursive = type == "directory";
|
|
};
|
|
};
|
|
|
|
configMappings = lib.mapAttrs' (name: type: makeMapping name type) configItems;
|
|
|
|
in
|
|
{
|
|
xdg.configFile = configMappings // {
|
|
# mako reads ~/.config/mako/config by default. The themed Nomarchy
|
|
# config (urgency rules, app filters, button handlers) lives under
|
|
# nomarchy/default/mako/core.ini for organizational reasons, so wire
|
|
# it explicitly here. Without this, mako silently falls back to its
|
|
# built-in defaults and every Nomarchy notification customization is
|
|
# inert.
|
|
"mako/config".source = lib.mkDefault ./config/nomarchy/default/mako/core.ini;
|
|
};
|
|
|
|
home.file.".XCompose" = lib.mkDefault {
|
|
source = ./config/nomarchy/default/xcompose;
|
|
};
|
|
}
|