<commit_before>ICESOUND(1)
==========
:doctype: manpage


NAME
----
icesound - play audio files when interesting GUI events happen


SYNOPSIS
--------
*icesound* ['OPTIONS']


DESCRIPTION
-----------
The IceWM window manager can be configured to generate
so-called GUI events in response to interesting actions,
like opening or closing of application windows,
switching of workspace, etc.
GUI events are a property of the root window.
IceWM changes this property when a new GUI event occurs.
Interested applications can listen for changes to this property.
GUI events are an optional feature of IceWM.
It must be explicitly enabled by giving the
`--enable-guievents` option during configuration.
There are nearly twenty GUI events defined, but about
three of these are not currently implemented.

Icesound is an application, which is part of the IceWM
suite of applications, which responds to these GUI events
by playing audio files. These sound files are '.WAV' files
located in a `sounds` subdirectory in one of the IceWM
configuration directories.

Icesound supports several common audio interfaces.
These are: ALSA, ESounD, OSS and libAO.
Except for OSS, these must be enabled during configuration.
ALSA and libAO both require support for 'libsndfile',
which is a very common library to read audio files.

The implementation quality for these interfaces varies.
'ALSA' is rather involved to program and it works,
but this could use more testing.
It plays at most one sound at a time.

The 'ESounD' interface is much simpler to implement
and this works very well, because the difficult
details are handled by the 'ESounD Sound Daemon'.
It supports mixing of sounds when multiple GUI
events occur within a second.
This may be the best option currently.
It requires that `esd` is running and
that icesound can connect to it.

'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
which is documented in the libao.conf(5) manpage.

The support for 'OSS' in icesound is
currently rather limited.
It might work, but this interface
definitely needs further improvement.

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,ESD,ALSA,OSS`.


OPTIONS
-------
*-d, --display=DISPLAY*::
  X11 display used by IceWM (default: $DISPLAY).

*-s, --sample-dir=DIR*::
  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=LIST*::
  Specifies the audio output interfaces. One or more of: +
  `AO,ESD,ALSA,OSS` separated by commas.

*-D, --device=DEVICE*::
  Backwards compatibility only: the default device. +
  Please prefer one of the `-A/-O/-S` options.

*-O, --oss=DEVICE*::
  Specifies the OSS device (default: `default`).

*-A, --alsa=DEVICE*::
  Specifies the ALSA device (default: `/dev/dsp`).

*-S, --server=ADDR:PORT*::
  Specifies the ESD server address and port number. +
  For ESD the default is `localhost:16001`.

*--list-sounds*::
  Lists the supported sound filenames and exits.

*--list-interfaces*::
  Lists the supported audio interfaces and exits.

*-v, --verbose*::
  Be verbose and print some information when sound events occur.

*-V, --version*::
  Prints version information and exits.

*-h, --help*::
  Prints this help screen and exits.


RETURN VALUES
-------------

  0    Success.
  1    General error.
  2    Command line error.
  3    Subsystems error (ie cannot connect to server).


BUGS<commit_msg>Update for -z, -l.<commit_after>ICESOUND(1)
==========
:doctype: manpage


NAME
----
icesound - play audio files when interesting GUI events happen


SYNOPSIS
--------
*icesound* ['OPTIONS']


DESCRIPTION
-----------
The IceWM window manager can be configured to generate
so-called GUI events in response to interesting actions,
like opening or closing of application windows,
switching of workspace, etc.
GUI events are a property of the root window.
IceWM changes this property when a new GUI event occurs.
Interested applications can listen for changes to this property.
GUI events are an optional feature of IceWM.
It must be explicitly enabled by giving the
`--enable-guievents` option during configuration.
There are nearly twenty GUI events defined, but about
three of these are not currently implemented.

Icesound is an application, which is part of the IceWM
suite of applications, which responds to these GUI events
by playing audio files. These sound files are '.WAV' files
located in a `sounds` subdirectory in one of the IceWM
configuration directories.

Icesound supports several common audio interfaces.
These are: ALSA, ESounD, OSS and libAO.
Except for OSS, these must be enabled during configuration.
ALSA and libAO both require support for 'libsndfile',
which is a very common library to read audio files.

The implementation quality for these interfaces varies.
'ALSA' is rather involved to program and it works,
but this could use more testing.
It plays at most one sound at a time.

The 'ESounD' interface is much simpler to implement
and this works very well, because the difficult
details are handled by the 'ESounD Sound Daemon'.
It supports mixing of sounds when multiple GUI
events occur within a second.
This may be the best option currently.
It requires that `esd` is running and
that icesound can connect to it.

'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
which is documented in the libao.conf(5) manpage.

The support for 'OSS' in icesound is
currently rather limited.
It might work, but this interface
definitely needs further improvement.

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,ESD,ALSA,OSS`.


OPTIONS
-------
*-d, --display=DISPLAY*::
  X11 display used by IceWM (default: $DISPLAY).

*-s, --sample-dir=DIR*::
  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=LIST*::
  Specifies the audio output interfaces. One or more of: +
  `AO,ESD,ALSA,OSS` separated by commas.

*-D, --device=DEVICE*::
  Backwards compatibility only: the default device. +
  Please prefer one of the `-A/-O/-S` options.

*-O, --oss=DEVICE*::
  Specifies the OSS device (default: `default`).

*-A, --alsa=DEVICE*::
  Specifies the ALSA device (default: `/dev/dsp`).

*-S, --server=ADDR:PORT*::
  Specifies the ESD server address and port number. +
  For ESD the default is `localhost:16001`.

*-z, --snooze=milliseconds*::
  Specifies the snooze interval between sound events +
  in milliseconds. Default is 500 milliseconds.

*-l, --list-files*::
  Lists the available sound file paths and exits.

*--list-sounds*::
  Lists the supported sound filenames and exits.

*--list-interfaces*::
  Lists the supported audio interfaces and exits.

*-v, --verbose*::
  Be verbose and print some information when sound events occur.

*-V, --version*::
  Prints version information and exits.

*-h, --help*::
  Prints this help screen and exits.


RETURN VALUES
-------------

  0    Success.
  1    General error.
  2    Command line error.
  3    Subsystems error (ie cannot connect to server).


BUGS
{'fraction_non_alphanumeric': 0.08919516317774022, 'fraction_numerical': 0.0037706410089715253, 'mean_word_length': 3.7746741154562384, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7177902', 'n_tokens_mistral': 2259, 'n_tokens_neox': 2141, 'n_words': 1075}