Постоянно переназначить ключ на другой 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, ...) вы используете.

  1. Создайте файл с именем .xsession и поместите его в свой домашний каталог.
  2. Добавьте к этому следующее:
    #!/bin/bash
    /usr/bin/setxkbmap -option "ctrl:nocaps"
  3. Сохраните и установите файл в режим 755 (chmod 755 ~/.xsession)
  4. Выйдите и снова включите или перезагрузите

Это должно установить вашу раскладку клавиатуры при входе в систему. Он также должен выполняться достаточно поздно, чтобы 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.

  1. Установите нужные параметры в плагине
  2. Скопируйте ~/.config/xfce4/panel/xkb-plugin-##. Rc в другой файл, например ~/.config/xfce4/panel/goodxkb.rc
  3. Добавьте эту команду к заданию запуска:

    sh -c "cp ~/.config/xfce4/panel/goodxkb.rc ~/.config/xfce4/panel/xkb-plugin-##. rc && pkill xkb" (измените ## на свой номер)

Часть pkill имеет решающее значение для перезагрузки плагина и его конфигурации."

С https://askubuntu.com/questions/66096/how-to-set-up-xfce4-xkb-plugin-to-remember-settings-over-reboots

Вы можете попытаться поместить код оболочки в свой .profile файл, ИЛИ более сложная версия, что вы используете XKB. Вот краткий обзор.

Для полного обзора попробуйте эту арку вики-статью.

Отредактируйте /etc/rc.local и добавьте путь к вашему сценарию. Убедитесь, что он исполняемый и в верхней части находится #!/ Bin /bash. Не перезагружайте компьютер, выключите его и включите снова. Это должно работать.

Другие вопросы по тегам