初めに
過去の「しがらみ」で指が勝手にemacsキーバインドの操作を行うような人間が、Windows11 のノートを使わざるを得ないときに、少しでも快適に使うための試行錯誤メモです。WindowsPCリプレースを機会にメモしていってます。
キー関連の設定
ctrl-capsの入れ替え
多くのemacs使いは「A」キーの左側にCtrlがあるべきと考えるはずなので、真っ先にctrlとCapsLockのキーの入れ替えをします。
多くの場合は、microsoftが提供しているctrl2capsのインストールで解決できます。
まず、ctrl2capsを任意のフォルダにダウンロードし、Ctrl2cap.zip を展開します。次に、管理者権限でターミナルを起動し展開したフォルダに移動して "./ctrl2cap /install" を実行した後に再起動します。
エクスプローラでのダブルクリックではインストールできないのに注意。
Aの左がCtrlなHappy Hack Keyboradなどのほか、CapsLockキーと左Ctrlキーを入れ替え機能、交換用キートップが付いているキーボードを使う方法もあります。RealForceやMajestouch Convertible 2など高価でも良いので、作り続けて欲しいです。
日本語変換キー
MacOSと同じように、IMEの入力切替を Ctrl-Space に、日本語キーボードならば「変換」と「無変換」にも割り当てます。IMEアイコンを右クリックし、「設定」⇒「キーとタッチのカスタマイズ」を選択し、「キーの割り当て」をONにして、無変換キーを「IME-オフ」、変換キーを「IME-オン」、Ctrl+Spaceを「IME-オン/オフ」とします。
私のIME入力切り替えの好みは Ctrl+\ なので、これを目指して、Microsoft Powertoysを試したができませんでした。
keyhac
プロセスごとにキーバインドを変えられるkeyhacを導入します。たまに動作が怪しくなる時もありますが、ほとんどの場合は強制終了し再起動することで復帰できるので、現状ではいちばん使えると思ってます。
インストール
keyhacの最新版を https://sites.google.com/site/craftware/keyhac-ja からダウンロードし、適当なフォルダに展開します。私はデスクトップにtoolsというフォルダを作り、圧縮ファイルに含まれるkeyhacフォルダ以下一式を展開、コピーしてます。
githubからもダウンロードできますが、こちらには、pythonXX.dll が含まれていないので、必要はdllファイルを、dll-filesなどからダウンロードして、keyhacと同じフォルダにコピーします。
キーバインド設定
キーバインドの設定は、Fakeymacsを参考にさせていただいています。zipファイルなどでダウンロードし、含まれている config.py を、keyhacと同じディレクトリにコピーします。
keyhac.exe を実行(もしくは設定のリロード)で、設定したキーバインドに変換されます。keyhacと設定ファイルにバージョンずれがあると正しく動かない場合があることに留意。
自動起動
特定ユーザでログインしたときのみ実行するようにします。下のフォルダに、keyhac.exe のショートカットを貼り付けます。
1.スタートボタンを「右クリック」し、「ファイル名を指定して実行」をクリック
2.表示された入力ボックス(※)に、「shell:startup」と入力
3.表示されたスタートアップフォルダに、keyhac.exeのショートカットを追加
※: C:\Users[UserName]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
自動起動しない場合は、ショートカットを削除します。
もし起動時にpythonXX.dllが見つからないエラーがでる場合は、keyhacを配置したフォルダを環境変数Pathに追加します。
参考:https://www.javadrive.jp/python/install/index3.html#sectionl
設定チューニング
keyhac起動後、常駐エリアのアイコンを右クリックし、「設定を編集」をクリックするとを設定ファイル config.py が編集できます。このファイルでキーバインド自体の設定に加えて、キーバインド変更の対象外ソフトも指定できます。
Ctrl-Space をIMEオン/オフで使う
Ctrl-Space をIMEオン/オフで使うために、下記行の先頭に # を追加しコメントアウトする。
# define_key(keymap_emacs, "C-Space", reset_search(reset_undo(reset_counter(set_mark_command))))
キーバインド変更の対象外ソフトの指定
キーバインド変更しないソフトの実行ファイル名を、設定ファイル内の not_emacs_target に追記していきます。一例は下の通り(少し古いかも)
not_emacs_target = ["bash.exe", # bash
"mintty.exe", # mintty
"emacs.exe", # Emacs
"emacs-X11.exe", # Emacs
"emacs-w32.exe", # Emacs
"gvim.exe", # GVim
"RLogin.exe", # rlogin
"xyzzy.exe", # xyzzy
"VirtualBox.exe", # VirtualBox
"ubuntu.exe", # ubuntu on wls
"wsl.exe", # Windows Subsystem for Linux(ubuntu)
"WindowsTerminal.exe", # Windows Terminal
"OpenConsole.exe", # WindowsTerminal
"mstsc.exe", # リモートデスクトップ
"TurboVNC.exe", # TurboVNC
"vncviewer.exe"] # UltraVNC
これらのカナでIME起動のみ変更したい場合は ime_target に追記します。私はターミナルソフトを追加してます。
その他
キーバインドとは関係ないものの、定番的に行う設定のメモです。
Windows Subsystem for Linux2 (WSL2)の準備
WSL2 は、Windows10のバージョン2004、ビルド19041以降で使えます。
Windowsの設定変更
GUIなら、「コントロールパネル」の「プログラム」の「Windowsの機能の有効化または無効化」を表示し、「仮想マシン プラットフォーム」のチェックボックスをオンにします。WSL1も併用するなら、「Linux用Windowsサブシステム」もONにします。
CUIなら、管理者権限で PowerShell を開き、以下を実行します。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
反映のため再起動します。
初期状態のubuntuターミナルのプロパティから、オプションタブでカーソルサイズを「中」、フォントタブで、MS ゴシックの16、画面の色タブの文字を白、背景を黒にするとまずまず慣れた状態になりました。あとemacs24のデフォルトだと黒背景で見にくい色があるので、下のようにwombatテーマを設定。
cat ~/.emacs.d/init.el
(load-theme 'wombat t)
エクスプローラーでWSL内のファイルを、\WLS$ というネットワークドライブで表示できるので、ショートカットに登録しておく。なお、ubuntu から、Windowsアプリ例えば、エクスプローラーなら explorer.exe で起動できる。
ターミナルソフト
好みがあるでしょうが、最近は、Windows Terminal を使っている。Ctrk-K問題は、keyhacの設定変更で解消済み。
Windows Terminal
インストール
Microsoft Store で Windows Terminalを検索しインストール
設定
いろいろしたが失念
Windowsの設定
ここから先はオマケです。
ウィンドウを端に移動したとき最大化しない
スタートメニューから「設定」⇒「システム」⇒「マルチタスク」を選択し、「ウインドウのスナップ」をオフにする
IME切り替え表示を消す
- 画面右下のIMEアイコンで右クリックしプロパティ(R)を選択
- 「IME入力モード切替の通知」欄の「画面中央に表示する」のチェックボックスを外す
タスクバー
- タスクバーのプロパティから以下を変更
「タスクバーを自動的に隠す」:オン
「小さいタスクバーボタンを使う」:オン
ツール類
DropBox
私の環境では、OneDriveよりも安定しているのでこちらに移行。デスクトップアプリをダウンロードしてインストール。
OneDrive
Office365を使っていれば、1TB使えるなど便利です。重要な Windowsフォルダー (デスクトップ、ドキュメント、画像など) として同期してしまうと、Beckyなどでこれらのフォルダにデータを置いているソフトを複数デバイスで使うと、動作がおかしくなることがあります。
なので、タスクバーの通知エリアのOnedrive のアイコンを右クリックし、設定から重要なフォルダの同期を止めます。さらに、「設定」→「アプリ」→「スタートアップ」でOneDriveを自動起動しないように変更。
エディタ
WSLでemacsが使えるので、ちょっとした操作だけなら exzzy で十分。ただし、undo/redoをよく使う場合は、keyhacと競合しているので、キーバインドを変える必要があります。
SSHクライアント
WSLで動く ubuntu on windows でコマンドラインでsshが便利。
メーラー
Becky!からeM Clientを経由して、今はSparkを利用。ヘッダーを確認するなどの細かい操作は不便だが、マルチOS(Windows/iOS/iPadOS/MacOS)で同じような操作感覚で使える点が気に入っている。
ブラウザ
SRware IronからBraveに移行。複数デバイス間でブックマークなどの共有の他、広告を受けることで(僅かな)仮想通貨Batを手に入れることが可能で。ブラウザ自体にTor機能がついてます。
インストールする拡張機能
LastPass
パスワード管理、サイト別のパスワード管理用。
https evrywhere
できるだけ暗号化したSSLでブラウジングするために利用
最後に
個人的に備忘録をかねて追記していきます。