Vscode: Neo ํ‚ค๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ : ์ผ๋ถ€ ํ‚ค๊ฐ€ ์ž‘๋™์„ ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 04์›” 06์ผ  ยท  28์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/vscode

  • VSCode ๋ฒ„์ „ : ์ฝ”๋“œ 1.11.0 (9122ec4b1068bd391e41974f46a4b54c1b9c90f9, 2017-04-05T21 : 13 : 24.700Z)
  • OS ๋ฒ„์ „ : Linux x64 4.4.0-72-generic

์žฌํ˜„ ๋‹จ๊ณ„ :

  1. Neo ํ‚ค๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ ์„ค์น˜ ๋ฐ ํ™œ์„ฑํ™”
  2. VS ์ฝ”๋“œ์—์„œ ์†Œ์Šค ํŒŒ์ผ ์—ด๊ธฐ
  3. ํŒŒ์ผ ์–ด๋”˜๊ฐ€์— ์ปค์„œ๋ฅผ ๋†“์Šต๋‹ˆ๋‹ค.
  4. M4 ํ‚ค๋ฅผ ๊ธธ๊ฒŒ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. s ํ‚ค ๋ˆ„๋ฅด๊ธฐ (์ด๋ฏธ์ง€ ์ฐธ์กฐ)
  5. ์ปค์„œ๊ฐ€ ์™ผ์ชฝ์œผ๋กœ ์›€์ง์ด๋Š” ๋Œ€์‹  ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋ฒ„์ „์˜ VSCode (1.10.2 8076a19fdcab7e1fc1707952d652f0bb6c6db331)์—์„œ๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

tastatur_e4b png

bug help wanted keyboard-layout linux

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ํ‚ค๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ์„ ์ดํ•ดํ•˜๋ ค๋ฉด ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๋‚˜๋ฅผ ๋„์šธ ์ˆ˜์žˆ์„๋งŒํผ ์นœ์ ˆํ•˜๋‹ค๋ฉด ์•ž์œผ๋กœ ๋ช‡์ผ ์•ˆ์— ๋‹น์‹ ์—๊ฒŒ ํ•‘์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณธ ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

ํ‚ค ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์‹œ ๋””์ŠคํŒจ์น˜ํ•˜๋„๋ก VS ์ฝ”๋“œ๋ฅผ ์ „ํ™˜ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
"keyboard.dispatch": "keyCode" ๋ฐ VS Code ๋‹ค์‹œ ์‹œ์ž‘

๋ชจ๋“  28 ๋Œ“๊ธ€

๋‚˜์—๊ฒŒ๋„ ๊ฐ™์€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ์—์ด ๋ฌธ์ œ๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ‚ค์›Œ๋“œ ๋ฌธ์ œ : ๋ ˆ์ด์–ด 4 ํ™”์‚ดํ‘œ ํ‚ค neo2 ๋…์ผ์–ด ํ‚ค๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ.

1.10์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜๊ณ  1.11์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

VSCode์˜ ๋ฐ”๋กœ ๊ฐ€๊ธฐ ํŽธ์ง‘๊ธฐ๋Š” ์œ„์˜ ํ‚ค๋ณด๋“œ์—์„œ ๊ฐ•์กฐ ํ‘œ์‹œ๋œ ์กฐํ•ฉ์„ [IntlBackslash] i ๋กœ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Windows ๋ฐ VSCode 1.11.0์—์„œ๋Š” ๊นจ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ํ‚ค ๋งคํ•‘์€ ํ‚ค ๋ˆ„๋ฆ„์„ ๊ฐ€๋กœ ์ฑ„๊ณ  ์ž์ฒด์ ์œผ๋กœ ๋ฐฉ์ถœํ•˜๋Š” autohotkey์— ์˜ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. AFAIK๋Š” Linux์—์„œ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ git bisect . ์ฒซ ๋ฒˆ์งธ ๋‚˜์œ ์ปค๋ฐ‹์€ https://github.com/Microsoft/vscode/commit/d10239639bf9beaa6ea34125319103de3dce43cd ( @alexandrudima )์ž…๋‹ˆ๋‹ค.

