У меня есть небольшая проблема. Я хотел переназначить некоторые горячие клавиши из моей предыдущей системы, но я не могу заставить их работать должным образом xbindkeys
.
xbindkeys
распознает комбинацию, но команда не запускается.
Если я использую команду
xdotool key braceleft
Он выводит мне правильный {
знак в консоли. Однако, если я использую ту же команду в xbindkeys, ничего не произойдет. Если я заменю команду на firefox
нее, она будет работать правильно и откроет firefox, так что я думаю, что xbindkeys
работает.
Я хочу добиться следующего:
Я хочу напечатать символ {
в активном окне с помощью
Alt_R+ 7или Alt_Left+ Ctrl+, 7чтобы я мог использовать оба. Я знаю, что Alt_R(AltGr) - правильный путь, но на немецких клавиатурах сложно набрать скобу с помощью AltGrклавиши (Alt_R), поэтому я ДОЛЖЕН использовать вместо нее Alt_L+ Control+ 7(как раньше в предыдущей системе). Я как-то заставил его работать должным образом в 12.04, но я не могу заставить его работать в 14.04.
Какие-либо предложения? Я попробовал несколько команд. Все они работали в консоли, но ни один из них не работал при исполнении xbindkeys
xdotool type '{'
xdotool key braceleft
xdotool key ISO_Level3_Shift+7
xvkbd -xsendevent -text '{'
xvkbd -xsendevent -text '\[Alt_R]+7'
Это мой конфиг, который не будет работать
"xdotool key braceleft"
Control+Alt + 7
Тем не менее, это работает:
"firefox"
Control+Alt + 7
Решение Править
Когда я попробовал еще несколько вещей, я заметил, что xdotool запускается слишком рано. Я изменил конфиг так:
"sleep 1 && xdotool type --delay 15 '{'"
Control+Alt + 7
ТЕПЕРЬ отправляет правильный знак {в активное окно. Теперь осталось только уменьшить сон и задержку до работоспособного значения, потому что 1 секунда кажется слишком длинной :)
** Дополнительная информация ** Ну, теперь мне удалось найти подходящие значения. ОДНАКО это работает только в том случае, если вы отпускаете ключи до тех пор, пока продолжительность сна не закончится. Если вы слишком медленный, если не будет работать.
Это мой текущий конфиг для всех неудобных немецких символов AltGr
"sleep 0.2 && xdotool type --delay 15 '{'"
Control+Alt + 7
"sleep 0.2 && xdotool key --delay 15 at"
Control+Alt + q
"sleep 0.2 && xdotool type --delay 15 '€'"
Control+Alt + e
"sleep 0.2 && xdotool type --delay 15 '['"
Control+Alt + 8
"sleep 0.2 && xdotool type --delay 15 ']'"
Control+Alt + 9
"sleep 0.2 && xdotool type --delay 15 '}'"
Control+Alt + 0
"sleep 0.2 && xdotool type --delay 15 '~'"
Control+Alt + plus
Однако, если вы хотите набрать несколько знаков @ (например), вы должны нажать Ctrl + Alt + Q, как и предполагалось, но отпустить все клавиши и затем нажать ее снова. Это, однако, намного, намного лучше, чем отсутствие опции Control + Alt вместо AltGr, но это не так эффективно, как я тоже использовал. Может быть, я найду решение для этого тоже.
xdotool
повторять клавишу, пока она удерживается?
xdotool getactivewindow key Home