Я создал следующий ~/.Xmodmap
файл согласно этому ответу .
keysym Delete = Menu
keysym Menu = Delete
clear Lock
keycode 0x42 = Escape
Другими словами, поменяйте местами Delete
и Menu
, и сделайте Caps Lock
дополнительный Escape
.
В следующий раз, когда я вошел в систему, Ubuntu спросила меня, хочу ли я загрузить, ~/.Xmodmap
как ожидалось. Я загрузил его, но ничего не произошло (ни тогда, ни при последующих входах в систему). Если я запускаю вручную xmodmap ~/.Xmodmap
, он работает как положено.
Я знаю, что это работало в начале бета-версии 10.10, но это не помогло в моей новой версии 10.10. Я не пробовал ничего раньше 10.10. Есть идеи?
Редактировать: я вставил несколько отладочных операторов, /etc/gdm/Xsession
чтобы убедиться, что ~/.Xmodmap
загружается, и все волшебным образом начало работать. Я ничего не изменил, кроме добавления эха, и он все еще работает, когда я отменил свои изменения и перезапустил снова. Странная вещь, которую я когда-либо видел.
Одна вещь, которую я понял, заключается в том, что часть XmapMap "переназначить Caps Lock to Escape" всегда работала. Это был просто обмен Удалить / Меню, который не удался. Я оставлю этот вопрос открытым на тот случай, если у кого-то еще возникнет такая же проблема, поскольку я на самом деле не знаю, почему проблема прекратилась.
Ответы:
Я знаю, что это глупо, но в качестве обходного пути вы могли бы просто начать автоматически
xmodmap ~/.Xmodmap
.Также вы можете проверить
/etc/gdm/Xsession
строкуusermodmap="$HOME/.Xmodmap"
и, если ее нет, просто добавить ее в конец файла. Если вы единственный пользователь системы, просто внесите свои изменения/etc/X11/Xmodmap
.источник
Settings->Session and Startup
или что-то в этом роде.Поздно на вечеринку, но это сводило меня с ума также; и, как бы я ни был упрям, сдаваться нельзя.
В основном это то, что я пытался (как мой пользователь или root, если это необходимо)
(Собственно, добавление
xmodmap
команды в~/.bashrc
работало, но для этого требуется запускать терминал каждый раз после входа в систему)Несколько лет назад (?)
xkb
Был выбран для работы с сопоставлением и настройкой ключей (взаимодействием с X), ноxmodmap
мог также запросить изменения, связанные с ключами, в X после того, как онxkb
выполнил свою работу во время инициализации сеанса X.Проблема в том, когда должны произойти эти настройки xmodmap?
Это , кажется , эти файлы выше обрабатывается слишком рано в процессе, и либо X не был готов принять Xmodmap изменения или Х бы переписать их.
Примечание: я добавил некоторое «отслеживание» к этим файлам, чтобы убедиться, что они действительно запущены в какое-то время!
Решение, которое, кажется, работает
.desktop
Сначала я не хотел добавлять файл (простого однострочного сценария должно быть достаточно), но это работает, так что вот оно.Решение приходит из Как переназначить или поменять местами специальные клавиши клавиатуры в Linux? «Решение 1»
В основном создайте
~/.config/autostart/my-xmodmap.desktop
файл и вставьте в него:замените его
me
именем пользователя (обратите внимание, что я не стал пытаться~/
или$HOME
вместо него может работать одинаково хорошо/home/me
, и полный путь к xmodmap, скорее всего, не нужен ...), и добавьте бит execВ
~/.Xmodmap
этом случае команды xmodmap должны быть в файле (либо использовать-e
опцию, либо выбрать другое имя файла!). Выйдите и вернитесь.Обратите внимание, что вы можете создать стартовую программу из «Startup Applications».
Другим решением было бы забыть xmodmap и научиться настраивать
xkb
!Изменить (снова)
Иногда, может быть, 25% входов в систему,
xmodmap
кажется, все еще не работает - в то время как команда фактически выполняется (трекер доказывает это). Единственный вывод, к которому я мог бы прийти в это время, состоит в том, чтоxkb
процесс действительно запаздывает в процессе входа в систему и может завершиться после егоxmodmap
запуска. Выглядит как состояние гонки ... Итак, наконец, я изменилexec
строку файла автозапуска рабочего стола на(обратите внимание,
&
)mystart
это скрипт в новом каталоге, которыйbin
я создал, который содержити
Сценарий спит 5 секунд, прежде чем запустить xmodmap, и отслеживает его запуск (в файле
/tmp/xmodmap-has-run
).Надеюсь, это все!
источник
Вот, возможно, лучший ответ тогда: http://cweiske.de/howto/xmodmap/ar01s06.html
Возможно, вам придется немного подправить его, чтобы работать на вас, но инструкции все есть.
источник
/etc/gdm/Xsession
), строки, которые говорит добавить, уже есть в нем.Возможно, у вас есть синтаксическая ошибка в вашем
~/.Xmodmap
файле?Попробуйте запустить:
Это должно вызвать ошибку, если таковые имеются.
источник
У меня была такая же странная проблема, когда я пытался запустить свой Xmodmap при входе в сеанс (ubuntu 13.04). Я наконец заставил его работать с файлом .xinitrc в моей домашней папке, куда я положил свою команду, но с абсолютными путями к ней, то есть:
/ usr / bin / xmodmap /home/MYNAME/.Xmodmap
Затем мне пришлось перезагрузить компьютер (а не просто заново), чтобы он был выполнен.
источник