# bad: [9122ec4b1068bd391e41974f46a4b54c1b9c90f9] Fix styling of release notes (fixes #23948)
# good: [8076a19fdcab7e1fc1707952d652f0bb6c6db331] debug: save all untitled non dirty files before debug start
git bisect start '1.11.0' '1.10.2'
# good: [40fecfaa77f01672e8a147be71f6f7ccb9cf8a12] fix mixin
git bisect good 40fecfaa77f01672e8a147be71f6f7ccb9cf8a12
# good: [9d2e0611f7f7750f02ec72c4d18a20b69c5bf8cf] #18095 :lipstick:
git bisect good 9d2e0611f7f7750f02ec72c4d18a20b69c5bf8cf
# bad: [7c223972367b8ade5362d738606f3b910d0fbb42] Fixes #19235: Wording in tasks warning message
git bisect bad 7c223972367b8ade5362d738606f3b910d0fbb42
# good: [378231183e815c8e8e6a73ad04fc40ec5058fdc5] Promise cancellation is slow. Use a timer instead since this may run many times.
git bisect good 378231183e815c8e8e6a73ad04fc40ec5058fdc5
# good: [f70b0b3ecb7f276c811b0f18c7a0bec3b03c11a6] Fixes #22069: Define extension story for tasks
git bisect good f70b0b3ecb7f276c811b0f18c7a0bec3b03c11a6
# bad: [4ad4bd0d8011a5db5e2bea4543b7efb03d482aad] :bug: add commit box message
git bisect bad 4ad4bd0d8011a5db5e2bea4543b7efb03d482aad
# bad: [9003dbc3f5f2b87cb3cc4a3418030dbdc45ac0a3] Add IKeybindingService.resolveUserBinding
git bisect bad 9003dbc3f5f2b87cb3cc4a3418030dbdc45ac0a3
# bad: [968da131589845b43c0d00141b41b2bb366a84e8] Improve the ScanCode -> KeyCode guessing strategy
git bisect bad 968da131589845b43c0d00141b41b2bb366a84e8
# bad: [969cbdfea05beda1a38d4082698b87f239fc2384] Renames
git bisect bad 969cbdfea05beda1a38d4082698b87f239fc2384
# bad: [8a33db65efdd3ed4c76d01cb76c3ef658caf16db] Add Inspect Key Mapppings action
git bisect bad 8a33db65efdd3ed4c76d01cb76c3ef658caf16db
# bad: [0ebecd5ca915ed33ea747cafe2c99572c52904b5] Merge branch 'master' into alex/keybinding
git bisect bad 0ebecd5ca915ed33ea747cafe2c99572c52904b5
# bad: [d10239639bf9beaa6ea34125319103de3dce43cd] First cut at integrating keyboard mappers
git bisect bad d10239639bf9beaa6ea34125319103de3dce43cd
# first bad commit: [d10239639bf9beaa6ea34125319103de3dce43cd] First cut at integrating keyboard mappers

์ด ํ‚ค๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ์„ ์ดํ•ดํ•˜๋ ค๋ฉด ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๋‚˜๋ฅผ ๋„์šธ ์ˆ˜์žˆ์„๋งŒํผ ์นœ์ ˆํ•˜๋‹ค๋ฉด ์•ž์œผ๋กœ ๋ช‡์ผ ์•ˆ์— ๋‹น์‹ ์—๊ฒŒ ํ•‘์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณธ ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

ํ‚ค ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์‹œ ๋””์ŠคํŒจ์น˜ํ•˜๋„๋ก VS ์ฝ”๋“œ๋ฅผ ์ „ํ™˜ํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
"keyboard.dispatch": "keyCode" ๋ฐ VS Code ๋‹ค์‹œ ์‹œ์ž‘

Debian / Jessie์—์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/Microsoft/vscode/issues/25797

๋ฐฑ ์ŠคํŽ˜์ด์Šค์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ œ๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ €์—๊ฒŒ ํšจ๊ณผ์  ์ด์—ˆ์ง€๋งŒ ์˜ค๋Š˜์€ ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—๋””ํ„ฐ ์‹œ์ž‘ ํ›„ ์•ฝ 2 ์ดˆ ๋™์•ˆ ์ž‘๋™ํ•˜๋‹ค๊ฐ€ ๊ธฐ๋ณธ ํ‚ค (๋ฌธ์ž)๊ฐ€ ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. :์ƒ๊ฐ:
์–ด์ œ ์ดํ›„๋กœ ์–ด๋ฆฌ์„์€ ์ง“์„ํ–ˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์™œ ๊ทธ๋Ÿฐ์ง€ ์•Œ ์ˆ˜ ์žˆ๋‚˜์š”?

@zommerfelds ๋‚ด๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ settings.json ์ž…๋‹ˆ๋‹ค. "keyboard.dispatch" ๊ฐ€ ๊ฑฐ๊ธฐ์— ๋ณต์ œ๋˜์–ด ์žˆ๋Š”์ง€, ํด๋”๋ฅผ ์—ด ๋•Œ ์ž‘์—… ๊ณต๊ฐ„ ์„ค์ •์œผ๋กœ ๋ฎ์–ด ์“ฐ์—ฌ์ง„ ์„ค์ • ๋“ฑ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ์‚ดํŽด๋ณผ ๊ฒƒ์€ ํŽธ์ง‘๊ธฐ๋ฅผ ์—ด๊ณ  F1 > Developer: Inspect key mappings ์ž…๋‹ˆ๋‹ค. "keyCode์— ๋Œ€ํ•œ FallbackKeyboardMapper ๋””์ŠคํŒจ์น˜"(์„ค์ •์ด ์ ์šฉ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ‘œ์‹œ๊ธฐ)๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๊นŒ?

์ด๊ฒƒ์ด ์„ค์ •์— ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด, ์ฆ‰ keyCode ์—์„œ ๋””์ŠคํŒจ์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ํ™•์ธ์ด์žˆ๋Š” ๊ฒฝ์šฐ ํŠน์ • ํ‚ค๋ฅผ ๋ˆ„๋ฅผ ๋•Œ Electron / Chromium / OS๊ฐ€ ์ „์†กํ•˜๋Š” ๋‚ด์šฉ์„ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. : ์ž…๋ ฅ ์ƒ์ž ์œ„๋กœ ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๊ฐ€ ์Šคํฌ๋ฆฐ ์ƒท์„ ์ฐ์œผ์‹ญ์‹œ์˜ค.
keyboard-input

์•ˆ๋…•ํ•˜์„ธ์š” @alexandrudima , ์ž์„ธํ•œ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

cat ~/.config/Code/User/settings.json :

