rdesktopの改造@Debian etch
Posted on 11月 18th, 2007 by mazn
LinuxからWindowsのリモートデスクトップに接続するコマンドです。
Debian Etch のrdesktopは日本語のコピペも問題なくできるようになりました。
でも、マウスのスクロールイベントを1回送ると、Windowsでは2回としてカウントされてしまうようですので、ソースを以下のように改造し、再コンパイルしました。
xwin.c
if (xevent.xmotion.window == g_wnd)
{
/* ここに1行追加 */
if ( !(((button == 640 || button == 896) && flags != MOUSE_FLAG_DOWN)))
rdp_send_input(time(NULL), RDP_INPUT_MOUSE,
flags | button, xevent.xbutton.x, xevent.xbutton.y);
}
else
{
/* SeamlessRDP */
rdp_send_input(time(NULL), RDP_INPUT_MOUSE,
flags | button, xevent.xbutton.x_root, xevent.xbutton.y_root);
}
再コンパイル時にはlibssl-devが必要になりますので、apt-get でインストールしてください。
個人的にはmake installするのが嫌いなので、rdesktopのバイナリだけをコピーしようと考えていましたが、configureでprefixをきちんと指定してあげておかないとうまく動きませんでした。
# ./configure --prefix=/usr/
# make
後はできたrdesktopコマンドを /usr/bin/rdesktop に上書きするだけで使えます。
※実際には上書きするまえにバックアップをとっておくことを推奨します


LinuxからWindows-XPに接続するとき、スクロールがおかしいなと思っていたのですが、この修正でうまく動作するようになりました。大変助かりました。
※ただ、スクロールバーをクリックすると、スクロールが止まらないという状況は治りませんでした。
《参考》
Ubuntuでは、libx11-dev、FedoraではlibX11-develが追加インストール要でした。
しかし、configureで必要なパッケージを表示してくれるので便利ですね。
jcoolさん
ご報告ありがとうございました。