ICESOUND(1)

πŸ’– icesound(1) β€” the User Commands era πŸ’–

okay so bestie, picture this: it's a User Commands situation, the manual page is called icesound, and it's about to make your desktop make noise. like, the good kind. periodt. πŸŽ€


✨ NAME ✨

icesound β€” play audio files when interesting GUI events happen πŸŽ΅πŸ¦‹


🌸 SYNOPSIS 🌸

icesound [OPTIONS]

πŸ’… DESCRIPTION πŸ’…

So icewm(1) β€” the window manager, you know her β€” generates what we call GUI events whenever something interesting happens. opening an app window? closing it? switching workspace? yeah. all of that. these GUI events are literally a property of the X root window, and icewm(1) updates that property every single time a new GUI event goes down. interested applications can just… listen for changes to that property. and there are nearly twenty GUI events defined. twenty! iconic. πŸ‘‘

icesound responds to these GUI events by playing audio files. which sound files, you ask? they're .wav files, and they live in a sounds sub-directory inside one of the icewm(1) configuration directories. so organized. πŸ—‚οΈβœ¨

icesound supports several common audio interfaces. the lineup is: ALSA, OSS and libAO. these must be enabled during configuration. and heads up β€” ALSA, OSS and libAO all require support for libsndfile, which is a very common library for reading audio files. no libsndfile, no vibes. 😭

🎧 ALSA

ALSA is rather involved to program and it works, but this could use more testing. it plays at most one sound at a time. one at a time, bestie. she does not multitask. πŸ’€

πŸŒ€ LibAO

LibAO is a cross-platform audio output library which is a convenient wrapper around a significant number of common audio interfaces. it has a simple configuration file, and that config file is documented in the libao.conf(5) manual page. go read it, iykyk. 🫢

πŸ”Š OSS

The Open Sound System (OSS) is a cross-platform sound interface, which is fully supported by icesound. she ate. πŸ”₯


When multiple audio interfaces are available, icesound will examine them all until it finds one which it can connect to, and then use that one. by default it prefers them in the order of: AO, ALSA, OSS. first match wins, no cap. ✨


🌈 OPTIONS 🌈

πŸ’– SPECIFIC OPTIONS πŸ’–

  • -d, --display=DISPLAY β€” the X11 display used by icewm(1) (default: $DISPLAY). πŸ–₯️
  • -s, --sample-dir=DIRECTORY β€” specifies a directory with sound files. the default is: $HOME/.config/icewm/sounds, $HOME/.icewm/sounds, CFGDIR/sounds and LIBDIR/sounds. see the output of "icewm --directories". πŸ“πŸŽΆ
  • -i, --interface={AO|ALSA|OSS}[,{AO|ALSA|OSS}]* β€” specifies the audio output interfaces. one or more of: AO, ALSA, OSS separated by comma's (","). πŸŽ›οΈ
  • -D, --device=DEVICE β€” backwards compatibility only: the default device. please prefer one of the -A, -O or -S options. (yes, she's a legacy icon, but she said prefer the others, so listen πŸ’…)
  • -O, --oss=DEVICE β€” specifies the OSS device (default: /dev/dsp). 🐚
  • -A, --alsa=DEVICE β€” specifies the ALSA device (default: "default"). the quotes are part of the vibe. 🌟
  • -z, --snooze=MILLISECONDS β€” specifies the snooze interval between sound events in milliseconds. default is 500 milliseconds. she naps, respectfully. 😴
  • -p, --play=SOUND β€” plays the given sound (name or number) and exits. one and done. 🎡
  • -l, --list-files β€” lists the available sound file paths and exits. πŸ“œ
  • --list-sounds β€” lists the supported sound file names and exits. πŸ””
  • --list-interfaces β€” lists the supported audio interfaces and exits. πŸ”Œ
  • -o, --output=FILE β€” redirect all output to FILE. a leading tilde or environment variable is expanded. πŸͺ„
  • -v, --verbose β€” be verbose and print some information when sound events occur. she'll narrate. πŸ—£οΈβœ¨

🧚 GENERAL OPTIONS 🧚

  • -h, --help β€” print a brief usage statement to stdout and exit. πŸ†˜
  • -V, --version β€” print the program version to stdout and exit. 🏷️
  • -C, --copying β€” print copying permissions to stdout for the program and exit. πŸ“„

πŸ¦‹ EXIT STATUS πŸ¦‹

  • 0 β€” Success. slay. πŸ’–
  • 1 β€” General error. 😭
  • 2 β€” Command line error. πŸ™ˆ
  • 3 β€” Subsystems error (i.e cannot connect to server). πŸ’€

⭐ SEE ALSO ⭐

icewm(1), libao.conf(5), padsp(1), aplay(1), alsamixer(1).

go read the whole friend group. πŸ«ΆπŸ“š


πŸ“ BUGS πŸ“

Please report bugs at <https://github.com/ice-wm/icewm/issues>. we love a bug report, fr fr. πŸ›βž‘οΈπŸ”₯


πŸ‘‘ AUTHOR πŸ‘‘

Brian Bidulock <mailto:bidulock@openss7.org>.

See --copying for full copyright notice and copying permissions. πŸ’Œ


πŸ’œ LICENSE πŸ’œ

IceWM is licensed under the GNU Library General Public License. See the COPYING file in the distribution or use the --copying flag to display copying permissions. πŸ“œβœ¨


bestie reminder: none of these flags are optional-knowledge. every single one is in here for a reason, so don't come for me if you forget -p takes a sound name or number. i warned you. πŸ’…

and that's the whole page, mwah πŸ’‹ β€” this little beauty is from icewm 4.1.0, dated 2026-08-06, and it's the ICESOUND(1) page out of the User Commands manual. go make your desktop noisy. πŸŽ€πŸŒˆπŸ¦‹

πŸ“¦ where this page comes from