diff --git a/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/Spoons/HideZoomWindow.spoon/init.lua b/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/Spoons/HideZoomWindow.spoon/init.lua new file mode 100644 index 0000000..965da52 --- /dev/null +++ b/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/Spoons/HideZoomWindow.spoon/init.lua @@ -0,0 +1,45 @@ +--- === Hide Zoom Window === +-- Credit: https://news.ycombinator.com/item?id=47369091 + +local obj = {} +obj.__index = obj + +-- Metadata +obj.name = "HideZoomWindow" +obj.version = "0.1" + +function obj:init() + -- Hide Zoom's "share" windows so it doesn't come back on ESC keypress + local zoomWindow = nil + local originalFrame = nil + + hs.hotkey.bind({"cmd", "ctrl", "alt"}, "H", function() + print("> trying to hide zoom") + if not zoomWindow then + print("> looking for window") + zoomWindow = hs.window.find("zoom share statusbar window") + end + + if zoomWindow then + print("> found window") + if originalFrame then + print("> restoring") + zoomWindow:setFrame(originalFrame) + originalFrame = nil + zoomWindow = nil + else + print("> hiding") + originalFrame = zoomWindow:frame() + local screen = zoomWindow:screen() + local frame = zoomWindow:frame() + frame.x = screen:frame().w + 99000 + frame.y = screen:frame().h + 99000 + zoomWindow:setFrame(frame) + end + else + print("> window not found") + end + end) +end + +return obj diff --git a/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/default.nix b/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/default.nix index 3729002..a7df4d4 100644 --- a/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/default.nix +++ b/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/default.nix @@ -29,6 +29,7 @@ in zed = "${config.programs.zed-editor.package}/Applications/Zed.app"; }; xdg.configFile."hammerspoon/Spoons/MoveWindow.spoon".source = ./Spoons/MoveWindow.spoon; + xdg.configFile."hammerspoon/Spoons/HideZoomWindow.spoon".source = ./Spoons/HideZoomWindow.spoon; home.activation.reloadHammerspoon = config.lib.dag.entryAfter [ "writeBoundary" ] '' $DRY_RUN_CMD /Applications/Hammerspoon.app/Contents/Frameworks/hs/hs -c "hs.reload()" diff --git a/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/init.lua b/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/init.lua index 3a99585..38ff771 100644 --- a/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/init.lua +++ b/platforms/home-manager/modules/nmasur/presets/services/hammerspoon/init.lua @@ -3,3 +3,4 @@ hs.loadSpoon("ControlEscape"):start() -- Load Hammerspoon bits from https://gith hs.loadSpoon("Launcher"):init() hs.loadSpoon("DismissAlerts"):init() hs.loadSpoon("MoveWindow"):init() +hs.loadSpoon("HideZoomWindow"):init()