Домашня » як » Як прив'язати глобальні гарячі клавіші до програми WINE під Linux

    Як прив'язати глобальні гарячі клавіші до програми WINE під Linux

    Ви коли-небудь встановлювали програму Windows у Linux під WINE, тільки щоб виявити, що вона більше не прив'язує системні гарячі клавіші? HTG має роботу навколо, яку ви шукали.

    Зображення джекаліпта

    Огляд

    Кожен, хто навіть думав про ідею переходу на Linux, швидше за все, дуже швидко зіткнувся з проблемою, що існує таке додаток для Windows, яке потрібно функціонувати. Ми вже показали вам, що ви можете виконати це за допомогою WINE.

    Для цього письменника, додаток був додатком Text-To-Speech, який використовує движок Microsoft SAPI4. Встановлення програми під WINE було легким, однак після завершення я швидко виявила, що гарячі клавіші, що використовуються для запуску різних дій програми (початок читання, припинення читання тощо), не функціонували і що це відома проблема з WINE.

    Я радий сказати, що після еонів пошуку, я, нарешті, знайшов рішення у вигляді утиліти GNU, яка може керувати інтерфейсом X.org, використовуючи власні функції. Хоча це і не єдиний у своєму роді, xdotool - це той, який найпростіше працювати і вже перебував у репозиторіях Ubuntu / Mint..

    xdotool

    Програма xdotool може виконувати багато завдань, пов'язаних з вікном, з CLI, при цьому тільки дві ми збираємося використовувати "search" і "key". Функція "пошук" робить саме це, шукає вікно / ідентифікатор відповідно до параметрів, які ви встановили для нього. Функція «ключ» дозволяє імітувати обведення ключа до ідентифікатора вікна.

    Встановлення та налаштування

    Передбачається, що ви вже встановили WINE і потрібну вам програму під нею. У цьому прикладі ми будемо використовувати Balabolka як "Windows" додаток, тому що це хороша безкоштовна копія оригінальної програми, для якої мені було потрібно це рішення (2-й мовний центр).

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

    Відкрийте програму та перейдіть до параметрів (Shift + F6) у розділі "Параметри" -> "Налаштування".

    Перейдіть на вкладку гарячих клавіш і встановіть прапорець "Використовувати глобальні гарячі клавіші".

    Натисніть кнопку OK.

    Залиште його у фоновому режимі, щоб він міг виконувати свою роботу, коли ми підключаємо натискання клавіш до нього.

    Встановити xdotool шляхом видачі:

    sudo apt-get встановити xdotool

    Глобальне зв'язування

    Програма xdotool сама по собі не допомагає нам глобально прив'язувати гарячі клавіші, але ми можемо використовувати вже існуючу систему гарячих клавіш ОС. Що ми будемо робити, це створити простий скрипт, який використовує xdotool для відправки натискань клавіш ми хочемо на програму Balabolka і викликати її з системи гарячих клавіш ОС.

    Створіть скрипт під назвою "start_read.sh" із таким вмістом:

    xdotool key - вікно $ (пошук xdotool --лім 1 - усі --pid $ (pgrep balabolka) - ім'я Балаболка) "ctrl + alt + F9"

    Створити інший сценарій на цей раз, який називається "stop_read.sh", з таким вмістом:

    ключ xdotool - вікно $ (пошук xdotool --лім 1 - усі --pid $ (pgrep balabolka) - ім'я Балаболка) "ctrl + alt + F7"

    Примітка: Я знаю, що це один лайнер, який не вимагає сценарію, але програма "Клавіатурні скорочення", "Mint / Ubuntu", не співпрацювала з її безпосереднім викликом. Якщо ви знаєте, як це зробити, надішліть у коментарях нижче.

    Гальмуючи цю команду на її компоненти, ми бачимо:

    • Частина “-pid $ (pgrep balabolka)” виконує “pgrep” на програмі, яку ми хочемо використовувати, щоб встановити ідентифікатор процесу. Це дозволить звузити xdotool, що подається на "пошук", тільки для цього PID.
    • Частина “xdotool search -limit 1 -all… -name Balabolka” ще більше звужує поле пошуку xdotool і обмежує повернені відповіді на 1. Як і в нашому випадку, не має значення, який з ідентифікаторів вікна, повернутих з Програма, що обмежує результат, діє як форматор для команди "ключ". Ви можете виявити, що вам потрібно більше масажувати цю частину, якщо це має значення для програми, яку ви використовуєте.
    • Частина “xdotool -window% WINDOW_ID%“ “ctrl + alt + F7” ”, надсилає потрібну клавішу до вікнаID, який був отриманий попередніми частинами.

    Зробити виконуваний скрипт.

    Linux Mint Keyboard ярлики

    Під Linux Mint, глобальні гарячі клавіші встановлюються в програмі "Клавіатурні скорочення".

    Після відкриття Натисніть "Додати", щоб створити новий спеціальний ярлик:

    Дайте йому ім'я і в розділі "Команда" дайте повний шлях до одного з сценаріїв, які ми створили вище. Повторіть процес для другого сценарію.

    Тепер у стовпці "Ярлики" натисніть слово "Вимкнено", щоб отримати можливість встановити новий комбо комбінації.
    Примітка: Якщо ви бажаєте, ви можете використовувати щось інше, ніж за замовчуванням програми. У певному сенсі, створюючи "перепризначення" ключових прив'язок, які в залежності від використовуваної вами програми, могли б бути поза вашим контролем.

    Натисніть комбо, які ви вибрали, і почуйте магію.

    Клавіатура Ubuntu

    Під Ubuntu програма, яка встановлює глобальні гарячі клавіші, називається "Клавіатура".

    Перейдіть на вкладку "Ярлики" та виберіть "Спеціальні ярлики".

    Натисніть знак "плюс", щоб додати ярлик. Дайте йому ім'я і в розділі "Команда" дайте повний шлях до одного з сценаріїв, які ми створили вище. Повторіть процес для другого сценарію.
    Тепер натисніть на слово "Вимкнено", щоб отримати можливість встановити новий комбо комбінації ключів.

    Примітка: Повторюючи на примітці з розділу Монетний двір, ви можете, якщо хочете, використовувати щось інше, ніж за замовчуванням програми. У певному сенсі, створюючи "перепризначення" ключових прив'язок, які в залежності від використовуваної вами програми, могли б бути поза вашим контролем.

    Авторські нотатки

    Кожен раз, коли я серйозно розглядав перехід до Linux, це питання було першим у моєму списку проблем. Це не те, що у Linux немає проблем, але це була справжня перешкода для мене. Я знову і знову пробував, запитував друзів / людей на полі і навіть перетворився на щедрість ... Я щаслива, що ця сага закінчена, і моя душа може нарешті відпочити.
    Я сподіваюся, що я допоміг комусь там, щоб не пройти через ті самі випробування.


    Док Браун: Мені знадобилося майже тридцять років і вся моя родина, щоб здійснити бачення того дня. Боже мій, так довго?