Caps Lock

๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๊ณ ์ •ํ•˜๋Š” ํ‚ค๋ณด๋“œ์˜ ํ† ๊ธ€ ํ‚ค. Caps Lock ํ‚ค๋Š” ํƒ€์ž๊ธฐ์˜ Shift lock ํ‚ค๋ฅผ ๊ทธ๋Œ€๋กœ ๊ณ„์Šนํ•œ ๊ฒƒ์ด๋‹ค. ํƒ€์ž๊ธฐ์˜ ์ดˆ๊ธฐ ํ˜์‹ ์€ ๋™์ผํ•œ ์ˆ˜์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์˜ ์ˆ˜๋ฅผ ๋‘ ๋ฐฐ๋กœ ๋Š˜๋ฆฐ ๊ฒƒ์ด๋‹ค. ๊ธฐ๊ณ„์‹ ํƒ€์ž๊ธฐ์˜ Shift ํ‚ค๋Š” ์ƒˆ๋ผ ์†๊ฐ€๋ฝ์œผ๋กœ ๋ˆ„๋ฅด๊ธฐ์—” ๋งŽ์€ ํž˜์ด ๋“ค์—ˆ๋Š”๋ฐ, ์ด๋•Œ Shift lock ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‘ ๋ฒˆ ์ด์ƒ์˜ ๋Œ€๋ฌธ์ž๋ฅผ ์‰ฝ๊ฒŒ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํ๊ธฐ

ํ•˜์ง€๋งŒ ์˜ค๋Š˜๋‚  ํ‚ค๋ณด๋“œ์—์„œ Caps Lock ํ‚ค๋Š” ์• ๋ฌผ๋‹จ์ง€๊ฐ€ ๋˜์—ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ Caps Lock ํ‚ค๋Š” ์‹ค์ˆ˜๋กœ ๋ˆ„๋ฅด๋Š” ํ‚ค๊ฐ€ ๋˜์—ˆ๊ณ , ์‹ฌ์ง€์–ด ์›น ์‚ฌ์ดํŠธ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ํผ์—์„œ Caps Lock ํ‚ค๊ฐ€ ๋ˆŒ๋ ธ๋Š”์ง€ ํ™•์ธํ•˜๋ผ๊ณ  ๊ฒฝ๊ณ ํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ก€๊ฐ€ ๋˜์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€ํ™”์— ๋”ฐ๋ผ ๊ตฌ๊ธ€ ํฌ๋กฌ๋ถ ํ‚ค๋ณด๋“œ๋Š” Caps Lock ํ‚ค๋ฅผ "Everything Button"์œผ๋กœ ๋ฐ”๊พธ์—ˆ๊ณ , ๋…์ผ ํ‚ค๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ ํ‘œ์ค€์€ Caps Lock ํ‚ค๋ฅผ ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ๊ทœ์ •ํ–ˆ๋‹ค. ์ œํ”„ ๋ž˜์Šคํ‚จ์€ ์—์„œ ๋ชจ๋“œ(mode)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€ ์•Š๋‹ค๊ณ  ์ฃผ์žฅํ–ˆ๋Š”๋ฐ, Caps Lock์€ ์ „ํ˜•์ ์ธ ๋ชจ๋‹ฌ(modal) ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.

๋งฅ ๊ณ„์—ด ๊ธฐ๊ธฐ์—์„œ๋Š” ์ž…๋ ฅ ์†Œ์Šค ์ „ํ™˜ ํ‚ค๋ฅผ Caps Lock ํ‚ค์— ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ‚ค๋ฅผ ์งง๊ฒŒ ๋ˆ„๋ฅด๋ฉด ์ž…๋ ฅ ์†Œ์Šค ์ „ํ™˜ ๋™์ž‘์„ ํ•˜์ง€๋งŒ, ์กฐ๊ธˆ์ด๋ผ๋„ ๊ธธ๊ฒŒ ๋ˆ„๋ฅด๋ฉด ์›๋ž˜ Caps Lock ํ‚ค์˜ ๊ธฐ๋Šฅ๋Œ€๋กœ ๋Œ€๋ฌธ์ž ๊ณ ์ • ๋™์ž‘์„ ํ•œ๋‹ค. Hammerspoon๊ณผ ๊ฐ™์€ ํ‚ค ๋งคํ•‘ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด Caps Lock ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ ํ‚ค๋กœ ๋งคํ•‘ํ•œ ๋’ค, ํ•ด๋‹น ๊ธฐ๋Šฅ ํ‚ค๋ฅผ ์ž…๋ ฅ ์†Œ์Šค ์ „ํ™˜ ํ‚ค๋กœ ์„ค์ •ํ•จ์œผ๋กœ์จ Caps Lock ํ‚ค๋ฅผ ์ž…๋ ฅ ์†Œ์Šค ์ „ํ™˜ ํ‚ค๋กœ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜๋Š” Caps Lock ํ‚ค๋ฅผ F19 ํ‚ค๋กœ ๋งคํ•‘ํ•˜๋Š” Hammerspoon ์Šคํฌ๋ฆฝํŠธ๋‹ค. (foundation_remapping.lua ํŒŒ์ผ์ด ํ•„์š”ํ•˜๋‹ค.)

do
    local remapper = require('foundation_remapping').new()
    remapper:remap('capslock', 'F19')
    remapper:register()
end

์ด ๋ฌธ์„œ๋ฅผ ์ธ์šฉํ•œ ๋ฌธ์„œ