hyprland: park yazi on a special workspace so Super+E toggles instead of spawning ghostty

This commit is contained in:
rope 2026-08-19 20:30:38 +01:00
parent d9b0d7ae10
commit 6302cc1406

View file

@ -276,6 +276,11 @@ in
-- on them reads as "reset this thing", not "close it".
local scratchpads = {
["dev.fred.scratchpad"] = "ghostty --class=dev.fred.scratchpad --title=scratchpad",
-- Yazi, parked the same way. A fresh `ghostty -e yazi` per press
-- has to link 131 shared libraries and init GTK before it draws
-- anything, so SUPER+E felt sluggish even with the daemon warm.
-- Toggling a special workspace spawns nothing.
["dev.fred.files"] = "ghostty --class=dev.fred.files --title=files -e yazi",
-- Spotify sets its own class, so no --class trick here; the
-- lookup below lowercases before falling back, which covers both
-- the Wayland app id and the XWayland "Spotify".
@ -326,6 +331,7 @@ in
-- login so SUPER+Return is always an instant toggle and the shell
-- keeps its history/cwd between peeks.
hl.exec_cmd(scratchpads["dev.fred.scratchpad"])
hl.exec_cmd(scratchpads["dev.fred.files"])
-- swayosd removed; volume/brightness OSD handled by quickshell
${lib.optionalString isMacbook ''hl.exec_cmd("hypridle")''}
end)
@ -401,6 +407,20 @@ in
center = true,
})
-- Yazi scratchpad SUPER+E.
hl.window_rule({
match = { class = "^dev.fred.files$" },
workspace = "special:files silent",
})
hl.window_rule({
name = "files-inset",
match = { class = "^dev.fred.files$" },
float = true,
size = "80% 80%",
center = true,
})
-- Games stall on other workspaces: no frame callbacks = no render =
-- game loop blocks. Keep them ticking in the background at
-- misc:render_unfocused_fps (15).
@ -447,7 +467,7 @@ in
-- palette instead of needing a GTK restart. Nemo stays one key
-- away on Super+N it is the only one of the two that can drag
-- a file into a browser.
hl.bind(mod .. " + E", hl.dsp.exec_cmd("ghostty -e yazi"))
hl.bind(mod .. " + E", toggle_scratchpad("files", "dev.fred.files"))
hl.bind(mod .. " + N", hl.dsp.exec_cmd("nemo"))
hl.bind(mod .. " + R", hl.dsp.exec_cmd("${pkgs.quickshell}/bin/qs ipc call launcher toggle"))
hl.bind(mod .. " + Q", hl.dsp.window.close())