Правильное место для размещения xmodmap ~/.Xmodmap(чтобы ваши изменения читались при запуске) находится в ~/.xinitrc(см. Пояснение ниже), хотя вы можете поочередно поместить xmodmapкоманду в качестве элемента запуска ( /usr/bin/xmodmap /home/user/.Xmodmap). Я могу сказать, что для 12.04 (и предположительно 12.10) эти две альтернативы определенно работают, так как они читаются в любом случае после того, как вы вошли в систему lightdm. (Я изменил Return to Right Shift , и изменения вступили в силу только после ввода моего пароля и входа в систему).
Обратите внимание: если вы используете Xfce, в официальном FAQ по Xfce указано, что вам, возможно, придется создавать элемент автозагрузки вместо использования ~/.xinitrc, и что вам, возможно, придется отложить выполнение, чтобы xmodmapизменения не были перезаписаны setxkbmap. Вы можете использовать задержку для достижения этого в вашей записи запуска:
/bin/bash -c "sleep 20; /usr/bin/xmodmap /home/$USER/.Xmodmap"
(Для записи при запуске необходимо указать абсолютные пути)
Каждый раз, когда setxkbmapзапускается для изменения раскладки клавиатуры, вам придется xmodmap ~/.Xmodmapснова запускать в терминале.
Создание ~/.xinitrc
Создайте файл в вашей домашней папке .xinitrcс именем
touch .xinitrc
и поместите в него:
xmodmap ~/.Xmodmap
В вашем Xmodmapфайле не должно быть записей в xmodmap -e " "стиле, который используется в терминале для временной установки значений. Должны быть записи в этом формате:
keycode 65 = Tab
keycode 23 = Space
Часто бывает непонятно, какие из различных Xфайлов (например .xprofile, .xinitrcи т. Д.) Читаются при запуске, но .xinitrcкажется, что они все еще читаются в 12.04, тогда как .Xmodmapили .xinputrcне читаются сами по себе.