Problem / Use Case
I'm using NixOS with Home Manager and run multiple desktop environments/window managers (e.g., Hyprland and others). I want to use different wired configurations depending on which environment I'm currently in.
Current limitation
wired only searches for config files in predefined locations:
$XDG_CONFIG_HOME/wired/wired.ron
~/.config/wired/wired.ron
~/wired.ron
This means I can only have one global config that applies system-wide, regardless of which desktop environment is running.
Why symlinking doesn't solve this
The typical Home Manager approach (symlinking config into ~/.config/wired/) creates a system-wide configuration that applies to all sessions. I cannot have different configs for different environments (e.g., different offsets/layouts for Hyprland vs. GNOME vs. Sway).
Requested Feature
Add a CLI argument to specify a custom config file path:
wired --config /path/to/custom/wired.ron
or
wired -c /path/to/custom/wired.ron
How this would be used
In my Hyprland config (NixOS/Home Manager), I would launch wired with a Hyprland-specific config stored in the Nix store:
exec-once = [
"${pkgs.wired}/bin/wired --config ${./hyprland-wired.ron}"
]
In a different environment (e.g., Sway), I could use a different config:
exec-once = [
"${pkgs.wired}/bin/wired --config ${./sway-wired.ron}"
]
This would allow environment-specific notification layouts (e.g., different offsets for different panel/bar configurations) without conflicts.
Benefits
- Per-environment configs: Different notification styles/positions for different desktop environments
- Declarative config management: Especially useful for NixOS, where configs are typically stored read-only in
/nix/store
- No global state: Avoids the need for a single system-wide config in
~/.config
- Better Home Manager integration: Allows managing multiple wired configs as separate Nix derivations
Workaround (current)
The only current workaround is to manipulate XDG_CONFIG_HOME per environment or use wrapper scripts that copy configs before launching, which is less elegant and creates mutable state.
Problem / Use Case
I'm using NixOS with Home Manager and run multiple desktop environments/window managers (e.g., Hyprland and others). I want to use different
wiredconfigurations depending on which environment I'm currently in.Current limitation
wiredonly searches for config files in predefined locations:$XDG_CONFIG_HOME/wired/wired.ron~/.config/wired/wired.ron~/wired.ronThis means I can only have one global config that applies system-wide, regardless of which desktop environment is running.
Why symlinking doesn't solve this
The typical Home Manager approach (symlinking config into
~/.config/wired/) creates a system-wide configuration that applies to all sessions. I cannot have different configs for different environments (e.g., different offsets/layouts for Hyprland vs. GNOME vs. Sway).Requested Feature
Add a CLI argument to specify a custom config file path:
or
How this would be used
In my Hyprland config (NixOS/Home Manager), I would launch wired with a Hyprland-specific config stored in the Nix store:
In a different environment (e.g., Sway), I could use a different config:
This would allow environment-specific notification layouts (e.g., different offsets for different panel/bar configurations) without conflicts.
Benefits
/nix/store~/.configWorkaround (current)
The only current workaround is to manipulate
XDG_CONFIG_HOMEper environment or use wrapper scripts that copy configs before launching, which is less elegant and creates mutable state.