From 3c7e9e82a66355d8efcdd5047d829c0199e3fc0c Mon Sep 17 00:00:00 2001 From: gryf Date: Tue, 23 May 2017 21:18:24 +0200 Subject: [PATCH] Readme update Added some information about usage (commandline switches) and briefly described UI functionality. --- README.rst | 88 +++++++++++++++++++++++++++++++++++++++- images/wmamixer_gui.png | Bin 0 -> 20124 bytes 2 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 images/wmamixer_gui.png diff --git a/README.rst b/README.rst index 12cec8f..6544101 100644 --- a/README.rst +++ b/README.rst @@ -8,7 +8,7 @@ The code for the `ALSA`_ part was taken and adapted from amixer and alsamixer programs from alsa-utils package. .. image:: /images/wmamixer.gif?raw=true - :alt: wmamixer overview + :alt: wmamixer overview Build ----- @@ -22,6 +22,91 @@ directory: Next, copy binary ``wmamixer`` in convenient place. +Usage +----- + +To see usage information for the dockapp, pass ``--help`` option from terminal +emulator, like: + +.. code:: shell-session + + user@linux ~ $ wmamixer --help + +which will output several lines of information and options: + +* ``-h`` or ``--help`` will display options and exit, +* ``-v`` or ``--version`` will display version and exit, +* ``-w`` will use *withdrawn state*, which will make wmamixer behave like a + Window Maker dockapp, +* ``-s`` will make some part of the window transparent, +* ``-a`` will make window a bit smaller. Instead of standard 64x64 pixels, it + will be 56x56 pixels, additionally with transparent background. This mode is + useful for placing it in AfterStep Wharf, +* ``-l`` with a color as an argument will change led color (default bright + greenish), +* ``-b`` with a color as an argument will change background for the led color + (default dark greenish). Colors can be specified using `X11 color names`_, or + by hexadecimal number in #RGB format, like: + + .. code:: shell-session + + user@linux ~ $ wmamixer -l red -b '#ffff00' # red led on yellow background + user@linux ~ $ wmamixer -b darkslateblue # Dark Slate Blue background + +* ``-d`` selects desired ALSA device. By default, first device is taken which + usually is `default` and nowadays is taken by pulseaudio. To list ALSA + devices you might use ``aplay`` program from ``alsa-utils`` package: + + .. code:: shell-session + + user@linux ~ $ aplay -l + **** List of PLAYBACK Hardware Devices **** + card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0] + Subdevices: 1/1 + Subdevice #0: subdevice #0 + card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1] + Subdevices: 1/1 + Subdevice #0: subdevice #0 + card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2] + Subdevices: 1/1 + Subdevice #0: subdevice #0 + card 1: PCH [HDA Intel PCH], device 0: 92HD91BXX Analog [92HD91BXX Analog] + Subdevices: 0/1 + Subdevice #0: subdevice #0 + + So in above example there are two sound devices, which one is HDMI and the + other PCH. To select PCH device, it is enough to invoke ``wmamixer`` like: + + .. code:: shell-session + + user@linux ~ $ wmamixer -d hw:1 + + where ``hw:1`` means the second card (you can see it within the line ``card + 1: PCH [HDA Intel PCH], device 0: 92HD91BXX Analog [92HD91BXX Analog]`` on + ``aplay -l`` output in the example above), +* ``-position`` with appropriate argument (usually ``+0+0`` for top-left + corner) will try to convince window manager to place application in certain + position, +* ``-display`` with correct *X11 display* will try to use specified display + instead of current one (usually ``:0``). + +User interface is straightforward. + +.. image:: /images/wmamixer_gui.png + :alt: wmamixer gui elements + +1. Volume level indicator of currently selected mixer. +2. Icon for currently selected mixer. If clicked, will show abbreviated mixer + name for a short time on volume level indicator. +3. Cycles through available mixers. +4. Volume bar. Clicking on the volume bar between the left and right channels + will set same volume level for both of them. Mouse scroll will adjust + volume for both channels at the same time. +5. If clicked on left or right bar, volume will be adjusted for selected mixer + left or right channel accordingly. Note, that not all mixers have ability to + adjust volume for each channels separately. Mouse scroll will adjust volume + for both channels as in point 4. + Bugs ---- @@ -59,3 +144,4 @@ better to use clicking instead of scrolling. .. _wmsmixer: http://web.archive.org/web/20081024034859/http://www.hibernaculum.net/wmsmixer/index.php .. _ALSA: http://www.alsa-project.org +.. _X11 color names: https://en.wikipedia.org/wiki/X11_color_names diff --git a/images/wmamixer_gui.png b/images/wmamixer_gui.png new file mode 100644 index 0000000000000000000000000000000000000000..0422f7d5209277e85e23b3ee86025f2d187e665c GIT binary patch literal 20124 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 literal 0 HcmV?d00001