Skip to content
Michael Palmos edited this page Aug 25, 2026 · 22 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
icon_theme string The icon theme to use when matching named icons.
Default: "Adwaita"
icon_theme: "Adwaita"
history_length 'int` How many notifications are kept in history.
Each notification is roughly 256 bytes (excluding buffers), so you can store heaps.
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
trim_whitespace bool Trim leading and trailing whitespace from the summary and body of received notifications. Some clients send whitespace that you usually don't actually want.
Default: true
trim_whitespace: true
font_options FontOptions How text is rasterized (hinting and antialiasing). See Font Options below.
Default: see below
font_options: (hint_style: Slight)
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.

Font Options

The font_options property controls how glyphs are rasterized. Every sub-property is optional, and each one is applied over your system's setting on its own, so you can override one and leave the rest as System.

Careful with System: it means the X resource database (Xft.antialias, Xft.hintstyle, Xft.rgba — what xrdb -query prints), not fontconfig, so your ~/.config/fontconfig settings don't reach Wired. When those resources aren't set — which is common under XWayland, and on window managers that don't run xrdb — cairo falls back to full hinting. That's why hint_style defaults to Slight rather than System. Everything else defaults to System, so your existing setup is left alone.

Properties (all optional)

Name Type Description Example
antialias Antialias How glyphs are smoothed. One of System, None, Gray, Subpixel.
Subpixel (aka LCD/ClearType) generally looks wrong on translucent windows, so Gray is worth trying if your system is set up for subpixel antialiasing and notifications look fringed.
Default: System
antialias: Gray
hint_style HintStyle How far glyph outlines are distorted to fit the pixel grid. One of System, None, Slight, Medium, Full.
Full gives crisper stems, but Pango positions glyphs using unhinted advances, so the distorted outlines end up with uneven gaps between letters. It's worst on fonts that don't ship hinting instructions of their own (e.g. Ubuntu), where the autohinter takes over.
Default: Slight
hint_style: Slight
hint_metrics HintMetrics Whether glyph advances are rounded to whole pixels. One of System, Off, On.
Off places glyphs at fractional positions; smoother, but spacing can look irregular. Worth trying if letter spacing still looks off to you with hint_style: Slight.
Default: On, which is also what cairo uses on X11
hint_metrics: On
subpixel_order SubpixelOrder The subpixel layout of your display. One of System, Rgb, Bgr, Vrgb, Vbgr.
Only used when antialias is Subpixel.
Default: System
subpixel_order: Rgb

Example

font_options: (
    antialias: System,
    hint_style: Slight,
    hint_metrics: On,
    subpixel_order: System,
),

Clone this wiki locally