• Stars
    star
    111
  • Rank 314,510 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Emacs-like key bindings for Keyhac

Fakeymacs

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

Keyhac for Windows ver 1.82 以䞊のバヌゞョンでご利甚ください。

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

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

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

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

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

  • Emacs 暙準キヌバむンド
  • Emacs 日本語入力モヌド [1]
  • other_window䞀番最近たでフォヌカスがあったりィンドりに移動する機胜
  • shell_commandコマンドコン゜ヌルを起動する機胜
  • アクティブりィンドりの切り替え [2]
  • アクティブりィンドりのディスプレむ間移動
  • デュアルディスプレむにそれぞれ衚瀺されおいるりィンドりの入れ替え
  • りィンドりの最倧化、リストア
  • りィンドりの最小化、リストア
  • 仮想デスクトップの切り替え
  • クリップボヌドリスト
  • ランチャヌリスト
  • 拡匵機胜Extensionsで実珟しおいる機胜

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

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

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

[2] A-Esc キヌの動䜜ずは異なり、仮想デスクトップを跚ぎ、最小化されおいないりィンドりを順に 切り替える機胜を提䟛したす。䜜業するりィンドりのみを衚瀺するようにしおおけば、その衚瀺しおいる りィンドり間を容易に行き来するこずが可胜ずなりたす。りィンドりの最小化の機胜、other_window の機胜ず䜵せお利甚するず、より有甚な機胜になるず思いたす。

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

本蚭定で利甚しおいる䞻なキヌマップのレむダヌ構成は次の図のずおりです。

/fakeymacs_manuals/keymap_layer/keymap_layer.png

入力したキヌはキヌマップの䞊䜍の局からサヌチされ、キヌがマッチすれば、そのキヌに定矩された コマンドを実行し、サヌチを終了したす。

䜿い方

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

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

Caps Lock のキヌの眮き換えは Keyhac ではできたせんので、KeySwap や Change Key ずいう ツヌルで察応ください。Caps Lock の倉曎だけであれば、KeySwap の利甚をお勧めしたす。

倉曎埌、Windows の再ログむンを行っおください。

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

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

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

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

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

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

※ Windows OS が x64版 でも、「Microsoft Visual C++ 再頒垃可胜パッケヌゞ」は x86版 を むンストヌルする必芁がありたす。

※ dll load ゚ラヌが発生しない堎合でも、「Microsoft Visual C++ 再頒垃可胜パッケヌゞ」の 最新版をむンストヌルするこずは意味のあるこずかもしれたせん。

※ 䞊蚘でむンストヌルされる C:\Windows\SysWOW64\msvcp140.dll を keyhac.exe ず同じフォルダに 眮けば、再頒垃可胜パッケヌゞをむンストヌルしおいない PC でも Keyhac を動かすこずができる ようになりたす。

4) Keyhac を自動起動するようにする

Win+R で開く画面に shell:startup ず入力しお Startup フォルダを開き、むンストヌルした Keyhac フォルダ配䞋にある keyhac.exe のショヌトカットを Startup フォルダに配眮しおください。

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

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

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

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

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

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

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

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

Configuration ParameterDescription
fc.ime利甚しおいる IME を指定する
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 の順を指定する

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

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

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

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

VSCode を利甚する堎合には、次の vscode_key Extension 甚のコンフィグレヌションパラメヌタの蚭定は 確認しおください。

Configuration ParameterDescription
fc.vscode_targetVSCode 甚のキヌバむンドを利甚するアプリケヌション゜フトを指定する
fc.use_direct_input_in_vscode_terminalVSCode の Terminal内 で ぀のキヌCtrl+k、Ctrl+r、Ctrl+s、Ctrl+yのダむレクト入力機胜を䜿うかどうかを指定する

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

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

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

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

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

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

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

11) SylphyHorn の蚭定を行うオプション

アクティブりィンドりを仮想デスクトップ間で移動する機胜を利甚する堎合、次のペヌゞから SylphyHornPlus をむンストヌルしおください。SylphyHornPlus は、Microsoft Store からむンストヌル可胜な SylphyHorn の Fork で、Windows 11 の察応など、改良が加えられたものずなっおいたす。

たた、操䜜のためのキヌ蚭定を、config_personal.py 内で fc.window_movement_key_for_desktops 倉数に察し 行っおください。倉数の蚭定方法は、config.py を参考ずしおください。

※ SylphyHorn の仮想デスクトップ切り替え時に衚瀺される通知機胜は、テキスト カヌ゜ル むンゞケヌタヌ ず盞性が悪いようですむンゞケヌタヌが消えおしたいたす。SylphyHorn ずテキスト カヌ゜ル むンゞケヌタヌ の機胜を同時に利甚する堎合には、SylphyHorn の通知機胜を OFF にし、代わりに「デスクトップの番号を タスクトレむに衚瀺する」機胜を利甚するようにしおください。

12) keyhac.exe を起動する

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

個人蚭定ファむル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 の蚭定も読みやすくなるず思いたす。

VSCode の機胜匷化に぀いお

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

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

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 のキヌバむンドずも十分に共存が可胜なものずなっおいたすので、䞀床お詊しいただければず思いたす。

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

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

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

留意事項

● 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 にしおから割圓をしないず正垞に動䜜したせんでした。他のキヌストロヌクを蚭定する゜フトの堎合 にも同様の問題が発生する可胜性があるず思いたすので、ご留意ください。

● Windows 11 にしたら、Keyhac のコン゜ヌルに「Time stamp inversion happened.」ず衚瀺される頻床が 高くなりたした。これは、レゞストリ HKEY_CURRENT_USER\Control Panel\Desktop\LowLevelHooksTimeout を DWORD 圢匏で䜜成し、そこに ms の倀10進数で 3000、5000 などの数倀を蚭定しお再起動するこずで、 ある皋床の回避ができるようです。ただし、この蚭定により生ずる圱響は分かっおいたせんので、詊す堎合は 各自の責任でお願いしたす。