Skip to content
Beau Hastings edited this page Jan 1, 2026 · 11 revisions

Notifications

i3-volume supports multiple methods of displaying on-screen notifications for volume changes.

The standard and recommended method is with a libnotify compatible notification daemon such as notify-osd and dunst. Some alternatives include xob and xosd. xob is lightweight and has minimal dependencies, but has a limited subset of features (such as the current lack of support for icons). xosd is another lightweight alternative with a limited feature set, but is also very customizable. herbe is a minimal, lightweight, daemon-less program for displaying on-screen notifications without the need for D-Bus.

Examples

notify-osd dunst xob
xosd herbe volnoti
kosd

If you are using dunst, you may optionally choose to use dunstify instead of notify-send by specifying the -y option or setting USE_DUNSTIFY=true in your config file.

Notification Features

  • Sink Information: Notifications show sink name when multiple sinks are available
  • Port Information: Port information is displayed in notifications when available (BETA/EXPERIMENTAL)
  • Port Change Detection: Notifications automatically show when active port changes
  • Auto-Suggestions: When a new port becomes available, you'll receive a notification suggesting to switch to it
  • Enhanced Context: Sink and port changes trigger enhanced notifications with context
  • Notification Grouping: Set NOTIFICATION_GROUP=true in config to group volume change notifications (dunst only)
  • Progress Bars: Enable progress bars in notifications with -p option or SHOW_VOLUME_PROGRESS=true
  • Full-Color Icons: Use full-color icons with -l option or USE_FULLCOLOR_ICONS=true

Using xob

Read the wiki.

Using XOSD

Read the wiki.

Using herbe

Read the wiki.

Using KOSD

Read the wiki.

Custom Notification Plugins

i3-volume supports a plugin system that allows you to create custom notification methods. This is useful for integrating with custom notification services, webhooks, or any other notification system.

Read the Plugins documentation for detailed information on creating custom notification plugins.

Expiration / Timeout

Expiration time of notifications for libnotify-compatible daemons can be specified using the -e <time_in_milliseconds> option. Default is 1500 ms. (Ubuntu's Notify OSD and GNOME Shell both ignore the expiration parameter.) It can also be used with xosd.

With xob you can't specify the expiration with i3-volume, instead you must specify the timeout on the xob binary itself with the -t option.

Notification Options

Command-Line Options

  • -n - Enable notifications
  • -q, --no-notify - Disable notifications (quiet mode)
  • -N <method> - Specify notification method (default: libnotify)
  • -p - Enable progress bar in notifications
  • -L <placement> - Progress bar placement (body or summary, default: summary, requires -p)
  • -e <ms> - Notification expiration time in milliseconds (default: 1500)
  • -l - Use full-color icons instead of symbolic
  • -S <suffix> - Add suffix to symbolic icon names
  • -y - Use dunstify instead of notify-send (dunst only)

Configuration File Options

All notification options can also be set in the config file:

# Notification method
NOTIFICATION_METHOD="dunst"

# Enable/disable notifications
DISPLAY_NOTIFICATIONS=true

# Use dunstify
USE_DUNSTIFY=true

# Full-color icons
USE_FULLCOLOR_ICONS=true

# Progress bar
SHOW_VOLUME_PROGRESS=true
PROGRESS_PLACEMENT="body"  # or "summary"

# Expiration time
EXPIRES=2000

# Notification grouping (dunst only)
NOTIFICATION_GROUP=true

Custom Paths

The following environment variables can be set to specify the path to notification programs if not in your $PATH:

Variable Description
$DUNSTIFY_PATH Path to dunstify
$NOTIFY_SEND_PATH Path to notify-send
$XOSD_PATH Path to osd_cat
$HERBE_PATH Path to herbe
$VOLNOTI_PATH Path to volnoti-show
$CANBERRA_PATH Path to canberra-gtk-play
$NOTIFY_PATH Path to command that sends notifications

Example

env DUNSTIFY_PATH=/path/to/dunst ~/i3-volume/volume -npy -t i3blocks -u SIGRTMIN+10 set 50

Notification Icons

i3-volume uses different icons based on volume level:

  • Muted: audio-volume-muted / audio-volume-muted-symbolic
  • Low (0-33%): audio-volume-low / audio-volume-low-symbolic
  • Medium (34-66%): audio-volume-medium / audio-volume-medium-symbolic
  • High (67-100%): audio-volume-high / audio-volume-high-symbolic

You can customize icons using the -j option with emoji:

volume -j "🔇,🔊,🔉,🔊" up 5

Format: muted,high,low,medium

Notification Grouping (dunst only)

When NOTIFICATION_GROUP=true is set, volume change notifications are grouped together. This prevents notification spam when rapidly changing volume and provides a cleaner notification experience.

Examples

# Basic notification
volume -n up 5

# Use specific notification method
volume -n -N dunst up 5
volume -n -N xob up 5

# With progress bar
volume -n -p up 5

# With full-color icons
volume -n -l up 5

# Custom expiration
volume -n -e 3000 up 5

# Combined options
volume -n -N dunst -p -l -e 2000 up 5

Clone this wiki locally