-
Notifications
You must be signed in to change notification settings - Fork 36
Keybindings
Examples of setting up keybindings with different programs to use i3-volume with your volume keys.
Note: For complete installation instructions, see Installation. This page focuses specifically on keybinding configuration.
i3-volume uses PipeWire/WirePlumber for audio control. Review the lines below and append to ~/.config/i3/config:
# Path to volume control, without trailing slash
set $volumepath ~/i3-volume
# Command for the status line
# ie: i3blocks, i3status
set $statuscmd i3blocks
# Signal used to update the status line
# i3blocks uses SIGRTMIN+10 by default
# i3status uses SIGUSR1 by default
set $statussig SIGRTMIN+10
# Volume control keybindings
# Append "-s <sink_name>" to override default sink
bindsym XF86AudioRaiseVolume exec --no-startup-id $volumepath/volume -n -t $statuscmd -u $statussig up 5
bindsym XF86AudioLowerVolume exec --no-startup-id $volumepath/volume -n -t $statuscmd -u $statussig down 5
bindsym XF86AudioMute exec --no-startup-id $volumepath/volume -n -t $statuscmd -u $statussig mute
Additional keybinding examples:
Microphone control:
bindsym XF86AudioMicMute exec --no-startup-id $volumepath/volume -n -t $statuscmd -u $statussig mic mute
Sink switching:
bindsym $mod+F8 exec --no-startup-id $volumepath/volume -n -t $statuscmd -u $statussig next
bindsym $mod+Shift+F8 exec --no-startup-id $volumepath/volume -n -t $statuscmd -u $statussig prev
The commands below do not update your statusbar such as i3status or i3blocks. To do that you have to append -t i3status -u SIGUSR1 or -t i3blocks -u SIGRTMIN+10 to the command.
Review the lines below and append to your ~/.config/sxhkd/sxhkdrc:
XF86Audio{Mute,LowerVolume,RaiseVolume}
~/i3-volume/volume -n {mute,down 5,up 5}
Additional examples:
Microphone control:
XF86AudioMicMute
~/i3-volume/volume -n mic mute
Sink switching:
super + {F8,shift + F8}
~/i3-volume/volume -n {next,prev}
# Fine control (smaller steps)
bindsym $mod+Shift+XF86AudioRaiseVolume exec --no-startup-id ~/i3-volume/volume -n up 2
bindsym $mod+Shift+XF86AudioLowerVolume exec --no-startup-id ~/i3-volume/volume -n down 2
# Fade volume changes
bindsym $mod+XF86AudioRaiseVolume exec --no-startup-id ~/i3-volume/volume -n -f 500 up 5
bindsym $mod+XF86AudioLowerVolume exec --no-startup-id ~/i3-volume/volume -n -f 500 down 5
# Volume boost (temporary)
bindsym $mod+b exec --no-startup-id ~/i3-volume/volume -n boost 20 30# Quick profile switching
bindsym $mod+p exec --no-startup-id ~/i3-volume/volume -n profile quiet
bindsym $mod+Shift+p exec --no-startup-id ~/i3-volume/volume -n profile loud# Control specific applications
bindsym $mod+Control+XF86AudioRaiseVolume exec --no-startup-id ~/i3-volume/volume -n app firefox up 5
bindsym $mod+Control+XF86AudioLowerVolume exec --no-startup-id ~/i3-volume/volume -n app firefox down 5# Adjust stereo balance
bindsym $mod+Left exec --no-startup-id ~/i3-volume/volume -n balance -10
bindsym $mod+Right exec --no-startup-id ~/i3-volume/volume -n balance +10
bindsym $mod+Down exec --no-startup-id ~/i3-volume/volume -n balance 0Instead of specifying options in every keybinding, set them in your config file:
# ~/.config/i3-volume/config
DISPLAY_NOTIFICATIONS=true
NOTIFICATION_METHOD="dunst"
STATUSLINE="i3blocks"
SIGNAL="SIGRTMIN+10"Then your keybindings can be simpler:
bindsym XF86AudioRaiseVolume exec --no-startup-id ~/i3-volume/volume up 5Test your keybindings work:
# Test directly
~/i3-volume/volume up 5
# Test with notification
~/i3-volume/volume -n up 5
# Test with status bar update
~/i3-volume/volume -t i3blocks -u SIGRTMIN+10 up 5- Installation - Complete installation guide
- Configuration - Configuration options
- Examples - More keybinding examples
- Features - All available features
- Getting Started - Setup guide