Xrdp
Переключение клавиатуры с удаленной машины
Далее шрифты - этот бинарник ищет шрифты в /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. Я сейчас сижу на работе через удалённый рабочий стол ;)