// Place your settings in this file to overwrite the default settings
{
    "keyboard.dispatch": "keyCode"
}

ํŽธ์ง‘๊ธฐ๋ฅผ ์—ด๊ณ  _File => Preferences => Settings_๋กœ ์ด๋™ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด _USER SETTINGS_์— ๋Œ€ํ•ด ๋™์ผํ•œ ๋‚ด์šฉ์ด ํ‘œ์‹œ๋˜๊ณ  _WORKSPACE SETTINGS_์— ๋Œ€ํ•ด {} ์ด ํ‘œ์‹œ๋˜๋ฏ€๋กœ ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

_F1> ๊ฐœ๋ฐœ์ž : ํ‚ค ๋งคํ•‘ ๊ฒ€์‚ฌ _๋Š” ๋‹ค์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Layout info:
{
    "model": "pc105",
    "layout": "de,ch",
    "variant": "neo,",
    "options": "grp:menu_toggle",
    "rules": "evdev"
}
FallbackKeyboardMapper dispatching on keyCode

Raw mapping:
...

ํ‚ค ๋ฐ”์ธ๋”ฉ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.

"a"๋ฅผ ์ž…๋ ฅํ•˜๋ ค๋ฉด :
image

"("๋ฅผ ์ž…๋ ฅํ•˜๋ ค๋ฉด :
image

a๋Š” ํ•ด๋‹น ํŒ์—…์—์„œ ์ž˜ ์ธ์‡„๋˜์ง€๋งŒ ๊ธฐ๋ณธ ํŽธ์ง‘๊ธฐ์—์„œ๋Š” ์ธ์‡„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Neo์—์„œ A ๋Š” D ํ‚ค๊ฐ€ QWERTY์— ์žˆ๊ณ  ( ๋Š” QUERTY์—์„œ CapsLock+J ์ž…๋‹ˆ๋‹ค.
Neo์˜ 4 ๋ฒˆ์งธ ๋ ˆ์ด์–ด์—์„œ ํ™”์‚ดํ‘œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆซ์ž๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐฑ ์ŠคํŽ˜์ด์Šค๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Ctrl+Z ์€ (Neo์—์„œ) ์‹คํ–‰ ์ทจ์†Œ์— ๋Œ€ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์•ž์„œ ๋งํ–ˆ๋“ฏ์ด Vscode๊ฐ€ ์‹œ์ž‘๋˜๋Š” ๋™์•ˆ ๋ชจ๋“  ๊ฒƒ์ด ์ฒ˜์Œ ๋ช‡ ์ดˆ ๋™์•ˆ ์ž‘๋™ ํ•œ ๋‹ค์Œ ์ž‘๋™์ด ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. Vscode๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. :)

ํŽธ์ง‘ : ์„ค๋ช…์„ ์œ„ํ•ด OP์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋„ค ๋ฒˆ์งธ ๋ ˆ์ด์–ด์˜ ํ™”์‚ดํ‘œ ํ‚ค๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ ํ‰๋ฒ”ํ•˜๊ณ  ๋‹จ์ˆœํ•œ ๋ฌธ์ž ํ‚ค๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

EDIT2 : _ ๋„์›€๋ง => ์ •๋ณด _ :

Version 1.12.2
Commit 19222cdc84ce72202478ba1cec5cb557b71163de
Date 2017-05-10T13:16:25.899Z
Shell 1.6.6
Renderer 56.0.2924.87
Node 7.4.0

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @alexandrudima ! ๋ณ€๊ฒฝ "keyboard.dispatch": "code" ์— "keyboard.dispatch": "keyCode" ์—์„œ File->Preferences->Settings ์ž‘์—… (์ด์Šค์ผ€์ดํ”„ ํ‚ค, ๋„ค๋น„๊ฒŒ์ด์…˜ ํ‚ค, ๋ฐฑ ์ŠคํŽ˜์ด์Šค, ์‚ญ์ œ, ์ˆซ์ž)์ด M4 ์ธต ํ‚ค๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ €๋ฅผ ๋„์™”๋‹ค.

1.19.0 ์—์„œ๋Š” ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ keyboard.dispatch ์„ค์ •์ด ์ฐจ์ด๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ์„ค์ •์—์„œ๋“  ํƒ์ƒ‰ ํ‚ค์™€ ๋ฐฑ ์ŠคํŽ˜์ด์Šค๋Š” ์ž‘๋™ํ•˜์ง€๋งŒ ์ˆซ์ž์™€ ์ผ๋ฐ˜ ๋ฌธ์ž๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
vscode๊ฐ€ ์‹ค์ œ๋กœ keyCode ๋กœ๋กœ๋“œํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ๋“  code ๋Œ์•„ ๊ฐ€์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์‚ฌ์‹ค ๋ฐฉ๊ธˆ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค! NeoX ํ™•์žฅ์ด ๋‚ด ์„ค์ •์„ ์—‰๋ง์œผ๋กœ keyboard.dispatch ์„ keyCode ๋กœ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ง€์›ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Yay ์ด์ œ vscode๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! :)

๊ทธ๋Ÿฌ๋ฉด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

ํ˜„์žฌ VS ์ฝ”๋“œ์— ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • VS ์ฝ”๋“œ ๋ฒ„์ „ : ์ฝ”๋“œ 1.20.0 (c63189deaa8e620f650cc28792b8f5f3363f2c5b, 2018-02-07T17 : 10 : 15.949Z)
  • OS ๋ฒ„์ „ : Linux x64 4.13.0-32-generic

