All Projects → stefano-m → Awesome Pulseaudio_widget

stefano-m / Awesome Pulseaudio_widget

Licence: gpl-3.0
PulseAudio widgtet for the Awesome Window Manager that uses DBus

Programming Languages

lua
6591 projects

Projects that are alternatives of or similar to Awesome Pulseaudio widget

awesome-power widget
A Power widget for the Awesome Window Manager
Stars: ✭ 25 (-13.79%)
Mutual labels:  widget, awesomewm, dbus
keyboard layout
Keyboard switcher for Awesome WM with additional layouts
Stars: ✭ 48 (+65.52%)
Mutual labels:  widget, awesomewm
awesome
Configs for awesomeWM
Stars: ✭ 42 (+44.83%)
Mutual labels:  widget, awesomewm
Net widgets
Network widgets for Awesome WM
Stars: ✭ 103 (+255.17%)
Mutual labels:  awesomewm, widget
yags
Go powered statusline generator
Stars: ✭ 18 (-37.93%)
Mutual labels:  dbus, pulseaudio
Table calendar
Highly customizable, feature-packed Flutter Calendar with gestures, animations and multiple formats
Stars: ✭ 897 (+2993.1%)
Mutual labels:  widget
Essa
Embeddable SCADA for Small Applications
Stars: ✭ 7 (-75.86%)
Mutual labels:  widget
Yii2 Fullcalendar
Widget for Yii Framework 2.0 to use FullCalendar
Stars: ✭ 5 (-82.76%)
Mutual labels:  widget
Iro.js
🎨 Modular color picker widget for JavaScript, with support for a bunch of color formats
Stars: ✭ 796 (+2644.83%)
Mutual labels:  widget
Badge
Drawable of badge.
Stars: ✭ 943 (+3151.72%)
Mutual labels:  widget
Tkswitchercollection
An animation switch collection
Stars: ✭ 877 (+2924.14%)
Mutual labels:  widget
Eyerest
通过定时锁定屏幕,提醒用户休息的软件
Stars: ✭ 24 (-17.24%)
Mutual labels:  dbus
Yii2 Fotorama Widget
Fotorama image gallery widget for yii2
Stars: ✭ 18 (-37.93%)
Mutual labels:  widget
Dynamic widget
A Backend-Driven UI toolkit, build your dynamic UI with json, and the json format is very similar with flutter widget code.
Stars: ✭ 851 (+2834.48%)
Mutual labels:  widget
Flutter widgets
带你认识flutter widgets的使用。根据flutter中文网的“widget目录”进行编写
Stars: ✭ 17 (-41.38%)
Mutual labels:  widget
React Chat Widget
Awesome chat widget for your React App
Stars: ✭ 881 (+2937.93%)
Mutual labels:  widget
Circular Music Progressbar
Beautiful Circular Progress Bar with album art for android
Stars: ✭ 813 (+2703.45%)
Mutual labels:  widget
Nativescript Masked Text Field
#️⃣ A NativeScript Masked Text Field widget
Stars: ✭ 24 (-17.24%)
Mutual labels:  widget
Iconswitch
🍭 Custom Android Switch widget
Stars: ✭ 874 (+2913.79%)
Mutual labels:  widget
Flutter graphite
Flutter widget to draw interactive direct graphs (flowcharts) of any complexity in a tile rectangular manner.
Stars: ✭ 23 (-20.69%)
Mutual labels:  widget

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 to control your audio devices.

Requirements

In addition to the requirements listed in the rockspec file, you will need the Awesome Window Manager 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 evaling 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:

if (( $+commands[luarocks] )); then
    eval `luarocks path --bin`
fi

If you use bash, you can add the following lines to your ~/.bash_profile:

if [[ -n "`which luarocks 2>/dev/null`" ]]; then
    eval `luarocks path --bin`
fi

If you use an X 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.

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:

-- 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:

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:

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).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].