Вопрос или проблема
Раньше я менял капс лок и контроль в GNOME, но когда я обновился до Ubuntu 9.04, я также сменил свою рабочую среду на Xfce. У меня есть следующая строка в xorg.conf:
Option "XkbOptions" "ctrl:nocaps"
Но это не кажется эффективным для Xfce. Есть идеи?
В конце концов, я убрал строку “XkbOptions” из моего xorg.conf и добавил это в автозагрузку Xfce:
/usr/bin/setxkbmap -option "ctrl:nocaps"
Это превращает клавишу Caps Lock в дополнительный Ctrl, что мне подходит. Если вы хотите просто обменять их местами, я полагаю, что "ctrl:swapcaps"
сработает. Если это имеет значение, эта страница является достаточно хорошим руководством:
http://manicai.net/comp/swap-caps-ctrl.html
Я ещё не успел попробовать другие способы, но у меня есть нетбук с немного странной раскладкой, и, возможно, мне придётся немного с ней поработать.
Я использую XFCE, но это решение должно работать для любой рабочей среды на Debian или Ubuntu:
Замените определение XKBOPTIONS
в /etc/default/keyboard
на
XKBOPTIONS="ctrl:swapcaps"
Это затрагивает всех пользователей системы. Замените на ctrl:nocaps
, если хотите, чтобы никакие клавиши не функционировали как Caps Lock.
Это не повлияет на вашу текущую сессию (вы должны перезапустить X11),
поэтому вы можете выполнить эту команду для изменения настроек до тех пор:
$ setxkbmap -option ctrl:swapcaps
Чтобы это касалось только вашего пользователя, выполните вышеуказанную команду в рамках вашей сессии: откройте настройки XFCE (введите xfce4-settings-manager
) и нажмите на Сессия и автозагрузка, затем перейдите на вкладку Автозагрузка приложений и Добавьте эту команду.
Используйте xkeycaps, чтобы посмотреть на раскладку клавиатуры и поменять местами модификаторы META и ALT, или просто поменять местами все клавиши. Если вы планируете использовать любые приложения GNOME, GNOME имеет некоторые предположения о том, какие клавиши имеют модификаторы META и ALT. Вероятно, будет проще полностью поменять клавиши местами.
Вы можете попробовать xmodmap
У меня есть маленький нетбук с раздражающей дополнительной клавишей рядом с клавишей левый Shift. Поместив следующее в ~/.Xmodmap, я могу переназначить эту клавишу на другую клавишу левый Shift.
keycode 94 = Shift_L
add shift = Shift_L
Может быть, вы сможете сделать что-то подобное, чтобы поменять местами клавиши caps-lock и control?
Xfce должен быть таким же, как GNOME и все остальные рабочие среды – что-то, вероятно, сломалось при обновлении до Ubuntu 9.04 для всех окружений, поскольку параметры конфигурации клавиатуры и мыши Xorg переместились из xorg.conf в HAL.
Дополнительную информацию о новых методах конфигурации можно найти на следующих страницах:
Проблема со всеми другими ответами заключается в том, что если вы используете USB клавиатуру и происходит любое USB событие, то вы потеряете свои настройки. После многих лет, множества неудачных попыток и многократного посещения этой страницы я наконец нашел решение, которое устойчило к USB событиям:
- Установите inputplug
Для Arch мне нужно было использовать репозитории сообщества: yay -S inputplug
- Создайте скрипт, который настраивает ваши пользовательские параметры клавиатуры
Вот скрипт (~/on-new-kbd), который я использую, чтобы переназначить caps на control и также установить составную клавишу как правый control (полезно для набора таких символов, как ‘€’)
#! /bin/sh
echo >&2 "$@"
event=$1 id=$2 type=$3
case "$event $type" in
'XIDeviceEnabled XISlaveKeyboard'
/usr/bin/setxkbmap -option 'ctrl:nocaps'
/usr/bin/setxkbmap -option 'compose:rctrl'
esac
- Убедитесь, что он запускается при старте
Заставьте его запускаться при загрузке xfce, добавив новую запись автозагрузки. Сделайте это, создав файл .config/autostart/inputplug.desktop
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=inputplug
Comment=Обнаружить новые клавиатуры и применить настройки, такие как caps - > ctrl
Exec=/usr/bin/inputplug --bootstrap --command ~/on-new-kbd
OnlyShowIn=XFCE;
RunHook=0
StartupNotify=false
Terminal=false
Hidden=false
Ответ или решение
Чтобы поменять местами клавиши Caps Lock и Control в окружении рабочего стола Xfce, выполните следующие шаги:
-
Удаление старых настроек:
Если у вас есть строкаOption "XkbOptions" "ctrl:nocaps"
в вашем файлеxorg.conf
, удалите её, так как эти настройки могут не работать в Xfce после обновлений и могут создавать конфликты. -
Использование
setxkbmap
:
Чтобы временно изменить настройки клавиш в текущей сессии, выполните команду:setxkbmap -option ctrl:nocaps
Эта команда превратит клавишу Caps Lock в дополнительную клавишу Control. Если вы хотите просто поменять клавиши местами, используйте:
setxkbmap -option ctrl:swapcaps
-
Автозапуск настройки:
Вам нужно, чтобы эта команда запускалась автоматически при старте Xfce. Для этого откройте XFCE настройки, выполнив команду:xfce4-settings-manager
Затем перейдите в раздел Session and Startup и на вкладку Application Autostart. Нажмите Add и введите следующую информацию:
- Name: Swap Caps Lock and Control
- Command:
setxkbmap -option ctrl:nocaps
(илиsetxkbmap -option ctrl:swapcaps
, если вы хотите поменять их местами) - Comment: Установка клавиатурных настроек
После добавления не забудьте сохранить изменения.
-
Системные настройки для всех пользователей:
Если вы хотите изменить настройки для всех пользователей системы, отредактируйте файл/etc/default/keyboard
и замените строку, отвечающую заXKBOPTIONS
, на:XKBOPTIONS="ctrl:swapcaps"
Для использования
ctrl:nocaps
, замените соответствующим образом. Учтите, что для применения этих изменений может потребоваться перезагрузка X11 или системы. -
Проверка и устранение проблем с USB-клавиатурами:
Если вы используете USB-клавиатуру, после каждого подключения могут сбрасываться настройки. Чтобы создать устойчивую конфигурацию, вам следует установитьinputplug
. Установите его через пакетный менеджер вашей системы. Затем создайте скрипт, который будет применяться к новому устройству клавиатуры. Пример содержимого скрипта~/on-new-kbd
:#! /bin/sh echo >&2 "$@" event=$1 id=$2 type=$3 case "$event $type" in 'XIDeviceEnabled XISlaveKeyboard' /usr/bin/setxkbmap -option 'ctrl:nocaps' esac
Убедитесь, что скрипт выполняется при старте XFCE, добавив файл
~/.config/autostart/inputplug.desktop
с содержимым:[Desktop Entry] Encoding=UTF-8 Version=0.9.4 Type=Application Name=inputplug Comment=Detect new keyboards and apply settings like caps -> ctrl Exec=/usr/bin/inputplug --bootstrap --command ~/on-new-kbd OnlyShowIn=XFCE; RunHook=0 StartupNotify=false Terminal=false Hidden=false
-
Проверка настроек:
После выполнения всех шагов проверьте, работают ли новые настройки, нажатие клавиши Caps Lock должно теперь функционировать как кнопка Control.
Эти шаги помогут вам успешно поменять клавиши Caps Lock и Control в Xfce.