summaryrefslogtreecommitdiff
path: root/run-shell/run-shell.lua
blob: 7d5eb41aba62d8f38d08967eaa328c0d340d4e1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
-------------------------------------------------
-- 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 gears = require("gears")
local naughty = require("naughty")
local completion = require("awful.completion")

local spotify_shell = awful.widget.prompt()

local w = wibox{
    --    bg = '#1e252c55',
    --    bgimage = '/home/pmakhov/.config/awesome/themes/awesome-darkspace/somecity.jpg',
    visible = false,
    border_width = 1,
    border_color = '#333333',
    max_widget_size = 500,
    ontop = true,
    --    height = 50,
    --    width = 250,
    height = 1060,
    width = 1920,
    shape = function(cr, width, height)
        gears.shape.rounded_rect(cr, width, height, 3)
    end
}

w:setup {
    {
        {
            text = '',
            font = 'Play 20',
            widget = wibox.widget.textbox,
        },
        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(s)

    awful.spawn.with_line_callback(os.getenv("HOME") .. "/.config/awesome/awesome-wm-widgets/run-shell/scratch_6.sh", {
        stdout = function(line)
            w.visible = true
--            naughty.notify { text = "LINE:" .. line }
            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 = spotify_shell.widget,
                completion_callback = completion.shell,
                exe_callback = function(...)
                    spotify_shell:spawn_and_handle_error(...)
                end,
                history_path = gfs.get_cache_dir() .. "/history",
                done_callback = function()
                    w.bgimage=''
                    w.visible = false
                    awful.spawn(os.getenv("HOME") .. '/.IntelliJIdea2018.2/config/scratches/scratch_7.sh')
                end
            }
        end,
        stderr = function(line)
            naughty.notify { text = "ERR:" .. line }
        end,
    })

    --    w.bgimage = '/home/pmakhov/.config/awesome/themes/awesome-darkspace/somecity.jpg'
    --    w.bg = '#333333',

    --    w.visible = true
    --    awful.placement.top(w, { margins = { top = 400 }, parent = awful.screen.focused() })
    --    awful.prompt.run {
    --        prompt = "<b>Run</b>: ",
    --        bg_cursor = '#74aeab',
    --        textbox = spotify_shell.widget,
    --        completion_callback = completion.shell,
    --        exe_callback = function(...)
    --            spotify_shell:spawn_and_handle_error(...)
    --        end,
    --        history_path = gfs.get_cache_dir() .. "/history",
    --        done_callback = function()
    --            w.visible = false
    --        end
    --    }
end

return {
    launch = launch
}