diff options
author | ZachIR <zachir@librem.one> | 2025-07-26 13:00:57 -0500 |
---|---|---|
committer | ZachIR <zachir@librem.one> | 2025-07-26 13:00:57 -0500 |
commit | b35c7ad4db8e604f109f4857a4ed5a1c236caf30 (patch) | |
tree | c9ab9ef141ce56d1c5ab08df9ef567a01f559466 | |
parent | 208a0ff78229e85a4a6ae448aac3c54686ca0585 (diff) |
Add most scratchpads to scroll
-rw-r--r-- | scroll/config | 32 | ||||
-rw-r--r-- | scroll/scripts/scratchpad.lua | 41 |
2 files changed, 73 insertions, 0 deletions
diff --git a/scroll/config b/scroll/config index 3c8b0c3..2b18e24 100644 --- a/scroll/config +++ b/scroll/config @@ -499,6 +499,38 @@ bindgesture swipe:4:up scale_workspace overview # Enable window swallowing (of mpv specifically) lua $home/.config/scroll/scripts/swallow.lua +# Scratchpads +for_window [app_id="sphtop"] move scratchpad +for_window [app_id="sphtop"] scratchpad show +bindsym $mod+Ctrl+z lua $home/.config/scroll/scripts/scratchpad.lua sphtop htop +for_window [app_id="spterm"] move scratchpad +for_window [app_id="spterm"] scratchpad show +bindsym $mod+Ctrl+x lua $home/.config/scroll/scripts/scratchpad.lua spterm +for_window [app_id="sppmxr"] move scratchpad +for_window [app_id="sppmxr"] scratchpad show +bindsym $mod+Ctrl+c lua $home/.config/scroll/scripts/scratchpad.lua sppmxr pulsemixer +for_window [app_id="spblue"] move scratchpad +for_window [app_id="spblue"] scratchpad show +bindsym $mod+Ctrl+v lua $home/.config/scroll/scripts/scratchpad.lua spblue bluetoothctl +for_window [app_id="spncmp"] move scratchpad +for_window [app_id="spncmp"] scratchpad show +bindsym $mod+Ctrl+b lua $home/.config/scroll/scripts/scratchpad.lua spncmp ncmpcpp +for_window [app_id="spmutt"] move scratchpad +for_window [app_id="spmutt"] scratchpad show +bindsym $mod+Ctrl+a lua $home/.config/scroll/scripts/scratchpad.lua spmutt neomutt +for_window [app_id="spprof"] move scratchpad +for_window [app_id="spprof"] scratchpad show +bindsym $mod+Ctrl+s lua $home/.config/scroll/scripts/scratchpad.lua spprof profanity +for_window [app_id="spirss"] move scratchpad +for_window [app_id="spirss"] scratchpad show +bindsym $mod+Ctrl+d lua $home/.config/scroll/scripts/scratchpad.lua spirss irssi +for_window [app_id="sptodo"] move scratchpad +for_window [app_id="sptodo"] scratchpad show +bindsym $mod+Ctrl+f lua $home/.config/scroll/scripts/scratchpad.lua sptodo todo +for_window [app_id="sptrmc"] move scratchpad +for_window [app_id="sptrmc"] scratchpad show +bindsym $mod+Ctrl+g lua $home/.config/scroll/scripts/scratchpad.lua sptrmc tremc + # # Workspace rules: # diff --git a/scroll/scripts/scratchpad.lua b/scroll/scripts/scratchpad.lua new file mode 100644 index 0000000..7e078d6 --- /dev/null +++ b/scroll/scripts/scratchpad.lua @@ -0,0 +1,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 |