merge biased battery levels

This commit is contained in:
Sam Delmerico 2018-11-26 16:21:48 -05:00
commit 2cf217dc6c
22 changed files with 477 additions and 78 deletions

View File

@ -8,6 +8,8 @@ or with separators
![screenshot](./screenshot_with_sprtrs.png)
Some more screenshots in this reddit [post](https://www.reddit.com/r/unixporn/comments/8qijmx/awesomewm_dark_theme/)
From left to right:
- [spotify-widget](https://github.com/streetturtle/AwesomeWM/tree/master/spotify-widget) / [rhythmbox-widget](https://github.com/streetturtle/AwesomeWM/tree/master/rhythmbox-widget)

View File

@ -100,7 +100,7 @@ watch("acpi -i", 10,
charge = charge + batt.charge * capacities[i]
end
charge = charge // capacity
charge = charge / capacity
if (charge >= 0 and charge < 15) then
batteryType = "battery-empty%s-symbolic"

View File

@ -29,7 +29,7 @@ which means that you need to copy the code above and paste it in your **theme.lu
Clone repo, include widget and use it in **rc.lua**:
```lua
require("volumearc")
local batteryarc_widget = require("awesome-wm-widgets.batteryarc-widget.batteryarc")
...
s.mytasklist, -- Middle widget
{ -- Right widgets

View File

@ -71,7 +71,7 @@ watch("acpi -i", 10,
charge = charge + batt.charge * capacities[i]
end
charge = charge // capacity
charge = charge / capacity
widget.value = charge / 100
if status == 'Charging' then

View File

@ -10,17 +10,19 @@
local wibox = require("wibox")
local watch = require("awful.widget.watch")
local spawn = require("awful.spawn")
--local GET_BRIGHTNESS_CMD = "xbacklight -get"
local GET_BRIGHTNESS_CMD = "light -G"
local path_to_icons = "/usr/share/icons/Arc/status/symbolic/"
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 1" -- "xbacklight -inc 5"
local DEC_BRIGHTNESS_CMD = "light -U 1" -- "xbacklight -dec 5"
local brightness_text = wibox.widget.textbox()
brightness_text:set_font('Play 9')
local brightness_icon = wibox.widget {
{
image = path_to_icons .. "display-brightness-symbolic.svg",
image = PATH_TO_ICON,
resize = false,
widget = wibox.widget.imagebox,
},
@ -34,13 +36,21 @@ local brightness_widget = wibox.widget {
layout = wibox.layout.fixed.horizontal,
}
watch(
GET_BRIGHTNESS_CMD, 1,
function(widget, stdout, stderr, exitreason, exitcode)
local brightness_level = tonumber(string.format("%.0f", stdout))
widget:set_text(" " .. brightness_level .. "%")
end,
brightness_text
)
local update_widget = function(widget, stdout, stderr, exitreason, exitcode)
local brightness_level = tonumber(string.format("%.0f", stdout))
widget:set_text(" " .. brightness_level .. "%")
end,
brightness_widget: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
spawn.easy_async(GET_BRIGHTNESS_CMD, function(stdout, stderr, exitreason, exitcode)
update_widget(brightness_widget, stdout, stderr, exitreason, exitcode)
end)
end)
watch(GET_BRIGHTNESS_CMD, 1, update_widget, brightness_text)
return brightness_widget

View File

@ -10,10 +10,10 @@
local watch = require("awful.widget.watch")
local wibox = require("wibox")
local beautiful = require("beautiful")
local cpugraph_widget = wibox.widget {
max_value = 100,
color = '#74aeab',
background_color = "#00000000",
forced_width = 50,
step_width = 2,
@ -21,13 +21,13 @@ local cpugraph_widget = wibox.widget {
widget = wibox.widget.graph
}
-- mirros and pushs up a bit
--- By default graph widget goes from left to right, so we mirror it and push up a bit
local cpu_widget = wibox.container.margin(wibox.container.mirror(cpugraph_widget, { horizontal = true }), 0, 0, 0, 2)
local total_prev = 0
local idle_prev = 0
watch("cat /proc/stat | grep '^cpu '", 1,
watch([[bash -c "cat /proc/stat | grep '^cpu '"]], 1,
function(widget, stdout, stderr, exitreason, exitcode)
local user, nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice =
stdout:match('(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s')
@ -38,11 +38,8 @@ watch("cat /proc/stat | grep '^cpu '", 1,
local diff_total = total - total_prev
local diff_usage = (1000 * (diff_total - diff_idle) / diff_total + 5) / 10
if diff_usage > 80 then
widget:set_color('#ff4136')
else
widget:set_color('#74aeab')
end
widget:set_color(diff_usage > 80 and beautiful.widget_red
or beautiful.widget_main_color)
widget:add_value(diff_usage)

View File

@ -10,5 +10,17 @@ Install `mpd` (Music Player Daemon itself) and `mpc` (Music Player Client - prog
sudo apt-get install mpd mpc
```
Set them up and then just follow the [installation](https://github.com/streetturtle/awesome-wm-widgets#installation) section of the repo.
## Installation
To use this widget clone repo under **~/.config/awesome/** and then add it in **rc.lua**:
```lua
local mpdarc_widget = require("awesome-wm-widgets.mpdarc-widget.mpdarc")
...
s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
...
mpdarc_widget,
...
```

View File

@ -14,6 +14,7 @@ local wibox = require("wibox")
local naughty = require("naughty")
local GET_MPD_CMD = "mpc status"
local TOGGLE_MPD_CMD = "mpc toggle"
local PAUSE_MPD_CMD = "mpc pause"
local STOP_MPD_CMD = "mpc stop"
local NEXT_MPD_CMD = "mpc next"
@ -45,9 +46,15 @@ local mpdarc = wibox.widget {
widget = wibox.container.arcchart
}
local mpdarc_widget = wibox.container.mirror(mpdarc, { horizontal = true })
local mpdarc_icon_widget = wibox.container.mirror(mpdarc, { horizontal = true })
local mpdarc_current_song_widget = wibox.widget {
id = 'current_song',
widget = wibox.widget.textbox,
font = 'Play 9'
}
local update_graphic = function(widget, stdout, _, _, _)
local current_song = string.gmatch(stdout, "[^\r\n]+")()
stdout = string.gsub(stdout, "\n", "")
local mpdpercent = string.match(stdout, "(%d%d)%%")
local mpdstatus = string.match(stdout, "%[(%a+)%]")
@ -55,18 +62,25 @@ local update_graphic = function(widget, stdout, _, _, _)
icon.image = PLAY_ICON_NAME
widget.colors = { beautiful.widget_main_color }
widget.value = tonumber((100-mpdpercent)/100)
elseif mpdstatus == "paused" then
mpdarc_current_song_widget.markup = current_song
elseif mpdstatus == "paused" then
icon.image = PAUSE_ICON_NAME
widget.colors = { beautiful.widget_main_color }
widget.value = tonumber(mpdpercent/100)
mpdarc_current_song_widget.markup = current_song
else
icon.image = STOP_ICON_NAME
widget.colors = { beautiful.widget_red }
if string.len(stdout) == 0 then -- MPD is not running
mpdarc_current_song_widget.markup = "MPD is not running"
else
widget.colors = { beautiful.widget_red }
mpdarc_current_song_widget.markup = ""
end
end
end
mpdarc:connect_signal("button::press", function(_, _, _, button)
if (button == 1) then awful.spawn("mpc toggle", false) -- left click
if (button == 1) then awful.spawn(TOGGLE_MPD_CMD, false) -- left click
elseif (button == 2) then awful.spawn(STOP_MPD_CMD, false)
elseif (button == 3) then awful.spawn(PAUSE_MPD_CMD, false)
elseif (button == 4) then awful.spawn(NEXT_MPD_CMD, false) -- scroll up
@ -97,4 +111,9 @@ mpdarc:connect_signal("mouse::leave", function() naughty.destroy(notification) e
watch(GET_MPD_CMD, 1, update_graphic, mpdarc)
local mpdarc_widget = {
mpdarc_icon_widget,
mpdarc_current_song_widget,
layout = wibox.layout.align.horizontal,
}
return mpdarc_widget

View File

@ -0,0 +1,16 @@
# Pomodoro Widget
:construction: This widget is under construction :construction_worker:
## Installation
This widget is based on [@jsspencer](https://github.com/jsspencer)' [pomo](https://github.com/jsspencer/pomo) - a simple pomodoro timer.
So first install/clone it anywhere you like, then either
- in widget's code provide path to the pomo.sh, or
- add pomo.sh to the PATH, or
- make a soft link in /usr/local/bin/ to it:
```bash
sudo ln -sf /opt/pomodoro/pomo.sh /usr/local/bin/pomo
```
Note that by default widget's code expects third way and calls script by `pomo`.

View File

@ -0,0 +1,135 @@
-------------------------------------------------
-- Pomodoro Arc Widget for Awesome Window Manager
-- Modelled after Pavel Makhov's work
-- @author Raphaël Fournier-S'niehotta
-- @copyright 2018 Raphaël Fournier-S'niehotta
-------------------------------------------------
local awful = require("awful")
local beautiful = require("beautiful")
local spawn = require("awful.spawn")
local watch = require("awful.widget.watch")
local wibox = require("wibox")
local naughty = require("naughty")
local GET_pomodoro_CMD = "pomo clock"
local PAUSE_pomodoro_CMD = "pomo pause"
local START_pomodoro_CMD = "pomo start"
local STOP_pomodoro_CMD = "pomo stop"
local text = wibox.widget {
id = "txt",
--font = "Play 12",
font = "Inconsolata Medium 13",
widget = wibox.widget.textbox
}
-- mirror the text, because the whole widget will be mirrored after
local mirrored_text = wibox.container.margin(wibox.container.mirror(text, { horizontal = true }))
mirrored_text.right = 5 -- pour centrer le texte dans le rond
--
--local mirrored_text = wibox.container.mirror(text, { horizontal = true })
-- mirrored text with background
local mirrored_text_with_background = wibox.container.background(mirrored_text)
local pomodoroarc = wibox.widget {
mirrored_text_with_background,
max_value = 1,
thickness = 2,
start_angle = 4.71238898, -- 2pi*3/4
forced_height = 32,
forced_width = 32,
rounded_edge = true,
bg = "#ffffff11",
paddings = 0,
widget = wibox.container.arcchart
}
local pomodoroarc_widget = wibox.container.mirror(pomodoroarc, { horizontal = true })
local update_graphic = function(widget, stdout, _, _, _)
local pomostatus = string.match(stdout, " (%D?%D?):%D?%D?")
if pomostatus == "--" then
text.font = "Inconsolata Medium 13"
widget.colors = { beautiful.widget_main_color }
text.text = "25"
widget.value = 1
else
text.font = "Inconsolata Medium 13"
local pomomin = string.match(stdout, "[ P]?[BW](%d?%d?):%d?%d?")
local pomosec = string.match(stdout, "[ P]?[BW]%d?%d?:(%d?%d?)")
local pomodoro = pomomin * 60 + pomosec
local status = string.match(stdout, "([ P]?)[BW]%d?%d?:%d?%d?")
local workbreak = string.match(stdout, "[ P]?([BW])%d?%d?:%d?%d?")
text.text = pomomin
-- Helps debugging
--naughty.notify {
--text = pomomin,
--title = "pomodoro debug",
--timeout = 5,
--hover_timeout = 0.5,
--width = 200,
--}
if status == " " then -- clock ticking
if workbreak == "W" then
widget.value = tonumber(pomodoro/(25*60))
if tonumber(pomomin) < 5 then -- last 5 min of pomo
widget.colors = { beautiful.widget_red }
else
widget.colors = { beautiful.widget_blue }
end
elseif workbreak == "B" then -- color during pause
widget.colors = { beautiful.widget_green }
widget.value = tonumber(pomodoro/(5*60))
end
elseif status == "P" then -- paused
if workbreak == "W" then
widget.colors = { beautiful.widget_yellow }
widget.value = tonumber(pomodoro/(25*60))
text.font = "Inconsolata Medium 13"
text.text = "PW"
elseif workbreak == "B" then
widget.colors = { beautiful.widget_yellow }
widget.value = tonumber(pomodoro/(5*60))
text.font = "Inconsolata Medium 13"
text.text = "PB"
end
end
end
end
pomodoroarc:connect_signal("button::press", function(_, _, _, button)
if (button == 2) then awful.spawn(PAUSE_pomodoro_CMD, false)
elseif (button == 1) then awful.spawn(START_pomodoro_CMD, false)
elseif (button == 3) then awful.spawn(STOP_pomodoro_CMD, false)
end
spawn.easy_async(GET_pomodoro_CMD, function(stdout, stderr, exitreason, exitcode)
update_graphic(pomodoroarc, stdout, stderr, exitreason, exitcode)
end)
end)
local notification
function show_pomodoro_status()
spawn.easy_async(GET_pomodoro_CMD,
function(stdout, _, _, _)
notification = naughty.notify {
text = stdout,
title = "pomodoro status",
timeout = 5,
hover_timeout = 0.5,
width = 200,
}
end)
end
pomodoroarc:connect_signal("mouse::enter", function() show_pomodoro_status() end)
pomodoroarc:connect_signal("mouse::leave", function() naughty.destroy(notification) end)
watch(GET_pomodoro_CMD, 1, update_graphic, pomodoroarc)
return pomodoroarc_widget

View File

@ -18,7 +18,6 @@ local w = wibox {
height = 200,
width = 400,
ontop = true,
screen = mouse.screen,
expand = true,
bg = '#1e252c',
max_widget_size = 500
@ -64,7 +63,7 @@ watch('bash -c "free | grep -z Mem.*Swap.*"', 1,
ramgraph_widget:buttons(
awful.util.table.join(
awful.button({}, 1, function()
awful.placement.top_right(w, { margins = {top = 25, right = 10}})
awful.placement.top_right(w, { margins = {top = 25, right = 10}, parent = awful.screen.focused() })
w.pie.data_list = {
{'used ' .. getPercentage(used + used_swap), used + used_swap},
{'free ' .. getPercentage(free + free_swap), free + free_swap},

91
run-shell/run-shell.lua Normal file
View File

@ -0,0 +1,91 @@
-------------------------------------------------
-- Run Shell for Awesome Window Manager
-- More details could be found here:
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/run-shell
-- @author Pavel Makhov
-- @copyright 2018 Pavel Makhov
-------------------------------------------------
local awful = require("awful")
local gfs = require("gears.filesystem")
local wibox = require("wibox")
local gears = require("gears")
local naughty = require("naughty")
local completion = require("awful.completion")
local run_shell = awful.widget.prompt()
local w = wibox {
visible = false,
ontop = true,
height = 1060,
width = 1920
}
w:setup {
{
{
{
{
text = '',
font = 'Play 18',
widget = wibox.widget.textbox,
},
id = 'icon',
top = 9,
left = 10,
layout = wibox.container.margin
},
{
run_shell,
left = 10,
layout = wibox.container.margin,
},
id = 'left',
layout = wibox.layout.fixed.horizontal
},
widget = wibox.container.background,
bg = '#333333',
shape = function(cr, width, height)
gears.shape.rounded_rect(cr, width, height, 3)
end,
shape_border_color = '#74aeab',
shape_border_width = 1,
forced_width = 200,
forced_height = 50
},
layout = wibox.container.place
}
local function launch(s)
awful.spawn.with_line_callback(os.getenv("HOME") .. "/.config/awesome/awesome-wm-widgets/run-shell/scratch_6.sh " .. tostring(awful.screen.focused().geometry.x), {
stdout = function(line)
w.visible = true
w.bgimage = '/tmp/i3lock-' .. line .. '.png'
awful.placement.top(w, { margins = { top = 20 }, parent = awful.screen.focused() })
awful.prompt.run {
prompt = "<b>Run</b>: ",
bg_cursor = '#74aeab',
textbox = run_shell.widget,
completion_callback = completion.shell,
exe_callback = function(...)
run_shell:spawn_and_handle_error(...)
end,
history_path = gfs.get_cache_dir() .. "/history",
done_callback = function()
-- w.bgimage=''
w.visible = false
awful.spawn([[bash -c 'rm -f /tmp/i3lock*']])
end
}
end,
stderr = function(line)
naughty.notify { text = "ERR:" .. line }
end,
})
end
return {
launch = launch
}

40
run-shell/scratch_6.sh Executable file
View File

@ -0,0 +1,40 @@
#!/usr/bin/env bash
#IMAGE=/tmp/i3lock.png
#SCREENSHOT="scrot -u $IMAGE" # 0.46s
#
## Alternate screenshot method with imagemagick. NOTE: it is much slower
## SCREENSHOT="import -window root $IMAGE" # 1.35s
#
## Here are some imagemagick blur types
## Uncomment one to use, if you have multiple, the last one will be used
#
## All options are here: http://www.imagemagick.org/Usage/blur/#blur_args
##BLURTYPE="0x5" # 7.52s
##BLURTYPE="0x2" # 4.39s
##BLURTYPE="5x2" # 3.80s
#BLURTYPE="2x8" # 2.90s
##BLURTYPE="2x3" # 2.92s
#
## Get the screenshot, add the blur and lock the screen with it
#$SCREENSHOT
#convert $IMAGE -blur $BLURTYPE $IMAGE
#echo 'done'
# --------------------------
#RES=$(xrandr --current | grep '*' | uniq | awk '{print $1}')
RNDM=$(uuidgen)
IMAGE="/tmp/i3lock-$RNDM.png"
#ffmpeg -loglevel panic -f x11grab -video_size 1920x1060 -y -i :0.0+0,20 -filter_complex "boxblur=9" -vframes 1 $IMAGE
#ffmpeg -loglevel panic -f x11grab -video_size 1920x1060 -y -i :0.0+0,20 -vf frei0r=pixeliz0r -vframes 1 $IMAGE
ffmpeg -loglevel panic -f x11grab -video_size 1920x1060 -y -i :0.0+$1,20 -vf frei0r=pixeliz0r -vframes 1 $IMAGE
#ffmpeg -loglevel panic -f x11grab -video_size 1920x1060 -y -i :0.0+0,20 -filter_complex "boxblur=9" -vframes 1 "/tmp/i3lock$(uuidgen).png"
echo $RNDM
#lock screen
#ffmpeg -loglevel panic -f x11grab -video_size $(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/') -y -i :0.0+$1,20 -vf frei0r=pixeliz0r -vframes 1 /tmp/test.png ; i3lock -i /tmp/test.png

View File

@ -23,7 +23,6 @@ local w = wibox {
border_color = '#84bd00',
max_widget_size = 500,
ontop = true,
screen = mouse.screen,
height = 50,
width = 250,
shape = function(cr, width, height)
@ -55,7 +54,7 @@ w:setup {
local function launch()
w.visible = true
awful.placement.top(w, { margins = {top = 40}})
awful.placement.top(w, { margins = {top = 40}, parent = awful.screen.focused()})
awful.prompt.run{
prompt = "<b>Spotify Shell</b>: ",
bg_cursor = '#84bd00',

View File

@ -28,11 +28,9 @@ local spotify_widget = wibox.widget {
},
layout = wibox.layout.align.horizontal,
set_status = function(self, is_playing)
if (is_playing) then
self.icon.image = PATH_TO_ICONS .. "/actions/24/player_play.png"
else
self.icon.image = PATH_TO_ICONS .. "/actions/24/player_pause.png"
end
self.icon.image = PATH_TO_ICONS ..
(is_playing and "/actions/24/player_play.png"
or "/actions/24/player_pause.png")
end,
set_text = function(self, path)
self.current_song.markup = path
@ -41,11 +39,7 @@ local spotify_widget = wibox.widget {
local update_widget_icon = function(widget, stdout, _, _, _)
stdout = string.gsub(stdout, "\n", "")
if (stdout == 'Playing') then
widget:set_status(true)
else
widget:set_status(false)
end
widget:set_status(stdout == 'Playing' and true or false)
end
local update_widget_text = function(widget, stdout, _, _, _)

View File

@ -13,6 +13,7 @@ local json = require("json")
local naughty = require("naughty")
local wibox = require("wibox")
local gears = require("gears")
local gfs = require("gears.filesystem")
local API_KEY = '<your api key>'
local BASE_URL = 'https://translate.yandex.net/api/v1.5/tr.json/translate'
@ -45,7 +46,6 @@ local w = wibox {
border_width = 1,
border_color = '#66ccff',
ontop = true,
screen = mouse.screen,
expand = true,
bg = '#1e252c',
max_widget_size = 500,
@ -163,13 +163,14 @@ input_widget:setup {
}
local function show_translate_prompt()
awful.placement.top(input_widget, { margins = {top = 40}})
awful.placement.top(input_widget, { margins = {top = 40}, parent = awful.screen.focused()})
input_widget.height = 40
input_widget.visible = true
awful.prompt.run {
prompt = "<b>Translate</b>: ",
textbox = prompt.widget,
history_path = gfs.get_dir('cache') .. '/translate_history',
bg_cursor = '#66ccff',
exe_callback = function(text)
if not text or #text == 0 then return end

View File

@ -38,7 +38,7 @@ To mute/unmute click on the widget. To increase/decrease volume scroll up or dow
If you want to control volume level by keyboard shortcuts add following lines in shortcut section of the **rc.lua** (the commands could be slightly different depending on your PC configuration):
```lua
awful.key({ modkey}, "[", function () awful.spawn("amixer -D pulse sset Master 5%-") end, {description = "increase volume", group = "custom"}),
awful.key({ modkey}, "]", function () awful.spawn("amixer -D pulse sset Master 5%+") end, {description = "decrease volume", group = "custom"}),
awful.key({ modkey}, "[", function () awful.spawn("amixer -D pulse sset Master 5%+") end, {description = "increase volume", group = "custom"}),
awful.key({ modkey}, "]", function () awful.spawn("amixer -D pulse sset Master 5%-") end, {description = "decrease volume", group = "custom"}),
awful.key({ modkey}, "\", function () awful.spawn("amixer -D pulse set Master +1 toggle") end, {description = "mute volume", group = "custom"}),
```

View File

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
viewBox="0 0 16 16"
height="16"
id="svg2"
version="1.1"
inkscape:version="0.92.2 2405546, 2018-03-11"
sodipodi:docname="audio-volume-muted-symbolic-shan.svg">
<metadata
id="metadata30">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1438"
inkscape:window-height="858"
id="namedview28"
showgrid="true"
inkscape:zoom="38.125"
inkscape:cx="3.4229508"
inkscape:cy="7.947541"
inkscape:window-x="0"
inkscape:window-y="20"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
showguides="true"
inkscape:snap-intersection-paths="false"
inkscape:object-paths="false">
<inkscape:grid
type="xygrid"
id="grid4158" />
</sodipodi:namedview>
<defs
id="defs4" />
<path
style="opacity:0.3;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.140638,1 11.726417,2.413582 C 12.808349,3.4955144 13.990412,5.4467621 14,8 c 0,2.551493 -1.192916,4.505751 -2.273583,5.586418 L 13.140638,15 C 14.595711,13.544927 16.019176,11 16,8 16.035061,5 14.595117,2.4544787 13.140638,1 Z"
id="path4508"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:0.3;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 11,3.1156678 9.5897193,4.5261118 C 10.372347,5.3087395 11,6.5690611 11,8 11,9.4309388 10.372767,10.690952 9.5897193,11.474 L 11,12.884 C 12.275645,11.608355 13,9.854095 13,8 13,6.1543677 12.273068,4.3887355 11,3.1156678 Z"
id="path4529"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc" />
<path
style="opacity:0.3;fill:#bebebe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 8.629,5 7.2094668,6.4096296 C 8,7.05621 8,7.805653 8,8 8,8.1932576 7.982199,8.9408674 7.209,9.59 L 8.6289063,11 C 9.8466375,9.952694 10,8.5984701 10,8 10,7.400497 9.854476,6.062891 8.629,5 Z"
id="path4569"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccscccc" />
<path
style="opacity:0.3;fill:#bebebe;fill-opacity:1;stroke-width:0.02622951"
d="M 4.5036936,12.482983 3.0218135,11.000927 2.1430379,11.000775 C 1.6597113,11.000691 1.1955581,10.989371 1.1115864,10.975618 0.56198086,10.885606 0.24352693,10.462909 0.07812436,9.603862 0.03708101,9.390696 0.03147539,9.196108 0.03147539,7.984533 c 0,-1.217172 0.0054766,-1.405527 0.04717053,-1.622335 0.132109,-0.686963 0.3489491,-1.058742 0.7259726,-1.244702 L 0.97448297,5.033716 1.9849464,5.026316 2.9954098,5.018916 4.4970492,3.518184 5.9986885,2.0174522 V 4.5094289 7.001406 l 0.4983672,0.497849 0.498367,0.497849 -0.4982329,0.498725 -0.498233,0.498725 -0.00669,2.485223 -0.00669,2.485223 z"
id="path819"
inkscape:connector-curvature="0" />
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -5,7 +5,7 @@
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/volume-widget
-- @author Pavel Makhov
-- @copyright 2017 Pavel Makhov
-- @copyright 2018 Pavel Makhov
-------------------------------------------------
local awful = require("awful")
@ -14,7 +14,11 @@ local watch = require("awful.widget.watch")
local spawn = require("awful.spawn")
local path_to_icons = "/usr/share/icons/Arc/status/symbolic/"
local request_command = 'amixer -D pulse sget Master'
local GET_VOLUME_CMD = 'amixer -D pulse sget Master'
local INC_VOLUME_CMD = 'amixer -D pulse sset Master 5%+'
local DEC_VOLUME_CMD = 'amixer -D pulse sset Master 5%-'
local TOG_VOLUME_CMD = 'amixer -D pulse sset Master toggle'
local volume_widget = wibox.widget {
{
@ -48,16 +52,16 @@ end
- scrolling when cursor is over the widget
]]
volume_widget:connect_signal("button::press", function(_,_,_,button)
if (button == 4) then awful.spawn("amixer -D pulse sset Master 5%+", false)
elseif (button == 5) then awful.spawn("amixer -D pulse sset Master 5%-", false)
elseif (button == 1) then awful.spawn("amixer -D pulse sset Master toggle", false)
if (button == 4) then awful.spawn(INC_VOLUME_CMD, false)
elseif (button == 5) then awful.spawn(DEC_VOLUME_CMD, false)
elseif (button == 1) then awful.spawn(TOG_VOLUME_CMD, false)
end
spawn.easy_async(request_command, function(stdout, stderr, exitreason, exitcode)
spawn.easy_async(GET_VOLUME_CMD, function(stdout, stderr, exitreason, exitcode)
update_graphic(volume_widget, stdout, stderr, exitreason, exitcode)
end)
end)
watch(request_command, 1, update_graphic, volume_widget)
watch(GET_VOLUME_CMD, 1, update_graphic, volume_widget)
return volume_widget

View File

@ -5,7 +5,7 @@
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/volumearc-widget
-- @author Pavel Makhov
-- @copyright 2017 Pavel Makhov
-- @copyright 2018 Pavel Makhov
-------------------------------------------------
local awful = require("awful")
@ -38,11 +38,9 @@ local update_graphic = function(widget, stdout, _, _, _)
volume = tonumber(string.format("% 3d", volume))
widget.value = volume / 100;
if mute == "off" then
widget.colors = { beautiful.widget_red }
else
widget.colors = { beautiful.widget_main_color }
end
widget.colors = mute == 'off' and { beautiful.widget_red }
or { beautiful.widget_main_color }
end
volumearc:connect_signal("button::press", function(_, _, _, button)

View File

@ -5,7 +5,7 @@
-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/volumebar-widget
-- @author Pavel Makhov
-- @copyright 2017 Pavel Makhov
-- @copyright 2018 Pavel Makhov
-------------------------------------------------
local awful = require("awful")
@ -14,7 +14,10 @@ local spawn = require("awful.spawn")
local watch = require("awful.widget.watch")
local wibox = require("wibox")
local request_command = 'amixer -D pulse sget Master'
local GET_VOLUME_CMD = 'amixer -D pulse sget Master'
local INC_VOLUME_CMD = 'amixer -D pulse sset Master 5%+'
local DEC_VOLUME_CMD = 'amixer -D pulse sset Master 5%-'
local TOG_VOLUME_CMD = 'amixer -D pulse sset Master toggle'
local bar_color = "#74aeab"
local mute_color = "#ff0000"
@ -41,26 +44,23 @@ local update_graphic = function(widget, stdout, _, _, _)
local volume = string.match(stdout, "(%d?%d?%d)%%")
volume = tonumber(string.format("% 3d", volume))
if mute == "off" then
widget.color = mute_color
widget.value = volume / 100;
else
widget.color = bar_color
widget.value = volume / 100;
end
widget.value = volume / 100;
widget.color = mute == "off" and mute_color
or bar_color
end
volumebar_widget:connect_signal("button::press", function(_,_,_,button)
if (button == 4) then awful.spawn("amixer -D pulse sset Master 5%+", false)
elseif (button == 5) then awful.spawn("amixer -D pulse sset Master 5%-", false)
elseif (button == 1) then awful.spawn("amixer -D pulse sset Master toggle", false)
if (button == 4) then awful.spawn(INC_VOLUME_CMD)
elseif (button == 5) then awful.spawn(DEC_VOLUME_CMD)
elseif (button == 1) then awful.spawn(TOG_VOLUME_CMD)
end
spawn.easy_async(request_command, function(stdout, stderr, exitreason, exitcode)
spawn.easy_async(GET_VOLUME_CMD, function(stdout, stderr, exitreason, exitcode)
update_graphic(volumebar_widget, stdout, stderr, exitreason, exitcode)
end)
end)
watch(request_command, 1, update_graphic, volumebar_widget)
watch(GET_VOLUME_CMD, 1, update_graphic, volumebar_widget)
return volumebar_widget

View File

@ -21,7 +21,7 @@ local icon_widget = wibox.widget {
resize = false,
widget = wibox.widget.imagebox,
},
layout = wibox.container.margin(brightness_icon, 0, 0, 3),
layout = wibox.container.margin(_ , 0, 0, 3),
set_image = function(self, path)
self.icon.image = path
end,
@ -38,7 +38,7 @@ local weather_widget = wibox.widget {
layout = wibox.layout.fixed.horizontal,
}
-- helps to map openWeatherMap icons to Arc icons
--- Maps openWeatherMap icons to Arc icons
local icon_map = {
["01d"] = "weather-clear-symbolic.svg",
["02d"] = "weather-few-clouds-symbolic.svg",
@ -60,12 +60,12 @@ local icon_map = {
["50n"] = "weather-fog-symbolic.svg"
}
-- handy function to convert temperature from Kelvin to Celcius
--- handy function to convert temperature from Kelvin to Celcius
function to_celcius(kelvin)
return math.floor(tonumber(kelvin) - 273.15)
end
-- Return wind direction as a string.
--- Return wind direction as a string.
function to_direction(degrees)
-- Ref: https://www.campbellsci.eu/blog/convert-wind-directions
if degrees == nil then
@ -107,7 +107,7 @@ end)
weather_timer:start()
weather_timer:emit_signal("timeout")
-- Notification with weather information. Popups when mouse hovers over the icon
--- Notification with weather information. Popups when mouse hovers over the icon
local notification
weather_widget:connect_signal("mouse::enter", function()
notification = naughty.notify{
@ -124,6 +124,7 @@ weather_widget:connect_signal("mouse::enter", function()
width = 200
}
end)
weather_widget:connect_signal("mouse::leave", function()
naughty.destroy(notification)
end)