Skip to content
forked from smzht/fakeymacs

Emacs-like key bindings for Keyhac

Notifications You must be signed in to change notification settings

matoi/fakeymacs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)で実現している機能

[1] IME が ON の時に文字(英数字か、スペースを除く特殊文字)を入力すると起動するモードです。 (モードに入ると、▲のマークが表示されます。) Emacs日本語入力モードになると Emacsキーバインド として利用できるキーが限定され、その他のキーは Windows にそのまま渡されるようになるため、 IME のショートカットキーが利用できるようになります。 また、このモードでは IME のショートカットを置き換える機能もサポートしており、初期値では 「ことえり」のキーバインドを利用できるようにしています。

[2] アクティブウィンドウの切り替えのキーの初期値は未設定(None)としています。このため、起動 するためのキーは、デフォルトキーの A-S-Tab、A-Tab となります。起動後は A-p、A-n で アクティブウィンドウの切り替え、A-g で切り替え画面の終了(キャンセル)が利用できます。

使い方

1) キーボード配列の調整を行う

Aキーの左横が Caps Lock のキーボードを使っている場合は、右 Control キーに置き換える ことをお勧めします。

Caps Lock のキーの置き換えは Keyhac ではできませんので、KeySwap や Change Key という ツールで対応ください。Caps Lock の変更だけであれば、KeySwap の利用をお勧めします。

変更後、Windows の再ログインを行ってください。

2) Keyhac をインストールする

次のサイトから Keyhac をインストールしてください。

起動時に dll load エラーが発生する場合は、「Visual Studio 2015 ランタイムパッケージ」を インストールする必要があります。上記のサイトにリンクしてあるものは少し古いバージョンなので、 次のサイトから新しいものをダウンロードしてインストールしてください。

※ Windows OS が x64版 でも、ランタイムパッケージは x86版 をインストールしてください。

※ 上記でインストールされるものは C:\Windows\SysWOW64\msvcp140.dll ですので、この dll を keyhac.exe と同じフォルダに置けば、ランタイムパッケージをインストールしていない PC でも Keyhac を動かすことができるようになります。

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

Win+R で開く画面に shell:startup と入力して Startup フォルダを開き、インストールした Keyhac フォルダ配下にある keyhac.exe のショートカットを Startup フォルダに配置してください。

4) Fakeymacs をダウンロードする

本サイトの Code のボタン(緑色のボタン)から、Download ZIP を選択し、Fakeymacs 一式を ダウンロードしてください。(可能であれば、Git を使ってダウンロードすることをお勧めします。 Git を使うと、今後の Fakeymacs のバージョンアップに容易に対応できます。)

5) 必要なファイルを Keyhac のフォルダに複写する

ダウンロードした Fakeymacs の ZIPファイルから、必要なファイルを Keyhac のフォルダに複写 します。次の中から必要なファイルを複写してください。(フォルダ配下にあるファイルは、 フォルダ階層を維持して複写するようにしてください。)

FilenameDescription
config.pyFakeymacs の本体です。このファイルは必ず必要です。
_config_personal.py個人設定ファイルです。config_personal.py という名称に変更することで機能するようになります。
fakeymacs_extensions/*機能拡張ファイルです。config_personal.py の中で有効/無効を切り替えることができます。

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

config.py の内容をみて、変更したいコンフィグレーションパラメータをカスタマイズします。 カスタマイズする際は、_config_personal.py ファイルを config_personal.py という名称に変更し、 このファイルの中で設定を修正するようにしてください。

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

Configuration ParameterDescription
ime利用している IME を指定する
not_emacs_targetEmacs のキーバインドに“したくない”アプリケーションソフトを指定する
ime_targetIME の切り替え“のみをしたい”アプリケーションソフトを指定する
side_of_ctrl_key左右どちらの Ctrlキーを使うかを指定する
use_esc_as_metaEscキーを Metaキーとして使うかどうかを指定する
use_emacs_ime_modeEmacs日本語入力モードを使うかどうかを指定する
toggle_input_method_keyIME をトグルで切り替えるキーを指定する
set_input_method_keyIME を切り替えるキーの組み合わせ(disable、enable の順)を指定する

VSCode 用としては、次のコンフィグレーションパラメータもあります。

Configuration ParameterDescription
vscode_targetVSCode 用のキーバインドを利用するアプリケーションソフトを指定する
use_direct_input_in_vscode_terminalVSCode の Terminal内 で 4つのキー(Ctrl+k、Ctrl+r、Ctrl+s、Ctrl+y)のダイレクト入力機能を使うかどうかを指定する

※ 1) で Caps Lock に右 Control キーを割り当てた場合には、side_of_ctrl_key を “R” に 変更する必要があります。この場合、左 Control キーは従来どおり Windows ショートカット用 のキーとして利用できます。

7) 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 については、次の2つの拡張機能により、機能強化を図っています。

Extension nameDescription
vscode_keyVSCode 用のキーの設定を行う
vscode_extensionsVSCode Extension 用のキーの設定を行う

VSCode の Emacs Keymap Extension と比較した本機能の特徴は、以下のページの <2021/02/23 追記> に記載しています。参考としてください。

留意事項

● Microsoft Excel や Word などの Office系アプリを使ってコピー&ペーストをした際、「Ctrl」と表示 される「貼り付けオプション」ボタンが表示される場合があります。 これが Emacsキーバインドで利用している 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 などの数値)を設定して再起動することで、 ある程度の回避ができるようです。ただし、この設定により生ずる影響は分かっていませんので、試す場合は 各自の責任でお願いします。

About

Emacs-like key bindings for Keyhac

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.7%
  • AutoHotkey 0.3%