local args, _ = ... local id = "" local terminal = false local command = nil for i, arg in ipairs(args) do if i <= 1 then id = arg elseif i == 2 then if (arg == "kitty") then terminal = true else command = arg --terminal = true end elseif (terminal == true) then command = arg break end end --scroll.command(nil, "exec notify-send \"Spawn command\" \"" .. command .. "\"") 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 local function spawn(term, comm) if (term) then if (comm) then scroll.command(nil, "exec kitty --class " .. id .. " -e " .. comm) else scroll.command(nil, "exec kitty --class " .. id) end else scroll.command(nil, "exec " .. comm) end end if (not exists(id)) then spawn(terminal, command) end if (is_focused(id)) then scroll.command(nil, "scratchpad show") else scroll.command(nil, "[app_id=\"" .. id .. "\"] scratchpad show") end