본문 바로가기

IT

Mac - Cmd + Q 를 2회 클릭하여 앱 종료하기

반응형

맥에서 앱을 종료하지 않고 창만 닫는 키는 Cmd + W 이고, 앱을 완전히 종료하는 키는 Cmd + Q 입니다.

W, Q 키는 바로 옆에 붙어 있어 종종 창만 닫으려고 했는데 앱이 종료되는 경우가 있습니다.

 

하여, Cmd + Q 를 2회 연속 클릭하여 실수로 앱이 종료되는 문제를 해결하는 방법에 대해서 알아보겠습니다.

 

맥의 기본 설정으로는 해결이 불가능하고, Hammerspoon 이라는 앱을 이용해서 간단히 해결하였습니다.

brew 등으로 hammerspoon 을 설치합니다.

brew install --cask hammerspoon

 

Hammerspoon 은 앱 구동 시 ~/.hammerspoon/init.lua 라는 파일의 설정을 로딩하여 동작합니다.

해당 파일에 lua 스크립트로 Cmd + Q 를 2회 연속 클릭하여 앱을 종료하는 기능를 추가합니다.

아래는 해당 스크립트입니다.

local quit_modal = hs.hotkey.modal.new("cmd", "q")

function quit_modal:entered()
  -- 메시지
  hs.alert.show("Press ⌘+Q again to quit")

  -- 1초 후 모달 닫음
  hs.timer.doAfter(1, function()
    quit_modal:exit()
  end)
end

quit_modal:bind("cmd", "q", function()
  -- 앱이 종료됨
  local app = hs.application.frontmostApplication()
  if app then
    app:kill()
  end
  -- 모달 닫음
  quit_modal:exit()
end)

hs.hotkey.bind({"cmd"}, "q", function()
  -- cmd+q를 눌렀을 때, 최전방 앱이 Finder가 아닐 경우에만 quit_modal 실행
  local app = hs.application.frontmostApplication()
  if app and app:name() ~= "Finder" then
    quit_modal:enter()
  end
end)

 

Finder 는 맥에서 종료되지 않는 앱입니다. 하여 Finder 에 포커스가 있는 경우에는 해당 앱은 종료하지 않게 설정되어 있습니다.

 

끝.

반응형