Я встановлюю openbox на своєму ноутбуці під управлінням Linux Mint 13. Я хочу, щоб моя клавіша Caps Lock діяла як додаткова клавіша управління. Я помістив потрібні налаштування у свій ~/.Xmodmap
файл і перевірив це, запустивши
xmodmap ~/.Xmodmap
Працює правильно.
Однак, коли я переходжу на свою сесію openbox, цих ключових змін немає. Запуск вищевказаної xmodmap
команди змушує її працювати знову, але я хочу, щоб вона сталася автоматично при запуску.
Що цікаво, це те, що я додав тестову zenity
команду як наступну до свого ~/.config/openbox/autostart
файлу
zenity --info --text=Hello
Це створює невелике діалогове вікно і закривається лише після закриття діалогового вікна.
Тепер, коли я переходжу на свій сеанс openbox, Caps Lock виконує функцію клавіші Ctrl, поки діалогове вікно зенності не закриється. Після закриття цього діалогового вікна 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
файл?