Замініть ярлик для всієї системи для ярлика для додатка


11

Чи є спосіб надати комбінацію клавіш, визначену в додатку, пріоритет перед ярликом для всієї системи з тим самим прив'язкою клавіш?

Бажана поведінка. Коли деякі клавіші натиснуті, перевірте, чи хоче сфокусований додаток щось робити (і якщо так, зробіть це). Якщо ні, перевірте, чи є ярлик системи для деяких клавіш, а потім зробіть це.

Що в даний час відбувається:F11 у меню налаштувань клавіатурних скорочень я встановив "перемикання повної екрана". У Chrome F11слід активувати власний режим повноекранного режиму Chrome, але натомість його замінює загальносистемний ярлик, тобто Chrome стає повноекранним (панель GNOME та рядок заголовка зникає), але не переходить у режим повноекранного режиму Chrome (де також вкладки, адресна панель та панель закладок) зникати).

(Побічна примітка: Firefox не має тієї ж проблеми, але це, здається, тому, що повноекранний режим FF такий же, як і / спрацьовує повноекранний вікно менеджера)


Перше питання, яке мені спадає на думку; що розмовляє з ОС про натискання клавіш, програму чи X / Wayland? Мені здається, що X буде обробляти натискання клавіш і, якщо потрібно, обробляти його, перш ніж передати його у вікно, на яке чекає ваша програма. Друге питання - як би X дізнався, чи змінився додаток, і як би він дізнався, якщо зміна відбулася безпосередньо через натискання клавіші? Я був би схильний вийти на кінцівку і сказати, що вам це не пощастило.
HellionWisp

Відповіді:


2

Відмова: Це не зовсім те, що ви хочете, але я витратив надто багато часу на це, щоб не публікувати його, і, можливо, хтось інший може ним скористатися.

Я отримав, наскільки Ctrl + F11 є повноекранним скрізь, окрім Chromium, де це повноекранний хром Chromium!

  1. Потяг думки

Я подумав, що мені вдасться обдурити менеджер вікон, якщо я буду використовувати xdotoolта надсилати команду безпосередньо до хромованого вікна - безрезультатно.

Тоді я подумав, що мені вдасться змінити комбінацію клавіш на Google Chrome, але це здається жорстким кодом - черговий глухий кут.

  1. Що залишає нас із цим

Встановіть xdotoolдля імітації натискань клавіатури

sudo apt-get install xdotool

перенастройте ярлики клавіатури Ubuntu на щось довільне, що ми ніколи не вводимо, але може бути використаним у сценарії

Налаштування -> Пристрої -> Клавіатура

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

комбінації клавіш - повний екран

а потім натисніть клавішу +та додайте спеціальний ярлик клавіатури

діалогове вікно спеціальної ярлика

відредагуйте сценарій

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

зробити його виконуваним

chmod +x /home/user/fullscreen.sh

  1. Висновок

Здається, не вдасться обдурити керівника вікон та пропустити набір клавіш, але, безумовно, можливі обхідні шляхи. У цьому випадку Google зробив комбінацію на повноекранному клавіатурі не налаштованою, тому вона не відповідає позначці

Тепер за допомогою Ctrl + F11 менеджер вікон керує поведінкою повноекранного режиму, за винятком хрому.


1
Подумайте, що ви праві, що це найкраще, на що ми можемо сподіватися - ганьба, що Chrome / ium не підтримує спеціальні комбінації клавіш. Варто зауважити: вибір цього клавіатури має значення для цього фокусу! У мене вже було Ctrl + F11, пов'язане з чимось іншим. Спробував із Shift + Alt + F11, який не працював. Хоча Alt + F11 добре працював. (Напевно, він намагався зробити Shift + Ctrl + Alt + F11)
fred
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.