Я не могу запустить xmodmap при входе в Ubuntu 13.04. Я искал вокруг, в том числе в Askubuntu и все ответы, которые я нашел, не работают.
У меня есть файл с именем .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 (т. Е. Соответствующие файлы не существовали там, где были указаны), и я все равно предпочитаю не трогать глобальные настройки.
unmodified
shift
altgr*
shift+altgr
. Но как насчетleft alt
иsuper key
?xkb
. Помимо того, что это таинственное, есть проблема, что ваши пользовательские карты удаляются приxkb
обновлении.Для меня конфигурация xkb слишком сложна, если вы хотите переназначить 1 или 2 ключа способом, недоступным в Системных настройках. Кроме того, решение должно оставаться на стороне пользователя, без редактирования '/ usr / share / X11 / xkb / symbols /' и т. Д. Принудительная загрузка 'xmodmap ~ / .Xmodmap' с помощью автозагрузки приложений работает только до тех пор, пока вы не приостановите, не смените пользователей. или измените раскладку клавиатуры. Итак, как предполагает holocronweaver, с помощью фрагментов кода, которые я нашел, я создал скрипт python для загрузки при запуске сеанса, который при необходимости перезагружает файл ~ / .Xmodmap.
Проверьте сообщение об ошибке № 1243642 (комментарий № 6) и загрузите его здесь .
источник
У меня была эта проблема в Ubuntu 14.04, и я нашел решение здесь . Судя по всему, Ubuntu не может настроить клавиатуру сразу после входа в систему, но это немного позже. Так что, если вы добавите команду
в
~/.bash_profile
то он должен работать (это не для меня).РЕДАКТИРОВАТЬ: Кажется, это работает только после входа в систему, а не после запуска. Я должен исследовать это позже.
источник
xmodmap ~/.Xmodmap
Конвертировать Caps Lockв Escдля
vim
использованияВот мой вариант сценария запуска сопоставления клавиш. Он преобразует Caps Lockв Escна любой клавиатуре для использования с
vi
,vim
илиgvim
.В отличие от ответа q4w56 , этот ответ не использует бесконечный
while; do
цикл. В противном случае одно ядро моего двухъядерного ЦП будет разряжаться на 42% каждые 5 секунд, что серьезно снизит заряд батареи моего ноутбука.Сохраните это как скрипт. Сделайте файл исполняемым с
chmod +x
. Добавьте имя и местоположение скрипта вSession and Startup → Application Autostart
(в Xubuntu).Поведение клавиатуры для этого пользователя останется постоянным после перезагрузки и выхода из системы, но не будет приостановлено. Постоянство с помощью приостановки может быть достигнуто , но, к сожалению, только на системном уровне, а не на уровне пользователя.
Обоснование этой переназначения клавиатуры
В современном компьютерном мире для Caps Lockключа мало что осталось . В целом, следует воздерживаться от использования ВСЕХ КОПИЙ в силу как сетевого этикета, так и разделения представления и контента . Более того, случайное нажатие Caps Lockклавиши при редактировании текста
vim
не всегда сразу отмечается, но в дальнейшем неизбежно приводит к довольно раздражающемуvim
поведению . Отключение Caps Lockключа и его повторное использование в качестве легкодоступного Escключа приводит к двойному выигрышу вvim
использовании.источник
Caps Lock
клавиши может быть реальным спасением дляvim
пользователей на Apple MacBook безEsc
ключа .capslock
кctrl
. Это решает многие проблемы еще и в Vim, то вы можете использоватьcapslock
+[
дляEsc
Извините за вмешательство, но я чувствовал себя обязанным предложить это.How do you use vim after you close the lid on your laptop?
открыв крышку!У меня тоже была проблема на Ubuntu 16.04 с fcitx, и у меня было решение на fcitx wiki , но для этого нужно, чтобы fcitx был 4.2.7 или новее
touch ~/.Xmodmap
Там также есть некоторые объяснения причин.
источник
@ Ответ Даниэля указал мне правильный путь, но я хотел бы остановиться на нем.
У меня работает на Linux Mint 17.2 и Ubuntu 16.04.
Я попробовал все повороты, которые мог придумать, чтобы продолжать использовать
xmodmap
, но все они терпят неудачу, когда система переходит в спящий режим. То же самое относится и к сценариям запуска приложения, которые используютsetxkbmap
в тех случаях, когда демон * settings (для меня это xfce4) запускается позже, чем сценарий - и порядок не может повлиять.То, что я наконец придумал, имеет следующие ингредиенты:
1) Напишите минимальный файл сопоставления клавиатуры для
/usr/share/X11/xkb/symbols
. Позволяет вызвать файлmylayout
Это может быть так просто, какbasic
это просто имя, мы встретимся позже.name[Group1]
Так же просто название, кажется, но он не будет играть никакой роли позже.include "us"
включает в себя простую клавиатуру США. На самом делеus
это другой файл в том же каталоге. Это раскладка клавиатуры, которую мы адаптируем. Выберите другой по мере необходимости. Примечание: нет точки с запятой в конце этой строки.key
Линия одна адаптация клавиатуры, больше может следовать.<AE03>
Можно найти в файлах под/usr/share/X11/xkb/keycodes
. Используйтеxev
программу, чтобы выяснить, что клавиша «3» имеет код клавиши 12 и в файле кодов клавишXfree86
она сопоставлена<AE03>
.include
директива для активации другой опции клавиатуры, в этом случае я хочу, чтобы правая клавиша Alt была клавишей Shift уровня 3, то есть клавишей, которая дает доступ кsterling
знаку, который я определил выше.level3
это просто имя файла в той же папке сralt_switch
одним его разделом. Посмотрите вокруг и выберите, что вам нужно включить.2) Я не положил
mylayout
в системную папку. Скорее я сделал только мягкую ссылку из системной папки на папку, которая мне по вкусу, чтобы сразу увидеть, что это не стоковое программное обеспечение.3) Далее я не исправлял
evdev.xml
, чтобы снова не допустить проблем с обновлением. Но это было бы необходимо, чтобы найти 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 .
Другой подход к решению проблемы режима сна (не пробовал сам) можно найти здесь: https://www.vinc17.net/unix/xkb.en.html .
ОБНОВЛЕНИЕ: работал с Mint 18.3 в тот же момент, когда я изменил настройки в xfce4-settings-editor, как описано выше.
ОБНОВЛЕНИЕ: с 18.04, gdm3 в качестве диспетчера отображения и XFCE4 в качестве диспетчера окон, выглядит так, как будто ~ / .Xmodmap читается снова, и настройки, кажется, выдерживают приостановку. (Я редко использую режим ожидания, и я никогда не уверен, в каком режиме работает ноутбук).
источник
ПЕРЕСМОТР
Обновление в начале 2018 года нарушило постоянство - автоматическая перезагрузка раскладки клавиатуры после приостановки или спящего режима. Поскольку методы, использующие сценарии /etc/pm/sleep.d, перестали работать (устарело?), Это оставило только новый путь, с использованием / lib / systemd / system-sleep и немного другого сценария (который начал работать с клавишными картами!).
Таким образом, этот пост обновлен до более нового метода для сохранения и включения нормальной начальной загрузки таблицы ключей, которая также начала работать. Процедура преобразования файла .Xmodmap в .xkbmap остается неизменной.
Обратите внимание, что это решение для каждого пользователя. Ответы для каждого устройства см. В разделе о том , как применить раскладку ключей к одному устройству . Этот метод может быть адаптирован для использования здесь.
Сначала измените файл .Xmodmap по желанию. Их проще редактировать напрямую, чем файлы .xkbmap. Когда он загружен:
затем преобразовать в файл .xkb:
Для автоматической загрузки при запуске откройте Startup Applications, нажмите Add, и в командной строке введите:
(«пользователь» заменяется реальным именем пользователя.) Для «Имя», возможно, введите «Загрузить карту клавиатуры». Добавьте комментарий, если хотите, и нажмите Сохранить.
Карта ключей теперь будет загружаться каждый раз при загрузке системы, но не выдержит приостановку или спящий режим. Для этого создайте новый файл в / lib / systemd / system-sleep, возможно, с именем 60_xkbmap, который содержит:
( См. Выше). Замените «user» на фактическое имя пользователя.
Карта клавиш должна теперь автоматически загружаться и оставаться постоянной. Примечание:
источник
Это также заставило меня споткнуться, когда я обновился с Ubuntu 12.04 до 13.04.
К счастью, этот параметр теперь (или, возможно, всегда) был легко доступен в настройках клавиатуры и может быть изменен несколькими щелчками мыши.
Там вы идете: левый контроль и Caps Lock поменялись местами.
Не забудьте удалить
~/.Xmodmap
после внесения изменений.источник
XKBOPTIONS="ctrl:swapcaps"
в/etc/default/keyboard
.Я считаю, что добавление этого скрипта в автозагрузку удовлетворяет:
Я пытался использовать
xmodmap ./Xmodmap
, но каждый раз, когда он выполняется, будет происходить заметное отставание.источник
while; do
Следует избегать использования любого бесконечного цикла. Это приводило к тому, что одно ядро моего двухъядерного процессора каждые 42 секунды падало на 42%, что сильно уменьшало заряд батареи моего ноутбука!