
ããªãã¿ã®Linuxoidãç§ãéé£ãã圌ãã¯ãWindowsã«ã¯Caps Lockèšèªã¹ã€ããããªããã¬ã€ã¢ãŠããç·šéã§ããªããšèšããŸãã ç§ãèŠãããããŠçå®ã¯ããã¹ãŠã®ã¬ã€ã¢ãŠããCïŒ\ Windows \ System32 \ kbd * .dllãã¡ã€ã«ã«å«ãŸããŠãããããã16é²ãšãã£ã¿ãŒã§ç·šéããããšã¯æ±ºããŠäŸ¿å©ã§ã¯ãããŸããã
䟿å©ã«å°éããæ¹æ³ Caps Lockã¬ã€ã¢ãŠããåãæ¿ããã«ã¯ãããããçš®é¡ã®æ·»ä»ãã¡ã€ã«ãPunto Switcherãªã©ã®éãæ·»ä»ãã¡ã€ã«ããŸãã¯lswitchã®ãããªåçŽãªæ·»ä»ãã¡ã€ã«ã䜿çšã§ããŸãã ã¬ã€ã¢ãŠãã®ç·šéã«ã¯MSKLCããããŸãããããŸãæ©èœçã§äžäŸ¿ã§ã¯ãªããKbdEditãKLM32ã®ãããªã¢ããã°ãæ¯æãããŸãã
ãããŠãã¬ã€ã¢ãŠãDLLãåéãããã©ããã¢ã»ã³ãã©ãŒã§ã³ãŒããæžãããšã«ããŸããã
ã¬ã€ã¢ãŠãã¯kbdusx.dllãšããŠååŸãããã·ã¹ãã ã§ã¯ãUSA InternationalããšåŒã°ããŸãã ãã£ã©ã¯ã¿ãŒã远å ããããã®çµã¿åããããããããããšããç¹ã§æ°ã«å
¥ã£ãŠããŸãã 圌女ã¯ã<`ã>ã<6 ^>ã<'">ããŒããããããããããŒãããããããŒãã«å€ãããšããäºå®ã奜ãŸãªãã£ããå¥åã®ããŒããŒãã·ã§ãŒãã«ããããªãåé³èšå·ä»ãã®ã©ãã³æåãå
¥åã§ããŸãããããã°ã©ããšããŠãç§ã¯ãã®ãããªé »ç¹ã«äœ¿çšãããããŒãã貌ãä»ãããããšã¯éåžžã«äžæå¿«ã§ããã
ä»ããããã®ãã©ãŒãããããã£ã±ããšæ±ãæã§ãã æåã¯ç©äºããã£ãããšé²ã¿ããã®åŸãkbd.hãšWindows Driver Kitã®ã¬ã€ã¢ãŠãã®äŸãèŠã€ããŸããã
å
éšã¬ã€ã¢ãŠã
Microsoftãã¬ã€ã¢ãŠããDLL圢åŒã«ãããšæ±ºããã®ã¯é¢çœãããšã§ãããã ããéåœèªã®kbdkor.dllãšæ¥æ¬èªã®kbdjpn.dllãé€ããã¡ã€ã³ã¬ã€ã¢ãŠãããŒãã«ãžã®ãã€ã³ã¿ãŒãè¿ããšã¯ã¹ããŒããããKbdLayerDescriptor颿°ãé€ããã³ãŒãã¯ãŸã£ãããããŸããã
ããŒãã«ã¯æ¬¡ã®ããã«ãªããŸãã
| 32ãããWindows | 64ããããŸãã¯WOW64 |
---|
åœ¹è· | 倧ãã | ãªãã»ãã | 倧ãã | ãªãã»ãã |
---|
修食å | 4 | 0x00 | 8 | 0x00 |
vk2wchar | 4 | 0x04 | 8 | 0x08 |
ãããã㌠| 4 | 0x08 | 8 | 0x10 |
ããŒããŒã | 4 | 0x0C | 8 | 0x18 |
keynamesExt | 4 | 0x10 | 8 | 0x20 |
keynamesDead | 4 | 0x14 | 8 | 0x28 |
scancode2vk | 4 | 0x18 | 8 | 0x30 |
scancode2vk_size | 1 | 0x1C | 1 | 0x38 |
e0scancode2vk | 4 | 0x20 | 8 | 0x40 |
e1scancode2vk | 4 | 0x24 | 8 | 0x48 |
locale_flags | 2 | 0x28 | 2 | 0x50 |
ããŒãžã§ã³ | 2 | 0x2A | 2 | 0x52 |
ligature_chars | 1 | 0x2C | 1 | 0x54 |
ligature_size | 1 | 0x2D | 1 | 0x55 |
åå | 4 | 0x30 | 8 | 0x58 |
ã¿ã€ã | 4 | 0x34 | 4 | 0x60 |
ãµãã¿ã€ã | 4 | 0x38 | 4 | 0x64 |
ãããã£ãŠãã¬ã€ã¢ãŠããã¡ã€ã«ã«ã¯ãããŒã®ååãã¹ãã£ã³ã³ãŒãã®ä»®æ³ãžã®å€æïŒ0x1CâVK_RETURNïŒãä»®æ³ã³ãŒãã®æåãžã®å€æããããããŒã®çµã¿åããããååãã®ããŒãã«ãå«ãŸããŠããŸãã
ã©ããããããŒã®ååã䜿çšãããããšã¯ãã£ãã«ãªãã®ã§ãã¬ã€ã¢ãŠãããããŒããªã¹ãããããã°ã©ã ãã³ã³ãã¥ãŒã¿ãŒäžã§èŠã€ããããšãã§ããŸããã§ããã
ã¹ãã£ã³ã³ãŒãã®ããŒãã«ã倿Žããããšã«ãããä»»æã®ããŒãå¥ã®ããŒã«åå²ãåœãŠã§ããŸãã 黿ºãã¿ã³ïŒé»æºãã¹ãªãŒãããŠã§ã€ã¯ã¢ããïŒãããã«åå²ãåœãŠãããå Žåããããå¯èœã§ãããå
ã®æ©èœã¯ãã£ã³ã»ã«ãããŸããã 黿ºèšå®ã§ãªãã«ããããšãã§ããŸãã
ã·ã³ãã«ããŒãã«ã«ã¯ãžã¥ãŒã¹èªäœããããŸãã ããŒã¹ãããŒã¯KãShift + KãAltGr + KãShift + AltGr + Kãäœãè¡ãããCaps Lockã圱é¿ããããShift + Kãšåãæååã䜿çšããããå¥ã®æåã䜿çšããããæ±ºå®ããŸãã圌女ã®ããªã æåãããã«å°å·ããããããããããŒãã¥ãŒã«å
¥åããããããååãããã®äžé£ã®æåãå°å·ãããããäœãèµ·ãããªããã©ããã
AltGr-ããã¯å³Altã®ååïŒã¬ã€ã¢ãŠãã§KLLF_ALTGRãã©ã°ã§æå¹ã«ãªã£ãŠããå ŽåïŒã§ãCtrl + AltããŒã®çµã¿åãããçæããŸãã
ãããããŒã®ãªã¹ãã«ã¯ã3çªç®ã®æåã«å€æããå¿
èŠãããæåã®ãã¢ãå«ãŸããŠããŸãã ãã®æåã¯ããã«å°å·ããããšãããªã¹ããããäžåºŠèª¿ã¹ãŠããã«å€æããããšãã§ããŸãã ãªã¹ãã«æåã®ãã¢ãèŠã€ãããªãå Žåã¯ããã®ãŸãŸå°å·ãããŸãã ãããããŒã®ãã§ãŒã³ã䜿çšãããšãCompose Keyã®åäœãã·ãã¥ã¬ãŒãã§ããŸãããFirefoxãªã©ã®äžéšã®ããã°ã©ã ã¯ãæåã®ããŒãè¶
ãã倿ãèªèããŸããã
åºæ¬çã«ãã¯ãã®ã»ããã§ãããååãã®ãªã¹ãã䜿çšãããšãããŒã«è§Šããã ãã§æå€§4ã€ã®WCHARæåãå
¥åã§ããŸãã å®éãWindows 7ã§ã¯æå€§16æåãæ©èœããŸãããéåžžã«äžæå¿«ãªäŸå€ããããŸããFirefoxã¯ãã®ãããªã¬ã€ã¢ãŠãã«ééãããšå®å
šã«ããªãŒãºããé·ããååããå«ãã¬ã€ã¢ãŠããã·ã¹ãããã¯ã§ããå Žåãå®è¡ãå®å
šã«åæ¢ããŸãã
ã¬ã€ã¢ãŠããäœæ
ãŸããèšäºãšããã°ã©ã ã®äœæã«é©ããããã·ã¢èªãšè±èªã®2ã€ã®äŸ¿å©ãªã¬ã€ã¢ãŠããäœæããããšèããŸããã Ilya Birmanã®æŽ»çå°å·ã®ã¬ã€ã¢ãŠãã¯åªããŠããŸãããç¹ã«èªåã§è¡ãå Žåã¯ããã«æ¹åãããå¯èœæ§ããããŸãã
ãããããããªããŒã«ã€ããŠç¥ããŸããã ããªã¯ãæ¥æ¬èªããŒããŒãã®Caps Lockã®ããã«åãæ¿ãããã¿ã³ã§ãã ãããããè±èªãšãã·ã¢èªã®ã¬ã€ã¢ãŠãã1ã€ã«ãŸãšããã«ãããŒã§ã¬ã€ã¢ãŠããåãæ¿ããããšã«ããŸããã Caps Lockã«åå²ãåœãŠããŸããã Caps Lockã©ã€ãã§ããªã®ç¶æ
ã衚瀺ããç°¡åãªã€ã³ãžã±ãŒã¿ãŒããã°ã©ã ãäœæããŸããã
ãã®ãããªçµã¿åããã®ã¬ã€ã¢ãŠãã«ã¯ãã·ã¹ãã å
šäœã§åãã¬ã€ã¢ãŠãã䜿çšãããããã°ã©ã éã§åãæ¿ããè¡ãããããã«ãªããŸããããŸãããéåžžã«ã¹ããŒããªãããã°ã©ã ã¯ãããã¹ãã®ç·šéãã«ãŒãœã«ã®ç§»åæã«ã¬ã€ã¢ãŠããåãæ¿ããããšãã§ããªããªããŸããã
ãããŠã1ã€ã®äžå¿«ãªé©ãïŒäœããã®çç±ã§ãPsi +ã¯ãã«ããæŒããŠã¬ã€ã¢ãŠããåãæ¿ããåŸã«å
¥åãããæåã®æåãé£ã¹å§ããŸããã
ãã ããããªã¬ã€ã¢ãŠããšäžç·ã«ãã®ã¬ã€ã¢ãŠããã¢ãŒã«ã€ãã«æ®ããŸããã
次ã«ãCaps Lockã«å¥ã®äžé£ã®ãã£ã©ã¯ã¿ãŒãå²ãåœãŠãããšãã§ããããšãçºèŠããKanaãCaps Lockã«çœ®ãæããŸããã ææšããã°ã©ã ã¯äžèŠã«ãªããäžå¿«ãªé©ãã¯ãªããªããŸããã 倿Žäžã«ã1ã€ã®å¶éã®ã¿ãèŠã€ãããŸãããCapsLockã¯Kããã³Shift + Kè¡ã§ã®ã¿æ©èœããŸããAltGr+ Kãæããããšã¯ã§ããŸããã
ãã¹ãŠã®ãããããŒã2è¡ïŒKanaã®å Žåã¯4è¡ïŒã«åããããšããŠãé åºãéã«ãããšããã¢ã€ãã¢ã«åºäŒããŸãããAltGr+ãæåã§å
¥åãããæ¬¡ã«ä¿®é£Ÿåãå
¥åãããŸããã ããã«ããã以åãããå€ãã®æåãå²ãåœãŠãããšãã§ããŸããã ç§ã¯ããããã¢ã³ãããããŒããããããããŒããã®åŸ©æŽ»ããšåŒã³ãŸããã
ããã§ãå®ç§ãªã¬ã€ã¢ãŠãã宿ããŸããã
kbdusru_undeadã¬ã€ã¢ãŠãã®å©ç¹
- 1ã€ã®ããŒCaps Lockã§ãã·ã¢èªãšè±èªãåãæ¿ããŸãã
- Caps Lockã€ã³ãžã±ãŒã¿ãŒã¯çŸåšã®èšèªã瀺ããŸãã
- ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã®ã°ããŒãã«ã¬ã€ã¢ãŠãç¶æ
ã
- ãéåžžã«è³¢ããããã°ã©ã ãèªçºçã«ã¬ã€ã¢ãŠãã倿Žã§ããªãããšã
- åé³èšå·ããã®ä»ã®æåãå«ãæåãå
¥åããæ©èœã
- 奜ã¿ã«åãããŠã¬ã€ã¢ãŠããç°¡åã«ç·šéããæ©èœã
远å ã®æåãå
¥åããäŸ
ããŒããŒãã·ã§ãŒãã«ãã | çµæ |
---|
AltGr + 5 | ⬠|
AltGr + 9 | ã |
AltGr + 0 | ã |
AltGr +- | - |
AltGr + = | â |
AltGr +; | ° |
AltGr +ã | < |
AltGr +ã | > |
AltGr + Shift + / | /ç§ |
AltGr + aã ' | á |
AltGr + eã ` | Ú |
AltGr + oã " | Å |
AltGr + nãã | ñ |
AltGr + cã^ | Ä |
pãsãAltGr + qã 'ãbãa | é |
AltGr + cão | © |
AltGr + rão | ® |
AltGr + tãm | ïŒtmïŒ |
AltGr + mãu | ÎŒ |
AltGr + hãs | â |
AltGr + fã2 | œ |
AltGr + bãf | â |
èšçœ®
ã·ã¹ãã ãã¡ã€ã«CïŒ\ Windows \ System32 \ kbdru.dllãã¬ã€ã¢ãŠãã«çœ®ãæããã ãã§ããããããç¹ã§åªããŠããããã§ãã ãã®å ŽåãWindows XPãŸãã¯2000ã§ã¯ãCïŒ\ Windows \ System32 \ dllcache \ kbdru.dllãåé€ããããšãå¿ããªãã§ãã ããã
ããããWindowsã®ãã®ãããªåŒ·å¶ã¢ããã°ã¬ãŒããæ°ã«å
¥ããªãå Žåã¯ãã¬ã€ã¢ãŠãããã©ã«ããŒCïŒ\ Windows \ System32 \ã«ã³ããŒãããã®ãããªreg-fileã䜿çšããŠã·ã¹ãã ã«ç»é²ã§ããŸãã
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\07430419] "Layout Text"="US+RU" "Layout Display Name"="United States-International + Russian + Extra" "Layout File"="kbdusru_undead.dll" "Layout Id"="00d0"
ã³ãŒãã®æåã®éšåã§ãã0743ã¯ã¬ã€ã¢ãŠããäžæã«èå¥ããããã®ä»»æã®çªå·ã§ããã0419ã¯ãã·ã¢èªã®ã³ãŒãã§ããããã®äžã«ã¬ã€ã¢ãŠãã衚瀺ãããŸãã éåºæïŒANSIïŒããã°ã©ã ã§ã®ã¬ã€ã¢ãŠãã®åäœã¯ãèšèªã³ãŒãã«äŸåããŸãã æåãå
¥åãããšãã«çå笊ã衚瀺ãããå Žåãããã¯èª€ã£ãŠæå®ãããèšèªã³ãŒãã®ç¢ºå®ãªãµã€ã³ã§ãã
ããã«ãã£ãš
匷åãªãã¯ãèšèªãçŸãããŠçŽ çŽãªæ§æãããããçš®é¡ã®ãªã³ã«ã®åœ¹ã«ç«ããªãããšãã³ãã³ãã©ã€ã³äžã®ãã©ã¡ãŒã¿ãŒã®æ··ä¹±ãªã©ããã©ããã¢ã»ã³ãã©ãŒã§ããã°ã©ã ããããšã¯ç§ã«ãšã£ãŠåã³ã§ãã
ãã®ãããã¢ã»ã³ãã«æã«ã¬ã€ã¢ãŠãDLLãšåºåã®ãœãŒã¹ã³ãŒããèªã¿åãããã°ã©ã ãäœæããããšã«ããŸããã å€ã ããïŒ ã¢ã»ã³ãã©ãéã¢ã»ã³ãã©ãšããŠäœ¿çšããŸãã ããããfasmã®åã¯ãããå¯èœã«ããŸãã
ãã®çµæãã·ã¹ãã å
šäœã§å€éšããã°ã©ã ã䜿çšããã«Caps Lockèšèªãåãæ¿ããããšãã§ããã¬ã€ã¢ãŠããšãWindowsããŒããŒãã¬ã€ã¢ãŠãã䟿å©ã«ç·šéã§ããããŒã«ã®ã»ãããæã«å
¥ããŸããã
ãã¹ãŠãhttps://github.com/grompe/kbdasmã«ãããªãã¯ãã¡ã€ã³ãšããŠæçš¿ãããŠããŸãã
64ãããWindowsã䜿çšããŠããå Žåã¯ãã¢ãŒã«ã€ããããŠã³ããŒããã make.batãè§£åããŠå®è¡ããŠãããinstall.batãå®è¡ã§ããŸã ã 32ãããã®å Žåãæåã«kbdusru_undead.asmãã¡ã€ã«ãä¿®æ£ããå¿
èŠããããŸãã
ãŸããã¢ãŒã«ã€ãã«ã¯get_scancodesããã°ã©ã ããããŸãã 远å ã®ããŒãåããããªãããŒãªããŒããŒããããå Žåã¯ãããã°ã©ã ã䜿çšããŠã¹ãã£ã³ã³ãŒããèŠã€ããã¬ã€ã¢ãŠãã§ãããã®ããŒã䜿çšã§ããŸãã