keymap CentOS xrdp
Введение | |
Пример файла | |
Модификации | |
setxkbmap |
Введение
Пример файла
#!/bin/bash
#
# This script is an example. You might need to edit this script
# depending on your distro if it doesn't work for you.
#
# Uncomment the following line for debug:
# exec xterm
# Execution sequence for interactive login shell - pseudocode
#
# IF /etc/profile is readable THEN
# execute ~/.bash_profile
# END IF
# IF ~/.bash_profile is readable THEN
# execute ~/.bash_profile
# ELSE
# IF ~/.bash_login is readable THEN
# execute ~/.bash_login
# ELSE
# IF ~/.profile is readable THEN
# execute ~/.profile
# END IF
# END IF
# END IF
pre_start()
{
if [ -r /etc/profile ]; then
. /etc/profile
fi
if [ -r ~/.bash_profile ]; then
. ~/.bash_profile
else
if [ -r ~/.bash_login ]; then
. ~/.bash_login
else
if [ -r ~/.profile ]; then
. ~/.profile
fi
fi
fi
return 0
}
# When loging out from the interactive shell, the execution sequence is:
#
# IF ~/.bash_logout exists THEN
# execute ~/.bash_logout
# END IF
post_start()
{
if [ -r ~/.bash_logout ]; then
. ~/.bash_logout
fi
return 0
}
#start the window manager
wm_start()
{
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
# debian
if [ -r /etc/X11/Xsession ]; then
pre_start
. /etc/X11/Xsession
post_start
exit 0
fi
# el
if [ -r /etc/X11/xinit/Xsession ]; then
pre_start
. /etc/X11/xinit/Xsession
post_start
exit 0
fi
# suse
if [ -r /etc/X11/xdm/Xsession ]; then
# since the following script run a user login shell,
# do not execute the pseudo login shell scripts
. /etc/X11/xdm/Xsession
exit 0
elif [ -r /usr/etc/X11/xdm/Xsession ]; then
. /usr/etc/X11/xdm/Xsession
exit 0
fi
pre_start
xterm
post_start
}
#. /etc/environment
#export PATH=$PATH
#export LANG=$LANG
# change PATH to be what your environment needs usually what is in
# /etc/environment
#PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
#export PATH=$PATH
# for PATH and LANG from /etc/environment
# pam will auto process the environment file if /etc/pam.d/xrdp-sesman
# includes
# auth required pam_env.so readenv=1
wm_start
exit 1
Модификации
Если вы используете MATE Desktop
#Multi user MATE Desktop
echo 'mate-session' > ~/.xsession
chmod +x ~/.xsession
systemctl restart xrdp
setxkbmap
Изучить раскладку текущей сессии
setxkbmap -print -verbose 10
Setting verbose level to 10 locale is C Trying to load rules file ./rules/evdev... Trying to load rules file /usr/share/X11/xkb/rules/evdev... Success. Applied rules from evdev: rules: evdev model: pc105 layout: us,us variant: , Trying to build keymap using the following components: keycodes: evdev+aliases(qwerty) types: complete compat: complete symbols: pc+us+us:2+inet(evdev) geometry: pc(pc105) xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+us+us:2+inet(evdev)" }; xkb_geometry { include "pc(pc105)" }; };
Изменить раскладку текущей сессии
setxkbmap -layout fr
setxkbmap -print -verbose 10
Setting verbose level to 10 locale is C Trying to load rules file ./rules/evdev... Trying to load rules file /usr/share/X11/xkb/rules/evdev... Success. Applied rules from evdev: rules: evdev model: pc105 layout: fr Trying to build keymap using the following components: keycodes: evdev+aliases(azerty) types: complete compat: complete symbols: pc+fr+inet(evdev) geometry: pc(pc105) xkb_keymap { xkb_keycodes { include "evdev+aliases(azerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+fr+inet(evdev)" }; xkb_geometry { include "pc(pc105)" }; };
Добавить язык
Допустим нужно добавить бельгийский вариант французского.
Перейдите в
/etc/xrdp
и отредактируйте файл
xrdp_keyboard.ini
cd /etc/xrdp
vi xrdp_keyboard.ini
Допустим нужно изменить бельгийский язык - по умолчанию был немецкий вариант, а нужен французский.
#rdp_layout_be=0x00000813
rdp_layout_be=0x0000080C
Если у нужной кодировки нет своего файла km-XXXX.ini в директории /etc/xrdp его можно сгенерировать командой
xrdp-genkeymap km-XXXX.ini
У меня возникли проблемы с генерацией этих файлов через удалённое подключение к виртуальной машине при попытке генерации получал ошибку
xrdp-genkeymap: unable to open display ''
- приходилось делать это в родном терминале виртуалки.
vi /etc/xrdp/xrdp_keyboard.ini
rdp_layout_us=0x00000409 rdp_layout_us_dvorak=0x00010409 rdp_layout_us_dvp=0x19360409 rdp_layout_dk=0x00000406 rdp_layout_de=0x00000407 rdp_layout_es=0x0000040A rdp_layout_fi=0x0000040B rdp_layout_fr=0x0000040C rdp_layout_it=0x00000410 rdp_layout_jp=0x00000411 rdp_layout_jp=0xe0010411 rdp_layout_jp=0xe0200411 rdp_layout_jp=0xe0210411 rdp_layout_kr=0x00000412 rdp_layout_no=0x00000414 rdp_layout_pl=0x00000415 rdp_layout_br=0x00000416 rdp_layout_ru=0x00000419 rdp_layout_se=0x0000041D rdp_layout_ch=0x00000807 rdp_layout_ch_fr=0x0000100C rdp_layout_gb=0x00000809 rdp_layout_latam=0x0000080A #rdp_layout_be=0x00000813 rdp_layout_be=0x0000080C rdp_layout_pt=0x00000816 rdp_layout_tr=0x0000041F
00000405 cs Czech 00000407 de German 00000409 en-us US English 0000040c fr French 00000410 it Italian 00000416 br Portuguese (Brazil) 00000419 ru Russian 0000041d se Swedish 00000809 en-uk UK English
CentOS | |
X Window System CentOS | |
XRDP: Удалённый рабочий стол | |
VNC: Удалённый рабочий стол | |
keymap: Клавиатура | |
startwm |