Я запускаю Ubuntu 15.04 с xdm в качестве менеджера по оформлению и пользовательской установки мультимонитора и клавиатуры, определенной в xorg.conf.
xdm берет конфигурацию клавиатуры правильно, устанавливая расположение на "ГБ", и с ограничениями и подкачанными клавишами Ctrl.
Однако, когда я запускаю Производителя Окон или любого другого менеджера по оформлению, я нахожу, что моя раскладка клавиатуры возвращается в США. ctrl/caps ключи остаются подкачанными все же.
xorg.conf:
Section "Monitor"
Identifier "DP1"
EndSection
Section "Monitor"
Identifier "HDMI2"
Option "LeftOf" "DP1"
Option "Rotate" "left"
EndSection
Section "Device"
Identifier "intel"
Driver "intel"
# Option "TearFree" "true"
Option "Monitor-DP1" "DP1"
Option "Monitor-HDMI2" "HDMI2"
EndSection
Section "InputClass"
Identifier "caps as ctrl sun gb keyboard"
Driver "evdev"
MatchIsKeyboard "yes"
Option "XkbLayout" "gb"
Option "XkbModel" "sun_type7_usb"
Option "XkbRules" "xorg"
Option "XkbOptions" "ctrl:swapcaps"
EndSection
Из ваших комментариев к другим ответам я вижу, что вы, возможно, не запускаете демон настроек. В большинстве DesktopEnvironments (таких как Gnome, KDE и т. Д.) Работает служба, позволяющая отслеживать каждую небольшую настройку для вас! Но WindowManager (например, WindowMaker, i3, awesome и т. Д.) Обычно не имеют этой функции.
Если вы запускаете WindowManager из ~/.xsession
или другого самодельного скрипта, вам следует установить настройки клавиатуры для этого конкретного сеанса. Настроить раскладку клавиатуры можно с помощью setxkbmap
из скрипта Xsession до строки, где вы запускаете WindowManager.
setxkbmap -model sun_type7_usb -layout gb -option ctrl:swapcaps
В качестве информации о бонусе вы можете получить все доступные модели, макеты и т. Д. Из этих команд:
localectl list-x11-keymap-models
localectl list-x11-keymap-layouts
localectl list-x11-keymap-variants [layout]
localectl list-x11-keymap-options
Эта информация была в основном найдена в ArchWiki , где Есть еще немного информации о клавиатурах в целом, хотя она может немного отличаться от Ubuntu.
Попробуйте редактирование /etc/default/keyboard
XKBMODEL="sun_type7_usb"
XKBLAYOUT="gb"
XKBOPTIONS="ctrl:swapcaps"
Для применения Перезагрузите или работайте:
sudo udevadm trigger --subsystem-match=input --action=change
Ссылка: man keyboard
Сделайте, чтобы Вы попробовали это:
gsettings set org.gnome.setting-daemon.keyboard.layout KEY=active VALUE=true
и это могло бы хорошо работать этот путь.
В Unity есть собственный демон настроек, который заботится о настройке макета и сбрасывает все предыдущие настройки Xorg.
Проверьте текущую настройку:
gsettings get org.gnome.desktop.input-sources xkb-options
Затем добавьте ctrl:swapcaps
к нему и установите его обратно.
gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:swapcaps']"
Установите макет на gb
gsettings set org.gnome.desktop.input-sources sources [('xkb', 'gb')]
Если это не помогло, отключите клавиатуру в настройках демона
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
Ссылка: Постоянно устанавливать параметры раскладки клавиатуры с помощью setxkbmap в gnome / unity
Кстати, вы можете использовать инструмент GUI вместо командной строки, если хотите, ищите dconf-editor
Если смена раскладки работает на экране входа, но ломается после входа, значит, эти же ресурсы перехвачены сторонней программой. В моем случае это был демон ibus. Имеет собственные настройки макета. Я нашел его путем поиска среди открытых файлов по кодировке, так как решил, что эта программа должна использовать файлы кодировки:
(CP1251 - моя локаль по умолчанию :) utf-8 в вашем случае) Среди браузеров, openoffice, pulseaudio был обнаружен демон ibus. После его удаления раскладка перестала ломаться. (Его также можно перенастроить на неагрессивный режим работы)