Merge remote-tracking branch 'origin/master'

# Conflicts:
#	volume-widget/README.md
This commit is contained in:
Pavel Makhov 2017-06-17 12:48:03 -04:00
commit c93d1e6f48
2 changed files with 51 additions and 20 deletions

View File

@ -2,33 +2,63 @@ local wibox = require("wibox")
local awful = require("awful") local awful = require("awful")
local watch = require("awful.widget.watch") local watch = require("awful.widget.watch")
spotify_widget = wibox.widget.textbox() local get_spotify_status_cmd = '/home/'.. os.getenv("USER") .. '/.config/awesome/awesome-wm-widgets/spotify-widget/spotify_stat'
spotify_widget:set_font('Play 9') local get_current_song_cmd = 'sp current-oneline'
-- optional icon, could be replaced by spotfiy logo (https://developer.spotify.com/design/) spotify_widget = wibox.widget {
spotify_icon = wibox.widget.imagebox() {
spotify_icon:set_image("/usr/share/icons/Arc/devices/22/audio-headphones.png") id = "icon",
widget = wibox.widget.imagebox,
watch( },
"sp current-oneline", 1, {
function(widget, stdout, _, _, _) id = 'current_song',
if string.find(stdout, 'Error: Spotify is not running.') ~= nil then widget = wibox.widget.textbox,
widget:set_text("") font = 'Play 9'
else },
widget:set_text(stdout) layout = wibox.layout.align.horizontal,
end set_image = function(self, path)
self.icon.image = path
end, end,
spotify_widget set_text = function(self, path)
) self.current_song.text = path
end,
}
local update_widget_icon = function(widget, stdout, _, _, _)
stdout = string.gsub(stdout, "\n", "")
if (stdout == 'RUNNING') then
widget:set_image("/usr/share/icons/Arc/actions/24/player_play.png")
elseif (stdout == "CORKED") then
widget:set_image("/usr/share/icons/Arc/actions/24/player_pause.png")
else
widget:set_image(nil)
end
end
local update_widget_text = function(widget, stdout, _, _, _)
if string.find(stdout, 'Error: Spotify is not running.') ~= nil then
widget:set_text('')
widget:set_visible(false)
else
widget:set_text(stdout)
widget:set_visible(true)
end
end
watch(get_spotify_status_cmd, 1, update_widget_icon, spotify_widget)
watch(get_current_song_cmd, 1, update_widget_text, spotify_widget)
--[[ --[[
-- Adds mouse control to the widget: -- Adds mouse control to the widget:
-- - left click - play/pause -- - left click - play/pause
-- - scroll up - play next song -- - scroll up - play next song
-- - scroll down - play previous song ]] -- - scroll down - play previous song ]]
spotify_widget:connect_signal("button::press", function(_,_,_,button) spotify_widget:connect_signal("button::press", function(_, _, _, button)
if (button == 1) then awful.spawn("sp play", false) if (button == 1) then awful.spawn("sp play", false) -- left click
elseif (button == 4) then awful.spawn("sp next", false) elseif (button == 4) then awful.spawn("sp next", false) -- scroll up
elseif (button == 5) then awful.spawn("sp prev", false) elseif (button == 5) then awful.spawn("sp prev", false) -- scroll down
end end
awful.spawn.easy_async(get_spotify_status_cmd, function(stdout, stderr, exitreason, exitcode)
update_widget_icon(spotify_widget, stdout, stderr, exitreason, exitcode)
end)
end) end)

View File

@ -21,6 +21,7 @@ s.mytasklist, -- Middle widget
volume_widget, volume_widget,
... ...
``` ```
- _Optional step._ In Arc icon theme the muted audio level icon (![Volume-widget](./audio-volume-muted-symbolic.png)) looks like 0 level icon, which could be a bit misleading. - _Optional step._ In Arc icon theme the muted audio level icon (![Volume-widget](./audio-volume-muted-symbolic.png)) looks like 0 level icon, which could be a bit misleading.
So I decided to use original muted icon for low audio level, and the same icon, but colored in red for muted audio level. Fortunately icons are in svg format, so you can easily recolor them with `sed`, so it would look like this (![Volume Widget](./audio-volume-muted-symbolic_red.png)): So I decided to use original muted icon for low audio level, and the same icon, but colored in red for muted audio level. Fortunately icons are in svg format, so you can easily recolor them with `sed`, so it would look like this (![Volume Widget](./audio-volume-muted-symbolic_red.png)):