Skip to content
Michael Palmos edited this page May 3, 2023 · 19 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
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.