窓使いの憂鬱
1. abstract

いかんともしがたい理由により UN*X Wizard が窓使いにジョブチェンジする時、その操作体系の違いにより憂鬱な日々を送らざるを得ないことは想像に難くありません。「窓使いの憂鬱」は、その憂鬱を少しだけ和らげることができるアイテムです。

  • Windows2000, WindowsXP で動く汎用キーバインディング変更ソフトです。
  • 2 ストロークキーを設定できます。
  • 個々のウィンドウに別々のキーバインディングを割り当てることができます。
  • Control などのモディファイヤキーを自由に作成することができます。
  • ウィンドウを移動させたり最大/最小化するキーなどを作成できます。
  • エディットコントロールを Emacs 風にすることができます。
  • U*IX 的な素敵なカスタマイズ機能を提供しています。

しかし、次のような危険性があります。

  • 標準でない キーボードドライバを利用していると Windows2000/XP が青画面になって終了してしまうことがあります。そのような場合は、標準でないドライバをアンインストールするか、「窓使いの憂鬱」の利用をあきらめるしかありません。
  • 標準でないドライバとは、ロジテックマウスに付属のドライバや AltIME のドライバなどです。
  • 他人が使用する可能性のある PC へのインストールは危険です。(security の章を参照)
2. install
  1. 窓使いの憂鬱以外のキーボードカスタマイズソフトを利用している場合はアンインストールします。
    • たとえば、AltIMERemapKey「猫まねき」などです。
    • 特に AltIME を使用していた場合は、FAQ の最初の項目をよく読んでください。
    • PGPi を利用しているとうまく動かないようです。
  2. 以前のバージョンの「窓使いの憂鬱」を利用している場合は、終了させます。
    • 終了させるだけでよく、アンインストールする必要はありません。
  3. ダウンロードした実行ファイルを Administrator 権限で実行してください。すると「窓使いの憂鬱」がインストールされます。
  4. インストールが終わったらコンピュータを再起動します。
  5. お好みにより、スタートアップにショートカットを作るのもいいでしょう。
  6. mayu.exe を実行することで開始します。
復旧用ドライバについて

Windows2000/XP の場合「窓使いの憂鬱」ドライバは mayu.exe の実行の有無に関わらずロードされます。このため、たとえ「窓使いの憂鬱」を自動起動にしていなくても、ドライバの不具合によって「窓使いの憂鬱」のアンインストールも含めた操作が不能になる場合があります。その場合でも下記の手順によって Windows の再インストールを回避することができる場合があります。

  1. 電源ボタンの長押し等によって一旦、強制的に電源を落したあと回復コンソールを起動します。尚、回復コンソールでの起動ができることを「窓使いの憂鬱」のインストール前に確認しておくことをお勧めします。(参考: Windows XP 回復コンソールについて)
  2. %windir%\system32\drivers 内の mayudrsc.sysmayud.sys の名前で上書きコピーします。(即ち mayud.sysmayudrsc.sysで置き換える。)
  3. 再起動します。
  4. コントロールパネルから「窓使いの憂鬱」をアンインストールします。
3. uninstall

コントロールパネルから「窓使いの憂鬱」をアンインストールしてください。アンインストール後に再びインストールする場合は、再起動後にインストールして下さい。また、アンインストール後に mayu.dll が残る場合があるので、その場合は再起動後に手作業で消してください。

4. menu

「窓使いの憂鬱」を実行すると、タスクトレイに「窓使いの憂鬱」のアイコンが表示されます。この「窓使いの憂鬱」のアイコンを右クリックするとメニューが出てきます。

再読み込み(R)

設定ファイルを再読み込みします。&LoadSetting と同じです。

選択(C) ►

サブメニューから設定ファイルの切り替えを行います。「窓使いの憂鬱」がデフォルトで用意しているサンプル設定は 8 つあります。以下の条件の組み合わせとなります。

  1. キーボードは日本語 109 キーボードか、英語104 キーボードか。
  2. キートップの表示の通りに使うのか、109 (または 104) キーボードを使っているが、104 (または 109) キーボードと同じ配置で使うのか。
  3. Emacs (UNIX で標準的なエディタの一つ) に似せたバインディングを使うかどうか。

このうち、a はインストール時に決定されるので、サブメニューに表示されるものは b, c の組み合わせ 4 種類になります。

デフォルト設定以外に独自の設定が必要な場合は、ホームディレクトリ.mayu ファイルを作りそのファイルに設定を記述します。そしてサブメニューで (ホームディレクトリから) を選びます。詳しくはチュートリアルカスタマイズを参照してください。

設定(S)...

選択(C) ►の選択肢となる設定ファイルを作成します。

右側の矢印ボタンでメニューに表示される順序を変更することができます。

「追加(A)」又は「編集(E)」ボタンを押すか、行をダブルクリックすると編集ダイアログボックスが表示されます。

「名前(N)」には、メニューに表示される名前を記述します。「ファイル名(F)」を空欄にするとホームディレクトリから .mayu を読み込みます。「シンボル(S)」には、条件分岐で使用されるシンボルを記述します。シンボルの頭に -D をつけ、複数のシンボルは ; で区切ります。

一時停止(T)

「窓使いの憂鬱」の機能を一時的に停止します。キーボードからの入力は、「窓使いの憂鬱」が存在しない時と同じ動作をします。このとき、タスクトレイのアイコンは になります。

調査(I)...

調査ウインドウとログウインドウを表示します。

それぞれの場所でキーを押すことにより、キーのスキャンコードや仮想キーコードを調べることができます。

また、ターゲット を調べたいウィンドウまでドラッグするとウィンドウクラスとウィンドウタイトルがログに出力されます。ここで調査したウィンドウクラス名とウィンドウタイトルは、設定ファイルで window に記述することができます。(ここで調査する代わりに、FUNCTION &WindowIdentify を利用しても調べることができます)

