2

Я видел много вопросов о том, как перераспределить ключ, но почему-то моя проблема в том, что он никогда не переопределяется навсегда.

Вот мой ~/bootstrap-custom.sh

#!/bin/sh
# remaps Caps Lock to Ctrl
/usr/bin/setxkbmap -option "ctrl:nocaps"

Я добавил source ~/boostrap-custom.sh в мои автозагрузки приложений.

Отображения работают нормально.

Тем не мение:

  • Сопоставление не загружается при запуске или, по крайней мере, перезаписывается чем-то, что запускается после запуска приложений.
  • каждый раз, когда я подключаю свою клавиатуру, сопоставления, кажется, забываются.

Любой способ сделать отображение постоянным, но сохраняя тот же метод (xkbmap)?

4 ответа4

1

Это может быть только частичное решение (я, честно говоря, не знаю, как оно реагирует на отключение / повторное подключение клавиатуры), но поскольку у вас уже есть скрипт, который делает то, что вы хотите, это может быть достаточно близко.

При запуске 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 выйдет почти сразу, поэтому не требует его фоновой обработки).

0

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

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

0

Видимо это ошибка.

«Я использую 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

-1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .