Мне известен ряд способов переназначения комбинаций клавиш в Ubuntu на глобальном уровне (например, глобальное переназначение Ctrl + S для отправки Ctrl + D или что-то в этом роде), например, приложение xbindkeys . Однако мне нужен способ сделать это только для конкретного приложения . Например, что-то вроде «Переопределить Ctrl + S для отправки Ctrl + D, но только в Chrome ». Есть ли способ сделать это?
shortcut-keys
x11
Дерек Турн
источник
источник
Ответы:
Ваша идея использования xbindkeys звучит хорошо:
в вашем
.xbindkeysrc
добавить новую привязку клавиш:Это будет выполнено,
"app_specific_keys.sh"
когда вы нажметеctrl+s
.Теперь вам нужно определить скрипт. Он должен получить активное окно и оттуда имя приложения, которое в данный момент имеет фокус:
Это бы сработало: он запрашивает у xdotool активное окно, затем запрашивает у xprop все свойства окна с заданным идентификатором, а затем сокращает очень подробный вывод до имени приложения (фактически его класса). Если вы запустите это в терминале гномов, вы получите
Теперь вам нужно определить действия для ваших приложений:
Итак, вместе сценарий
"app_specific_keys.sh"
может выглядеть так:Это должно работать, но, как и в этом вопросе , я должен признать, что это не так. Вероятно, потому что один из Compiz, Unity, Global Menu не работает хорошо с
--clearmodifiers
опцией xdotool. Обходной путь будет добавить сон перед вашим сценарием в Одере , чтобы иметь возможность отпустить клавиши самостоятельно: В ваших.xbindkeysrc
изменениях к этому сочетанию клавиша:Как примечание: это не будет работать, если вы хотите изменить ключи для программ, которые работают в терминале (например, vi или emacs в режиме консоли). Возвращенный класс приложения по-прежнему будет "Gnome-терминал".
Надеюсь, это поможет.
источник
xvkbd -xsendevent -text "\Cs"
. Это, похоже, не страдает от проблем, которые вы видели с xdotool.f
вызовxdotool key f
. Все еще ищу способ сделать это.xdotool type --window $(xdotool getwindowfocus) [keys]
использование опции --window и отправка в текущее активное окно НЕ приведут к рекурсивному поведению.autokey похож на AutoHotkey для Ubuntu. Вы можете писать скрипты на python и выполнять их с помощью сочетания клавиш и фильтра Windows (что делает его специфичным для псевдо-приложения). Ваш скрипт может управлять событиями клавиатуры и мыши и даже перемещать окна как дополнительное касание.
источник
autokey
ПУТЬ быстрее, чемxbindkeys
даже при включенном режиме обнаружения окна - немедленные действия предприняты. Недостаток: назначения кнопок мыши, кажется, не работают (я думаю, что это ошибка)