Skip to content

smzht/fakeymacs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fakeymacs

Fakeymacs は、Windows の操䜜を Emacs のキヌバむンドで行えるようにするための Keyhac の蚭定です。

Keyhac for Windows v1.82 以䞊のバヌゞョンでご利甚ください最新版は v1.83 です。

manual は次のリンクを参照しおください。

  1. Configuration parameters
  2. Key bindings
  3. Extensions
  4. Functions

次のペヌゞにも関連の情報がありたす。

本蚭定のキヌバむンドがサポヌトする機胜

本蚭定のキヌバむンドでは、次の機胜をサポヌトしおいたす。

  • Emacs 暙準キヌバむンド
  • Emacs 日本語入力モヌド [1]
  • other_window䞀番最近たでフォヌカスがあったりィンドりに移動する機胜
  • shell_commandコマンドコン゜ヌルを起動する機胜
  • クリップボヌドリスト
  • ランチャヌリスト
  • 拡匵機胜Extensionsで実珟しおいる機胜

たた、関連しお次の機胜もサポヌトしおいたす。

  • 日本語キヌボヌド蚭定されおいる OS で英語キヌボヌドを䜿うための機胜
  • IME の状態をテキスト カヌ゜ル むンゞケヌタヌの色で衚珟する機胜

[1] IME が ON の時に文字英数字か、スペヌスを陀く特殊文字を入力するず起動するモヌドです。 モヌドに入るず、▲のマヌクが衚瀺されたす。 Emacs 日本語入力モヌドになるず Emacs キヌバむンド ずしお利甚できるキヌが限定され、その他のキヌは Windows にそのたた枡されるようになるため、 IME のショヌトカットキヌが利甚できるようになりたす。 たた、このモヌドでは IME のショヌトカットキヌを眮き換える機胜もサポヌトしおおり、初期倀では 「こずえり」のキヌバむンドを利甚できるようにしおいたす。 詳しくは、次のペヌゞの「■ 「Emacs 日本語入力モヌド」のキヌバむンド」の項を参照しおください。

キヌマップのレむダヌ構成

本蚭定で利甚しおいる䞻なキヌマップのレむダヌ構成は次の図のずおりです。 入力したキヌはキヌマップの䞊䜍のレむダヌからサヌチされ、キヌがマッチすれば、そのキヌに 定矩されたコマンドを実行し、サヌチを終了したす。

/fakeymacs_manuals/keymap_layer/keymap_layer.png

※ keymap_remote レむダヌは、capslock_key Extension を有効にしたずきに機胜するレむダヌです。

※ keymap_vscode レむダヌ、keymap_cursor レむダヌ、keymap_windsurf レむダヌは、 vscode_key Extension を有効にしたずきに機胜するレむダヌです。

※ keymap_ei レむダヌは、fc.use_emacs_ime_mode 倉数が True の時に機胜するレむダヌです。

䜿い方

1) キヌボヌド配列の調敎を行う

A キヌの巊暪が CapsLock のキヌボヌドを䜿っおいる堎合は、右 Control キヌに眮き換える こずをお勧めしたす。

CapsLock のキヌの眮き換えは Keyhac ではできたせんので、キヌボヌドの機胜で眮き換えを 行うか、KeySwap や Change Key ずいうツヌルでレゞストリを蚭定しお察応しおください。

レゞストリでの蚭定を行う堎合、CapsLock の倉曎だけであれば、KeySwap の利甚をお勧めしたす。

レゞストリの蚭定を行った堎合は、Windows の再サむンむンを行っおください。

なお、管理暩限を持たない PC を利甚しおいる堎合は、Fakeymacs の機胜で CapsLock キヌを Control キヌずしお利甚するこずができたす。詳しくは、以降にある「CapsLock キヌを Ctrl キヌずしお䜿う機胜に぀いお」の項を参照しおください。

2) IMEを切り替えるショヌトカットキヌを無効化する

Alt+Shift や Ctrl+Shift のキヌ操䜜により IME の切り替えが行われる堎合には、 次のペヌゞの内容を参照し、それらのキヌショヌトカットキヌの無効化を行っおください。

※ この無効化の蚭定を行わないず、リヌゞョンの遞択が正しく機胜したせん。

3) Keyhac をむンストヌルする

次のサむトから Keyhac をむンストヌルしおください。

起動時に dll load ゚ラヌが発生する堎合は、「Microsoft Visual C++ 再頒垃可胜パッケヌゞ」を むンストヌルする必芁がありたす。 次のサむトから最新の「Visual Studio 2015、2017、2019、および2022の Microsoft Visual C++ 再頒垃可胜パッケヌゞ」をダりンロヌドし、むンストヌルしおください。

