Постоянно переназначить ключ на другой xubuntu
Я видел много вопросов о том, как переназначить ключ, но почему-то моя проблема в том, что он никогда не переопределяется навсегда.
Вот мой ~/bootstrap-custom.sh
#!/bin/sh
# remaps Caps Lock to Ctrl
/usr/bin/setxkbmap -option "ctrl:nocaps"
я добавил source ~/boostrap-custom.sh
в мои приложения запуска.
Отображения работают нормально.
Тем не мение:
- Сопоставление не загружается при запуске или, по крайней мере, перезаписывается чем-то, что запускается после запуска приложений.
- каждый раз, когда я подключаю свою клавиатуру, сопоставления, кажется, забываются.
Любой способ сделать отображение постоянным, но сохраняя тот же метод (xkbmap)?
4 ответа
Это может быть только частичное решение (я, честно говоря, не знаю, как оно реагирует на отключение / повторное подключение клавиатуры), но, поскольку у вас уже есть скрипт, который делает то, что вы хотите, это может быть достаточно близко.
При запуске X11 выполняет несколько специальных программ, если они присутствуют в системе. Для наших целей наиболее интересным является ~ /.xsession, который выполняется после того, как вы вошли в систему с помощью диспетчера отображения, что в наши дни является обычной настройкой графической среды. (Раньше вы обычно входили в оболочку, а затем запускали команду startx
начать X; если это так, вы использовали ~/.xinitrc для той же цели.)
Мы можем использовать это для выполнения команд практически независимо от того, какой менеджер дисплея (gdm, gdm3, kdm, ...) и окружение рабочего стола (GNOME, Xfce, KDE, ...) вы используете.
- Создайте файл с именем
.xsession
и поместите его в свой домашний каталог. - Добавьте к этому следующее:
#!/bin/bash
/usr/bin/setxkbmap -option "ctrl:nocaps"
- Сохраните и установите файл в режим 755 (
chmod 755 ~/.xsession
) - Выйдите и снова включите или перезагрузите
Это должно установить вашу раскладку клавиатуры при входе в систему. Он также должен выполняться достаточно поздно, чтобы setxkbmap действительно работал.
Если по какой-либо причине это не работает, войдите в текстовый терминал (Ctrl+Alt+F2 для любого F2 в [F1..F6] должен быть вашим другом) и удалите файл, введя команду rm ~/.xsession
,
Для справки, вот моя ~/.xsession, которая в режиме 755 переводит меня в сеанс Xfce4 (это может служить примером "заведомо удачного"):
#!/bin/sh
xscreensaver &
exec xfce4-session
exec
директива в конце заменяет сам скрипт на данную команду. Все, что не выходит более или менее немедленно, должно быть фоновым, следовательно, &
, (Я ожидаю, что setxkbmap выйдет почти сразу, поэтому не нужно его обрабатывать.)
Видимо это ошибка.
"Я использую xfce в arch linux, и я редактирую ~/.config/xfce4/panel/xkb-plugin-##. Rc и добавляю новую строку или что-то в этом роде, и это работает для некоторых сессий. Другое временное исправление может быть что предлагает #31.
- Установите нужные параметры в плагине
- Скопируйте ~/.config/xfce4/panel/xkb-plugin-##. Rc в другой файл, например ~/.config/xfce4/panel/goodxkb.rc
Добавьте эту команду к заданию запуска:
sh -c "cp ~/.config/xfce4/panel/goodxkb.rc ~/.config/xfce4/panel/xkb-plugin-##. rc && pkill xkb" (измените ## на свой номер)
Часть pkill имеет решающее значение для перезагрузки плагина и его конфигурации."
Вы можете попытаться поместить код оболочки в свой .profile
файл, ИЛИ более сложная версия, что вы используете XKB. Вот краткий обзор.
Для полного обзора попробуйте эту арку вики-статью.
Отредактируйте /etc/rc.local и добавьте путь к вашему сценарию. Убедитесь, что он исполняемый и в верхней части находится #!/ Bin /bash. Не перезагружайте компьютер, выключите его и включите снова. Это должно работать.