Macのキーバインドをいじってみた
日曜日, 9月 7th, 2008 | Mac
Macのキーバインドを変えるソフトといえば、http://www.pqrs.org/tekezo/macosx/keyremap4macbook/index.html.ja” target=”_blank”>KeyRemap4MacBookが定番だと思いますが、”リマップ設定がちょっとだけ自分の好みじゃない”なんてケースがたまにあると思います。
私の場合はControl_L+hjklが欲しかったのですが、Command_R+hjklしか設定値がない。ということで、ソースコードに手をいれてモードを追加しました。
makeのやり方とかは作者のサイト記載の通り。
src/core/kext/remap.cpp
void
remap_vimode(const RemapParams ¶ms)
{
static ModifierCanceling mc_commandR;
static ModifierCanceling mc_controlL;
if (allFlagStatus.commandR.isHeldDown()) {
(中略)
}
if (allFlagStatus.controlL.isHeldDown()) {
bool cancel_control = false;
// Control_L+hjkl -> Up/Down/Left/Right
if (config.option_vimode_ctrl_hjkl) {
if (*(params.key) == KeyCode::H) {
<ul><li>(params.key) = KeyCode::CURSOR_LEFT;
</li></ul>
allFlagStatus.cursor = true;
cancel_control = true;
}
if (*(params.key) == KeyCode::J) {
<ul><li>(params.key) = KeyCode::CURSOR_DOWN;
</li></ul>
allFlagStatus.cursor = true;
cancel_control = true;
}
if (*(params.key) == KeyCode::K) {
<ul><li>(params.key) = KeyCode::CURSOR_UP;
</li></ul>
allFlagStatus.cursor = true;
cancel_control = true;
}
if (*(params.key) == KeyCode::L) {
<ul><li>(params.key) = KeyCode::CURSOR_RIGHT;
</li></ul>
allFlagStatus.cursor = true;
cancel_control = true;
}
}
if (cancel_control) {
mc_controlL.keyRelease(params, ModifierFlag::CONTROL_L);
return;
}
}
mc_commandR.restore(params, ModifierFlag::COMMAND_R);
mc_controlL.restore(params, ModifierFlag::CONTROL_L);
}
2件のコメント to Macのキーバインドをいじってみた
パッチありがとうございます!
Vi Mode > Control_L+hjkl to Left/Down/Up/Right として
取り込ませていただきました。
http://www.pqrs.org/tekezo/macosx/keyremap4macbook/files/KeyRemap4MacBook-5.1.57.pkg.tar.gz
最近は大抵のリマップは checkbox.xml の修正のみでいけますので
他にも何かしらの変更を加える際は
http://www.pqrs.org/tekezo/macosx/keyremap4macbook/files/KeyRemap4MacBook-5.1.57.tar.gz
などをベースにしていただくと簡便かと思います。
2008 年 10 月 4 日
Takayama Fumihikoさま:
ありがとうございます。
(超個人的に改変したものでしたので、まさか取り込んでいただけるとはおもいませんでした。)

2008 年 10 月 2 日