awesome-pulseaudio_widget/README.md

139 lines
3.7 KiB
Markdown

# A widget for the Awesome Window Manager 4.x to control the volume
A widget for the Awesome Window Manager (version 4.x) that
uses [pulseaudio_dbus](https://github.com/stefano-m/lua-pulseaudio_dbus) to
control your audio devices.
# Requirements
In addition to the requirements listed in the `rockspec` file, you will need
the [Awesome Window Manager](https://awesomewm.org) *version 4.x* and
PulseAudio with DBus enabled.
To enable DBus in PulseAudio, ensure that the line
load-module module-dbus-protocol
is present in `/etc/pulse/default.pa` or `~/.config/pulse/default.pa`
# Installation
## Luarocks
The easiest way to install this widget is to use `luarocks`:
luarocks install pulseaudio_widget
You can use the `--local` option if you don't want or can't install
it system-wide
This will ensure that all its dependencies are installed.
Note that if you install with `--local` you will have to make sure that the
`LUA_PATH` environment variable includes the local luarocks path. This can be
achieved by `eval`ing the command `luarocks path --bin` **before** Awesome is
started.
For example, if you start Awesome from the Linux console (e.g. `xinit
awesome`) and you use `zsh`, you can add the following lines to your
`~/.zprofile`:
``` shell
if (( $+commands[luarocks] )); then
eval `luarocks path --bin`
fi
```
If you use `bash`, you can add the following lines to your `~/.bash_profile`:
``` shell
if [[ -n "`which luarocks 2>/dev/null`" ]]; then
eval `luarocks path --bin`
fi
```
If you use
an [X Display Manager](https://en.wikipedia.org/wiki/Display_manager) you will
need to do what explained above in your `~/.xprofile` or `~/.xinitrc`. See the
documentation of your display manager of choice for more information.
## NixOS
If you are on NixOS, you can install this package from
[nix-stefano-m-overlays](https://github.com/stefano-m/nix-stefano-m-nix-overlays).
# Configuration
The widget will display the audio icons defined in your GTK+ theme and it will
resize them to fit in the available space. This means that you can switch your
icon theme, for example using `lxappearance`, and update the widget by
restarting AwesomeWM.
Specifically, you will need icons named:
* `audio-volume-high-symbolic`
* `audio-volume-medium-symbolic`
* `audio-volume-low-symbolic`
* `audio-volume-muted-symbolic`
# Mouse controls
When the widget is focused:
* Scroll: controls the volume
* Left button: toggles mute
* Right button: launches mixer (`mixer` field of the widget table, defaults to
`pavucontrol`)
# Usage
Add the following to your `~/.config/awesome/rc.lua`:
Require the module:
``` lua
-- require *after* `beautiful.init` or the theme will be inconsistent!
local pulse = require("pulseaudio_widget")
-- Optionally, change the notification timeout default of 1 second to 5.
pulse.notification_timeout_seconds = 5
```
Add the widget to your layout:
``` lua
s.mywibox:setup {
layout = wibox.layout.align.horizontal,
{ -- Left widgets },
s.mytasklist, -- Middle widget
{ -- Right widgets
pulse
}
}
```
Finally add some keyboard shortcuts to control the volume:
``` lua
awful.util.table.join(
-- Audio
awful.key({ }, "XF86AudioRaiseVolume", pulse.volume_up),
awful.key({ }, "XF86AudioLowerVolume", pulse.volume_down),
awful.key({ }, "XF86AudioMute", pulse.toggle_muted),
-- Microphone
awful.key({"Shift"}, "XF86AudioRaiseVolume", pulse.volume_up_mic),
awful.key({"Shift"}, "XF86AudioLowerVolume", pulse.volume_down_mic),
awful.key({ }, "XF86MicMute", pulse.toggle_muted_mic)
)
```
# Contributing
This project is developed in the author's spare time. Contributions in the form
of issues, patches and pull requests are welcome.
# Credits
This program was inspired by
the [Awesome Pulseaudio Widget (APW)](https://github.com/mokasin/apw).