ログ(L)...

ログウインドウを表示します。

調査(I)...の結果やエラーなどがここに表示されます。(「□詳細(D)」をチェックすると、「窓使いの憂鬱」の内部の変換処理が詳細に表示されますが非常に難解です)

バージョン(V)...

バージョン情報などを表示します。バグレポートをする時にこの内容をコピーすると便利です。

ヘルプ(H)...

このマニュアルを表示します。

5. tutorial

この章では、「窓使いの憂鬱」を初めて使うユーザーが、実際に設定を繰り返しながら、簡単なカスタマイズであれば問題なくできるレベルに到達することを目指します。まずはこの文章に沿って、実際にサンプルの設定を試してみてください。詳細が知りたい場合には、各章のリンク先で詳細を読むことができますので、疑問点があれば 2 周目以降でリンク先を見ていけばよいでしょう。

さて、インストールは済んでいますよね?デフォルト設定では飽き足らないからこれを読んでいるんですよね?では、「窓使いの憂鬱」の真価を発揮するための、長い道のりの第一歩を踏み出しましょう。

i. 自分用の設定ファイルを作る

まず、タスクトレイメニューの選択(C) ►(ホームディレクトリから)で使われる自分用の設定ファイル、.mayu ファイルを作ります。(インストールしたディレクトリに存在する dot.mayu を編集してはいけません)

まず、環境変数 HOME で、ホームディレクトリの位置を指定します。ホームディレクトリは、例えばあなたの名前が mayu であれば、「c:\home\mayu」のようなディレクトリを作るのが UNIX 風でお薦めです。

Windows2000/XP の場合

デスクトップの「マイコンピュータ」の右クリックメニューの「プロパティ」の「詳細」の「環境変数」で、ユーザー環境変数 HOME を作成し、c:\home\mayu に設定します。

そして c:\home\mayu というディレクトリを作成しておきます。

このディレクトリに、.mayu というファイルを作ります。一部のエディタではドットから始まるファイル名は作れないかもしれませんが、そのようなエディタを使っている場合には、この際乗り換えましょう。有名どころのテキストエディタでは大抵作れると思いますが、特に Emacs が忘れられない人には xyzzy や Meadow などがお薦めです。

新たに .mayu を設定したり、ディレクトリを作るのが嫌な場合は、マイドキュメントの直下に作っても OK です。

参照: ホームディレクトリ

ii. 作った設定ファイルに最低限の設定を書く

まず、いくつかの必要なファイルの内容を取り込む必要があります。

109 日本語キーボードの場合

.mayu ファイルの先頭に以下のように記述します。

include "109.mayu" # 109 キーボード設定

好みに応じて、以下の各行を書くか書かないかを決めてください。(タスクトレイメニュー選択(C) ►のデフォルト設定に対応しています)

include "104on109.mayu" # 109 キーボードを 104 キーボード風に
include "default.mayu" # Emacs ライクなさまざまな設定

104 英語キーボードの場合

.mayu ファイルの先頭に以下のように記述します。

include "104.mayu" # 104 キーボード設定

好みに応じて、以下の各行を書くか書かないかを決めてください。 (タスクトレイメニュー選択(C) ►のデフォルト設定に対応しています)

include "109on104.mayu" # 104 キーボードを 109 キーボード風に
include "default.mayu" # Emacs ライクなさまざまな設定

ここまで書き込んだら、タスクトレイメニューで選択(C) ►から(ホームディレクトリから)を選んでください。ログウインドウにエラーメッセージが出ないようであれば、ここまではうまくいっています。これでカスタマイズの準備ができました。この先に自分好みの設定を書き加えていくことになります。そして書き加えたら再読み込み(R)します。

ログウインドウに「error: failed to load.」と出ていた場合、 設定ファイルの読み込みに失敗しています。設定ファイルのパスと、行数、エラーメッセージが表示されているので、それを参考に修正してください。

参照: contrib/mayu-settings.txt

iii. 普通のキーを入れ替えてみる

以下、説明の便宜上 109 キーボードを使っているものとして話をすすめます

まず、Esc キーと 半角/全角 キーを入れ替えてみます。これは、.mayu ファイルの末尾に以下のように追加します。

keymap Global
key Esc = 半角/全角
key 半角/全角 = Esc

再読み込み(R)をして確認してみてください。

1 行目の keymap Global は、次の keymap 指定までの記述は全てのウインドウで有効な設定とする、という指示です。

2, 3 行目のように key キー名 = キー名 と書くことで、あるキーを押したときの挙動を変更できます。上の例であれば、Esc が押されたときは 半角/全角 が押されたように、半角/全角 が押されたときは Esc が押されたような動作になります。

キー名は、タスクトレイメニュー調査(I)...の「スキャンコードの調査」で調べたいキーを押すことでわかります。Esc キーと、半角/全角 キーを順に押したときのログウインドウには、例えば以下のように表示されているはずです。

0x01 D-Esc
0x01 U-Esc
0x29 D-半角/全角
0x29 U-半角/全角

キー名の前の D- というのはキーが押された、U-半角/全角U- というのはキーが離された、という状態をそれぞれ表します。

参照: キー割り当ての変更

iv. 特定のウインドウのみでキー割り当てを変更してみる

つぎに、Internet Explorer でのみ PageUp/PageDown キーで、Home/End の動きをさせてみます。.mayu の末尾に以下のように追加します。

window InternetExplorer /iexplore\.exe/ : Global
key PageUp = Home
key PageDown = End

