2Sep
Czy kiedykolwiek instalowałeś program Windows w Linuksie pod WINE, tylko po to, aby odkryć, że nie wiąże się już z systemowymi skrótami klawiszowymi? HTG ma pracę, której szukałeś.
Image by djeucalyptus
Przegląd
Każdy, kto nawet pomyślał o pomyśle przejścia na Linuksa, prawdopodobnie bardzo szybko napotkał problem, że istnieje ta jedna aplikacja Windows, którą POTRZEBUJESZ funkcjonować.Pokazaliśmy już, że możesz to zrobić za pomocą WINE.
Dla tego programu piszącego aplikacja była aplikacją Text-To-Speech, która wykorzystuje silnik Microsoft SAPI4.Zainstalowanie programu pod WINE było proste, jednak po jego zakończeniu szybko odkryłem, że klawisze skrótów używane do uruchamiania różnych działań programu( czytanie początkowe, zatrzymanie czytania itp.) Nie działały i że jest to znaneproblem z WINE.
Cieszę się, że po latach poszukiwań znalazłem rozwiązanie w postaci narzędzia GNU, które może manipulować interfejsem X.org przy użyciu natywnych funkcji. Choć nie jest to jedyny tego rodzaju, to xdotool jest najłatwiejszy do uzyskania i już znajduje się w repozytoriach Ubuntu / Mint.
xdotool
Program xdotool może wykonywać wiele zadań związanych z oknem z poziomu interfejsu CLI, z tym, że jedynymi dwoma, które będziemy wykorzystywać, są "szukaj" i "klucz".Funkcja "szukaj" właśnie to wyszukuje identyfikator okna zgodnie z ustawionymi dla niego parametrami. Funkcja "klucz" pozwala symulować naciśnięcie klawisza do identyfikatora okna.
Instalacja &konfiguracja
Zakłada się, że już zainstalowałeś WINE i program, którego potrzebujesz. W tym przykładzie użyjemy Balabolka jako aplikacji "Windows", ponieważ jest to dobra bezpłatna replika oryginalnego programu, dla którego potrzebowałem tego rozwiązania( drugie centrum mowy).
Jeśli zdecydowałeś się użyć także Balabolka, musisz aktywować jej klawisze skrótu.
Uwaga: Możesz zainstalować TTSReader lub drugie centrum mowy, nawet w trybie demo, aby zainstalować głosy SAPI.
Otwórz program i przejdź do ustawień( Shift + F6) w "Opcje" - & gt;"Ustawienia".
Przejdź do karty skrótów i zaznacz pole "Użyj globalnych klawiszy skrótu".
Kliknij OK.
Pozostaw go uruchomionego w tle, aby mógł wykonać swoje zadanie po tym, jak przechwycimy do niego naciśnięcia klawiszy.
Zainstaluj xdotool, wydając:
sudo apt-get install xdotool
Globalne powiązanie
Sam program xdotool nie pomaga nam w globalnym powiązaniu z klawiszami skrótów, ale możemy użyć istniejącego już systemu skrótu systemu operacyjnego. To, co zrobimy, to stworzyć prosty skrypt wykorzystujący xdotool do przesłania naciśnięć klawiszy do programu Balabolka i wywołania go z systemu skrótu systemu operacyjnego.
Utwórz skrypt o nazwie "start_read.sh" z następującą treścią:
xdotool key --window $( wyszukiwanie xdotool - limit 1 - all --pid $( pgrep balabolka) --name Balabolka) "ctrl + alt +F9 "
Stwórz kolejny skrypt tym razem o nazwie" stop_read.sh "z następującą treścią:
xdotool key --window $( xdotool search - limit 1 - all --pid $( pgrep balabolka) - name Balabolka)"ctrl + alt + F7 "
Uwaga: Wiem, że jest to jeden linijek, który nie wymaga skryptu, ale program" Mint / Ubuntu "Skróty klawiaturowe, nie współpracował z bezpośrednim wywołaniem go. Jeśli wiesz, jak to zrobić, podziel się poniższymi komentarzami.
Zahamowanie tego polecenia do jego składników, co widzimy:
- Część "-pid $( pgrep balabolka)", wykonuje "pgrep" na programie, którego chcemy użyć, aby ustalić jego identyfikator procesu. Spowoduje to zawężenie zbioru xdotool "search" do właśnie tego PID.
- "xdotool search -limit 1 -all. .. -name nazwa Balabolka", zawęa pole wyszukiwania xdotool jeszcze bardziej i ogranicza zwrócone odpowiedzi do 1. Jak w naszym przypadku nie ma znaczenia, który z okien identyfikatorów zwróconych zprogram, ograniczający wynik, działa jak formater dla komendy "klucz".Może się okazać, że musisz masować tę część bardziej, jeśli ma to znaczenie dla programu, którego używasz.
- "Klucz xdotool -window% WINDOW_ID%" część ctrl + alt + F7 "" wysyła żądane naciśnięcie klawisza do windowID, który został uzyskany przez poprzednie części.
Spraw, aby skrypty były wykonywalne.
Linux Mint Keyboard skróty
Pod Linux Mint globalne skróty klawiszowe są ustawione w programie "Skróty klawiszowe".
Po otwarciu Kliknij "Dodaj", aby utworzyć nowy niestandardowy skrót:
Podaj nazwę, a pod "Poleceniem" podaj pełną ścieżkę do jednego ze skryptów, które stworzyliśmy powyżej. Powtórz proces dla drugiego skryptu.
Teraz, w kolumnie "Skróty", kliknij słowo "Wyłączone", aby uzyskać opcję ustawienia nowego kombinowania klawiszy.
Uwaga: Możesz, jeśli chcesz, użyć czegoś innego niż domyślny program. W pewnym sensie tworzenie "remap" do powiązań klawiszy, które w zależności od programu, którego używasz, w innym przypadku byłyby poza twoją kontrolą.
Uderz w wybraną kombinację i usłysz magię.
Ubuntu Keyboard
Pod Ubuntu program ustawiający skróty klawiszowe nazywa się właśnie "Klawiatura".
Przejdź do zakładki "Skróty" i wybierz "Skróty własne".
Kliknij znak plus, aby dodać skrót. Nadaj mu nazwę, a pod "Command" podaj pełną ścieżkę do jednego ze skryptów, które stworzyliśmy powyżej. Powtórz proces dla drugiego skryptu.
Teraz kliknij słowo "Wyłączone", aby uzyskać opcję ustawienia nowego kombinowania klawiszy.
Uwaga: Powtarzając notatkę z sekcji Mennica, możesz, jeśli chcesz, użyć czegoś innego niż domyślny program. W pewnym sensie tworzenie "remap" do powiązań klawiszy, które w zależności od programu, którego używasz, w innym przypadku byłyby poza twoją kontrolą.
Uwagi autora
Za każdym razem, gdy poważnie rozważałem przejście na Linuksa, ten problem był pierwszym na mojej liście problemów. Nie chodzi o to, że Linux nie ma problemów, ale dla mnie to była prawdziwa przeszkoda. Próbowałem raz po raz, pytałem znajomych / ludzi w terenie, a nawet udało mi się zdobyć nagrodę. .. Cieszę się, że ta saga się skończyła i że moja dusza wreszcie może odpocząć.
Mam nadzieję, że pomogłem komuś, aby nie musiała przechodzić tej samej próby.
Doc Brown: Zajęło mi to prawie trzydzieści lat i cała moja rodzinna fortuna, aby zrealizować wizję tego dnia. Mój Boże, czy to było tak długo?