๋˜ํ•œ Ubuntu 17.10 (Linux 4.13.0-36-generic)์—์„œ VS Code 1.201๋กœ Neo-Layout์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "keyboad.dispatch": keyCode -์Šค์œ„์น˜ ์—†์ด๋Š” Neo2๋กœ ์ž…๋ ฅ ํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ๋‹ค์‹œ ๋งคํ•‘๋˜๋ฏ€๋กœ CTRL + C ๋ฐ CTRL + V๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค (๊ฐ๊ฐ CTRL + R ๋ฐ CTRL + W ํŠธ๋ฆฌ๊ฑฐ). ).

์ž˜ ๋‚˜๋Š” "keyboard.dispatch"๋ฅผ ์‹œ๋„ํ–ˆ๊ณ  ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ "์•Œ ์ˆ˜์—†๋Š” ๊ตฌ์„ฑ ์„ค์ •"์„ ์•Œ๋ ค์ค€๋‹ค. ํ•˜์ง€๋งŒ ๋‚ด ๋ฌธ์ œ๋Š” ์กฐ๊ธˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

ํ™”์‚ดํ‘œ ํ‚ค๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด ์‹คํ–‰ ์ทจ์†Œ ํ‚ค๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. M4+z ๋ˆ„๋ฅด๋ฉด Visual Studio ์ฝ”๋“œ๋Š” z ๋งŒ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ รครถรผ์™€ ๊ฐ™์€ ํ‚ค์— ๋ฐ”์ธ๋”ฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ, vscode๋Š” ๊ทธ๊ฒƒ์ด ๋ฏธ๊ตญ ํ‚ค๋ณด๋“œ๋ผ๋ฉด ๊ทธ ํ‚ค๋ฅผ ๋ฒˆ์—ญํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Ctrl+รผ ๋Š” Ctrl+z ๋กœ ์ธ์‹๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋”์ฐํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ • ๋œ dvorak ํ‚ค๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด XKB ํ”„๋กœ๊ทธ๋žจ์— ํ‚ค๋ณด๋“œ๋ฅผ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”ํƒ€ ํ‚ค ๋˜๋Š” ์ถ”๊ฐ€ ์ˆ˜์ • ์ž๋กœ ์ž‘๋™ํ•˜๋„๋ก ์˜ค๋ฅธ์ชฝ Alt ํ‚ค๋ฅผ ์ „ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ralt_switch ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
VSCode Insider์—์„œ keyCode ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
์•„๋ž˜๋Š” ๋‚ด XKB ์„ค์ • ์ƒ˜ํ”Œ์ž…๋‹ˆ๋‹ค.

image

VS์—์„œ End ํ‚ค๋กœ ์ธ์‹ํ•˜๋Š” RAlt (aka Meta key) + s ์ž…๋‹ˆ๋‹ค. + ์ข‹์Œ
๋‚ด๊ฐ€ ์–ด๋–ป๊ฒŒํ•ด์•ผํ•˜์ง€๋งŒ ctrl+End ์™€ ํ‚ค๋ฅผ Ctrl+RAlt (Meta)+s ๊ฐ€ ์ธ์ • Ctrl+s ๋ฌธ์„œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. -๋‚˜์œ
Ctrl+Right aka Ctrl+RAlt (Meta)+n ์—ฌ๋Ÿฌ ๋ฒˆ ๋ˆŒ๋Ÿฌ ๋‹จ์–ด๋ฅผ ์ ํ”„ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์–ด๋–ค ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์ถ”์ธกํ•˜์‹ญ์‹œ์˜ค.

Ctrl ์ˆ˜์ •์ž๋Š” ๋ฉ”ํƒ€ ํ‚ค ๋˜๋Š” Mod4์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ์ˆ˜์ • ์ž (๋˜๋Š” keyCode-ed ์ˆ˜์ • ์ž)์™€ ์ž˜ ์–ด์šธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
Ctrl+Shift+RAlt (Meta)+s ๋„ ์ €์ถ•ํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ Shift+Ralt (Meta)+s ์€ +Good Shift+End ๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜์ •์ž๋ฅผ ๊ฒฐํ•ฉ ํ•  ๋•Œ ctrl์ด ์‹œํ”„ํŠธ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?


๊ด€๋ จ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ผ€์ด์Šค๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
_ ์ œ๋ชฉ ์–ธ๊ธ‰ ๋„ค์˜ค ๋ ˆ์ด์•„์›ƒ, ์ด๊ฑด ์ปค์Šคํ…€ _

์ด ํ•ด๊ฒฐ ๋œ ์ฃผ์„๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
keyboard.dispatch 'code'๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ OSX์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐฉ๊ธˆ Linux Mint / Ubuntu์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
https://github.com/Microsoft/vscode/issues/12393#issuecomment -288994081

๋‚˜๋Š” Linux์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „ 1.21.1
79b44aa704ce542d8ca4a3cc44cfca566e7720f1 ์ปค๋ฐ‹
๋ฐ์ดํ…€ 2018-03-14T14 : 46 : 30.761Z
์‰˜ 1.7.9
๋ Œ๋”๋Ÿฌ 58.0.3029.110
๋…ธ๋“œ 7.9.0
์•„ํ‚คํ…์ฒ˜ x64