1 行目の、window キーマップ名 /ウィンドウクラス名/ : 親キーマップ名 は、以降の指定は特定のウインドウについてのみ有効とする、という指示です。キーマップ名はわかりやすい適当な名前をつけます。親キーマップ名は Emacs っぽくするなら EmacsMoveEmacsEdit に、そうでなければ Global にすればよいでしょう。

ウインドウクラス名を調査するには、タスクトレイメニュー調査(I)...の「ウィンドウの調査」で、調べたいウィンドウやコントロールに ターゲット をドラッグします。

Internet Explorer へドラッグすると (途中にさわった全てのウインドウやコントロールの情報が出るので、他にもいろいろ出るはずですが)、次のような表示が出るはずです。

CLASS: C:\Program Files\Internet Explorer\iexplore.exe:IEFrame
TITLE: C:\Program Files\Internet Explorer\iexplore.exe:窓使いの憂鬱 - README - Microsoft Internet Explorer
Toplevel Window Position/Size: (-4, -4) / (1032x748)
Desktop Window Position/Size: (0, 0) / (1024x740)

この CLASS の部分から特徴的な文字列を抽出し、正規表現と呼ばれる記法で /文字列/ のように書けば OK です。正規表現がよくわからない場合には、\\\.\. と書くことに注意すればとりあえずあまり問題はないでしょう。

参照: ウィンドウクラス/タイトル名正規表現

v. キーがモディファイヤキーと共に押された場合に置き換えてみる

つぎに、Internet Explorer での動作をさらに変更して、Ctrl + PageUp/PageDown で、Home/End を押したように動かしてみます。前章で追加した内容を変更して以下のように書き換えます。(C- がキー名の前に追加されました)

window InternetExplorer /iexplore\.exe/ : Global
key C-PageUp = Home
key C-PageDown = End

2, 3 行目のキーの指定については、やはりスキャンコードの調査で調べます。Ctrl + PageDown を入力すると、次のように表示されます。

   0x1d D-LeftControl
E0-0x51 D-C-PageDown
E0-0x51 U-C-PageDown
   0x1d U-LeftControl

1, 4 行目は Ctrl キーの押し/離しです。2, 3 行目から、C-PageDown が書くべきキー名ということになります。ここの C- というのは、Ctrl が押されている、というキーの状態を表す記号です。Ctrl キー以外にも、WindowsAltShift の状態、また CapsLockNumLock などのキーがロック状態にあるかどうかもやはり同様です。これらの特別なキーを、「窓使いの憂鬱」では、モディファイヤと呼んでいます。 キー割り当て変更は、このようにモディファイヤを含めて指定することができます。

逆にいうと、前章までのキー割り当て変更では モディファイヤを何も指定していませんから、 CtrlAltなどが押されていると キーイベントの置き換えを行いません。

参照: モディファイヤの指定

vi. モディファイヤキーの状態と無関係に置き換えてみる

前章の設定では、Ctrl + Alt + PageUp/PageDown と入力した場合、変換されずにそのまま入力されてしまいます。既に説明した通り、これは正しい動作です。(不正確な言い方ですが、モディファイヤが押されていると別のキー名になるので、前章の指定では置き換えが起きない、と理解してください)

Alt が押されているかどうかにかかわらず Ctrl + PageUp/PageDownHome/End のように動作させるには、前章の設定を変更して以下のように修正します。

window InternetExplorer /iexplore\.exe/ : Global
key *A-C-PageUp = *A-Home
key *A-C-PageDown = *A-End

これは、Alt が押されているかどうかと無関係に Ctrl + PageUp/PageDownHome/End と置き換え、その際に Alt の状態は保存したままにする設定です。つまり、Alt が押されていなければ前章と同様の置き換えを行い、Alt が押されていれば Ctrl + Alt + PageUpAlt + Home のように置き換えます。

これを押し進めると、あらゆるモディファイヤの状態に拘わらずに置き換えをして、かつあらゆるモディファイヤの状態を保存して置き換える、という設定が可能です。具体的には、PageUp/PageDownHome/End と全く同様に使いたいという場合に、以下のような設定ができます。

window InternetExplorer /iexplore\.exe/ : Global
key *PageUp = *Home
key *PageDown = *End

このようにすれば、あらゆるモディファイヤの状態に関係なく、Internet Explorer での PageUp/PageDownHome/End のように働きます。

参照: モディファイヤキーの無視入力されたキーと同じモディファイヤの指定

vii. モディファイヤになっているキーを置き換える

キー割り当ての変更の際に、モディファイヤキーを置き換えたり、モディファイヤキーに置き換える場合には、特別な設定が必要になります。

たとえば、無変換 キーを左 Alt キーとして使用するには、

keymap Global
mod alt += 無変換
key *無変換 = *LeftAlt

のようになります。3 行目は今まで通りの指定ですが、2 行目のように、mod モディファイヤ名 += キー名 という指定により、新たにモディファイヤとして無変換 キーを登録する必要があります。

逆に、モディファイヤとなっているキーをモディファイヤではないキーに割り当てたい場合は、mod モディファイヤ名 -= キー名 により、モディファイヤ設定を削除する必要があります。

たとえば、右 Windows キーで IME のオンオフをするには、

mod windows -= RightWindows
key RightWindows = $ToggleIME

のようにする必要があります。ちなみに、$ToggleIME というのは、109.mayu または 104.mayu で定義されているキーシーケンスで、109 キーボードならば A-半角/全角 と書くのと同じ意味になります。

参照: モディファイヤキー割り当ての変更

viii. より高度な設定

ここまで読めばもうチュートリアルは卒業です。ここまでの内容が完璧なら、上級者を名乗れるほどのレベルまで来ています。一回で理解するのは難しいかもしれませんが、習うより慣れろで、調査ウインドウであれこれ試してみてください。自分好みの設定をあれこれ書き加えていくうちに、上にある各リンクの内容に目を通す必要が出てくるはずですが、そうしているうちにマニュアルの見方にも慣れてくるはずです。

さらなる機能としては、2 ストロークキーの設定OneShot モディファイヤ、Window操作をはじめとした豊富な関数群代用定義などがあります。これらは必要な場合のみ目を通せば十分です。

6. frequently asked questions
Q1. 「窓使いの憂鬱」を使っていると勝手にキーリピートしてしまいます。
Q2. 「窓使いの憂鬱」を終了後に Windows が異常終了します。
Q3. 「窓使いの憂鬱」を使っているといろいろ変になります。

あなたは以前 AltIME を使用していたはずです。これらの症状は AltIME が正しくアンインストールされていない時に出ます。

AltIME 2.27 の README によれば以下のようにするそうですので、そのようにしてください。

  1. AltIME の設定で常駐させているなら一旦常駐のオプションをはずしてください。

    スタートアップで起動しているときはスタートアップから削除してください。

    サウンドを使用している場合は設定を外し、設定を完全に削除してください。

  2. タスクトレイ上のアイコンを左クリックして AltIME のオプションダイアログを表示させ、アンインストールボタンを押してください。

  3. いったん再起動後、ALTIME*.* のファイルを削除してください。

【注意】Windows2000ではアンインストールボタンを使用せずに \winnt\system32\drivers\altime.sys を削除すると Windows が起動できなくなることがあります。

Q4. Explorer で、表示(V) を ALT + v で選べません。(2ch の某スレより)
Q5. PowerPoint で、C-x, C-c, C-v などでコピー・ペーストできません。

あなたはおそらく default.mayu を使っています。これを利用するとかなり色々な操作を Emacs 風にされてしまいますので、あなたの Windows 汚染度が高かったり、Emacs 汚染度が低かったりすると戸惑うことでしょう。contrib/mayu-settings.txt を参考に、自分好みにカスタマイズしてください。

ちなみに、Windows なんだし C-z, C-x, C-c, C-v だけは使わせろ、という人のために、ZXCV というシンボルが定義されています。-DZXCV するなり define ZXCV すれば、それだけは Windows っぽく動きます。

Q6. IMEオンのときの「窓使いの憂鬱」のキー入れ替えの挙動が妙です。1つめのキー入力以外うまく入れ替えられません。

IMEオンの状態では IL-(IMEオン) ですが、1文字入力した時点でさらに IC- (IME変換中)となります。一方で標準のデフォルトモディファイヤは *IL-~IC- です。思い通りにキー入れ替えされていないわけではなく、デフォルトモディファイヤの設定に従って入れ替えを行っていないだけではないでしょうか。

Q7. デフォルトモディファイヤが上記のような設定になっているのはなぜですか。不便です。

作者はIME2000を使っており、IME変換中のキーバインディングについては「プロパティ」-「全般」-「設定」でカスタマイズすることを想定しています。むやみにIME変換中のキーバインディングが変更されると、このIMEのカスタマイズがやりにくいのではないかと思います。

もし不便すぎて我慢できない、という場合には、 key *IC- = のようにデフォルトモディファイヤを変更してもいいかもしれません。逆に不便なこともあるかと思いますので、お薦めしませんけど。

Q8.ノートパソコンのFnキーに何か機能を割り当てることはできますか?

ほとんどのキーボードでは不可能です。

Fn キーを単体で押しても Windows にキーイベントは来ないはずです (スキャンコードの調査で調べられます)。当然ながら、このようなキーに機能を割り当てることはできません。

Q9. Caps/英数Ctrl にしています。Ctrl + Shift + x に機能を割り振っており、正常に動いているのですが、Caps/英数 + Shift + x を打っても、何も起きません。なぜですか。

「窓使いの憂鬱」の問題ではなく、あなたの使っているキーボードの問題だと思われます。

キーボードによっては、特定の3キーの同時押しを認識できないものがあります。スキャンコードの調査で、どんなキーイベントが発生しているかをチェックしてみてください。モディファイヤ2個を押した状態で、3個目のキーを押したときにキーイベントが発生していないようであれば、そのキーボードでは使えないキーの組み合わせということです。

Q10. スキャンコードの調査で、例えば Shift + を押したときなど、たまに出るはずのない E0-0x2a というキーイベントが出るようですが、これは何ですか?

不明です。このスキャンコードに関する情報をお待ちしております。

Q11. 右 Windows キーを押すと IME のオンオフができるようにしたい。

mod windows -= RightWindows # ... (1)
key RightWindows = $ToggleIME

Windows キーはモディファイヤキーなので特別扱いされます。したがって普通のキーのように動作するようにするには、(1) のようにしてモディファイヤキーとして動作しないようにします。これは AltShiftControl でも同様です。

Q12. ウインドウのクラス名はどうやって調べるんですか?

タスクトレイの「窓使いの憂鬱」のアイコンでマウスの右ボタンを押して調査(I)...を選びます。

Q13. アクティブな時にしか見えない窓などの場合、上記の方法では調査できないですが?

&WindowIdentify を使ってください。default.mayu では Ctrl +Shift + D に割り振ってあります。

Q14. インストール時には 109 キーボードだったのですが、今度 104 キーボードを購入しました。しかし、タスクトレイメニューの選択(C) ►には 109 しか出てきません。どうすればいいですか。

インストール時の選択により、以下の表の上 4 つまたは下 4 つが選ばれます。「設定」ダイアログボックスで適切に設定してください。(%MAYU_DIR% は mayu をインストールしたディレクトリです)

名前日本語 109 キーボード (Emacs 風)
設定ファイル名%MAYU_DIR%\dot.mayu
シンボル-DUSE109;-DUSEdefault
名前日本語 109 キーボード (104 風, Emacs 風)
設定ファイル名%MAYU_DIR%\dot.mayu
シンボル-DUSE109;-DUSEdefault;-DUSE104on109
名前日本語 109 キーボード
設定ファイル名%MAYU_DIR%\dot.mayu
シンボル-DUSE109
名前日本語 109 キーボード (104 風)
設定ファイル名%MAYU_DIR%\dot.mayu
シンボル-DUSE109;-DUSE104on109
名前英語 104 キーボード (Emacs 風)
設定ファイル名%MAYU_DIR%\dot.mayu
シンボル-DUSE104;-DUSEdefault
名前英語 104 キーボード (109 風, Emacs 風)
設定ファイル名%MAYU_DIR%\dot.mayu
シンボル-DUSE104;-DUSEdefault;-DUSE109on104
名前英語 104 キーボード
設定ファイル名%MAYU_DIR%\dot.mayu
シンボル-DUSE104
名前英語 104 キーボード (109 風)
設定ファイル名%MAYU_DIR%\dot.mayu
シンボル-DUSE104;-DUSE109on104
Q15. 「窓使いの憂鬱」ではマウスイベントを置き換えられないのですか。

「窓使いの憂鬱」の前身にあたる cmkey ではマウスイベントを置き換えることができましたが、「窓使いの憂鬱」は cmkey とは異なるレイヤーで実現しているの で、置き換えることはできません。少なくとも作者は必要性を感じていないのですが、マウスドライバを書けば実現できますので、スキルも必要性もある方がいれば、作ってソースを送ってください。「窓使いの憂鬱」に採用させていただきます。

7. customize

カスタマイズ

8. security

他人が使用する可能性のある PC へ「窓使いの憂鬱」をインストールしてはいけません。

「窓使いの憂鬱」はドライバを使用してキーボードに入力されたキーを認識しますが、そのドライバへは全てのユーザーがアクセスできます。ですから、他人のキーボード入力を読み取ることが可能です。

例えば、ログイン画面での他人のパスワードを得ることも、そのようなアプリケーションを作成することで可能になります。

9. bugs
10. related work

以下のソフトと同時には使わないようにしてください。そもそも使えないものもありますし、使えたとしてもきっとわけのわからないことになるでしょう。

AUtoHotkey
スクリプトを書くことでキーボードなどにさまざまな動作を割り当てることができます。
猫まねき
「窓使いの憂鬱」のほうがカスタマイズの自由度は高いのですが、猫まねきには GUI がついていて初心者にもやさしいかもしれません。「窓使いの憂鬱」にない機能も存在します。フリーウェア。
RemapKey
キーボードのキーを別のキーへ入れ替えることができるソフトです。窓使いの憂鬱ではログイン画面でのキーを変更することができませんが RemapKey ではできます。
MetaX
コンセプト的に「窓使いの憂鬱」や cmkey と非常によく似ていますが、より Emacs 的な設定ファイルを書き、ミニバッファを利用した補完などが可能です。
Xkeymacs
Windows 上の全てのアプリケーションにおいて Emacs like な操作性を実現するためのキーボードユーティリィティです。Emacs like な操作性にしたいが、「窓使いの憂鬱」の設定するのは面倒という人にお勧めです。
AltIME / CraftKeytrans / dvorak kr, swap2k / Easy Punch / IME Start / Key Bat / Keylay / Keymacs / Keymacs+ / Max Min Keybord / ねこぽい / 秀CAPS / 姫踊子草
キーボードによる操作を改善しようとさまざまなソフトが開発されています。
11. references

気になる文章へのリンク。

繭使いの憂鬱
チュートリアルの分かりにくい個所などを分かり易く解説してあります。
Giraffe+ software index
FUNCTION &PlugIn に利用できるプラグインが配布されています。そもそもプラグインの機能は Giraffe+ さんにより実装されました。
いろいろな仮名入力方法
いろいろな仮名入力方法の「窓使いの憂鬱」用設定ファイルがあります。
Commutative Field in GeoCities
tron配列設定ファイルなどがあります。
雑記帖
mayu-mode.l が配布されています。
「窓使いの憂鬱」を使って T-Code 入力してみる
T-Code 用設定ファイルなどが配布されています。
mayu-plugins -- 窓使いの憂鬱用プラグイン
window-select, migemo-isearch, ie-migemo-search といったプラグインが配布されています。
Vector: 新着ソフトレビュー
新着ソフトレビュー
12. copyright
窓使いの憂鬱

Copyright (C) 1999-2005, TAGA Nayuta <nayuta@users.sourceforge.net>
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Boost.Regex

Copyright (c) 1998-2003 Dr John Maddock

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:

The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

13. support
「窓使いの憂鬱」ホームページ

http://mayu.sourceforge.net

「窓使いの憂鬱」メーリングリスト

Mayu-support Info Page の Subscribing to Mayu-support のフォームに、自分のメールアドレスと、Mayu-support メーリングリストの為のパスワードを入れて Subscribe してください。

「窓使いの憂鬱」2ch スレ

2ch にスレがたってしまったようなので適当に活用しましょう。作者も時々見ています。

14. acknowledgements

Windows9x/XP 用のドライバを作成してくださった小林義明さん、ありがとうございます。

最も身近なユーザーであり、数多くの助言をしてくれた塙与志夫さんに感謝します。何より彼の粘り強い要求は怠惰な作者に新規リリースへの活力を与えてくれました。

河部修和さん、KANAI Makoto さん、HAJANO Naòqui さんには設定ファイルを提供していただきました。お礼を申し上げます。

Hosaka Yuji さんには、マルチモニタ対応パッチをいただきました。ありがとうございます。

「窓使いの憂鬱」はたくさんの人の貢献の上に成り立っています。ここに名前を挙げていない方にも心から感謝します。

