merge biased battery levels
This commit is contained in:
commit
2cf217dc6c
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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,
|
||||
...
|
||||
```
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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`.
|
|
@ -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
|
|
@ -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},
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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
|
|
@ -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',
|
||||
|
|
|
@ -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, _, _, _)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"}),
|
||||
```
|
||||
|
|
|
@ -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 |
|
@ -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
|
|
@ -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)
|
||||
|
|
|
@ -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
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue