From c67c3230a835ef7760244c8f0bb8c520f4c425e8 Mon Sep 17 00:00:00 2001 From: rope Date: Wed, 19 Aug 2026 20:33:28 +0100 Subject: [PATCH 1/2] Revert "hyprland: park yazi on a special workspace so Super+E toggles instead of spawning ghostty" This reverts commit 6302cc140620e6f0a7f23816ad7227041e12d4f1. --- settings/hyprland.nix | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/settings/hyprland.nix b/settings/hyprland.nix index 3ae7f4f..f4342e9 100644 --- a/settings/hyprland.nix +++ b/settings/hyprland.nix @@ -276,11 +276,6 @@ 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". @@ -331,7 +326,6 @@ 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) @@ -407,20 +401,6 @@ 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). @@ -467,7 +447,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", toggle_scratchpad("files", "dev.fred.files")) + hl.bind(mod .. " + E", hl.dsp.exec_cmd("ghostty -e yazi")) 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()) From 856f6822c64a19e3b1bf91be53e73ec62a9caa1c Mon Sep 17 00:00:00 2001 From: rope Date: Wed, 19 Aug 2026 20:36:31 +0100 Subject: [PATCH 2/2] hyprland: Super+E uses ghostty +new-window so yazi reuses the running instance --- settings/hyprland.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/settings/hyprland.nix b/settings/hyprland.nix index f4342e9..d64313a 100644 --- a/settings/hyprland.nix +++ b/settings/hyprland.nix @@ -447,7 +447,13 @@ 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")) + -- + -- +new-window, not `-e yazi`: -e force-sets gtk-single-instance=false + -- so the CLI args are respected, which means every press builds a + -- whole second Ghostty application — GTK init, config parse, font + -- discovery, renderer setup. +new-window instead asks the running + -- instance over D-Bus to open a window, and forwards --command. + hl.bind(mod .. " + E", hl.dsp.exec_cmd("ghostty +new-window --working-directory=~/ --command=yazi")) 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())