15. history
200?/??/?? 3.31
  • 「窓使いの憂鬱」以外のアプリケーションから「窓使いの憂鬱」の動作を on/off できるような仕組みを用意しました。使用する場合は、ソースの mayuipc.h を見てください。
  • WindowsXP の「ユーザーの切り替え」機能に今度こそ対応…したつもり。
  • security という章を追加。
2005/04/18 3.30
モディファイヤ
FUNCTION
  • FUNCTION &LoadSetting などで、設定ファイルをロードした時に、ログにロードしたことが表示されるようにした。
  • FUNCTION &Prefix の説明を正しく修正。
  • FUNCTION &SetImeStatus を追加。(Thanks to 小林)
  • FUNCTION &SetImeString を追加。(Thanks to 小林)
  • FUNCTION &ShellExecute が失敗した時のエラーメッセージが表示されないことがあるバグを修正。
  • FUNCTION &VK で入力できるマウスボタンに XBUTTON1 と XBUTTON2 を追加。他、さまざまな仮想キーを追加。
  • FUNCTION &WindowMonitor を追加。(Thanks to Hosaka Yuji)
  • FUNCTION &WindowMonitorTo を追加。(Thanks to Hosaka Yuji)
  • FUNCTION引数置換機能を追加。(Thanks to 小林)
  • 既存 FUNCTION のマルチモニタ対応。(Thanks to Hosaka Yuji)
マニュアル
ビルド
  • Windows9x/Me/NT4.0 非対応になりました。
  • Borland C++ 5.5.1 でビルド不可能になりました。
  • Visual C++ Toolkit 2003 でビルドするための様々な注意事項を記載。(Thanks to 小林)
ドライバ
  • 2000/XP 用ドライバの SMP/HT 対応。(Thanks to 小林)
  • 2000/XP 用ドライバの PS/2 専用版と USB 対応版のバイナリ統合。(Thanks to 小林)
  • 復旧用ドライバを追加。(Thanks to 小林)
その他
  • WindowsXP の「ユーザーの切り替え」機能に対応。
  • ごくたまに、タスクトレイのアイコンが表示されない問題を修正したつもり。また、表示されていないときに、もう一度起動すればアイコンがタスクレイに表示されるようにした。(「既に窓使いの憂鬱は動作中です」というダイアログボックスが出ると同時にアイコンが表示されます)
  • ログを消去した時刻をログ表示するようにした。
  • 109.mayu に MultiMedia Keyboard 用の特殊キーなどを追加。
  • スナップショット版で「↑↓←→」という文字がキー名として使用できなくなっていたバグの修正。
2003/07/16 3.29
2001/10/08 3.28
  • チュートリアルタスクトレイメニューの章を追加。(Thanks to hanawa)
  • related work に Key Bat を追加。
  • メニューをアクセスしている時のウィンドウクラス名は最後に :MENU がつく。
  • => の代わりに = が使えるようにした。
  • subst の右側に M0- などのモディファイヤが指定できないバグを修正。
  • キーマップが影響する定義の説明を追加。
  • W2k で USB ドライバを簡単にインストールできるようにした。
  • その他修正。(Thanks to 小林)
2001/09/02 3.27
  • 3.26 で FUNCTION &Sync が動作しなくなっていたバグを修正。C-k もちゃんと動作します。
  • FUNCTION &KeymapPrevPrefix を追加。
  • FAQ に「右 Windows キーを押すと IME のオンオフができるようにしたい。」を追加。
2001/08/26 3.26
  • One Shot モディファイヤの例が間違っていたので修正。(Thanks to 小林)
  • Windows 側では離されていることになっているキーについて、「窓使いの憂鬱」がキーを離すスキャンコードを Windows 側へ送ることがないようにした。(Thanks to 小林)
  • related work に Word Emacs を追加。
  • mayu-mode.elM-; (indent-for-comment) が使用できるようになった (Thanks to 永野圭一郎)
  • 戯れに FUNCTION &DirectSSTP を追加してみた。
2001/08/13 3.25
  • *.mayu のアイコンが間違っていたのを直した。
  • -= で複数キーを設定しても一つしか有効にならないバグの修正。
  • WindowsNT4.0 以外 (9x, Me, 2000) で、「窓使いの憂鬱」を終了させたあとに何かのキーを押さないと終了しないバグの退治。(Thanks to 小林)
  • 設定ファイルで隣り合う複数の文字列を一つの文字列として取り扱うようにした。

    key X = &HelpMessage("サンプル C-x-", \
     "C-x C-s\t上書き保存\r\n" \
     "C-x C-f\t開く\t\r\n" \
     "C-x k\t\t新規作成\r\n" \
     "C-x C-c\t終了")

  • FUNCTION &DescribeBindings を微妙に改良。
  • アンインストールができなくなっていたのを修正。(Thanks to 小林)
2001/08/05 3.24
  • default.mayu で、英数Control として使用している場合に C-Q が正しく働かない問題を修正。version 3.19 で修正したものと原因は同じ。(Thanks to hanawa)
  • Windows9x のドライバを更新。青画面でも操作できるようになりました。(Thanks to 小林)
  • One Shot モディファイヤであると宣言したキーが押されている間にキーが押された時のみ、モディファイヤとして扱われるようにした。今までは、離された時にもモディファイヤ扱いになっていた。
  • 一時停止にしたときにタスクトレイのアイコンを変化させるようにした。
  • R- を新設。(Thanks to hanawa)。mayu-mode.el で色がつくようにした。
  • Borland C++ 5.5.1ビルドできるようにした。
  • One Shot モディファイヤを離したときに有効なモディファイヤは押したときと同じになるようにした。
  • &EmacsEditKillLineFunc, &EmacsEditKillLinePred の説明を追加。
  • USB 対応ドライバは今回は収録していません。
  • BETA ではないです。
