yabai·skhd로 macOS 강의 녹화 환경 자동화하기

yabai로 창 위치·크기를 픽셀 단위로 고정하고 skhd 단축키로 OBS·WezTerm 실행과 방해 앱 숨김까지 한 번에 처리하는 macOS 녹화 자동화 스크립트

2026-08-12 · 최초 발행 2026-05-24

반복되는 강의 녹화 준비 작업을 매번 수작업으로 하고 있다면, macOS 윈도우 매니저 자동화 도구인 yabai와 skhd 조합이 그 반복을 끊어줄 수 있다. WezTerm 창을 정확히 1920×1080으로 맞추고, 방해 앱을 숨기고, OBS와 Focusee를 실행하는 모든 과정을 단축키 하나에 묶어낼 수 있다. 설치부터 완전 자동화 스크립트 구성까지 실전 기준으로 정리한다.

yabai와 skhd의 역할 구분

yabai는 macOS에서 창의 위치와 크기를 스크립트로 제어하는 윈도우 매니저 엔진이다. skhd는 키보드 단축키 핸들러로, 특정 단축키 입력 시 yabai 명령을 포함한 임의의 셸 명령을 실행한다.

도구 역할
yabai 창 이동, 크기 변경, 위치 절대 지정
skhd 단축키 바인딩 → 셸 명령 실행
jq yabai JSON 쿼리 결과 파싱

두 도구는 Homebrew로 함께 설치한다.

brew install koekeishiya/formulae/yabai
brew install koekeishiya/formulae/skhd
brew install jq

brew services start yabai
brew services start skhd

접근 권한 설정 (필수)

macOS 보안 정책 때문에 두 도구 모두 시스템 권한을 수동으로 허용해야 한다. 시스템 설정 → 개인정보 보호 및 보안에서 아래 항목에 각 앱을 추가한다.

  • 손상 접근성(Accessibility): yabai, skhd
  • 화면 녹화(Screen Recording): yabai

권한 설정 후 설치가 정상인지 확인한다.

yabai -m query --windows
# JSON 배열이 출력되면 정상

창 크기·위치 제어 기본 명령

강의 녹화의 핵심은 터미널 창을 항상 정확한 픽셀로 맞추는 것이다. yabai의 절대값 명령으로 해결한다.

# 현재 활성 창을 1920×1080으로 리사이즈
yabai -m window --resize abs:1920:1080

# 2560×1440 모니터 기준으로 중앙 배치 (x=320, y=180)
yabai -m window --move abs:320:180

두 명령을 함께 실행하면 화면 중앙에 1920×1080 창이 정확하게 배치된다.

yabai -m window --move abs:320:180
yabai -m window --resize abs:1920:1080

SIP 관련 참고: 창 이동·크기 조절 목적만으로는 SIP(System Integrity Protection) 비활성화가 필요하지 않다. 고급 공간(Space) 제어 기능을 쓸 때만 필요하다.

skhd 단축키 바인딩

~/.skhdrc 파일에 아래처럼 추가하면 단축키 하나로 창을 정렬할 수 있다.

# ~/.skhdrc
ctrl + alt + cmd - r : \
    yabai -m window --move abs:320:180; \
    yabai -m window --resize abs:1920:1080

변경 사항을 적용한다.

skhd --reload
# 또는
brew services restart skhd

완전 자동화: Recording Mode 스크립트

단축키 하나로 WezTerm 정렬 + OBS 실행 + 방해 앱 숨김까지 처리하는 스크립트를 구성한다.

mkdir -p ~/scripts/recording-mode
touch ~/scripts/recording-mode/start-recording-mode.sh
chmod +x ~/scripts/recording-mode/start-recording-mode.sh

start-recording-mode.sh 전체 내용은 다음과 같다.

#!/bin/bash

echo "Starting Recording Mode..."

# 1. 방해 앱 숨김
osascript -e 'tell application "Slack" to hide'
osascript -e 'tell application "Discord" to hide'
osascript -e 'tell application "Messages" to hide'
osascript -e 'tell application "Mail" to hide'
osascript -e 'tell application "Telegram" to hide'

