.右Ctrlキーを実行キーにする
コマンドラインパラメータで /Yr を指定するか (7)章
.INI ファイルで R-Ctl_ENTER = 1 を指定する (6)章
"OPT RCTL ON"コマンドを使用するか
GUI版(wxe,gxe)ではSetupダイアログのR-Ctrlチェックボックスをセットします。
コマンドラインパラメータでの指定があれば優先し、なければ
OPTコマンドか、.INIファイルのどちらかででR-Ctrl使用の指定があれば
R-Ctrlが実行キー、Enterキーが改行になります
GUI版のR-CtrlチェックボックスはOPTコマンドと同じです。
GUI版とコンソール版はOPTコマンドについては同期しています。
同時にini ファイルで R-Ctl_NewLine=1を指定すると右Ctrlキーは
改行に、Enterキーは実行キーのままなります。
コマンドラインパラメータでは /Yrr になります。(Linux 版では -Yrr)
iniファイルのR-Ctl_NewLineパラメータをコマンドラインで否定するには
/Nrr を指定します。
#ifdef LNX
コンソール版は右Ctrlキー単独の押し下げを検知できませんが、
次のような方法もあります。
X11 通常使用しないキーシンボルでターミナルエミュレータがEsc文字列を生成するものを選びます。
それをxemodmap コマンドで 右Ctrlキーに割り当て、Esc文字列をxeに認識させる。
そのEsc文字列を--kオプションでxeに認識させる。
xmodmapで設定できるシンボルは /usr/include/X11/keysymdef.h で見ることが出来ます。
例.1)
私のFC12環境では KP_Begin で試しました
"xmodmap -pke" コマンドでは次のように表示されます
keycode 84 = KP_Begin KP_5 KP_Begin KP_5
keycode 105 = Control_R NoSymbol Control_R
xmodmap コマンドで KP_Begin を Control_R に割り当てます
xmodmap -e "keycode 105 = KP_Begin NoSymbol Control_R"
同梱の xekbchk ユーティリティーは KP_5 は ^[[E を生成することを示します
そこで次のようなファイルを用意し
keymap.rctl
############################################################
[common]
[gnome-terminal]
KeyString:R-Ctl =^[[E #string by KP-5
############################################################
xe を "xe --kkeymap.rctl -Yr" で立ち上げる
("opt rctl on" xeコマンドで -yr オプションは不要になります)
これで Enter は 改行キー, R-ctrl は 実行キーとなります
"-yr -yrr" をしてすると Enter は実行キー, R-Ctrl は 改行キーとなります
(注)次の設定だけでで右Ctrlは実行キーになりますがEnterキーは改行キーにはなりません
この設定で -Yr とすると Enter/Rctrlの両方が改行になります
keycode 105 = Return
例.2)
適当なターミナルエミュレータがEsc文字を生成するキーシンボルが見つからない場合
文字コードを利用することも出来ます
他のキーのコンビネーションで同じ文字列が生成されても区別は出来ないので
お使いのロケールで使用しない文字コードを探してください。
例えば yacute を使用する場合
xmodmap -e "keycode 109 = yacute"
とgnome-terminalなりkonsoleから入力すると右Ctrlでyacute(=0xfd)が生成される様になります。
(キーコード番号 109 が Control_R かどうかは xmodmap -pk で確認してください。)
yacuteはコードポイント0xfdですが Terminal Emulator の Character Encoding 設定により変わります。
UTF8では 0xc3bd となります。
生成される文字列をxeに認識させるにはkeymapファイルを使用します。
##########################################################################
[common]
KeyString:R-Ctl =\x8f\xab\xf2 #string by yacute
KeyString:R-Ctl =\xc3\xbd #UTF8 string for yacute
KeyString:R-Ctl =\xfd #ISo-8859-1 for yacute
このファイル名を例えば key.rh9 とした場合iniファイルで
LNX_Keymap = /g/src/xe/key.rh9 ##(Linux Console Version Only) Keymap file to detect remapping by xmodmap cmd
と記述します。(プロトタイプは ini コマンドで出力できます)
ワークDirにおいた場合は LNX_Keymap = ::key.rh9 という記述でもOKです。
コマンドラインパラメータの場合は --k/g/src/xe/key.rh9 のように指定します。
(注意)
GUI版の gxe は keycode番号でキーを識別するのでxmodmapでの設定変更の影響は
受けませんが、xmodmapの変更はシステム全体の話なので影響を受けるアプリケーションも
あると考えられます。
#endif