Xrdp

Материал из support.qbpro.ru

Переключение клавиатуры с удаленной машины

Далее шрифты - этот бинарник ищет шрифты в /opt/X11rdp/lib/X11/fonts Создал каталоги /opt/X11rdp/lib/X11, сделал симлинк fonts на папку со шрифтами уже стоящего X-сервера (у меня лежали в /usr/share/X11/fonts) После этого X11rdp может запускаться, то есть уже можно виндовым клиентом терминалов заходить в sesman-X11rdp. Однако setxkbmap не работает, видимо этот бинарник X11rdp ищет папку xkb где-то в другом месте. Поэтому, создал в /usr/local/lib/xrdp файл rus.map следующего содержания:

xkb_keymap {
    xkb_keycodes  { include "xfree86+aliases(qwerty)"    };
    xkb_types     { include "complete"    };
    xkb_compat    { include "complete"    };
    xkb_symbols   { include "pc+ru(winkeys)+us:2+group(ctrl_shift_toggle)"    };
    xkb_geometry  { include "pc(pc104)"    };
};

Далее прописал в начале /usr/local/lib/xrdp/startwm.sh : для lxde - /usr/bin/startlxde

xkbcomp /usr/local/lib/xrdp/rus.map $DISPLAY

Все. Теперь при входе язык русский, Ctrl+Shift переключает на английский. взято: тут

if [ -r /etc/default/locale ]; then

. /etc/default/locale

export LANG LANGUAGE

fi

setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:ctrl_shift_toggle,grp_led:scroll"


Удалённый рабочий стол в Ubuntu Linux

Сначала устанавливаем xrdp, он есть в репозиториях. Потом нужно установить последнюю версию x11rdp - это нормальный RDP сервер для Linux. Вся проблема лично для меня заключалась в нахождении его исходников. :)

Компилируем x11rdp:

# apt-get install subversion gcc libice-dev pkg-config zlib1g-dev cvs autoconf libtool libssl-dev libpam0g-dev libx11-dev libxfixes-dev xfonts-base   
$ svn co svn://server1.xrdp.org/srv/svn/repos/main/x11rdp_xorg71
$ mkdir /usr/local/X11rdp
$ cd x11rdp_xorg71
# sh buildx.sh /usr/local/X11rdp

Это займёт некоторое время. После успешной компиляции стоит сделать ссылки на xserver для xrdp:

# ln -s /usr/local/X11rdp/bin/X11rdp /usr/local/bin
# ln -s /usr/share/fonts/X11 /usr/local/X11rdp/lib/X11/fonts

И, наконец, указываем настройки для xrdp, чтобы он использовал x11rd. Правим /etc/xrdp/xrdp.ini:

[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1

[xrdp0]
name=sesman-X11rdp
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1

Вот и всё :) На самом деле всё очень просто! Это позволяет устанавливать одновременно несколько подключений, при нормальном rdp клиенте работают все сочетания клавиш и смены раскладок происходят без проблем. Если активных клиентов нет, работает только один процесс - xrdp. Я сейчас сижу на работе через удалённый рабочий стол ;)