Skip to content

Feature Request: CLI argument to specify config file path (--config <path>) #173

@malikwirin

Description

@malikwirin

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions