Чому моя команда xmodmap не запускається при запуску / вході?


10

Я хочу запускати цю команду кожного разу, коли я входжу (або кожен раз, коли я запускаю, якщо це не працює): xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'

Я спробував багато речей. Я поставив команду System > Preferences > Startup Applications. Я помістив його у .shфайл, позначив chmod +xі поклав цей файл System > Preferences > Startup Applications. Я поставив сценарій /etc/init.d. Я ставлю команди ~/.profile. Здається, нічого не працює.

Нарешті, я поклав це на своє ~/.profile:

touch test1
xmodmap -e 'keysym Delete = Menu' -e 'keysym Menu = Delete'
touch test2

І тест1, і тест2 створюються, але ключі все ще не перезаписані. Якщо я просто копіюю / вставляю команду і запускаю її вручну, вона працює чудово. Але він не працюватиме при вході. Будь-які ідеї?

Відповіді:


11

~/.profileпрацює на початку послідовності входу. Якщо на робочому середовищі налаштовано розкладку клавіатури, вона може замінити налаштування, які ви тільки що завантажили.

Помістіть свої настройки у файл під назвою ~/.Xmodmap:

keysym Delete = Menu
keysym Menu = Delete

У середовищі Gnome за замовчуванням в Ubuntu 10.04 під час наступного входу вам буде запропоновано завантажувати ~/.Xmodmap. Завантажте його і поставте галочку "не запитувати мене знову". Тоді ваш .Xmodmapдодаток буде застосовано після налаштувань за замовчуванням.


Дякую, це спрацювало чудово. Як із цікавості, як я повернусь до діалогу, у якому я перевірив "не запитуй мене більше", чи хотів би я в майбутньому?
Метью

1
@Matthew: Неперевірено: запустіть gconf-editor, перегляньте /desktop/gnome/peripherals/keyboard/generalта відредагуйте known_file_listзапис, щоб видалити .Xmodmap.
Жил 'ТАК - перестань бути злим'

Це працювало для мене на бета-версії Ubuntu 10.10, коли ви вперше відповіли на це питання. Я вчора зробив нову інсталяцію Ubuntu 10.10 і помістив ідентичний файл .Xmodmap у свою домашню папку. Коли я знову ввійшов у систему, я отримав діалогове вікно, завантажив .Xmodmap і поставив галочку, як і раніше. Але, схоже, не відбувається перезавантаження ключів. Я перевірив у gconf, і .Xmodmap, безумовно, знаходиться у відомому_файлі. Будь-які ідеї?
Матвій

Це також не працює для мене в Gnome 3.10.1 / Archlinux. Цікаво, чи щось не було відрегульовано в порядку Gnome завантажує розкладки клавіатури.
Калеб

Для того, щоб Gnome 3.10 більше не завантажував ~ / .xmodmap, я знайшов рішення, яке працювало на bbs.archlinux.org/viewtopic.php?pid=1194968#p1194968 : відключити плагін клавіатури Gnome. $ gsettings set org.gnome.settings-daemon.plugins.keyboard active false
plnx

2

Я виявив, що на згаданому вище місці в Gconf-редакторі назва переглянутої розкладки клавіатури повинна з’являтися двічі, один раз під "відомим_файлом" та один раз під "оновленнями". Щодо того, чому Ubuntu іноді вводить останній запис, а іноді не ... ну, це тримає вас на пальцях ніг, чи не так?

Між іншим, після безлічі досліджень я використав вищевказаний твіт, щоб повторно призначити ліву клавішу Windows. Я розміщую таке твердження у власному розкладі клавіатури, щоб зробити його копією клавіші ліва стрілка: -

код клавіші 133 = 0xFF51

(Перевірте, чи це правильні коди для вас, зайшовши в xev і натиснувши першу одну клавішу, а потім іншу.)

Це лише невеликий сенс, але, поки я перебуваю в Інтернеті, це дає мені зручну клавішу "Назад" - Alt + Win лівою рукою. Я можу це зробити, не дивлячись.


1
Алан написав: "Я виявив, що на згаданому вище місці в Gconf-редакторі ім'я переглянутої розкладки клавіатури повинно з’являтися двічі, один раз під" відомим_файлом "та один раз під" оновленнями "." Я можу підтвердити, що Алан правильно. Для Ubuntu 10.10 для того, щоб ваш файл ~ / .Xmodmap мав ефект, ".Xmodmap" повинен з'являтися як у списку "відомих_файлів", так і у списку "update_handlers" в / desktop / gnome / периферія / клавіатура / загальне в gconf -редактор. Спасибі, Алан.

1

Деякі системи шукають файл з ім'ям ~/.Xmodmapта виконують знайдені там команди. Спробуйте помістити ці рядки у цей файл:

keysym Delete = Menu
keysym Menu = Delete
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.