One of my favorite things about keyboards in the past few decades (and I really like keyboards) are media keys. Play, pause, mute... and most important, the raise and lower volume keys. Tying these functions to my keyboard make it simple and quick to change what's happening with my computer's sounds.
Usually these are set to sensible default behaviors in most Linux distributions,
but I tend to roll my own desktops. When you're gluing together your own window
manager, applications, and sessions, you don't get much for free! I had to set
up my own key bindings for media magic, and while most media key shortcuts are
handled by the applications making the sounds (or a middle man like
volume is not.
Here are the commands I used to raise, lower, and mute my volume with Pulseaudio:
pactl set-sink-volume @DEFAULT_SINK@ +5% # Increase sound volume by 5% pactl set-sink-volume @DEFAULT_SINK@ -5% # Decrease sound volume pactl set-sink-mute @DEFAULT_SINK@ toggle # Mute/unmute all sound
@DEFAULT_SINK@ picks whatever sound device is set to default, which
means that it will switch to headphones or whatever new sound device you plug
in, and switch back when it is removed.
Here is the full configuration lines for the i3/sway window managers:
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle