If-Koubou

Как да обвържем глобалните HotKeys с програма WINE под Linux

Как да обвържем глобалните HotKeys с програма WINE под Linux (Как да)

Някога сте инсталирали програма на Windows под Linux под WINE, само за да откриете, че тя вече не свързва системните горещи клавиши? HTG има работата, която сте търсили.

Image от djeucalyptus

Преглед

Всеки, който дори е мислил за идеята за преминаване към Linux, вероятно е много бързо да срещне проблема, че има едно приложение за Windows, което НЕ трябва да функционира. Вече ви показахме, че можете да постигнете това чрез WINE.

За този писател, приложението е приложение "Текст към слово", което използва Microsoft SAPI4 двигател. Инсталирането на програмата под WINE беше бриз, но при завършване бързо разбрах, че горещите клавиши, използвани за задействане на различните действия на програмата (започнете да четете, спирайте четенето и т.н.), не функционират и това е известно проблем с WINE.

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

xdotool

Програмата xdotool може да изпълнява много задачи, свързани с прозореца от CLI, като каза, че само две от тях ще използват "търсене" и "ключ". Функцията "търсене" прави точно това, търси идентификатор на прозорец / и според параметрите, които сте задали за него. Функцията "ключ" ви позволява да симулирате ударен ключ на ID на прозореца.

Инсталация и конфигурация

Предполага се, че вече сте инсталирали WINE и програмата, от която се нуждаете. В този пример ще използваме Balabolka като приложение "Windows", защото това е добра безплатна реплика на оригиналната програма, която имах нужда от това решение за (2тия център за реч).

Ако сте избрали да използвате Balabolka, трябва да активирате и възможностите на клавишните комбинации.
Забележка: Може да искате да инсталирате TTSReader или 2-ви център за реч, дори и в демо режим, така че SAPI гласовете да бъдат инсталирани.

Отворете програмата и отворете настройките (Shift + F6) под "Опции" -> "Настройки".

Отворете раздела "горещи клавиши" и поставете отметка в квадратчето за "Използване на глобални бързи клавиши".

Кликнете върху OK.

Оставете го да работи във фонов режим, така че да може да изпълнява задачата си, когато вкараме натиснат клавишите.

Инсталирайте xdotool като издавате:

sudo apt-get инсталирате xdotool

Глобално обвързване

Програмата xdotool само по себе си не ни помага да се свързваме глобално с клавишни комбинации, но можем да използваме вече съществуващата система за бързи клавишни комбинации. Това, което ще направим, е да създадем прост скрипт, който използва xdotool, за да изпрати натисканията на клавишите, които искаме, към програмата Balabolka и да я извикаме от системата за бързи клавиши на OS.

Създайте скрипт, наречен "start_read.sh" със следното съдържание:

xdotool ключ - прозорец $ (xdotool search --limit 1 - всички - $ $ (pgrep balabolka) - име Balabolka) "ctrl + alt + F9"

Създайте друг скрипт този път наречен "stop_read.sh" със следното съдържание:

xdotool ключ - прозорец $ (xdotool search --limit 1 - всички - $ $ (pgrep balabolka) - име Balabolka) "ctrl + alt + F7"

Забележка: Знам, че това е една линейка, която не изисква скрипт, но програмата "Кратки клавиши" на Mint / Ubuntu не е оказала съдействие само с директно извикване. Ако знаете как да го направите, моля, споделете в коментарите по-долу.

Спиране на тази команда на нейните компоненти, това, което виждаме, е:

  • Частта "-pid $ (pgrep balabolka)" изпълнява "pgrep" на програмата, която искаме да използваме, за да установим идентификационния й номер. Това ще намали xdotool файла на "търсене" само до този PID.
  • "Xdotool search -limit 1 -all ... -name Balabolka" част ограничава още повече търсенето на xdotool и ограничава връщаните отговори до 1. Както в нашия случай, няма значение кой от прозоречните идентификатори се връща на Програмата, ограничаваща резултата, действа като форматор за командата "ключ". Може да откриете, че трябва да масажирате тази част повече, ако има значение за програмата, която използвате.
  • Фрагментът "xdotool key -window% WINDOW_ID%" ctrl + alt + F7 "" изпраща желаното натискане на клавиша до прозореца, който е получен от предишните части.

Направете скриптовете изпълним.

Linux Mint Клавиатурапреки пътища

Под Linux Mint, глобалните клавишни комбинации се задават в програмата "Клавишни комбинации".

След като отворите кликнете върху "Добавяне", за да създадете нов персонализиран пряк път:

Дайте му име и под "Команда" дайте пълния път към един от скриптовете, които сме създали по-горе. Повторете процеса за втория скрипт.

Сега, в колоната "Бързи команди", кликнете върху думата "Disabled", за да получите опцията за задаване на ново комбинирано клавиш.
Забележка: Ако желаете, можете да използвате нещо различно от стандартната. В известен смисъл, създавайки "пренебрегване" на ключовите свързвания, които в зависимост от програмата, която използвате, в противен случай биха били извън контрола ви.

Натиснете комбото, което сте избрали, и чуйте магията.

Клавиатура за Ubuntu

Под Ubuntu програмата, която определя глобалните клавишни комбинации, се нарича "клавиатура".

Превключете в раздела "Бързи команди" и изберете "Персонализирани преки пътища".

Кликнете върху знака плюс, за да добавите пряк път. Дайте му име и под "Команда" дайте пълния път към един от скриптовете, които сме създали по-горе. Повторете процеса за втория скрипт.
Сега кликнете върху думата "Disabled", за да получите опцията за задаване на ново комбинирано клавиш.

Забележка: Повторение на бележката от секцията Mint можете, ако желаете, да използвате нещо различно от стандартната. В известен смисъл, създавайки "пренебрегване" на ключовите свързвания, които в зависимост от програмата, която използвате, в противен случай биха били извън контрола ви.

Бележки на автора

Всеки път, когато сериозно обмислях да се прехвърля на Linux, този въпрос беше първият от списъка ми с проблеми. Не, че Linux няма проблеми, но това беше истинската пречка за мен. Опитах се отново и отново, попитах приятели / хора в областта и дори ги превърнах в глас ... Щастлив съм, че тази сага приключи и че душата ми най-после може да си почине.
Надявам се, че съм помогнал на някого да не преживява същото изпитание.

Доктор Браун: Отне ми почти тридесет години и цялото ми семейно състояние, за да осъзная визията за този ден. Боже мой, беше ли толкова дълго?