Windows でも Mac の commandキーを使いたい
眠いのでとりあえずメモだけ。
後で書き直す。
会社のWindowsでもMacみたいにControlキーとCommandキーを使い分けたい。なぜなら、Unixのキーバインド(Ctrl-d 等)を使用しても、Firefoxのショートカットキー(Command-d 等)に影響を与えないから。
実行手順
Firefoxの設定で、ショートカットキーのプレフィックスをControlからAltに変更する
いまここ。できるか分からないので要調査。
keyconfigを使えばいいのかもしれないけど、あくまでもショートカットキーのプレフィックスのみを変更できれば嬉しい。できなかったらkeyconfigで地道に変更する。
追記
keyconfigではAltとの組み合わせは無理っぽい。Shiftにするか…。
窓使いの憂鬱の設定方法は分かったので、後はFirefoxのショットカットキーのプレフィックスをCtrlからAltに変える方法が見つかれば望みが叶う。
追記 (2009/03/13(金))
できたので、忘れない内にメモ。
手順
1. Firefoxの accelKey を Control から Alt に変更
「%APPDATA%\Mozilla\Firefox\Profiles\xxxxxxxx.default\」に user.js を以下の内容で作成する。
コメントで教えていただいた。
(なぜかabout:configでは設定が有効とならなかった)
user_pref("ui.key.accelKey", 18); user_pref("ui.key.generalAccessKey", 0); user_pref("ui.key.menuAccessKey", 0);
2. 窓使いの憂鬱を使用して、LWinキーをAltに割り当て & Emacs(というよりUnix?)風キーバインド設定
以下の内容で作成する。
[TODO]
全て選択を追加(C-a でとられてしっまている)
検索を追加(C-f でとられてしまっている)
keymap Global # HHK Pro は104キーボード include "104.mayu" # LeftWindowsキーをaltに割り当てる # refer to http://mayu.sourceforge.net/mayu/doc/README-ja.html (iii. モディファイヤキー割り当ての変更) mod alt = LWin key *LWin = *LAlt # PuTTy 起動時はEmacs風キーバインドを使用しないようにする # refer to: # http://jisx6004.client.jp/mayu2.html#9 # http://jisx6004.client.jp/mayu2.html#9 # 正規表現に否定の先読み /(?!PuTTy.exe)/ を利用して、PuTTy以外を指定したかったが、できない模様。。 window PuTTY /(firefox|iexplore|gvim|TeraPad)\.exe/ : Global # 存在するとskkimeなどに干渉するEmacsのキーバインドもあるので、 # 適宜必要なものだけを定義。 include "default.mayu" #include "emacsedit.mayu" key C-A = Home # 行頭 key C-B = Left # ← key M-B = C-Left # ←(単語) key C-E = End # 行末 key C-F = Right # → key M-F = C-Right # →(単語) key C-G = Escape # CANCEL key C-N = Down # ↓ key C-P = Up # ↑ key C-D = Delete # 削除 key C-K = $EmacsEdit/kill-line l # 行末まで削除 key C-M = Return # RETURN # Redoと被るので保留 # key C-Y = C-V
これで大分Macの操作感に近付いた。
後は出来れば、コピー・ペーストを Control-* の組み合わせの替りに Alt-* で実行できるようにしたい。また、Firefoxで、マウスを使用して新規タブでウインドウを開くときは変わらず Control-クリック なので、できればこちらも Alt-クリックにしたい。
今日これで寝る。また進捗があれば追記する。
追記
結局いろいろ障害があって、FirefoxのaccelキーにAltを使うのは諦めたorz
FirefoxではC-hのみを使って、TeraPadなどではEmacs風キーバインドにしておく。
.mayu
# HHK Pro は104キーボード include "104.mayu" keyseq $WindowClose = A-F4 keymap Global # windowsキーを一回押したときはWindowsキーに、長押しではshiftキーとして使用する mod shift += !!Space # SandS key C-H = BackSpace keymap KeymapDefault = &Default # windowsキーを一回押したときはWindowsキーに、長押しではshiftキーとして使用する mod shift += !!Space # SandS # LeftWindowsキーをaltに割り当てる # refer to http://mayu.sourceforge.net/mayu/doc/README-ja.html (iii. モディファイヤキー割り当ての変更) # mod alt = LWin # key *LWin = *LAlt # LeftAltをLeftlWindowsキーに割り当てる # mod windows = LAlt # key *LAlt = *LWin include "emacsedit.mayu" keymap2 EmacsGlobalC-X : EmacsC-X # key C-S = C-S # 上書き保存(S) # key C-W = LAlt F A # 名前を付けて保存(A)... # key C-F = C-O # 開く(O)... # key K = C-N # 新規作成(N) # key C-C = $WindowClose # 終了(X) window EmacsGlobal /(iexplore|TeraPad)\.exe/ : EmacsEdit # key C-X = &Prefix(EmacsGlobalC-X) key C-X = &Prefix(KeymapDefault) # mayu に左右されないキー入力(Windowsのショートカットを使いたいとき用)
.emacsedit.mayu
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 窓使いの憂鬱 - emacsedit.mayu # Copyright (C) 1999-2005, TAGA Nayuta <nayuta@users.sourceforge.net> # #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Emacs 風移動コマンド # keymap EmacsMove : Global key C-Space = &Undefined # Mark key C-A = Home # 行頭 key C-B = Left # ← key C-E = End # 行末 key C-F = Right # → key C-G = Escape # CANCEL key C-L = &WindowRedraw &Recenter # 再描画 key C-N = Down # ↓ key C-P = Up # ↑ # key C-S = C-F # 検索 key S-C-A = S-Home # 行頭(選択) key S-C-B = S-Left # ←(選択) key S-C-E = S-End # 行末(選択) key S-C-F = S-Right # →(選択) key S-C-N = S-Down # ↓(選択) key S-C-P = S-Up # ↑(選択) key S-C-V = S-Next # 次頁(選択) key S-M-V = S-Prior # 前頁(選択) #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Emacs 風編集コマンド # keyseq $EmacsEdit/kill-word = S-C-Right C-X keyseq $EmacsEdit/backward-kill-word = S-C-Left C-X keyseq $EmacsEdit/transpose-chars = S-Right C-X Left C-V Right keyseq $EmacsEdit/upcase-word = S-C-Right C-C *&Sync \ &ClipboardUpcaseWord C-V keyseq $EmacsEdit/downcase-word = S-C-Right C-C *&Sync \ &ClipboardDowncaseWord C-V keyseq $EmacsEdit/kill-line = &EmacsEditKillLineFunc S-End C-X \ &Sync &EmacsEditKillLinePred((Delete), (Return Left)) keyseq $EmacsMark/cancel = Left Right keymap EmacsEdit : EmacsMove keymap2 EmacsMark : EmacsEdit = $EmacsMark/cancel &KeymapWindow keymap2 EmacsMarkEscape : EmacsMark = &KeymapParent keymap2 EmacsC-X : EmacsEdit event prefixed = &HelpMessage("EmacsEdit C-x-", "C-x u\tundo") event before-key-down = &HelpMessage key *U = C-Z # UNDO keymap2 EmacsC-U0_9C-U : Global \ = &Repeat((&KeymapWindow), 100) &HelpMessage &Variable(0, 0) key C-G = &HelpMessage &Variable(0, 0) &Ignore keymap2 EmacsC-U0_9 : EmacsC-U0_9C-U event prefixed = &HelpVariable("繰り返し") key _0 Num0 = &Variable(10, 0) &Prefix(EmacsC-U0_9) key _1 Num1 = &Variable(10, 1) &Prefix(EmacsC-U0_9) key _2 Num2 = &Variable(10, 2) &Prefix(EmacsC-U0_9) key _3 Num3 = &Variable(10, 3) &Prefix(EmacsC-U0_9) key _4 Num4 = &Variable(10, 4) &Prefix(EmacsC-U0_9) key _5 Num5 = &Variable(10, 5) &Prefix(EmacsC-U0_9) key _6 Num6 = &Variable(10, 6) &Prefix(EmacsC-U0_9) key _7 Num7 = &Variable(10, 7) &Prefix(EmacsC-U0_9) key _8 Num8 = &Variable(10, 8) &Prefix(EmacsC-U0_9) key _9 Num9 = &Variable(10, 9) &Prefix(EmacsC-U0_9) key C-U = &Prefix(EmacsC-U0_9C-U) keymap2 EmacsC-U : EmacsC-U0_9C-U event prefixed = &HelpVariable("繰り返し") key _0 Num0 = &Variable(0, 0) &Prefix(EmacsC-U0_9) key _1 Num1 = &Variable(0, 1) &Prefix(EmacsC-U0_9) key _2 Num2 = &Variable(0, 2) &Prefix(EmacsC-U0_9) key _3 Num3 = &Variable(0, 3) &Prefix(EmacsC-U0_9) key _4 Num4 = &Variable(0, 4) &Prefix(EmacsC-U0_9) key _5 Num5 = &Variable(0, 5) &Prefix(EmacsC-U0_9) key _6 Num6 = &Variable(0, 6) &Prefix(EmacsC-U0_9) key _7 Num7 = &Variable(0, 7) &Prefix(EmacsC-U0_9) key _8 Num8 = &Variable(0, 8) &Prefix(EmacsC-U0_9) key _9 Num9 = &Variable(0, 9) &Prefix(EmacsC-U0_9) key C-U = &Variable(4, 0) &Prefix(EmacsC-U) keymap EmacsEdit key C-Space = &Prefix(EmacsMark) # Mark key C-C = C-C key C-D = Delete # 削除 key C-H = BackSpace # BS key C-J = Return # RETURN key C-K = $EmacsEdit/kill-line # 行末まで削除 key C-U = &Variable(0, 4) &Prefix(EmacsC-U) if ( !ZXCV ) key C-X = &Prefix(EmacsC-X) # key C-Y = C-V # PASTE key C-Slash = C-Z # UNDO keymap2 EmacsMark key Home = S-C-Home &Prefix(EmacsMark) # 文頭 key End = S-C-End &Prefix(EmacsMark) # 文末 key C-A = S-Home &Prefix(EmacsMark) # 行頭 key C-B = S-Left &Prefix(EmacsMark) # ← key C-E = S-End &Prefix(EmacsMark) # 行末 key C-F = S-Right &Prefix(EmacsMark) # → key C-G = $EmacsMark/cancel &Undefined # キャンセル key C-N = S-Down &Prefix(EmacsMark) # ↓ key C-P = S-Up &Prefix(EmacsMark) # ↑ if ( !ZXCV ) key C-V = S-Next &Prefix(EmacsMark) # 次頁 key Left = S-Left &Prefix(EmacsMark) # ← key Up = S-Up &Prefix(EmacsMark) # ↑ key Right = S-Right &Prefix(EmacsMark) # → key Down = S-Down &Prefix(EmacsMark) # ↓
はぁ、なんだか疲れただけだったなぁー。。
keyremap4macbookみたいなのがWindowsにもあればいいのに。。