From b1756027ed46ff1232845504a877dde38562f6e2 Mon Sep 17 00:00:00 2001 From: Pavel Makhov Date: Wed, 13 Feb 2019 11:43:57 -0500 Subject: brightnessarc widget --- brightnessarc-widget/README.md | 56 ++++++++++++++++++++++++++++++++ brightnessarc-widget/br-wid-1.png | Bin 0 -> 1355 bytes brightnessarc-widget/brightnessarc.lua | 57 +++++++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 brightnessarc-widget/README.md create mode 100644 brightnessarc-widget/br-wid-1.png create mode 100644 brightnessarc-widget/brightnessarc.lua diff --git a/brightnessarc-widget/README.md b/brightnessarc-widget/README.md new file mode 100644 index 0000000..fa123c1 --- /dev/null +++ b/brightnessarc-widget/README.md @@ -0,0 +1,56 @@ +# Brightness widget + +![Brightness widget](./br-wid-1.png) + +This widget represents current brightness level. + +## Installation + +Firstly you need to get the current brightness level. There are two options: + + - using `xbacklight` command (depending on your video card (I guess) it may or may not work) + + To check if it works install xbackligth and check if it works: + + ```bash + sudo apt-get install xbacklight + xbacklight -get + ``` + + If there is no output it means that it doesn't work, but there is a second option: + + - using `light` command + + Install it from this git repo: [github.com/haikarainen/light](https://github.com/haikarainen/light) and check if it works but running + + ```bash + git clone https://github.com/haikarainen/light.git && \ + cd ./light && \ + sudo make && sudo make install \ + light -G + 49.18 + ``` +Depending on the chosen option change `GET_BRIGHTNESS_CMD` variable in **brightness.lua**. + +Then in **rc.lua** add the import on top of the file and then add widget to the wibox: + +```lua +require("awesome-wm-widgets.brightness-widget.brightness") +... +-- Add widgets to the wibox +s.mywibox:setup { +... +{ -- Right widgets +... +brightness_widget +``` + +## Controls + +In order to change brightness by shortcuts you can add them to the `globalkeys` table in the **rc.lua**: + +```lua +awful.key({ modkey }, ";", function () awful.spawn("light -A 5") end, {description = "increase brightness", group = "custom"}), +awful.key({ modkey, "Shift"}, ";", function () awful.spawn("light -U 5") end, {description = "decrease brightness", group = "custom"}), +``` +On laptop you can use `XF86MonBrightnessUp` and `XF86MonBrightnessDown` keys. diff --git a/brightnessarc-widget/br-wid-1.png b/brightnessarc-widget/br-wid-1.png new file mode 100644 index 0000000..f9200eb Binary files /dev/null and b/brightnessarc-widget/br-wid-1.png differ diff --git a/brightnessarc-widget/brightnessarc.lua b/brightnessarc-widget/brightnessarc.lua new file mode 100644 index 0000000..9bd2826 --- /dev/null +++ b/brightnessarc-widget/brightnessarc.lua @@ -0,0 +1,57 @@ +------------------------------------------------- +-- Brightness Widget for Awesome Window Manager +-- Shows the brightness level of the laptop display +-- More details could be found here: +-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/brightness-widget + +-- @author Pavel Makhov +-- @copyright 2017 Pavel Makhov +------------------------------------------------- + +local wibox = require("wibox") +local watch = require("awful.widget.watch") +local spawn = require("awful.spawn") +local naughty = require("naughty") + +local PATH_TO_ICON = "/usr/share/icons/Arc/status/symbolic/display-brightness-symbolic.svg" +local GET_BRIGHTNESS_CMD = "light -G" -- "xbacklight -get" +local INC_BRIGHTNESS_CMD = "light -A 5" -- "xbacklight -inc 5" +local DEC_BRIGHTNESS_CMD = "light -U 5" -- "xbacklight -dec 5" + +local icon = { + id = "icon", + image = PATH_TO_ICON, + resize = true, + widget = wibox.widget.imagebox, +} + +local brightnessarc = wibox.widget { + icon, + max_value = 1, + thickness = 2, + start_angle = 4.71238898, -- 2pi*3/4 + forced_height = 18, + forced_width = 18, + bg = "#ffffff11", + paddings = 2, + widget = wibox.container.arcchart +} + +local brightnessarc_widget = wibox.container.mirror(brightnessarc, { horizontal = true }) + +local update_widget = function(widget, stdout, stderr, exitreason, exitcode) + local brightness_level = string.match(stdout, "(%d?%d?)") + brightness_level = tonumber(string.format("% 3d", brightness_level)) + + widget.value = brightness_level / 100; +end, + +brightnessarc:connect_signal("button::press", function(_,_,_,button) + if (button == 4) then spawn(INC_BRIGHTNESS_CMD, false) + elseif (button == 5) then spawn(DEC_BRIGHTNESS_CMD, false) + end +end) + +watch(GET_BRIGHTNESS_CMD, 1, update_widget, brightnessarc) + +return brightnessarc_widget -- cgit v1.2.3