A Power widget for the Awesome Window Manager
Go to file
Stefano Mazzucco 6511ed27a7 Improve documentation about installing the widget
- remove section about installing from source: this requires some juggling and
  symlinking, so I will leave it to people who *really* want to do it
- explain how to export the local luarocks path when installint locally with luarocks
2017-07-16 13:09:58 +01:00
.gitignore Initial commit 2017-03-10 16:01:01 +00:00
LICENSE Initial commit 2017-03-10 16:01:01 +00:00
README.md Improve documentation about installing the widget 2017-07-16 13:09:58 +01:00
power_widget-0.1.0-1.rockspec Release version 0.1.0 2017-03-10 16:05:05 +00:00
power_widget-0.2.0-1.rockspec Update widget to use upower_dbus 0.2 (with dbus_proxy) 2017-04-09 00:03:57 +01:00
power_widget-0.2.1-1.rockspec Add rockspec for version 0.2.1 2017-04-11 09:01:58 +01:00
power_widget-devel-1.rockspec Initial commit 2017-03-10 16:01:01 +00:00
power_widget.lua Do not use ctx:iteration() as it causes a Lua Stack Dump 2017-04-11 08:54:14 +01:00

README.md

A widget for the Awesome Window Manager to display power devices with UPower and DBus

This widget uses the upower_dbus library.

Requirements

In addition to the requirements listed in the rockspec file, you will need the Awesome Window Manager and UPower (for more information about this, see the upower_dbus documentation).

Installation

The easiest way to install this widget is to use luarocks:

luarocks install power_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.

Configuration

The widget displays power icons that are searched in the folders defined in the table beautiful.upower_icon_theme_dirs with extensions defined in the table beautiful.upower_icon_extensions. The default is to look into "/usr/share/icons/Adwaita/scalable/devices/" and "/usr/share/icons/Adwaita/scalable/status/"for icons whose extension is "svg". Note that the directory paths must end with a slash and that the extensions must not contain a dot. The icons are searched using Awesome's awful.util.geticonpath function.

You can specify a GUI client to be launched when the widget is right-clicked. This can be done by changing the gui_client field of the widget. The default is to have no client. For example, you could use the XFCE4 Power Manager or the GNOME one.

Mouse controls

When the widget is focused:

  • Right button: launches GUI client (defined by the gui_client field; defaults to the empty string, so nothing will happen)

Tooltip

A tooltip with the current device power status shown.

Usage

Add the following to your ~/.config/awesome/rc.lua:

Require the module:

-- require *after* `beautiful.init` or the theme will be inconsistent!
local power = require("power_widget")
-- override the GUI client.
power:init()
power.gui_client = "xfce4-power-manager"

Add the widget to your layout:

  • Awesome 3.5.x rc.lua
right_layout:add(power)
  • Awesome 4.x rc.lua
    -- Add widgets to the wibox
    s.mywibox:setup {
        layout = wibox.layout.align.horizontal,
        { -- Left widgets
            layout = wibox.layout.fixed.horizontal,
            s.mytaglist,
            s.mypromptbox,
        },
        s.mytasklist, -- Middle widget
        { -- Right widgets
            layout = wibox.layout.fixed.horizontal,
            -- other widgets
            power,
        },
    }