๋ถˆํ–‰ํžˆ๋„ keyboard.dispatch ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ €์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ์ถฉ๋ถ„ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์šฉ๋„๊ฐ€ ๋ณ€๊ฒฝ๋œ CapsLock (Mod3)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ /,\,[,] ๋“ฑ๊ณผ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ธฐํ˜ธ๋ฅผ ํŽธ์ง‘๊ธฐ์— ์‚ฝ์ž… ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ shift+/ ์™€ ๊ฐ™์€ ๋ฐ”๋กœ ๊ฐ€๊ธฐ์—๋Š” ์‚ฝ์ž… ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. shift+capslock+s ์˜ ๋ฌผ๋ฆฌ์  ๋ฒ„ํŠผ

Mod3๋กœ ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋ฅผ ๋‹ค์‹œ ํ• ๋‹นํ•˜๋ ค๊ณ ํ•˜๋ฉด unknown

unknown_key

@sakasistem์ด ์–ธ๊ธ‰ ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ํŠน์ • ์ผ๋ จ์˜ ์ˆ˜์ • ์ž ํ‚ค์— ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

shift+/ ์™€ ๊ฐ™์€ ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋Š” ์ „์ฒด BS์ด๋ฉฐ ์กด์žฌํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

? ์ด์–ด์•ผํ•˜๋ฉฐ ๋ ˆ์ด์•„์›ƒ์ด ํ•ด๋‹น ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ˆ˜์ •์ž๋ฅผ ๊ฒฐ์ •ํ•˜๋„๋กํ•˜๊ฑฐ๋‚˜ ๋ ˆ์ด์•„์›ƒ์ด shift + scancode_slash ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์—์„œ๋Š” ๊ฐ„๋‹จํžˆ ์ž…๋ ฅํ•ฉ๋‹ˆ๊นŒ? (๋‚ด ๋ ˆ์ด์•„์›ƒ์˜ ์œ„์น˜์™€ ๋ˆŒ๋Ÿฌ์•ผํ•˜๋Š” ์ˆ˜์ • ์ž์— ๊ด€๊ณ„์—†์ด) ๋‘ ๋ฒˆ์งธ ๋ ˆ์ด์•„์›ƒ์—์„œ๋Š” ํ‚ค๋ณด๋“œ ์œ„์น˜์— J๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋ ˆ์ด์•„์›ƒ์— ๋Œ€๋ฌธ์ž J ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ๊ตญ ์ฟผํ‹ฐ๋Š” / ์ž…๋‹ˆ๋‹ค.

krux02์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹คํ–‰ ์ทจ์†Œ ๋ฐ ๋‹ค์‹œ ์‹คํ–‰์„ ์œ„ํ•ด ๊ฐ๊ฐ 'Ctrl + รผ'๋ฐ 'Ctrl + k'๋ฅผ ์ž…๋ ฅํ•ด์•ผํ–ˆ์ง€๋งŒ ์ ์ ˆํ•œ "keyboard.dispatch"์„ค์ •์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๊ณ  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์šด์˜์ฒด์ œ : Ubuntu 18.04 LTS

VSCode :

๋ฒ„์ „ 1.23.1
d0182c3417d225529c6d5ad24b7572815d0de9ac ์ปค๋ฐ‹
๋‚ ์งœ 2018-05-10T16 : 04 : 33.747Z
์‰˜ 1.7.12
๋ Œ๋”๋Ÿฌ 58.0.3029.110
๋…ธ๋“œ 7.9.0
์•„ํ‚คํ…์ฒ˜ x64

์˜ค, ๋‚˜๋Š”์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ ์œ„ํ•ด vscode ๋‚ด๋ถ€์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
@sakasistem์ฒ˜๋Ÿผ
๋ฌผ๋ฆฌ์  ์ฟผํ‹ฐ ํ‚ค๋ณด๋“œ์™€ ํ•จ๊ป˜ Thinkpad๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  Linux Mint Sonya์—์„œ xkb ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค๋งต์„ ์‚ฌ์šฉ์ž ์ •์˜ dvorak์œผ๋กœ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ํ‚ค๋งต ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. https://pastebin.com/cUAxDtAM
๋ฐ๋น„์•ˆ ๊ธฐ๋ฐ˜ OS, Linux Mint๊ฐ€ ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.
dvorak-intl ์ •์˜ ๋ฐ”๋กœ ์ „์— /usr/share/X11/xkb/symbols/us ์— ๋„ฃ์œผ์‹ญ์‹œ์˜ค.
partial alphanumeric_keys xkb_symbols "dvorak-intl" {

dvorak ๋ ˆ์ด์•„์›ƒ์— ํƒ์ƒ‰ ๋งˆ๋ฒ•์„ ์ถ”๊ฐ€ํ•˜๊ณ  up ์™€ ํ•จ๊ป˜ left , down , right RAlt+c,RAlt+h,RAlt+t,RAlt+n ( i, j, k, l ๋Œ€์‹  ์ฟผํ‹ฐ์— c, h, t, n ), ์ •๋ง ๋Œ€๋ถ€๋ถ„์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ž‘๋™ ctrl , shift ๋ฐ alt ์ˆ˜์ •,ํ•˜์ง€๋งŒ vscode. Ctrl+RAlt+n ๋Š” ๋‹ค์Œ ๋‹จ์–ด๋กœ ์ด๋™ํ•ด์•ผํ•˜์ง€๋งŒ ๋Œ€์‹  Ctrl + n์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜์—ฌ ์ƒˆ ํƒญ์„ ์—ฝ๋‹ˆ ๋‹ค.

Shift ์ˆ˜์ •์ž๊ฐ€ ์ž‘๋™ํ•˜๋ฏ€๋กœ Shift+RAlt+s ๊ฐ€ ์ค„ ๋๊นŒ์ง€ ์„ ํƒํ•˜๊ฒŒ๋˜๋ฉฐ Ctrl ์ˆ˜์ •์ž๊ฐ€ ์ฒ˜์Œ์— ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ pastebin ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

partial alphanumeric_keys
xkb_symbols "dvorak-shy" {

    name[Group1]= "English (Dvorak) by Shy";

    key <TLDE> { [       grave, asciitilde, dead_grave, dead_tilde  ] };

    key <AE01> { [      1,  exclam      ]   };
    key <AE02> { [      2,  at      ]   };
    key <AE03> { [      3,  numbersign  ]   };
    key <AE04> { [      4,  dollar      ]   };
    key <AE05> { [      5,  percent     ]   };
    key <AE06> { [      6,  asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE07> { [      7,  ampersand   ]   };
    key <AE08> { [      8,  asterisk    ]   };
    key <AE09> { [      9,  parenleft,  dead_grave] };
    key <AE10> { [      0,  parenright  ]   };
    key <AE11> { [ bracketleft, braceleft   ]   };
    key <AE12> { [ bracketright, braceright,  dead_tilde] };

    key <AD01> { [  apostrophe, quotedbl, dead_acute, dead_diaeresis    ] };
    key <AD02> { [  comma,  less,   dead_cedilla, dead_caron    ] };
    key <AD03> { [      period, greater, dead_abovedot, periodcentered  ] };
    key <AD04> { [      p,  P       ]   };
    key <AD05> { [      y,  Y       ]   };
    key <AD06> { [      f,  F       ]   };
    key <AD07> { [      g,  G, Page_Up, Page_Up     ]   };
    key <AD08> { [      c,  C, Up, Up       ]   };
    key <AD09> { [      r,  R, dead_tilde, dead_tilde       ]   };
    key <AD10> { [      l,  L       ]   };
    key <AD11> { [  slash,  question    ]   };
    key <AD12> { [  equal,  plus        ]   };

    key <AC01> { [      a,  A       ]   };
    key <AC02> { [      o,  O       ]   };
    key <AC03> { [      e,  E       ]   };
    key <AC04> { [      u,  U       ]   };
    key <AC05> { [      i,  I       ]   };
    key <AC06> { [      d,  D, Home, Home       ]   };
    key <AC07> { [      h,  H, Left, Left       ]   };
    key <AC08> { [      t,  T, Down, Down       ]   };
    key <AC09> { [      n,  N, Right, Right     ]   };
    key <AC10> { [      s,  S, End, End     ]   };
    key <AC11> { [  minus,  underscore  ]   };

    key <AB01> { [   semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [      q,  Q       ]   };
    key <AB03> { [      j,  J       ]   };
    key <AB04> { [      k,  K       ]   };
    key <AB05> { [      x,  X       ]   };
    key <AB06> { [      b,  B       ]   };
    key <AB07> { [      m,  M, Page_Down, Page_Down     ]   };
    key <AB08> { [      w,  W       ]   };
    key <AB09> { [      v,  V       ]   };
    key <AB10> { [      z,  Z       ]   };

    key <BKSL> { [  backslash,  bar             ]       };


    key <CAPS> { [    BackSpace,    BackSpace,       BackSpace,        BackSpace ] };

    include "level3(ralt_switch)"
};

RAlt๋ฅผ mod3์ฒ˜๋Ÿผ ๋งŒ๋“ค์ง€ ๋งŒ vscode๊ฐ€์ด๋ฅผ unknown ๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋งˆ๋ฒ•์˜ ์ฝ”๋“œ include "level3(ralt_switch)" unknown .

Linux๋Š” ํŠน์ดํ•œ ํ‚ค๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ์„ ์‚ฌ์šฉ ํ•˜์ง€ ์•Š๊ณ  XkbOptions ๋ฅผ ํ†ตํ•ด Caps Lock์„ Backspace๋กœ ๋‹ค์‹œ ๋งคํ•‘ํ–ˆ์œผ๋ฉฐ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. keyCode ๋กœ ์ „ํ™˜ํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ชจ๋“  ์ข…๋ฅ˜์˜ ํ‚ค ๋งคํ•‘์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ : ์ฝœ๋ก ์€ macOS 10.14.3์˜ Visual Studio Code 1.32.3์—์„œ ์ž๋™์œผ๋กœ ์ž‘๋™์„ ์ค‘์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. Neo2์˜ ํ‚ค ์กฐํ•ฉ์€ caps lock + ; (์ฟผํ‹ฐ ๊ธฐ์ค€)์ž…๋‹ˆ๋‹ค. keyboard.dispatch ์„ keyCode ํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋˜ ๋‹ค๋ฅธ neo2 ์‚ฌ์šฉ์ž;) VSCode๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ฒ˜์Œ ๋ช‡ ๋ถ„ ์•ˆ์— ๋ฐฑ ์ŠคํŽ˜์ด์Šค ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ง€๊ธˆ๊นŒ์ง€ ๋งค๋ ฅ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!
๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ์ด ๋ฒ„๊ทธ๊ฐ€ ์–ธ์  ๊ฐ€ ์ˆ˜์ •๋œ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค;)

https://github.com/microsoft/vscode/issues/24043#issuecomment -292334048์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ฐฑ ์ŠคํŽ˜์ด์Šค ๊ธฐ๋Šฅ (: +1 :)์—์„œ ์ž‘๋™ํ•˜์ง€๋งŒ ํ•œ ๋‹จ์–ด๋ฅผ ์•ž / ๋’ค๋กœ ์ด๋™ํ•˜๊ณ  ์ปค์„œ ์•ž ๋˜๋Š” ๋’ค์—์„œ ํ•œ ๋‹จ์–ด๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. : confused :, ie Ctrl + Alt Gr + w (์ฟผํ‹ฐ ๋ ˆ์ด์•„์›ƒ / ํ‚ค๋ณด๋“œ์˜ ํ‚ค)๋Š” ์ปค์„œ ์™ผ์ชฝ ํ•œ ๋‹จ์–ด๋ฅผ ์‚ญ์ œํ•ด์•ผํ•˜์ง€๋งŒ ๋ถ™์—ฌ ๋„ฃ๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค. Ctrl + w (ํ‚ค๋ณด๋“œ์˜ ์ฟผํ‹ฐ ๋ ˆ์ด์•„์›ƒ / ํ‚ค) ์ธ ํด๋ฆฝ ๋ณด๋“œ๋Š” Ctrl + v ์ž…๋‹ˆ๋‹ค.
Alt Gr ํ‚ค ๋ˆ„๋ฆ„์€ Ctrl ํ‚ค๋ฅผ ๋ˆ„๋ฅผ ๋•Œ ๋ฌด์‹œ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ์—…๋ฐ์ดํŠธ์™€ ํ•จ๊ป˜ Arch Linux๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๋Š” ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

์ €๋Š” VS Code๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๊ณ  Linux ( setxkbmap de koy )์—์„œ KOY ๋ ˆ์ด์•„์›ƒ (์ผ๋ถ€ ์กฐ์ • ํฌํ•จ)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Neo2์™€ ๋™์ผํ•œ ๋ฌธ์ œ : ํŽธ์ง‘๊ธฐ์—์„œ CapsLock+L ๋ฅผ ๋ˆŒ๋Ÿฌ ํ•˜์ดํ”ˆ์„ ์ž…๋ ฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ CapsLock์ด ํฌํ•จ ๋œ ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (์˜ˆ Ctrl+- = Ctrl-CapsLock-L ์ถ•์†Œ).

ํ‚ค ๋ฐ”์ธ๋”ฉ ๋ฌธ์ œ ํŽ˜์ด์ง€ ๋Š” ๋„์›€์ด๋˜์ง€ ์•Š์œผ๋ฉด F1 > Developer: Inspect key mappings ์‹คํ–‰์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

ํ‘œ์ค€ ๋…์ผ์–ด ๋ ˆ์ด์•„์›ƒ ( setxkbmap de )์„ ์‚ฌ์šฉํ•˜์—ฌ L ํ‚ค์— ๋Œ€ํ•ด ๋‹ค์Œ์„ ์–ป์Šต๋‹ˆ๋‹ค.

    "KeyL": {
        "value": "l",
        "withShift": "L",
        "withAltGr": "ล‚",
        "withShiftAltGr": "ล"
    }

KOY ( setxkbmap de koy )๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    "KeyL": {
        "value": "n",
        "withShift": "N",
        "withAltGr": "n",
        "withShiftAltGr": "N"
    },

๋ถ„๋ช…ํžˆ VS Code๋Š” ๋” ๋†’์€ ์ˆ˜์ค€์˜ ๋ ˆ์ด์•„์›ƒ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์–ป์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค!

์ด ํ‚ค๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ ์ œํ’ˆ๊ตฐ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๊ธฐ์ˆ  ์ •๋ณด (neo, adnw, koy, bone) :

๋…์ผ์–ด ๊ธฐ๋ณธ ๋ ˆ์ด์•„์›ƒ์—์„œ AltGr ์€ ISO_Level3_Shift (Linux)์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. Neo2 (๋ฐ ์œ ์‚ฌ)์—์„œ AltGr ์€ ISO_Level5_Shift ์— ๋งคํ•‘๋˜๊ณ  CapsLock ์€ ISO_Level3_Shift ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” > Developer: Inspect key mappings ์˜ ์ถœ๋ ฅ์—์„œ

    "KeyL": {
        "value": "n",
        "withShift": "N",
        "withAltGr": "-",

(CapsLock์ด ์ƒˆ๋กœ์šด ISO_Level3_Shift ํ‚ค๋ผ๋Š” ์ ์—์„œ Neo2์˜ AltGr์„ ๋Œ€์ฒดํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค)

๋˜๋Š”

    "KeyL": {
        "value": "n",
        "withShift": "N",
        "withAltGr": "6",

(OP์˜ ์Šคํฌ๋ฆฐ ์ƒท์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ๋ฌผ๋ฆฌ์  AltGr ํ‚ค์™€ L ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด "6"์ด ํ‘œ์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.)

์ด๊ฒƒ์ด VS Code ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฌธ์ œ๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‚˜์™€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์—ฌ๊ธฐ์—์„œ Neo์™€ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ˜ผํ•ฉํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค์€ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฒ„์ „์˜ VS Code / Codium์œผ๋กœ Ubuntu 18.04์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Version: 1.44.0
Commit: 2aae1f26c72891c399f860409176fe435a154b13
Date: 2020-04-09T10:44:46.342Z
Electron: 7.1.11
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Linux x64 4.15.0-96-generic

๋“ฑ์ด ๋ณด์ธ๋‹ค Alt Gr ๊ฐ€์•• ํ•  ๋•Œ ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๊ทธ๋ƒฅ ๋ฌด์‹œ Ctrl ํ‚ค๋ฅผ.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฅผ ํ†ตํ•ด ํ•˜๋‚˜์˜ ๋ฌธ์ž๋กœ ํ‘œ์‹œ Shift + RightArrow ๋‚ด๊ฐ€ ์ž…๋ ฅ ํ•  ๋•Œ ์ž‘๋™ RightArrow ๋ฅผ ํ†ตํ•ด AltGr + E , ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉํ•˜์—ฌ Ctrl + Shift + RightArrow ๋„ค์˜ค ๋ ˆ์ด์•„์›ƒ ํŒŒ๊ฒฌ์— Ctrl + Shift + E ๋Œ€์‹  .
์ฃผ์š” ๊ธฐ๋ก ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ณ  code ๋””์ŠคํŒจ์น˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

  • Shift + AltGr + E ๋ˆ„๋ฅด๋ฉด ๋จผ์ € shift + alt ๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  shift + right ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.
  • Ctrl + Shift + AltGr + E ๋ˆ„๋ฅด๋ฉด ๋จผ์ € ctrl + shift + alt ๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  ctrl + shift + e ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

keyCode ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ :

  • Shift + AltGr + E ๋ˆ„๋ฅด๋ฉด ๋จผ์ € shift + oem_8 ๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  shift + right ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.
  • Ctrl + Shift + AltGr + E ๋ˆ„๋ฅด๋ฉด ctrl + shift + oem_8 ctrl+shift+e ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋™์ผ์€ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒ Ctrl + AltGr +E ํ•˜๋Š”์ด๋œ๋‹ค ctrl + e ๋Œ€์‹  ctrl + right .

์ด ํŠน์ • ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ํŠน์ • ํ‚ค๋ฅผ ์ฃฝ์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ผ๊นŒ์š”? Neo์™€ ๊ฐ™์€ ๋ ˆ์ด์•„์›ƒ์€ AltGr ๋ฅผ ๋“ฃ๊ธฐ ์œ„ํ•ด VSCode๊ฐ€ ์ „ํ˜€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์กฐํ•ฉ์„ ๋ˆŒ๋ €์„ ๋•Œ ์ „๋‹ฌ๋˜๋Š” ํ‚ค ์ฝ”๋“œ ๋งŒ ์ฒ˜๋ฆฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ธต์ด ๊ฒฝ์šฐ ๋˜ํ•œ, ๊ฐ€์•• ๋ชจ๋‘ Mod4 ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "์ž ๊ธˆ" Ctrl + Shift + e ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ธ์‹๋˜์–ด ctrl + shift + right .

๋‚ด ๋ ˆ์ด์•„์›ƒ ์ •๋ณด :

"layout": {
        "model": "pc105",
        "layout": "de,de,gb",
        "variant": "neo,,",
        "options": "grp_led:scroll,altwin:alt_super_win",
        "rules": "evdev"
    }

์—ฌ๊ธฐ์— ์„ค๋ช… ๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. control ๋˜๋Š” ์œ ์‚ฌํ•œ ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด neo ๋ ˆ์ด์•„์›ƒ ๋ ˆ๋ฒจ 4์˜ ํŠน์ • ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ๋˜๊ณ  ์›์น˜ ์•Š๋Š” ๋ฐ”๋กœ ๊ฐ€๊ธฐ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋‚ด ์ˆ˜์ • / ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

Ubuntu 18.04 ์—์„œ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๊ณ  ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ์€ ์‹œ์ž‘ ๋ฐ ๊ฐ ๊นจ์šฐ๊ธฐ ํ›„์— setxkbmap -layout de -variant neo ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. keyboard.dispatch ( keyCode ๋˜๋Š” code ) ์„ค์ •์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘

"Startup Application Preferences"->Add ์— setxkbmap -layout de -variant neo ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.Screenshot

๊นจ์šฐ๊ธฐ

sudoedit /lib/systemd/system-sleep/setxkbmap ์ถ”๊ฐ€

#!/bin/bash
case $1 in
  post)
    DISPLAY=:1 ; export DISPLAY
    su $USER -c "sleep 1; setxkbmap -layout de -variant neo"
  ;;
esac

sudo chmod 755 /lib/systemd/system-sleep/setxkbmap ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์‹ญ์‹œ์˜ค.

  • $USER ๋Œ€์‹  ์‚ฌ์šฉ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
  • ๋‹ค๋ฅธ ๋ชจ๋“  ๊ณณ์—์„œ DISPLAY=:0 ์ œ์•ˆ์„ ์ฐพ์•˜์ง€๋งŒ ์ €์—๊ฒŒ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ echo $DISPLAY ( :1 )์—์„œ ์–ป์€ ๊ฐ’์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
  • ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ๋” ๊ธด ์ง€์—ฐ์„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค (์˜ˆ : sleep 1; ๋Œ€์‹  sleep 3; ).

์ด๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