맥에 다른 스피커나 헤드폰이 연결되어 있는 경우처럼 여러개의 입출력 장치가 있는 경우, 상황에따라 변경하려면 시스템 설정 -> 사운드로 가서 변경해야 합니다. 매우 귀찮은 일을 단축키 한 번으로 변경할 수 있도록 해보겠습니다.
필요한 것은 해머스푼이 필요한데요. 해머스푼은 맥에서 여러가지 자동화를 할 수 있는 도구입니다. 스크립트를 작성해서 내가 원하는 기능을 하도록 만들 수 있는 도구입니다.
homebrew로 설치합니다.
brew install --cask hammerspoon
해머스푼을 실행하고 화면 상단에 해머스푼 아이콘을 클릭하여 Open Config
를
클릭합니다. 그러면 편집기로 init.lua
파일이 열리는데 여기에 다음 스크립트를 추가합니다.
function change_output_device()
local devices = hs.audiodevice.allOutputDevices()
local currentDevice = hs.audiodevice.defaultOutputDevice()
local currentIndex = 1
for i, device in ipairs(devices) do
if device:uid() == currentDevice:uid() then
currentIndex = i
break
end
end
local nextIndex = (currentIndex % #devices) + 1
local nextDevice = devices[nextIndex]
nextDevice:setDefaultOutputDevice()
hs.alert.show(nextDevice:name())
end
function change_input_device()
local devices = hs.audiodevice.allInputDevices()
local currentDevice = hs.audiodevice.defaultInputDevice()
local currentIndex = 1
for i, device in ipairs(devices) do
if device:uid() == currentDevice:uid() then
currentIndex = i
break
end
end
local nextIndex = (currentIndex % #devices) + 1
local nextDevice = devices[nextIndex]
nextDevice:setDefaultInputDevice()
hs.alert.show(nextDevice:name())
end
-- 다음 키를 눌렀을 때 위의 함수를 실행
-- 이 키 매핑은 마음대로 바꿔도 됩니다.
hs.hotkey.bind({"cmd", "alt", "ctrl"}, 'o', change_output_device)
hs.hotkey.bind({"cmd", "alt", "ctrl"}, 'i', change_input_device)
이제 설정을 다시 불러와야 합니다. Console...
을 누르면 다음과 같은 창이
뜨는데요.
오른쪽 위에 있는 Reload config
버튼을 누르면 설정을 다시 불러옵니다. 이때
출력되는 데이터에 뭔가 이상이 있는지 확인합니다. 이상이 없다면 아까 등록한
단축키를 눌러서 올바르게 되는지 확인합니다. 단축키를 누르면 다음 걸로 계속
넘어가서 단축키 한 번 만으로 입출력 장치를 변경할 수 있게 됩니다.
자바스크립트로 직접 만들면서 배우는 - 자료구조와 알고리즘 강의 바로 가기
실습으로 마스터하는 OAuth 2.0: 기본부터 보안 위험까지 - OAuth 2.0 강의 바로 가기
기계인간 이종립, 소프트웨어 개발의 지혜 - Git 강의 바로 가기
코드숨에서 매주 스터디를 진행하고 있습니다. 메일을 등록하시면 새로운 스터디가 시작될 때 알려드릴게요!