# 2. OBS 실행
open -a "OBS"

# 3. Focusee 실행
open -a "FocuSee"

# 4. WezTerm 실행
open -a "WezTerm"

# 5. 앱 실행 대기
sleep 3

# 6. WezTerm 활성화
osascript <<EOF
tell application "WezTerm"
    activate
end tell
EOF

sleep 1

# 7. yabai로 WezTerm 창 위치/크기 조정
WINDOW_ID=$(yabai -m query --windows | jq '.[] | select(.app=="WezTerm") | .id' | head -n 1)

if [ ! -z "$WINDOW_ID" ]; then
    yabai -m window $WINDOW_ID --move abs:320:180
    yabai -m window $WINDOW_ID --resize abs:1920:1080
fi

# 8. OBS 앞으로 가져오기
osascript <<EOF
tell application "OBS"
    activate
end tell
EOF

echo "Recording Mode Ready!"

이 스크립트를 skhd에 연결한다.

# ~/.skhdrc
ctrl + alt + cmd - r : ~/scripts/recording-mode/start-recording-mode.sh

전체 자동화 플로우

단축키 입력Ctrl+Alt+Cmd+Rstart-recording-mode.sh실행방해 숨김Slack, Discord, Mail... 실행OBS, Focusee, WezTermWezTerm 활성화yabai 제어위치 조정abs:320:180크기 조정abs:1920:1080OBS 포그라운드 전환녹화 준비 완료

macOS 바탕화면 보기와 앱 숨기기

강의 시작 전 화면 정리에 유용한 macOS 기본 기능도 함께 파악해두면 좋다.

방법 단축키/방법 특징
Show Desktop F11 또는 Cmd+F3 창을 옆으로 밀어냄, 다시 누르면 복귀
트랙패드 제스처 엄지+세 손가락 펼치기 시스템 설정에서 활성화 필요
Hot Corner 시스템 설정 → 데스크탑 및 Dock 마우스 구석 이동으로 즉시 실행

macOS의 "Show Desktop"은 창을 최소화하는 것이 아니라 숨기는 동작이다. 강의 목적으로는 AppleScript를 이용한 **앱 숨기기(hide)**가 더 깔끔하다.

# 특정 앱 제외 전체 숨기기
osascript -e '
tell application "System Events"
    set visible of every process whose visible is true and name is not "WezTerm" to false
end tell
'

WezTerm 강의용 설정

녹화 품질을 위해 ~/.wezterm.lua에 강의 전용 설정을 적용한다.

return {
  font_size = 20.0,        -- 가독성 우선
  line_height = 1.2,
  window_decorations = "RESIZE",
  enable_tab_bar = false,  -- 화면 공간 확보
}

확장 가능한 기능

이 자동화 구조에 추가할 수 있는 기능 목록이다.

  • OBS 자동 녹화 시작: OBS WebSocket API 활용
  • 방해금지 모드 자동 ON: shortcuts run "Focus Recording"
  • 강의 전용 배경화면 변경: AppleScript + osascript
  • 날짜 기반 프로젝트 폴더 자동 생성: mkdir -p ~/lectures/$(date +%Y-%m-%d)
  • WhisperX 자동 자막 생성: 녹화 완료 후 훅 연결
  • YouTube 업로드 자동화: yt-dlp 또는 YouTube Data API

yabai와 skhd 조합은 macOS에서 개발자 강의 녹화 워크플로를 스크립트화할 수 있는 가장 강력한 방법이다. Rectangle Pro 같은 GUI 도구와 달리 코드로 모든 동작을 정의하기 때문에 재현 가능하고, 파이프라인으로 확장하기 쉽다. 단축키 하나로 녹화 환경 세팅을 완료하는 "강의 시작 의식 자동화"는 콘텐츠 제작의 마찰을 줄이고 생산성을 높이는 데 실질적인 효과가 있다. 기본 창 제어부터 시작해서 OBS WebSocket, 자막 자동화까지 단계적으로 확장해 나가는 것을 권장한다.

Sources

yabaiskhdmacOS 자동화강의 녹화윈도우 매니저