diff options
| author | streetturtle <streetturtle@gmail.com> | 2018-01-21 18:00:39 -0500 | 
|---|---|---|
| committer | streetturtle <streetturtle@gmail.com> | 2018-01-21 18:00:39 -0500 | 
| commit | fc7c159820c54ac360ccb2139c784573bb1ae78d (patch) | |
| tree | cd6fab919bf2831be06c5ade46abe65b81511e6a /spotify-shell | |
| parent | fd08c5b12b8d41f8675d3717e79a57b36473391c (diff) | |
Spotify Shell init commit
Diffstat (limited to 'spotify-shell')
| -rw-r--r-- | spotify-shell/spotify-shell.lua | 72 | 
1 files changed, 72 insertions, 0 deletions
diff --git a/spotify-shell/spotify-shell.lua b/spotify-shell/spotify-shell.lua new file mode 100644 index 0000000..f5c7c98 --- /dev/null +++ b/spotify-shell/spotify-shell.lua @@ -0,0 +1,72 @@ +------------------------------------------------- +-- Spotify Shell for Awesome Window Manager +-- Simplifies interaction with Spotify for Linux +-- More details could be found here: +-- https://github.com/streetturtle/awesome-wm-widgets/tree/master/spotify-shell + +-- @author Pavel Makhov +-- @copyright 2018 Pavel Makhov +------------------------------------------------- + +local awful = require("awful") +local gfs = require("gears.filesystem") +local wibox = require("wibox") + +local ICON = '/usr/share/icons/Papirus-Light/32x32/apps/spotify-linux-48x48.svg' + +local spotify_shell = awful.widget.prompt() + +local w = wibox { +    bg = '#1e252c', +    border_width = 1, +    border_color = '#84bd00', +    max_widget_size = 500, +    ontop = true, +    screen = mouse.screen, +    height = 50, +    width = 200, +} + +w:setup { +    { +        { +            image = ICON, +            widget = wibox.widget.imagebox, +            resize = false +        }, +        id = 'icon', +        top = 9, +        left = 10, +        layout = wibox.container.margin +    }, +    { +        layout = wibox.container.margin, +        left = 10, +        spotify_shell, +    }, +    id = 'left', +    layout = wibox.layout.fixed.horizontal +} + +local function launch() +    w.visible = true + +    awful.placement.top(w, { margins = {top = 40}}) +    awful.prompt.run{ +        prompt = "<b>Spotify Shell</b>: ", +        bg_cursor = '#84bd00', +        textbox = spotify_shell.widget, +        history_path = gfs.get_dir('cache') .. '/spotify_history', +        exe_callback = function(input_text) +            if not input_text or #input_text == 0 then return end +            awful.spawn("sp " .. input_text) +        end, +        done_callback = function() +            w.visible = false +        end +    } +end + +return { +    launch = launch +}  | 
