summaryrefslogtreecommitdiff
path: root/scroll/scripts/scratchpad.lua
blob: 7e078d63534ba9697f7a793442dd74d25fc60f58 (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
local args, _ = ...
local id = ""
local spawn = ""

for i, arg in ipairs(args) do
  if i <= 1 then
  id = arg
  else
    spawn = spawn .. " " .. arg
  end
end

local function exists(id)
  local is_in_array = false
  local cons = scroll.scratchpad_get_containers()
  for _, con in ipairs(cons) do
    local views = scroll.container_get_views(con)
    for _, view in ipairs(views) do
      local app_id = scroll.view_get_app_id(view)
      if (app_id == id) then
        is_in_array = true
      end
    end
  end
  return is_in_array
end

local function is_focused(id)
  local view = scroll.focused_view()
  local app_id = scroll.view_get_app_id(view)
  return app_id == id
end

if (not exists(id)) then
  scroll.command(nil, "exec kitty --class " .. id .. spawn)
end
if (is_focused(id)) then
  scroll.command(nill, "scratchpad show")
else
  scroll.command(nil, "[app_id=\"" .. id .. "\"] scratchpad show")
end