Skip to content
Michael Palmos edited this page Oct 5, 2025 · 20 revisions

Configuration

File

Wired doesn't create a config for you. If a config isn't found, Wired will use the default config, which can be found in the root of the repository.

Wired looks for a config file in the following locations:

  1. $XDG_CONFIG_HOME/wired/wired.ron
  2. $XDG_CONFIG_HOME/wired.ron
  3. $HOME/.config/wired/wired.ron
  4. $HOME/wired.ron

Required Properties

Name Type Description Example
max_notifications int Maximum number of notifications shown at any one time. A value of 0 means there is no limit. max_notifications: 0
timeout int The default timeout, in milliseconds, for notifications that don't have an initial timeout set. 1000ms = 1s. timeout: 10000
poll_interval int The update rate, in milliseconds, when notifications are present. This decides how often notifications update, including how often they redraw (if required). 16ms ~= 60hz poll_interval: 16
shortcuts ShortcutsConfig Configuration for preset shortcuts. See the shortcuts config page for more information. See shortcuts page.

Optional Properties

Name Type Description Example
history_length 'int` How many notifications are kept in history.
Each notification is roughly 256 bytes (excluding buffers), so do the math there.
Default: 10
history_length: 10
replacing_enabled bool Enable/disable replacement functionality.
If this is disabled, replacement requests will just send a new notification.
E.g., with replacing_enabled: true, Pidgin will only show the latest message from each contact, instead of sending a new one for each message.
Default: true
replacing_enabled: true
replacing_resets_timeout bool Whether a notification should reset its timeout when it is replaced.
No effect if replacing_enabled is false.
Default: false
replacing_resets_timeout: false
closing_enabled bool Enable/disable closing functionality.
You can still close notifications yourself, apps just can't do it for you.
Default: true
closing_enabled: true
idle_threshold int Wired will pause notifications if you are idle (no mouse or keyboard input) for longer than idle_threshold seconds.
Notifications are not automatically unpaused on wake, and will need to be manually cleared.
Default: None (disabled)
idle_threshold: 3600
idle_poll_interval int The update rate, in milliseconds, when no notifications are present. This mainly controls how often Wired polls to see if there's a new notification, so reducing this will reduce 'latency' of receiving first notifications.
Default: 500
idle_poll_interval: 500
notify_on_reload bool Whether a notification should be sent when the config is reloaded.
Default: true
notify_on_reload: true
notifications_spawn_paused bool Notifications will spawn paused, and have to be manually unpaused or cleared by the user, unless unpause_on_input is also set. notifications_spawn_paused: false
unpause_on_input bool Unpause notifications when we receive any input after being idle for longer than 1 second. Note that no distinction is made between manually paused notifications and idle paused/spawned notifications. unpause_on_input: false
focus_follows FollowMode When a NotificationBlock has monitor: -1 (i.e. should follow active monitor, then what input should we use to determine the active monitor? focus_follows: Mouse
focus_follows: Window
print_to_file string Enable printing notification data to a file, which can be useful for scripting purposes. The data is written as JSON.
Default: None (disabled)
print_to_file: "/tmp/wired.log"
min_window_width int Minimum window width. This and min_window_height are used to create the base rect that the notification grows within.
The notification window will never be smaller than this.
A value of 1 means that the window will generally always resize with the notification, unless you have a 1x1 pixel notification.
Default: 1
min_window_width: 1
min_window_height int Minimum window height (see above).
Default: 1
min_window_height: 1
debug bool Enable/disable debug rendering.
Default: false
debug: false
debug_color Color Primary color for debug rectangles.
Default: Color(r: 0.0, g: 1.0, b: 0.0, a: 1.0)
debug_color: Color(r: 0.0, g: 1.0, b: 0.0, a: 1.0)
debug_color_alt Color Secondary color for debug rectangles.
Default: Color(r: 1.0, g: 0.0, b: 0.0, a: 1.0)
debug_color_alt: Color(r: 1.0, g: 0.0, b: 0.0, a: 1.0)

Shortcuts

The shortcuts property lets you set some shortcuts for predefined actions on notifications. These are just mouse shortcuts for now, since I'm not sure how/if I want to do keyboard shortcuts for now.

Since they're just mouse buttons, all these shortcuts are ints, described by the following:

Mouse Button Corresponding Int
Left Mouse 1
Right Mouse 2
Middle Mouse 3
Other Not sure, but my side buttons are 7 and 8.

Properties (all optional)

Name Type Description Example
notification_interact int Interacts with a block within a notification. notification_interact: 1
notification_close int Closes the selected notification. notification_close: 2
notification_closeall int Closes all current notifications. notification_closeall: 3
notification_pause int Pauses the selected notification. notification_pause: 1
notification_action1 int Triggers the default action for the notification. notification_action1: 8
notification_action2 int Triggers the second action (if any) for the notification. notification_action2: 1
notification_action3 int Triggers the third action (if any) for the notification. notification_action3: 1
notification_action4 int Triggers the fourth action (if any) for the notification. notification_action4: 1

Note on Action Ordering

The order of actions is set by the notification sender and so is totally arbitrary. The only guarantee is that the default (notification_action1) will always be the primary action.

The vast majority of notifications do not have any actions besides the default, so this is mainly here to support edge cases.

Clone this wiki locally