2001/07/06 3.23 (BETA)
  • 104on109.mayu で「`」が入力できなかったバグを直した。(Thanks to Oiwa)
  • One Shot (キーリピート有) を追加。
  • FUNCTION &Toggle で、強制的にオンオフできるようにした。
  • 109.mayu に VAIO タワー用の特殊キーを追加。
  • WindowsNT4.0 でインストールできなくなっていた問題を修正。(Makefile の書き方のミス)
  • Windows9x のドライバを更新。
  • 新規インストールした時に「ホームディレクトリから」が選択されていてキー入力ができなくなってしまう問題を修正。
  • support に 2ch を追加。
2001/03/24 3.22 (BETA)
  • 代用定義を追加した。おかげで 104on109.mayu などがスマートに定義できるようになった。
  • mayu-mode.el で代用定義にも色がつくようにした。
  • 間違ってデバッグビルドしたものを収録していたのをリリースビルドを収録するようにした。
  • 間違って壊れた Windows9x のドライバを収録してしまったので正しいドライバを入れた。
2001/03/23 version 3.21 (BETA)
  • Windows95 で CPU 時間を 100% 占めてしまう問題がなおった。(Thanks to 小林義明)
  • NEC PC-98x1 で動作しない問題がなおった。(Thanks to 小林義明)
  • FUNCTION &LoadSetting で、どの設定をロードするか指定できるようになった。
  • contrib/98x1.mayu を追加。(Thanks to HAJANO Naòqui)
  • ホームディレクトリ に、mayu.exe のカレントディレクトリを追加。
2001/03/10 version 3.20 (BETA)
  • Windows95 でも動作するようになった。
  • acknowledgements 更新。
  • cab32.dll ではなく iexpress を使用してパッケージを作成するようにした。
  • ソースをパッケージから分離した。
2001/03/05 version 3.19 (BETA)
  • このバージョンは内部構造を大幅に変えたので不安定である可能性が高いです。どうしてもこのバージョンが必要な人のみ使用してください。
  • Control + U 操作の改良。
  • default.mayu を使っている場合は、Global キーマップで 英数Control にしているが、Global キーマップを親キーマップとして持たない keymap2 の中では (当然ながら) 英数Control として使用できないので、ちゃんと Global キーマップを親キーマップとして持つように設定ファイルを修正。
  • default.mayu で、-DMAP-ESCAPE-TO-META とすると Alt + X などを ESCAPE] [X で代用するようにした。
  • WindowsNT/2000 版のプログラム内部では全て UNICODE で処理するようにした。
  • WindowsNT/2000 版では、設定ファイルの文字コードに、shift_jis だけでなく UTF-16LE/BE や UTF-8 を使用できるようになった。「メモ帳」で、「Unicode」や「Unicode big endien」や「UTF-8」を選んでセーブすれば、日本語だけでなくハングルなどの UNICODE で扱える文字が全て設定ファイルに書けるようになる。現在は文字コードは自動判別され、自動判別に失敗した場合の救済措置はない。自動判別に失敗するようなら自動判別できそうな文字をコメントにでも書いておくこと。
  • 正規表現ライブラリを Regex++ に変更した。
  • いろいろ変えた結果多分 bcc32 ではコンパイルできなくなった。少し修正するだけだと思うが。
  • contrib/ax.mayu を追加。(Thanks to KAWABE Nobukazu)
  • related work に MetaX を追加。
  • デフォルトモディファイヤの変更のサンプルが間違っていたので直した。(key IC-* = ではなく key *IC- = が正しい) (Thanks to Hirotaka Kasaki)
  • デフォルトキーの中で定義中のキーマップ名を参照できなかったバグを修正した。つまり、keymap Hoge = &Prefix(Hoge) などができるようになった。(Thanks to HANAWA Yoshio)
  • Windows9x 用のドライバを作成されたので、このバージョンから WindowsNT/2000 用のパッケージと Windows9x 用のパッケージが存在します。(Thanks to 小林義明)
  • 現在、Windows9x では、&HelpMessage&HelpVariable&WindowSetAlpha は使用できません。
  • default.mayu を使用している場合、シンボル ZXCV を定義しておくと、Control + Z, Control + X, Control + C, Control + V が Windows と同じ動きをするようになります。(Thanks to HANAWA Yoshio)
2000/12/17 version 3.18
  • ヘルプが開けないバグの修正。
  • mayu-mode.el が展開されていなかったのを直した。ついでに少しだけ修正。
  • IC- が時々無視されるバグが直ったはず。
  • FUNCTION &HelpMessage を追加。default.mayu を使っている場合はメモ帳で Control + X を押してみよう (ただし IE5.0 以上を使っている場合のみ)。
  • event を追加。
  • これらの追加により、プレフィックスキーが押された時にメッセージを表示することが可能になった。
  • FUNCTION &KeymapWindow を追加。
  • FUNCTION &Variable を追加。
  • FUNCTION &Repeat を追加。
  • FUNCTION &HelpVariable を追加。
  • これらの追加により Emacs の Control + U が可能になった。私にメールを送るために 1000000000000000000000000000000000000000000000000000000000000@tsg.ne.jp と入力するのもらくらくです。
  • チュートリアル・FAQ の充実は次回に延期。
2000/12/03 version 3.17
  • メーリングリストを Source Forge へ移動。
  • FUNCTION &WindowMoveTo を追加。
  • FUNCTION &WindowResizeTo を追加。
  • FUNCTION &MayuDialog を追加。
  • FUNCTION &DescribeBindings を追加。表示形式がいまいち分かりにくいのでどうしようか思案中。
  • related work に Pastel Touch を追加。
  • related work に KeyMap を追加。
  • related work に dvorak kr, swap2k を追加。
  • related work に Q's Nicolatter を追加。
  • FAQ を追加。
  • mailto: をドキュメントから削除。
  • DOC++ で表示できるようにソースのコメントを書き換えた。
  • Emacs で設定ファイルを編集する人のために mayu-mode.el を追加。ただし、色がつくだけです。
  • FUNCTION &WindowIdentify で、ウィンドウの位置と大きさも表示するようにした。
  • contrib/keitai.mayu を追加。テンキーで携帯電話式ひらがな入力をしようという画期的設定ファイル (注:Joke)。(Thanks to HANAWA Yoshio)
  • 設定ファイルが見つからなかったときはエラーを出すようになった。
  • 設定ファイルを更新。
  • 調査ダイアログを動かすとログウィンドウも動くようにした。
  • 設定ダイアログ
    • タスクトレイのメニューから沢山開けるバグを修正。
    • 「編集」を押して編集ダイアログが出ている最中にもう一度「編集」を押せるバグの修正。
    • 「編集」で、ファイル名を空にできないバグの修正。
    • サイズ変更できるようにした。
2000/05/28 version 3.16
  • インストーラがテンポラリフォルダに作った contrib を削除しないバグを直した。
  • アンインストーラが「窓使いの憂鬱」関連のレジストリを全て消すように変更。
  • バージョンダイアログの「最新バージョンのダウンロード」ボタンが利かなくなっていたバグを直した。
2000/05/23 version 3.15
2000/05/19 version 3.14
  • 正規表現ライブラリを再び BUG FIX。
  • 設定ファイルを更新。
2000/05/13 version 3.13
  • 正規表現ライブラリの BUG FIX。
2000/05/08 version 3.12
  • 正規表現ライブラリの BUG FIX。「マインスイーパ」にマッチさせることができるようになった。
2000/05/06 version 3.11
2000/05/05 version 3.10
2000/04/24 version 3.09
2000/04/15 version 3.08
2000/04/01 version 3.07
  • FUNCTION &Wait を追加。
  • FUNCTION &MouseWheel を追加。
  • FUNCTION &VK を拡張してマウスボタンを入力できるようにした。
  • マニュアルの内容を か修正。
  • 設定ファイルを更新。
  • 英語リソースをつけてみた。が、使い方不明。
  • 連絡先の修正。
  • わたしはエイプリルフールは嫌いです。
2000/03/21 version 3.06
  • いくつかの typo を修正。
  • FUNCTION &WindowHMaximize, &WindowVMaximize で、H と V を両方同じウィンドウへ適用した場合の動作を修正。
  • FUNCTION &ClipboardCopy を追加。
  • 設定ファイルを更新。
  • IL- を導入し、I-IC- に名前を変更。ただし、互換性の為 I- も引き続き使用可能です。
  • コンソールのフォーカスの追跡に時々失敗していたのが直ったかもしれない。(かもしれないばっかだ…)
2000/03/10 version 3.05
  • セットアップを修正。
  • コンソールのフォーカスの追跡に時々失敗していたのが直ったかもしれない。
  • (非公開)
2000/03/08 version 3.04
  • 設定ファイルを修正。(デフォルトで英数キーを Control に)
  • マニュアルのバグを直した。
  • マニュアルを Mozilla でもちゃんと表示できるようにした。(IE で見るときはフォントサイズ「小」にするとかっこいいが、よみにくいのでしなくていいです)
2000/03/04 version 3.03
  • FUNCTION &WindowHMaximize を追加。
  • FUNCTION &WindowIdentify を追加。
  • 設定ファイルを大幅に更新した。
  • contrib/mayu-settings.txt の追加。(Thanks to HANAWA Yoshio)
  • Windows2000 用のドライバをパワーマネジメント対応にした。
  • コンソールのフォーカスの追跡に時々失敗していたのが直ったかもしれない。
  • PlayStation2 の発売日。
1999/11/01 version 3.02
  • setup 時にキーボードの種類を聞くようにした。
  • KeyboardLayout/ほげほげ の廃止 (日本語の場合はキーボードによらず、IME によって決定されるため)。
  • 設定ファイルを再読み込みした後に、コントロールキーなどが押されっぱなしになることがあるバグを直した。
  • One Shot モディファイヤの説明が間違っていたので修正。
  • デフォルトのモディファイヤを変更できるようにした。
  • include では、まず、レジストリで指定してある設定ファイルと同じフォルダを検索するようにした。
  • インストーラを少々変更
  • FUNCTION &VK で、U-D- が逆になっていたバグを修正。
1999/10/30 version 3.01
1999/10/29 version 3.00
1999/09/08 cmkey version 2.21
1999/09/05 cmkey version 2.20
1999/05/31 cmkey version 2.19
1999/05/31 cmkey version 2.18
1999/05/30 cmkey version 2.17
1999/05/29 cmkey version 2.16
1999/05/26 cmkey version 2.15
1999/05/26 cmkey version 2.14
1999/02/10 cmkey version 2.13
1998/12/02 cmkey version 2.12
1998/10/07 cmkey version 2.11
1998/07/23 cmkey version 2.10
1998/07/20 cmkey version 2.09
1998/07/17 cmkey version 2.08
1998/07/12 cmkey version 2.07
1998/07/11 cmkey version 2.06
1998/07/11 cmkey version 2.05
1998/07/05 cmkey version 2.04
1998/06/07 cmkey version 2.03
1998/05/24 cmkey version 2.02
1998/05/19 cmkey version 2.01
1998/05/19 cmkey version 2.00
1996/07/?? WinModMap version 1.03
1996/06/30 WinModMap version 1.02
1996/06/22 WinModMap version 1.01
1996/06/21 WinModMap version 1.00