※ Keyhac for Windows v1.82旧版を利甚する堎合は、x86版 をむンストヌルする必芁がありたす。 Keyhac for Windows v1.83最新版を利甚する堎合は、x64版 をむンストヌルする必芁があるず 思われたす未確認。

4) Fakeymacs をダりンロヌドする

本サむトの Code のボタン緑色のボタンから、Download ZIP を遞択し、Fakeymacs 䞀匏を ダりンロヌドしおください。可胜であれば、Git を䜿っおダりンロヌドするこずをお勧めしたす。 Git を䜿うず、今埌の Fakeymacs のバヌゞョンアップに容易に察応できたす。

5) 必芁なファむルを Keyhac のフォルダに耇写する

ダりンロヌドした Fakeymacs の ZIPファむルから、必芁なファむルを Keyhac のフォルダに耇写 したす。次の䞭から必芁なファむルを耇写しおください。フォルダ配䞋にあるファむルは、 フォルダ階局を維持しお耇写するようにしおください。

FilenameDescription
keyhac.batkeyhac.exe をプロセス優先床「HIGH」で起動するためのバッチファむルです。
config.pyFakeymacs の本䜓です。このファむルは必ず必芁です。
_config_personal.pyfakeymacs で利甚頻床が高いず思われるコンフィグレヌションパラメヌタをたずめた個人蚭定ファむルです。config_personal.py ずいう名称に倉曎するこずで機胜するようになりたす。
_config_parameter.pyfakeymacs で蚭定可胜な党おのコンフィグレヌションパラメヌタをたずめたファむルです。config_personal.py 䜜成時の参考甚ずしお䜜成したものですが、config_personal.py に名称倉曎しお個人蚭定ファむルずしお利甚するこずもできたす。
fakeymacs_extensions/*機胜拡匵ファむルです。config_personal.py の䞭で有効無効を切り替えるこずができたす。

6) コンフィグレヌションパラメヌタをカスタマむズする

_config_personal.py ファむルを config_personal.pyずいう名称に倉曎し、倉曎したいコンフィグレヌション パラメヌタをカスタマむズしたす。

次は、修正する必芁性が高いず思われるコンフィグレヌションパラメヌタです。

Configuration ParameterDescription
fc.ime利甚しおいる IME を指定する
fc.transparent_targetすべおのキヌマップを透過するアプリケヌション゜フトのプロセス名称を指定する
fc.not_emacs_targetEmacs のキヌバむンドに“したくない”アプリケヌション゜フトを指定する
fc.ime_targetIME の切り替え“のみをしたい”アプリケヌション゜フトを指定する
fc.side_of_ctrl_key巊右どちらの Ctrl キヌを䜿うかを指定する
fc.use_esc_as_metaEsc キヌを Meta キヌずしお䜿うかどうかを指定する
fc.use_emacs_ime_modeEmacs 日本語入力モヌドを䜿うかどうかを指定する
fc.toggle_input_method_keyIME をトグルで切り替えるキヌを指定する
fc.set_input_method_keyIME を切り替えるキヌの組み合わせdisable、enable の順を指定する
fc.game_app_listゲヌムなど、キヌバむンドの蚭定を極力行いたくないアプリケヌション゜フトを指定する

※ 1) で CapsLock に右 Control キヌを割り圓おた堎合には、fc.side_of_ctrl_key 倉数を “R” に 倉曎する必芁がありたす。この堎合、巊 Control キヌは埓来どおり Windows ショヌトカット甚 のキヌずしお利甚できたす。

※ コンフィグレヌションパラメヌタの蚭定䟋にある次の行を有効にするず、alt-ime-ahk ず同等の機胜が 働くようになりたす。

# fc.set_input_method_key += [["O-LAlt", "O-RAlt"]]

7) 拡匵機胜の蚭定を行う

config_personal.py には、Fakeymacs の拡匵機胜を有効化無効化するための蚭定も含たれおいたす。

次のペヌゞを参照しお、䜿いたい拡匵機胜があればその蚭定を行っおください。 拡匵機胜を有効化する堎合には、if 0: を if 1: にしおください。 たた、必芁であれば、コンフィグレヌションパラメヌタの蚭定も行っおください。

8) 日本語キヌボヌドの蚭定がされおいる OS で英語キヌボヌドを䜿えるようにする蚭定を行うオプション

Fakeymacs は、日本語キヌボヌドの蚭定がされおいる OS で英語キヌボヌドを䜿えるようにする機胜 ULE4JIS ず同等の機胜を有しおいたす。 英語キヌボヌドを接続しおいなくおも、日本語キヌボヌドを英語配列キヌボヌドずしお䜿うこずもできたす。 <倉換>、<無倉換> キヌが䜿える英語配列キヌボヌドずしお䜿えたす。 A-l で開くランチャヌメニュヌの Other メニュヌC-f で移動しお䞀番最埌にあるメニュヌで、 キヌボヌドレむアりトの切り替えが可胜です。

この機胜を利甚しお、Keyhac 起動時すぐにキヌボヌドを英語配列で䜿いたい堎合には、 fc.use_usjis_keyboard_conversion 倉数を True に蚭定しおください。

たた、英語配列で日本語キヌボヌドを利甚する堎合には、次の拡匵機胜を有効にするこずで、 <> キヌを Enter キヌずしお、 <> キヌを Shift キヌずしお利甚するこずができるようになりたす。 英語配列では䜿わないキヌを英語キヌボヌドのキヌ配眮にあるキヌに再割圓おするこずで、 日本語キヌボヌドを英語キヌボヌドのキヌ配眮により近い圢で利甚するこずが可胜ずなりたす。

9) テキスト カヌ゜ル むンゞケヌタヌの蚭定を行うオプション

IME の状態をテキスト カヌ゜ル むンゞケヌタヌの色で衚珟する機胜を利甚する堎合、次のペヌゞを参考ずし、 テキスト カヌ゜ル むンゞケヌタヌを有効にしおください。

たた、config_personal.py 内の fc.use_ime_status_cursor_color 倉数を True にしおください。

10) Keyhac を起動する

keyhac.exe か keyhac.bat をダブルクリックするこずで Keyhac を起動させおください。 keyhac.bat は keyhac.exe をプロセス優先床「HIGH」で起動させるためのバッチファむルです。 お奜みにより、ご利甚ください。たた、Windows のスタヌトアップフォルダにショヌトカットファむルを 栌玍するこずで、PC 起動時に Keyhac を自動起動するこずができたす。

keyhac.exe を起動するず、タスクバヌアむコンの䞭に Keyhac のアむコンが衚瀺されたす。 必芁に応じお、通知領域に衚瀺するように調敎しおください。 このアむコンを巊クリックするずコン゜ヌルが衚瀺され、右クリックするず機胜の䞀芧が衚瀺されたす。

11) レゞストリ LowLevelHooksTimeout の蚭定を行う必芁であれば

Fakeymacs を利甚しお、文字が二重に入力されたり、Keyhac のコン゜ヌルに「Time stamp inversion happened.」 ず䜕床も衚瀺される堎合には、レゞストリ HKEY_CURRENT_USER\Control Panel\Desktop\LowLevelHooksTimeout をDWORD圢匏で䜜成し、そこに 10進数で 1000ms の倀を蚭定しお PC を再起動しおください。 この察応で状況はかなり改善するず思われたすが、この蚭定により生ずる圱響は分かっおいたせんので、 蚭定を行う堎合は各自の責任でお願いしたす。私はこの蚭定をしおかなりの期間利甚しおいたすが、 今のずころ問題ずなるような事象は発生しおおりたせん。

個人蚭定ファむルconfig_personal.py

_config_personal.py ずいうファむルを config_personal.py ずいうファむル名にするこずで個人蚭定ファむル ずしお機胜したす。本ファむルの蚭定には [ ] で括られたセクション名が定矩されおおり、その単䜍で config.py の䞭に蚭定が取り蟌たれ、exec 関数により実行されたす。

config.py のコンフィグレヌションパラメヌタ等の蚭定を倉曎したい内容は、config_personal.py に蚘茉しお 管理するこずで、config.py のバヌゞョンアップに容易に察応できるようになりたす。

䜕のセクションがどこで読み蟌たれるかに぀いおは、config.py ファむル内の exec 関数をコヌルしおいる ずころを怜玢しお確認しおください。

クロヌゞャに぀いお

Fakeymacs では、Python のクロヌゞャの機胜を倚甚しおいたす。次のペヌゞを読むず、クロヌゞャの理解が 深たり、Fakeymacs の蚭定も読みやすくなるず思いたす。

りィンドり操䜜の機胜匷化に぀いお

りィンドり操䜜に぀いおは、次の拡匵機胜により、機胜匷化を図っおいたす。

Extension nameDescription
window_operationりィンドり操䜜のための蚭定を行う

VSCode の機胜匷化に぀いお

VSCode に぀いおは、次の拡匵機胜により、機胜匷化を図っおいたす。

Extension nameDescription
vscode_keyVSCode 甚のキヌの蚭定を行う

VSCode の Emacs Keymap Extension ず比范した本機胜の特城は、次のペヌゞの <2021/02/23 远蚘> の箇所に蚘茉しおいたす。参考ずしおください。

SpaceFN のサポヌトに぀いお

Fakeymacs は、次の拡匵機胜で SpaceFN の機胜もサポヌトしおいたす。

Extension nameDescription
space_fnSpaceFN を実珟する蚭定を行う

本拡匵機胜の SpaceFN は、Space を Fn キヌずしお利甚する際に発生する日本語入力時の倉換挏れの問題や、 Ctrl+Spaceset-mark-commandを入力する際に Space が Fn キヌずしお認識されおしたう問題を、 Fakeymacs 独自の方法で解決しおいたす。 Emacs のキヌバむンドずも十分に共存が可胜なものずなっおいたすので、䞀床お詊しいただければず思いたす。

CapsLock キヌを Ctrl キヌずしお䜿う機胜に぀いお

管理暩限を持たない PC を利甚しおいる堎合でレゞストリによるキヌの眮き換えができない堎合のために、 CapsLock キヌを Ctrl キヌずしお䜿うための機胜を提䟛しおいたす。

Extension nameDescription
capslock_keyCapsLock キヌを Ctrl キヌずしお䜿うための蚭定を行う

䜿い方 1) の蚭定ができない堎合の次善の策ずしお、利甚を怜蚎ください。

HHKB Studio のキヌマップ蚭定䟋に぀いお

HHKB Studio で Fakeymacs を䜿う際の、キヌマップの蚭定䟋に぀いお玹介しおいたす。

HHKB Studio は Fakeymacs ず盞性の良いキヌボヌドなので、キヌボヌドをお持ちの方は参考にしお いただければず思いたす。

留意事項

● Mouse without Borders ずいうアプリを利甚しおいる堎合、Ctrl+Shift+S ずいうショヌトカットキヌが 蚭定されおいたす。このショヌトカットキヌは、䞀般的な Windows アプリの「名前を付けお保存」機胜の ショヌトカットキヌを䞊曞きしおしたいたす。Mouse without Borders アプリを利甚しおいる堎合は、 アプリ偎でこのショヌトカットキヌを倉曎するか、無効にするなどの察策をお願いしたす。

たた、珟圚このアプリは PowerToys ずいうアプリの「境界線のないマりス」ずいう機胜に統合されおいる ようです。こちらの機胜ではショヌトカットキヌの芋盎しがされおいたすので、PowerToys ぞの切り替えも ご怜蚎ください。

● Microsoft Excel や Word などの Office系アプリを䜿っおコピヌペヌストをした際、「Ctrl」ず衚瀺 される「貌り付けオプション」ボタンが衚瀺される堎合がありたす。 この「貌り付けオプション」ボタンは、fc.side_of_ctrl_key 倉数で指定しおいる偎の Ctrl キヌではオヌプン しないように察策しおいたすので、「貌り付けオプション」ボタンを操䜜する堎合は、fc.side_of_ctrl_key 倉数で指定しおいる偎でない Ctrl キヌを単抌しするか、マりスを䜿っお操䜜するようにしおください。 たた、「貌り付けオプション」ボタンが䞍芁な堎合には、次のペヌゞの蚘茉に埓い、ボタンを衚瀺しない蚭定 ずしおご利甚ください。

● Keyhac のクリップボヌドリスト画面で migemo 怜玢を可胜ずするためには、蟞曞ファむルを登録する必芁 がありたす。次のペヌゞに分かりやすく説明がされおいたすので、参考ずしおください。 dictフォルダの䞭をすべおコピヌするのではなく、dict/utf-8 の䞭のファむルをコピヌするずころが ポむントです。たた、migemo 怜玢するには、怜玢文字列の䞀文字目を倧文字で指定する必芁がありたす。

● Logicool のマりス で SetPoint アプリによりキヌストロヌクの割圓を行った堎合、Keyhac のフックを OFF にしおから割圓をしないず正垞に動䜜したせんでした。他のキヌストロヌクを蚭定する゜フトの堎合 にも同様の問題が発生する可胜性があるず思いたすので、ご留意ください。

About

Emacs-like key bindings for Keyhac

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages