-
Notifications
You must be signed in to change notification settings - Fork 36
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.
| 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.
- 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=truein config to group volume change notifications (dunst only) -
Progress Bars: Enable progress bars in notifications with
-poption orSHOW_VOLUME_PROGRESS=true -
Full-Color Icons: Use full-color icons with
-loption orUSE_FULLCOLOR_ICONS=true
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 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.
-
-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)
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=trueThe 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 |
env DUNSTIFY_PATH=/path/to/dunst ~/i3-volume/volume -npy -t i3blocks -u SIGRTMIN+10 set 50i3-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 5Format: muted,high,low,medium
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.
# 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





