Я не могу запустить xmodmap при входе в Ubuntu 13.04.
У меня есть файл с именем .Xmodmap в моей домашней папке, который содержит нужные сопоставления. Если я запускаю его вручную, он отлично работает, поэтому там нет ошибок. Чтобы запустить его при запуске, я попытался:
Используя различные .xinitrc, содержащие одну из следующих команд: xmodmap .Xmodmap xmodmap ~/.Xmodmap /usr/bin/xmodmap /home/NAME/.Xmodmap if [ -s ~/.Xmodmap ]; then xmodmap ~/.Xmodmap fi Используя .Xresources вместо .xinitrc с теми же изменениями. Установка его в качестве приложения для запуска.Ничего из этого не сделано в Ubuntu 13.04 (64-разрядная версия). Я также видел несколько идей о глобальном изменении сопоставлений клавиатуры, но большинство из них не были применимы в Ubuntu 13.04 (т. Е. Соответствующие файлы не существовали там, где они указаны), и я предпочитаю вообще не касаться глобальных настроек.
Для меня конфигурация xkb слишком сложна, если вы хотите переназначить 1 или 2 ключа способом, недоступным в настройках системы. Кроме того, решение должно оставаться на стороне пользователя без редактирования «/ usr / share / X11 / xkb / symbols /» и т. Д. Принудительная загрузка «xmodmap ~ / .Xmodmap» с использованием приложений для запуска работает только до тех пор, пока вы не приостановите, не измените пользователей или изменить раскладку клавиатуры. Итак, как предлагает голокорнер, с найденными фрагментами кода, я сделал скрипт python для загрузки при запуске сеанса, который перезагружает «~ / .Xmodmap», когда это необходимо.
Проверьте отчет об ошибке # 1243642 ( комментарий № 6) и загрузите его здесь.
У меня была эта проблема в Ubuntu 14.04 и нашел решение здесь. По-видимому, Ubuntu не может сразу настроить клавиатуру после входа в систему, но немного позже. Поэтому, если вы добавите команду
sleep 4 && xmodmap ~/.Xmodmap &
в ~/.bash_profile, тогда она должна работать (это для меня).
EDIT: похоже, это работает только после входа в систему, а не после запуска. Мне придется исследовать это позже.
Вот мой вариант сценария запуска сопоставления клавиш. Он преобразует Caps Lock в Esc на любую клавиатуру для использования с vi, vim или gvim.
В отличие от ответа q4w56, этот ответ не использует бесконечный цикл while; do. В противном случае одно ядро моего двухъядерного процессора достигло бы 42% каждые 5 секунд, что значительно уменьшило бы заряд батареи для ноутбука.
#!/bin/bash
sleep 4
xmodmap -e "clear Lock"
xmodmap -e "keysym Caps_Lock = Escape"
Сохраните его как скрипт. Сделайте исполняемый файл с помощью chmod +x. Добавьте имя сценария и его местоположение в Session and Startup → Application Autostart (в Xubuntu).
Поведение клавиатуры для этого пользователя будет оставаться постоянным при перезагрузке и выходе из системы, но не приостанавливаться. q4w56 , но, к сожалению, только на системном уровне, не легко на уровне пользователя.
В сегодняшнем компьютерном мире есть очень мало осталось для клавиши Caps Lock . В общем, следует воздерживаться от использования ВСЕХ CAPS в силу как сетевого этикета, так и разделения представления и контента. Более того, случайное нажатие клавиши Caps Lock при редактировании текста с помощью vim не всегда сразу отмечается, но неизменно приводит к довольно раздражающему поведению vim. Отключение клавиши Esc и повторное использование его в качестве легкодоступной клавиши Esc приводит к двойной победе для использования vim.
У меня тоже была проблема с Ubuntu 16.04 с fcitx, и у меня было решение в wiki fcitx, но для fcitx требуется 4.2.7 или новее
touch ~/.Xmodmap записать перезагрузку конфигурации и fcitx попытается загрузить его автоматическиТакже есть объяснение причины.
@ Ответ Даниила указал мне правильный путь, но я хотел бы остановиться на нем.
Работает для меня в Linux Mint 17.2 и Ubuntu 16.04.
Я пробовал все завихрения, которые я мог бы использовать, чтобы продолжать использовать xmodmap, но все они терпят неудачу, когда система засыпает Режим. То же самое и для сценариев запуска, которые используют setxkbmap в тех случаях, когда * settings-daemon (для меня это xfce4) выполняется позже, чем скрипт, и на заказ не может влиять действительно.
Что я, наконец, придумал, имеет следующие ингредиенты:
1) Напишите минимальный файл сопоставления клавиатуры для /usr/share/X11/xkb/symbols. Позволяет вызвать файл mylayout. Это может быть так же просто, как
xkb_symbols "basic" {
name[Group1] = "My Layout";
include "us"
key <AE03> { [ 3, numbersign, sterling, sterling] };
include "level3(ralt_switch)"
}
basic - это просто имя, мы встретим его позже. [F7] аналогично - это просто имя, которое кажется, но оно не будет играть никакой роли позже. include "us" включает обычную клавиатуру. Фактически us - это другой файл в том же каталоге. Это клавиатура, которую мы адаптируем. Выберите другой, если необходимо. Примечание: точка с запятой не заканчивается. Линия key - это одна адаптация клавиатуры, больше может следовать. [F11] можно найти в файлах под /usr/share/X11/xkb/keycodes. Используйте программу xev, чтобы выяснить, что ключ «3» имеет код ключа 12, а в файле кодов клавиш Xfree86 он отображается на <AE03>. Наконец, еще одна директива include для активации другой опции клавиатуры, в этом случае я хочу, чтобы правая клавиша Alt была клавишей сдвига уровня 3, то есть ключ, который дает доступ к знаку sterling, указанному выше. level3 - это просто имя файла в той же папке с ralt_switch одной его частью. Посмотрите вокруг и выберите то, что вам нужно включить. 2) Я не поместил mylayout в системную папку. Вместо этого я сделал только мягкую ссылку из системной папки в папку, которая мне нравится, чтобы сразу увидеть, что это не программное обеспечение для акций.
3) Далее я сделал not исправить [ f21], чтобы предотвратить проблемы с обновлением. Но это должно было бы найти mylayout в редакторе конфигурации клавиатуры (для xfce4 это xfce4-keyboard-settings). Вместо этого я использовал xfce4-settings-editor и изменил keyboard-layout->XkbLayout на mylayout (имя файла) и XkbVariant на basic (см. Выше). Впоследствии mylayout/basic отображается в редакторе настроек клавиатуры тоже. Кажется, что запись в evdev.xml необходима только для выбора макета.
Таким образом, настройки клавиатуры теперь выходят в спящий режим и перезагружаются.
Больше фона может быть найденный здесь: http://www.charvolant.org/~doug/xkb/html/node5.html.
Другой подход к исправлению проблемы в спящем режиме (не пробовал себя) можно найти здесь: http://www.charvolant.org/~doug/xkb/html/node5.html .
Чтобы использовать существующий файл .Xmodmap (проще всего настроить), применяя его через xkb (текущий) - и автоматически загружайте его для каждого пользователя - выполните четыре шага:
Загрузите. Xmodmap-файл xmodmap .Xmodmap Преобразовать его в файл .xkb xkbcomp $ DISPLAY $ HOME / .xkbmap Устанавливать загрузку автоматически при открытии терминала echo 'xkbcomp $ HOME / .xkbmap $ DISPLAY' >> ~ / .bashrc Убедитесь, что ' терминал "появляется в приложениях запуска.автонагрузка для каждого пользователя
Это относится к текущему выпуску LTS, 16.04. (xkb-сопоставления не сохранились в приостановках и спящих в более ранних версиях.) Шаги 3 и 4 являются обходным решением, так как нет возможности для автоматической загрузки файла xkb для каждого пользователя. Взято из поста 14 связанного потока ошибок.Это также заставило меня споткнуться, когда я обновился с Ubuntu с 12.04 по 13.04.
К счастью, этот параметр теперь (или, возможно, всегда был) легко доступен в настройках клавиатуры и может быть изменен с помощью несколько щелчков мыши.
Перейдите в раздел «Системные настройки»> «Макет клавиатуры»> «Параметры» ... В «Параметры макета клавиатуры» щелкните стрелку, чтобы открыть параметры позиции «Ctrl». Установите галочку в Swap Ctrl и Caps Lock.Там вы идете: Left Control и Caps Lock имеют переключаемые позиции.
Не забудьте удалить ~/.Xmodmap после внесения изменений.
Я нахожу добавление этого сценария к запуску, удовлетворяющему:
while true;do
xmodmap -e "keycode 87=Prior"
xmodmap -e "keycode 88=Next"
sleep 5
done
Я попытался использовать xmodmap ./Xmodmap, но каждый раз, когда он выполняется, произойдет заметное отставание.