Я устанавливаю openbox на моем ноутбуке под управлением Linux Mint 13. Я хочу, чтобы мой ключ Caps Lock действовал как дополнительный управляющий ключ. Я поместил необходимые настройки в свой ~/.Xmodmap
файл и проверил его, запустив
xmodmap ~/.Xmodmap
Работает правильно.
Однако, когда я перехожу в сеанс openbox, эти ключевые изменения отсутствуют. Запуск вышеуказанной xmodmap
команды заставляет ее работать снова, но я хочу, чтобы это происходило автоматически при запуске.
Что интересно, я добавил тестовую zenity
команду в свой ~/.config/openbox/autostart
файл как следующую
zenity --info --text=Hello
Это создает маленькое диалоговое окно и выходит только после закрытия диалога.
Теперь, когда я перехожу на сеанс openbox, Caps Lock действует как клавиша Ctrl, пока не закроется диалоговое окно zenity. Как только этот диалог закрывается, Caps Lock возвращается к своему поведению по умолчанию.
Я не нашел ничего об этом с Google, поэтому я прошу помощи здесь. Ребята, у вас есть идеи, что может пойти не так?
Обновить:
Я пытался понять это, и в своих экспериментах я скопировал свой /usr/bin/xmodmap
файл /usr/bin/xmodmap_
и заменил /usr/bin/xmodmap
файл следующим скриптом bash
#!/bin/bash
{
echo '-------'
date
echo xmodmap "$@"
} >> ~/xmodmap-calls
exec /usr/bin/xmodmap_ "$@"
Поэтому каждый раз, когда в системе запускается какой-нибудь чертов скрипт xmodmap
, я узнаю об этом.
После этого я перезагружаюсь и нахожу только одну запись в моем ~/xmodmap-calls
файле, которая является моей ~/.Xmodmap
, и которая ожидается. Итак, я решил, xmodmap
что это не переписывает мои изменения.
Затем, немного погуглив, познакомил меня с setxkbmap
командой, которая, очевидно, тоже может делать то же самое. Я также заменил этот исполняемый файл, аналогично xmodmap выше. И я получил команду преступника!
setxkbmap -option terminate:ctrl_alt_bksp
Я понятия не имею, что это делает, но после запуска xmodmap ~/.Xmodmap
(при котором мои настройки были применены правильно), если я запускаю указанную выше команду, мои изменения сбрасываются! Изменить : это оказывается очень смешно. Просто setxkbmap
команда без каких-либо аргументов, радостно перезаписывает мои изменения xmodmap ~/.Xmodmap
командой.
Теперь у меня есть две вещи, чтобы выяснить, откуда это setxkbmap
запускается и почему и как это исправить. Я все еще расследую, но могу серьезно помочь :)
Обновление 2
К черту xmodmap
. Я не могу понять, откуда setxkbmap
вызывается, но я нашел способ использовать setxkbmap
команду, чтобы заставить мой Caps Lock вести себя как Ctrl.
setxkbmap -option ctrl:nocaps
Просто перед запуском openbox. Работает великолепно. Клавиша Caps Lock продолжает действовать как клавиша Ctrl. xmodmap
никогда не запускается
Я оставлю этот вопрос открытым, чтобы кто-то, кто знает эти вещи, мог дать некоторое представление. Кроме того, для людей, которые сталкиваются с этим после меня :)
Обновление 3
Вот содержимое моего .config/openbox/autostart
, в соответствии с просьбой pedrosaurio.
#!/bin/bash
# Set the wallpaper.
feh --bg-scale /wall.png
# Set default brightness.
xbacklight -time 1 '=40'
# Compositing.
xcompmgr &
# The panel.
tint2 &
# Start a terminal too.
roxterm &
Насколько я могу судить, это не имеет ничего общего с клавиатурой. Кроме того, вот сценарий, который запускает мою сессию: (Запуск от lightdm)
#!/bin/bash
setxkbmap -option ctrl:nocaps
exec openbox-session
autostart
файл?