본문 바로가기
C.W.K.
Stream
Lesson 04 of 04 · published

잃어버릴 수 없는 단축키 하나

~10 min · palette, discovery, non-activating, overflow

Level 0식은 부싯돌
0 XP0/34 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"조합 서른 개는 못 외워. 하나만 외우고 나머지는 찾으면 되지."

다 조합을 주면 조합이 너무 많아져

매크로마다 단축키를 붙이는 건 하루에도 몇 번씩 쓰는 두세 개엔 훌륭해. 개수가 늘면 무너지고. 서른 개를 외우는 사람은 없고, 많이 붙일수록 시스템이랑도 자기들끼리도 더 부딪히거든. 그래서 Flint 엔 조합이 못 버티는 자리를 메우는 두 번째 방아쇠가 있어. 검색 팔레트 하나. 단축키 하나로 모든 매크로가 뜨고, 몇 글자 치면 걸러지고, Enter 로 지금 긁어놓은 글에 실행돼. 자주 쓰는 건 조합을 갖고, 나머지는 팔레트가 맡는 거지.

팔레트도 자리를 먼저 붙잡아

여기 앱 나머지랑 이어지는 미묘한 지점이 하나 있어. 팔레트는 창이고, 창은 포커스를 가져가. 팔레트가 그냥 떠서 매크로를 고르면 대상이 내가 편집하던 글이 아니라 팔레트 자신이 돼버려. 그래서 팔레트 단축키는 매크로를 칠 때랑 똑같이 움직여. 눌리는 순간, 팔레트가 뜨기 전에 앞의 앱이랑 요소랑 긁어놓은 글을 먼저 붙잡아. 그리고 포커스를 안 가져가는 창으로 띄우지. 매크로를 고르면 팔레트가 아니라 붙잡아둔 그 자리에 대고 돌아.

팔레트 단축키 눌림
   자리부터 붙잡기 { 앱, 요소, 긁은 글 }   <- 뭐가 뜨기 전에
   포커스 안 가져가는 창으로 띄우기
   몇 글자 쳐서 고르기
   창이 아니라 붙잡아둔 자리에 대고 실행

잃어버릴 수 없는 단축키 하나

팔레트 자기 단축키엔 웬만해선 안 부딪히는 기본값이 있고, 부딪히면 바꿀 수 있어. 모든 매크로가 이걸로 닿으니까 팔레트가 지난 레슨의 약속을 실제로 지켜주는 셈이야. 매크로의 조합이 죽어도 — 다른 앱한테 뺏겼든, 아예 안 붙였든, 잊어버렸든 — 그 매크로는 팔레트에서 검색 한 번 거리에 있어. 단축키로만 부를 수 있는 단축키 앱은 조합 하나 부딪히면 무너지는데, 검색이 늘 뒤에 있으면 안 무너져.

손에 익은 사람한텐 조합을, 모두한텐 검색창을. 찾기 쉬운 것과 빠른 것은 서로 반대로 당겨. 외운 조합은 빠르지만 눈에 안 보이고, 목록은 눈에 보이지만 느리지. 둘 중 하나를 고를 게 아니라 둘 다 주고, 매크로마다 조합을 벌어가게 하고, 나머지 긴 꼬리는 팔레트가 나르게 해. 게다가 그 검색창이 빠른 길이 막혔을 때 빠져나갈 문이기도 하고.
팔레트 창은 포커스를 가져가면 안 돼. 팔레트가 뜨면서 포커스를 가져가면 그게 앞의 앱이 되고, 바꾸려던 자리는 포커스를 잃어. 팔레트에 대고 매크로를 돌리는 꼴이 되는 거지. 그래서 포커스를 안 가져가는 창으로 띄워야 해. 모든 것 위에 떠 있으면서 검색어는 받되 대상의 포커스는 안 건드리게. 삽입 트랙 전체가 기대고 있는 그 포커스 규율이랑 같은 얘기야.

Code

팔레트는 뜨기 전에 자리를 붙잡는다·swift
func openPalette() {
    // 포커스를 가져갈 창이 생기기 전에 자리부터 붙잡는다.
    guard let target = TargetCapture.snapshot() else { return }

    let panel = PalettePanel()          // NSPanel, .nonactivatingPanel
    panel.macros = store.enabledMacros  // 검색할 목록
    panel.onPick = { macro in
        Task { await runMacro(macro, against: target) }  // 붙잡아둔 자리
    }
    panel.orderFrontWithoutActivating() // 띄우되 앞으로 나서지는 않는다
}

// 매크로 단축키든 팔레트든 시작이 똑같다. 자리부터 붙잡는다.
// 팔레트는 그 사이에 고르는 단계가 하나 더 있을 뿐이다.

External links

Exercise

매크로를 스무 개 쓰는 사람을 위해 방아쇠 전략을 짜봐. 그중 몇 개가 자기 조합을 가질 만하고, 왜 하필 걔네야? 나머지 열댓 개는 아무것도 안 외우고도 팔레트로 어떻게 굴러가? 그리고 팔레트 단축키는 왜 매크로 조합이랑 달리 창이 보이기도 전에 자리를 붙잡아야 하는지 설명해봐.
Hint
제일 자주 쓰는 서너 개가 조합을 벌어. 손에 익으면 값을 하니까. 나머지는 팔레트에 두고 이름 몇 글자로 찾으면 되고. 팔레트가 먼저 붙잡아야 하는 건 그게 뜨는 순간 포커스를 가져갈 창이기 때문이야. 붙잡고 나서 띄우는 순서만이 '내가 있던 글' 을 대상으로 남겨줘.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.