Override system-wide shortcut for application-specific shortcut

Is there в way to give в keyboard shortcut defined in an application precedence over в system-wide shortcut with the same key binding?

Desired behaviour: When some keys пахал pressed, check if the focussed application wants to do anything (and if so, do it). If not, check if there is в system shortcut for some keys and then do that.

What currently happens: I have F11 set схвати 'toggle fullscreen' in the settings меню for keyboard shortcuts. In Чроме Ф11 should включи тебе ChromВs own fullscreen mode, but instead is overridden by the system-wide shortcut, i.e. Chrome becomes fullscreen (GNOME панель and title бар vanish) but does not enter ChromВs fullscreen mode (where the tabs, address бар and bookmarks бар also vanish).

(Side заметил: Firefox does not have the same problem, but this seems to be because FF fullscreen is the same as/is triggered by the window менеджер fullscreen)

11
задан 10 March 2015 в 12:30

1 ответ

Отказ от ответственности: Это не точно, что Вы хотите, но я провел слишком много времени на этом для не регистрации его, и возможно кто-то еще может использовать его.

Я добрался до Ctrl + F11 является полным экраном везде, но Хром, где это - полный экран Хрома!

  1. Ход мыслей

Я думал, что смог обманывать менеджер окон, если я использую xdotool и отправьте команду непосредственно в окно Chrome - напрасно.

Затем я думал, что смог изменять сочетание клавиш в Google Chrome, но это кажется hardcoded - другой тупик.

  1. Который оставляет нас с этим

Установка xdotool моделировать нажатия клавиатуры

sudo apt-get install xdotool

реконфигурируйте Горячие клавиши Ubuntu к чему-то произвольному, которое мы никогда не вводим, но применимо в сценарии

Настройки-> Устройства-> Клавиатура

Прокрутите вниз и отредактируйте полноэкранный режим Переключателя к Ctrl + Alt + 1 и затем хит + и добавьте пользовательское сочетание клавиш

keyboard shortcuts - fullscreen

и затем хит + и добавьте пользовательское сочетание клавиш

dialog of custom shortcut

отредактируйте сценарий

nano /home/user/fullscreen.sh


#!/bin/bash
export DISPLAY=:0
windowname=$(xdotool getactivewindow getwindowname | cut -d "-" -f 2)
if [[ $windowname != *"Chromium"* ]]
then
xdotool keydown Ctrl keydown Alt key 1 keyup Alt keyup Ctrl
else
xdotool search --onlyvisible --class "Chromium" windowfocus 
sleep 0.2
xdotool key F11
fi

сделайте это executeable

chmod +x /home/user/fullscreen.sh

  1. Заключение

Кажется невозможным обмануть windowmanager и провезти контрабандой нажатие клавиши, но существуют, конечно, возможные обходные решения. В этом случае Google сделал полноэкранное сочетание клавиш non-configureable, таким образом, это почти соответствует метке

Теперь с Ctrl + F11 windowmanager управляет полноэкранным поведением кроме хрома.

2
ответ дан 23 November 2019 в 04:11

Другие вопросы по тегам:

Похожие вопросы: