RSS 購読《HelloGitHub》第 104 期で、キーボードマッピングツールkanata https://github.com/jtroo/kanata を見つけました。以前使用していた [AHK]3の設定を置き換えるつもりで、より包括的でコンパクトに見えます。rust プログラムで、設定ファイルを使用し、実際に使ってみると autohotkey 1.0 よりも便利です。例えば、以前は中国語での ` 記号のために AHK がコピー機能を使用する必要があり、逆に正常にコピーされた内容に影響を与えていましたが、kanata は直接マッピングできます。ralt の qweasd を上下左右 home、end にマッピングしました。
kanata#
主なキーボードの検索と名称は以下のツールと公式文書で確認できます。
https://www.toptal.com/developers/keycode
https://github.com/jtroo/kanata/blob/v1.7.0/parser/src/keys/mod.rs
unicode 方式で中国語入力時に英語記号を入力できるようにし、中英文の切り替えを避けます。例えば、(unicode "`") や (unicode">") を使用することで、中国語の特殊記号や書名号の入力を避けることができます。
しかし、最後にマウスの 4,5 キー、つまりマウスのサイドボタンの進む・戻るをマウスの中ボタンにマッピングする方法は研究できませんでした。AHK では比較的簡単です。
kanata ではmftp: tap forward mouse button,mbtp: tap backward mouse button,mbck,mfwdを試しましたが、どれもうまくいきませんでした。
一時的に kbd 設定を記録し、機会があれば引き続き学習して改善します。
- 主な大まかなフレームワークは各層に対応しており、キーボードビューに似ています。defcfg はデフォルトで全てのキーを含み、defsrc に定義されていなくても機能します。
- defsrc 層では、マッピングに使用するキーを必要とします。
- deflayer default 層では、キーボードに対応するデフォルト設定を行います。例えば、grv キーを (unicode "`") にマッピングすることで、どの入力法を使用しても出力に影響を与えず、中国語で特殊文字が出力されるのを避け、markdown 執筆を便利にします。変更しない部分は_で表します。
- deflayer ralt 層では、右 alt トリガーの特殊層を定義し、デフォルトのキー出力をカスタマイズします。
defalias
で定義したものと組み合わせます。 - defalias では、caps キーと ralt キーの両方が ralt 層をトリガーできるように定義し、元のキーも
>
と ``` に再マッピングしました。
更新:後にv2ex で誰かが答えてくれました。issues listに、マウスマッピングはまだサポートされていないことが書かれていました。
(defcfg
#|
この設定はkanata内で押されたすべてのキーを処理します。たとえそれらがdefsrcにマッピングされていなくてもです。これは特定のアクションが特定の入力シーケンスに対して適切なタイミングでアクティブ化されるためです。デフォルトでは、マッピングされていないキーはAltGrに関連するWindowsの問題のためにkanataを通過しません。キーボードでAltGrを使用する場合、lctlとraltをdefsrcからアンマッピングしながらsimple.kbdファイルに従うことをお勧めします。
|#
process-unmapped-keys yes
)
(defsrc
caps grv q w e [ ] Backspace
a s d
lsft . rsft
ralt apps rctl
🖰4
)
(deflayer default
@cap (unicode "`") _ _ _ _ _ _
_ _ _
_ _ _
@ralt VolumeDown VolumeUp
🖰3
)
(deflayer ralt
_ (unicode "`") home up end VolumeDown VolumeUp Delete
left down rght
_ (unicode ">") _
_ _ _
_
)
(defalias
cap (tap-hold-press 200 200 (unicode ">") (layer-toggle ralt))
ralt (tap-hold-press 200 200 grv (layer-toggle ralt))
)
autohotkey 2.0#
マウスが実現できない場合、思い切って autohotkey v2 に切り替えるつもりです。少し文書を学び、新しい良い方法で ` と > を実現しました。そしてプログラムもコンパクトになりました。
autohotkey2.0 を再研究し、特殊記号の入力もシームレスに実現できるようになりました:
AHK2.0 設定を更新し、以前の不慣れな AHK1.0 を置き換えました。
XButton2::MButton
XButton1::MButton
Capslock::RAlt
RControl::Volume_Up
AppsKey::Volume_Down
>!1::F1
>!2::F2
>!3::F3
>!4::F4
>!5::F5
>!6::F6
>!7::F7
>!8::F8
>!9::F9
>!0::F10
>!-::F11
>!=::F12
>!Backspace::Delete
>!q::Home
>!e::End
>!w::Up
>!a::Left
>!s::Down
>!d::Right
>![::Volume_Down
>!]::Volume_Up
`::SendText "``"
/::SendText "/"
>!`::SendText "``"
>!.::SendText ">"
>!;::SendText ":"
!\::SendText "\"
!/::SendText "/"
<![::SendText "["
<!]::SendText "]"