From e491f847e3df533d0c55efa35ebf421a1973793e Mon Sep 17 00:00:00 2001 From: BoltlessEngineer Date: Fri, 7 Feb 2025 00:52:39 +0900 Subject: [PATCH] feat(hammerspoon): override cmd-q in Safari --- hammerspoon/init.lua | 1 + hammerspoon/modules/block_cmd_q_safari.lua | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 hammerspoon/modules/block_cmd_q_safari.lua diff --git a/hammerspoon/init.lua b/hammerspoon/init.lua index c9b93c5..4e7538e 100644 --- a/hammerspoon/init.lua +++ b/hammerspoon/init.lua @@ -1 +1,2 @@ require("modules.esc_eng") +require("modules.block_cmd_q_safari") diff --git a/hammerspoon/modules/block_cmd_q_safari.lua b/hammerspoon/modules/block_cmd_q_safari.lua new file mode 100644 index 0000000..cb5cf84 --- /dev/null +++ b/hammerspoon/modules/block_cmd_q_safari.lua @@ -0,0 +1,14 @@ +CMD_Q_SAFARI = hs.hotkey.new({ "cmd" }, "q", function() + local app = hs.application.frontmostApplication() + local appName = app:name() + if app:name() == "Safari" then + local button, text = hs.dialog.blockAlert("Are you sure you want to quit Safari?", "Safari has open windows or tabs.", "Quit", "Cancel") + if button == "Quit" then + app:kill() -- This command will close Safari if "Quit" is selected + end + else + CMD_Q_SAFARI:disable() + hs.eventtap.keyStroke({ "cmd" }, "Q") + CMD_Q_SAFARI:enable() + end +end):enable() -- 2.51.2