From 1d08a478fd02c1c8405754ebc0b9d5a146b865f3 Mon Sep 17 00:00:00 2001 From: Pavel Makhov Date: Fri, 25 Jan 2019 22:26:39 -0500 Subject: [PATCH] some improvements to run-shell2 --- run-shell-2/run-shell-2.lua | 84 ++++++++++++++++++++++++------------- run-shell-2/run.lua | 21 ++++++++++ 2 files changed, 77 insertions(+), 28 deletions(-) create mode 100644 run-shell-2/run.lua diff --git a/run-shell-2/run-shell-2.lua b/run-shell-2/run-shell-2.lua index e627250..89491de 100644 --- a/run-shell-2/run-shell-2.lua +++ b/run-shell-2/run-shell-2.lua @@ -14,6 +14,8 @@ local wibox = require("wibox") local gears = require("gears") local completion = require("awful.completion") +local run = require("awesome-wm-widgets.run-shell-2.run") + local run_shell = awful.widget.prompt() local w = wibox { @@ -26,21 +28,11 @@ local w = wibox { width = 250, shape = function(cr, width, height) gears.shape.rounded_rect(cr, width, height, 3) --- ` gears.shape.infobubble(cr, width, height) + -- ` gears.shape.infobubble(cr, width, height) end } -w:setup { - { - { - markup = 'a', - widget = wibox.widget.textbox, - }, - id = 'icon', - top = 2, - left = 10, - layout = wibox.container.margin - }, +local g = { { layout = wibox.container.margin, left = 10, @@ -50,23 +42,59 @@ w:setup { layout = wibox.layout.fixed.horizontal } -local function launch() - w.visible = true - awful.placement.top(w, { margins = {top = 40}, parent = awful.screen.focused()}) - awful.prompt.run { - prompt = 'Run: ', - 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.visible = false - end - } +local function launch(type) + + if type == 'run' then + table.insert(g, 1, run.icon) + w:setup(g) + awful.placement.top(w, { margins = { top = 40 }, parent = awful.screen.focused() }) + w.visible = true + awful.prompt.run { + prompt = run.text, + bg_cursor = run.cursor_color, + textbox = run_shell.widget, + completion_callback = completion.shell, + exe_callback = function(...) + run_shell:spawn_and_handle_error(...) + end, + history_path = gfs.get_cache_dir() .. run.history, + done_callback = function() + w.visible = false + table.remove(g, 1) + end + } + elseif type == 'spotify' then + table.insert(g, 1, { + { + image = '/usr/share/icons/Papirus-Light/32x32/apps/spotify-linux-48x48.svg', + widget = wibox.widget.imagebox, + resize = false + }, + id = 'icon', + top = 9, + left = 10, + layout = wibox.container.margin + }) + w:setup(g) + awful.placement.top(w, { margins = { top = 40 }, parent = awful.screen.focused() }) + w.visible = true + + awful.prompt.run { + prompt = "Spotify Shell: ", + bg_cursor = '#84bd00', + textbox = run_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 + table.remove(g, 1) + end + } + end end return { diff --git a/run-shell-2/run.lua b/run-shell-2/run.lua new file mode 100644 index 0000000..12644ba --- /dev/null +++ b/run-shell-2/run.lua @@ -0,0 +1,21 @@ +local wibox = require("wibox") + +local icon = { + { + markup = 'a', + widget = wibox.widget.textbox, + }, + id = 'icon', + top = 2, + left = 10, + layout = wibox.container.margin +} + +local text = 'Run: ' + +return { + icon = icon, + text = text, + cursor_color = '#74aeab', + history = '/history' +} \ No newline at end of file