summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Makhov <pavel.makhov@savoirfairelinux.com>2017-01-23 11:01:16 -0500
committerPavel Makhov <pavel.makhov@savoirfairelinux.com>2017-01-23 11:01:16 -0500
commit2d2684587d61b294ef1f0c7f1a1d251a0aaf884a (patch)
tree4f9400b3d7ce328355e43fc262819ea96132d8ac
parent130813a6e2ed9e74526a67a44e5829b7b22eb8c2 (diff)
Move v4 compatible widget in this repo
-rw-r--r--battery-widget-v4/battery.lua59
-rw-r--r--spotify-widget-v4/spotify.lua18
-rw-r--r--volume-widget-v4/volume.lua26
3 files changed, 103 insertions, 0 deletions
diff --git a/battery-widget-v4/battery.lua b/battery-widget-v4/battery.lua
new file mode 100644
index 0000000..eb467d7
--- /dev/null
+++ b/battery-widget-v4/battery.lua
@@ -0,0 +1,59 @@
+local wibox = require("wibox")
+local awful = require("awful")
+local naughty = require("naughty")
+
+
+batteryIcon = wibox.widget {
+widget = wibox.widget.imagebox
+}
+
+function refresh_icon()
+ awful.spawn.easy_async([[bash -c 'acpi | cut -d, -f 2 | egrep -o "[0-9]{1,3}"']],
+ function(stdout, stderr, reason, exit_code)
+ local batteryType
+ local charge = tonumber(stdout)
+ if (charge >= 0 and charge < 20) then
+ batteryType="battery-empty"
+ show_battery_warning()
+ elseif (charge >= 20 and charge < 40) then batteryType="battery-caution"
+ elseif (charge >= 40 and charge < 60) then batteryType="battery-low"
+ elseif (charge >= 60 and charge < 80) then batteryType="battery-good"
+ elseif (charge >= 80 and charge <= 100) then batteryType="battery-full"
+ end
+ batteryIcon.image = "/usr/share/icons/Arc-Icons/panel/22/" .. batteryType .. ".svg"
+ end)
+end
+
+function show_battery_status()
+ awful.spawn.easy_async([[bash -c 'acpi | cut -d, -f 2,3']],
+ function(stdout, stderr, reason, exit_code)
+ naughty.notify{
+ text = stdout,
+ title = "Battery status",
+ timeout = 5, hover_timeout = 0.5,
+ width = 200,
+ }
+ end
+ )
+end
+
+function show_battery_warning()
+ naughty.notify{
+ text = "Huston, we have a problem",
+ title = "Battery is dying",
+ timeout = 5, hover_timeout = 0.5,
+ position = "bottom_right",
+ bg = "#F06060",
+ fg = "#EEE9EF",
+ width = 200,
+}
+end
+
+-- timer to refresh icon
+local batteryWidgetTimer = timer({ timeout = 60 })
+batteryWidgetTimer:connect_signal("timeout", function() refresh_icon() end)
+batteryWidgetTimer:start()
+batteryWidgetTimer:emit_signal("timeout")
+
+-- popup with battery info
+batteryIcon:connect_signal("mouse::enter", function() show_battery_status() end) \ No newline at end of file
diff --git a/spotify-widget-v4/spotify.lua b/spotify-widget-v4/spotify.lua
new file mode 100644
index 0000000..83fdca9
--- /dev/null
+++ b/spotify-widget-v4/spotify.lua
@@ -0,0 +1,18 @@
+local wibox = require("wibox")
+local awful = require("awful")
+
+spotify_widget = wibox.widget.textbox()
+spotify_widget:set_font('Play 9')
+
+function updateSpotifyWidget(widget)
+ awful.spawn.easy_async([[bash -c 'sp current-oneline']],
+ function(stdout, stderr, reason, exit_code)
+ widget:set_text(stdout)
+ end)
+end
+
+spotify_timer = timer ({timeout = 10})
+spotify_timer:connect_signal ("timeout", function() updateSpotifyWidget(spotify_widget) end)
+spotify_timer:start()
+
+spotify_timer:emit_signal("timeout")
diff --git a/volume-widget-v4/volume.lua b/volume-widget-v4/volume.lua
new file mode 100644
index 0000000..3a4793a
--- /dev/null
+++ b/volume-widget-v4/volume.lua
@@ -0,0 +1,26 @@
+local wibox = require("wibox")
+local awful = require("awful")
+
+function update_volume()
+ awful.spawn.easy_async([[bash -c 'amixer -D pulse sget Master']],
+ function(stdout, stderr, reason, exit_code)
+ local volume = string.match(stdout, "(%d?%d?%d)%%")
+ volume = tonumber(string.format("% 3d", volume))
+ local volume_icon_name
+
+ if (volume >= 0 and volume < 20) then volume_icon_name="audio-volume-none-panel"
+ elseif (volume >= 20 and volume < 40) then volume_icon_name="audio-volume-zero-panel"
+ elseif (volume >= 40 and volume < 60) then volume_icon_name="audio-volume-low-panel"
+ elseif (volume >= 60 and volume < 80) then volume_icon_name="audio-volume-medium-panel"
+ elseif (volume >= 80 and volume <= 100) then volume_icon_name="audio-volume-high-panel"
+ end
+ volume_icon:set_image("/usr/share/icons/Arc-Icons/panel/22/" .. volume_icon_name .. ".svg")
+ end)
+end
+
+
+volume_icon = wibox.widget.imagebox()
+
+mytimer = timer({ timeout = 0.2 })
+mytimer:connect_signal("timeout", function () update_volume() end)
+mytimer:start() \ No newline at end of file