Как да свържете глобалните HotKeys към WINE програмата под Linux
Инсталирали ли сте някога Windows програма в Linux под WINE, само за да откриете, че вече не свързва системните клавиши с широк обхват? HTG има работата около вас, която търсите.
Изображение от djeucalyptus
Преглед
Всеки, който дори е помислил за идеята за преминаване към Linux, вероятно много бързо се сблъсква с проблема, че има едно приложение за Windows, което трябва да функционира. Вече ви показахме, че можете да постигнете това с помощта на WINE.
За този писател приложението е приложение за текст-към-говор, което използва двигателя на Microsoft SAPI4. Инсталирането на програмата под WINE беше леко, но при завършване бързо открих, че горещите клавиши, използвани за задействане на различните действия на програмата (започват да четат, спират да четат и т.н.), не функционират и това е известен проблем с WINE.
Радвам се да кажа, че след еоните на търсене най-накрая намерих решение под формата на GNU програма, която може да манипулира интерфейса на X.org, използвайки местни функции. Въпреки че не е единственият по рода си, xdotool е най-лесният за работа и вече е в репозиторите на Ubuntu / Mint..
xdotool
Програмата xdotool може да изпълнява много задачи, свързани с прозореца от CLI, с това казано, единствените две, които ще използваме са "search" и "key". Функцията „търсене“ прави само това, търси прозорец / идентификатор според параметрите, които сте задали за него. Функцията "ключ" ви дава възможност да симулирате клавишна стрелка към идентификатор на прозорец.
Инсталиране и конфигуриране
Предполага се, че вече сте инсталирали WINE и програмата, от която се нуждаете. В този пример ние ще използваме Balabolka като "Windows" приложение, защото това е добра безплатна реплика на оригиналната програма, от която се нуждаех това решение (втори речев център).
Ако сте избрали да използвате Balabolka, както и, трябва да активирате способността й за бързи клавиши.
Забележка: Може да искате да инсталирате TTSReader или втори речеви център дори в демо режим, така че SAPI гласовете да бъдат инсталирани.
Отворете програмата и преминете към настройки (Shift + F6) в „Опции“ -> „Настройки“.
Отидете в раздела за бързи клавиши и поставете отметка в квадратчето „Използвай глобалните клавишни комбинации“.
Кликнете върху OK.
Оставете го да работи във фонов режим, така че да може да свърши работата си, когато прикачим натискането на клавишите към него.
Инсталиране на xdotool чрез издаване:
sudo apt-get install xdotool
Глобално свързване
Програмата xdotool сама по себе си не ни помага да се свържем глобално с клавишните комбинации, но можем да използваме вече съществуващата система за клавишни комбинации. Това, което ще направим, е да създадем прост скрипт, който използва xdotool за изпращане на желаните клавиши в програмата Balabolka и да го извика от системата за бързи клавиши на OS.
Създайте скрипт, наречен "start_read.sh" със следното съдържание:
xdotool ключ --откривател $ (търсене на 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, подадено от "search", само към този 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 програмата, която задава глобалните клавишни комбинации, се нарича „Клавиатура“.
Преминете към раздела „Преки пътища“ и изберете „Персонализирани преки пътища“.
Кликнете върху знака плюс, за да добавите пряк път. Дайте му име и под „Команда” дайте пълния път до един от скриптовете, които сме създали по-горе. Повторете процеса за втория скрипт.
Сега кликнете върху думата „Disabled“, за да получите опция за задаване на ново комбо.
Забележка: Повтаряйки се в бележката от секцията Mint, можете, ако желаете, да използвате нещо друго, освен това по подразбиране на програмата. В известен смисъл създаването на "преначертаване" на ключови свързвания, които в зависимост от използваната от вас програма биха били извън вашия контрол.
Бележки на автора
Всеки път, когато сериозно обмислях преместването в Linux, този въпрос беше първият в моя списък с проблеми. Не е, че Linux няма проблеми, но това беше истинската пречка за мен. Опитвах многократно, попитах приятели / хора на терена и дори се превърнах в изобилие ... Щастлива съм, че сагата е свършила и че душата ми най-накрая може да си почине.
Надявам се, че съм помогнал на някой там да не мине през същите изпитания.
Док Браун: Отне ми почти тридесет години и цялото ми семейно състояние да реализирам визията на този ден. Боже мой, дали е било толкова дълго?