http://xrdp.sourceforge.net/ で開発されている xrdp というアプリケーションがあります。
これは linuxサーバ上 rdp 接続用サーバソフトです。
これをインストールしておけば、Windowsからリモート デスクトップ接続を
利用することで linux サーバに接続できるようになります。
通常、TeraTermをよく利用しますが、xrdpを入れておけば、
複数の端末エミュレータを利用したい場合や、GUIツールを触りたい場合に便利です。
xrdp は日本語キーボードに対応していません。
そのため、日本語キーボード対応パッチを作成していました。
某所では 0.4.0用のパッチのみを公開していたので、
0.4.1用のパッチを再作成しました。
まぁ、中身は一緒なんですが。^-^;
下記にパッチ、および、CentOS 5.3用 x86-64用の rpm、src.rpm をおいています。
rpm は結構大雑把(というか適当)に作っていますので抜けがあるかもしれませんが、
普通に使う分には問題ないと。
http://www.mediafire.com/?sharekey=81f31e2ea42c9417896b8bcfb63f39f8c15ab4d43a831976b8eada0a1ae8665a
変更箇所は lang.c のみで済みます。
パッチは下記のように diff コマンドを利用して作成します。
これは linuxサーバ上 rdp 接続用サーバソフトです。
これをインストールしておけば、Windowsからリモート デスクトップ接続を
利用することで linux サーバに接続できるようになります。
通常、TeraTermをよく利用しますが、xrdpを入れておけば、
複数の端末エミュレータを利用したい場合や、GUIツールを触りたい場合に便利です。
xrdp は日本語キーボードに対応していません。
そのため、日本語キーボード対応パッチを作成していました。
某所では 0.4.0用のパッチのみを公開していたので、
0.4.1用のパッチを再作成しました。
まぁ、中身は一緒なんですが。^-^;
下記にパッチ、および、CentOS 5.3用 x86-64用の rpm、src.rpm をおいています。
rpm は結構大雑把(というか適当)に作っていますので抜けがあるかもしれませんが、
普通に使う分には問題ないと。
http://www.mediafire.com/?sharekey=81f31e2ea42c9417896b8bcfb63f39f8c15ab4d43a831976b8eada0a1ae8665a
変更箇所は lang.c のみで済みます。
パッチは下記のように diff コマンドを利用して作成します。
# diff -c xrdp-0.4.1/xrdp/lang.c xrdp-0.4.1.new/xrdp/lang.c
パッチを含めたインストール方法は下記のような感じ。
# tar xzvf xrdp-0.4.1.tar.gz # patch -p0 <xrdp-0.4.1-ja.diff
KDEを利用したい場合など、必要に応じて /usr/local/xrdp/startwm.sh を
書き換えます。
私は、先頭あたりに下記の行を追加し、gnomeを日本語で起動するように変更しています。
export LANG=ja_JP.UTF-8
次回は xrdp を rpm 化したので、その辺について少しだけ。
(素人に毛が生えたレベルなので、適当ですけど。^-^;)
xrdp-0.4.1-ja.diff は下記の通り。
*** xrdp-0.4.1/xrdp/lang.c 2007-07-01 14:11:08.000000000 +0900 --- xrdp-0.4.1.new/xrdp/lang.c 2008-11-23 20:32:14.000000000 +0900 *************** *** 485,490 **** --- 485,556 ---- }; /*****************************************************************************/ + /* Japanese */ + + /* non shift chars */ + char ja_noshift[] = + { + 0, 0, '1', '2', '3', '4', '5', '6', + '7', '8', '9', '0', '-', '^', 0, 0, + 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', + 'o', 'p', '@', '[', 0, 0, 'a', 's', + 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', + ':', 0, 0, ']', 'z', 'x', 'c', 'v', + 'b', 'n', 'm', ',', '.', '/', 0, 0, + 0, ' ', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, '7', + '8', '9', '-', '4', '5', '6', '+', '1', + '2', '3', '0', '.', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, '', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 + }; + + /* shift chars */ + char ja_shift[] = + { + 0, 0, '!', '"', '#', '$', '%', '&', + ''', '(', ')', 0, '=', '~', 0, 0, + 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', + 'O', 'P', '`', '{', 0, 0, 'A', 'S', + 'D', 'F', 'G', 'H', 'J', 'K', 'L', '+', + '*', 0, 0, '}', 'Z', 'X', 'C', 'V', + 'B', 'N', 'M', '<', '>', '?', 0, '*', + 0, ' ', 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, '7', + '8', '9', '-', '4', '5', '6', '+', '1', + '2', '3', '0', '.', 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, '_', 0, 0, 0, 0, + 0, 0, 0, 0, 0, '|', 0, 0, + }; + + /* right alt chars */ + char ja_altgr[] = + { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 + }; + + /*****************************************************************************/ char APP_CC get_char_from_scan_code(int device_flags, int scan_code, int* keys, int caps_lock, int num_lock, int scroll_lock, *************** *** 534,539 **** --- 600,611 ---- keys_shift = se_shift; keys_altgr = se_altgr; } + else if (keylayout == 0x411 || keylayout == 0x0e0010411) /* Japanese(ja-JP & ja-JP.unicode */ + { + keys_noshift = ja_noshift; + keys_shift = ja_shift; + keys_altgr = ja_altgr; + } else /* english us 0x409 */ { keys_noshift = en_us_noshift;
※コメント投稿者のブログIDはブログ作成者のみに通知されます