Odpowiednik AutoHotkey

Czy istnieje równoważny produkt / metoda dla AutoHotkey?

Dla tych, którzy nie wiedzą, jest to produkt, który umożliwia programowanie ruchów myszy i klawiatury. Pozwala mi to na „makro” niektórych funkcji w programach, zamiast robić to ręcznie. W dawnych czasach nazywali ich wypychaczami klawiatury. Ale to tylko połowa rozwiązania, ponieważ potrzebuję też narzędzia do napełniania ruchem myszy.

Czy istnieje taka bestia?

Odpowiedź

Jest „port AutoHotKey do Linuksa o nazwie IronAHK i podobne narzędzie o nazwie Autokey . Ja też nie używałem, nie wiem, jak dobrze działają.

Poza takimi programami nie znajdziesz dokładnie tego samego rodzaju narzędzi do automatyzacji . Podstawowym narzędziem do automatyzacji użytkowników w systemach uniksowych jest powłoka. Powłoka to klej łączący inne narzędzia: może uruchamiać zewnętrzne programy i kontrolować sposób wymiany danych. Sama powłoka nie zawiera niczego, co mogłoby manipulować koncepcjami GUI, takimi jak okna i wskaźnik myszy¹. To, co robisz, to wywoływanie wyspecjalizowanych narzędzi w skrypcie powłoki, w szczególności xdotool do manipulowania oknami i wprowadzania klawiszy i zdarzenia myszy .

Na przykład poniższy skrypt kliknie pozycję (40,20) w oknie Myapp.

#!/bin/sh xdotool search --class Myapp \ mousemove --window %1 40 20 \ click 1 

¹ Z wyjątkiem dtksh , ale nigdy nie widziałem jego portu dla Linuksa.

Komentarze

  • Niezłe podsumowanie, szkoda, że projekt jest nieaktualny od 4 lat, a pliki binarne 404 ' s, jednak spróbuje xdotool. Dzięki za poświęcony czas.
  • wypróbował xdotool, działa jak urok, ale zdecydowanie powinieneś przeczytać jego dokumentację przed rozpoczęciem
  • AFAIK, IronAHK nigdy nie został w pełni zaimplementowany i został porzucony.

Odpowiedź

Istnieje kilka projektów, które rozwiązują ten problem. Dwa najbardziej aktywne, AFAIK, to sikuli i AutoKey (projekt, który pomagam w obsłudze .)

Nie używałem sikuli, ale wydaje się, że opiera się to na znajdowaniu wzorców na ekranie i uruchamianiu na ich podstawie działań.

AutoKey pozwala użytkownikowi zdefiniować frazy wyzwalające i skróty klawiszowe, które rozszerzają frazy (podobnie jak bardzo potężna funkcja autokorekty) lub uruchamiają skrypty napisane w Pythonie3, które są ograniczone jedynie umiejętnościami programistycznymi użytkownika. Zapewnia API do generowania zdarzeń klawiatury i myszy. Integruje się również z Xautomation, co pozwala na aby znaleźć mały obraz na ekranie i najechać na niego kursorem myszy.

Używam AutoKey od wielu lat i obsługuję go na naszej liście . To jest jak wiele narzędzi zwiększających produktywność: możesz się bez niego obejść, ale kiedy zaczniesz go używać, zaczniesz się zastanawiać, jak to było bez niego.

Kilka szczegółów:

AutoKey nie działa z AutoH Definicje i skrypty otKey. Będą musiały zostać przepisane.

Napisałem skrypt bash weryfikujący koncepcję (dostępny na żądanie), który tłumaczy frazy AutoHotKey na frazy AutoKey, ale jest to tylko punkt wyjścia i ignoruje większość AutoHotKey

Ponieważ skrypty AutoKey są napisane w Python3, możliwe jest również wywołanie narzędzi takich jak xdotool i wmctrl z poziomu skryptu w celu zapewnienia dodatkowej funkcjonalności, ale zazwyczaj nie jest to konieczne. Chociaż skrypty AutoKey są napisane w Pythonie, całkiem wiele można osiągnąć przy bardzo ograniczonej wiedzy o Pythonie. Nie musisz biegle programować w Pythonie do większości celów.

Jeśli używasz dystrybucji opartej na Debianie, proszę nie instalować wersji AutoKey dostarczonej przez twoją dystrybucję. Ich pakiet AutoKey jest nieobsługiwany i bardzo stary. Pobierz aktualną wersję od nas . Edycja: To było poprawione w testach Debiana i pochodnych w 2020 roku. Obecnie oferują najnowszą wersję.

Odpowiedź

xautomation można używać w systemie Linux. Używam go na ekranach Raspberry Pi do wysyłania odświeżeń strony F5 i naciśnięć klawiszy „Return” (enter) do logowania.

Odpowiedź

Użyj AutohotkeyX, jest to najnowszy port autohotkey dla WINE, który zgodnie z testami winehq robi wszystko, co Autohokey jest w stanie zrobić w systemie Windows. To z pewnością najlepsza i najprostsza odpowiedź.

https://appdb.winehq.org/objectManager.php?sClass=version&iId=17738

Osobiście tego nie testowałem, ale wyniki WINEHQ zwykle

Odpowiedź

Pobierz Autohotkey w systemie Linux. Utwórz plik Autohotkey (example.ahk). Użyj wine, aby uruchomić Ahk2Exe.exe z folderu Autohotkey. Skompiluj swój przykład.ahk do example.exe Użyj wine do uruchomienia example.exe

Komentarze

  • It ' s nie jest to dobra opcja. Na razie funkcjonalność Autohotkey uruchamiana przez wine jest bardzo ograniczona: appdb.winehq.org/… .

Odpowiedź

Oto rozwiązanie noob dla noobów takich jak ja:

Większość środowisk graficznych (DE) zawierają wbudowany edytor skrótów klawiaturowych. Używając edytora skrótów, możesz pisać niestandardowe skrypty bash, polecenia konsoli itp.

Aby uzyskać funkcjonalność podobną do AHK, wykraczającą poza to, co umożliwia twój DE poprzez niestandardowe skróty, zainstaluj xdotool (sudo apt install xdotool) i zapisz swoje polecenia xdotool w edytorze skrótów (jeśli masz opcje dla kilku typów skrótów, wybierz ” polecenie ” opcja):

xdotool [command] 

(Wpisz man xdotool w terminalu, aby uzyskać dostęp do podręcznika xdotool.)

Jeśli używasz xdotool do rozszerzenia własnych skrótów, dobrym pomysłem jest wprowadzenie polecenia w terminalu przed ustawieniem g jako klawisz skrótu, aby upewnić się, że działa zgodnie z oczekiwaniami.

Jeszcze nie wymyśliłem, jak uzyskać hotstrings podobne do AHK w Linuksie, ale zaktualizuję, jeśli znajdę działające rozwiązanie.

Odpowiedź

Po prostu użyj XEV i XMODMAP. PROSTE i lepsze niż dedykowane programy lub emulowanie kiepskich aplikacji Windows. Wszystkie moje rzeczy z LINUXem używają skryptów do redefiniowania klawiszy i zmiany trybów ekranu, a następnie, gdy program jest zakończony i wychodzi, przywróć wszystko do normy. Używanie XMODMAP i tworzenie skryptu jest prawie tak samo łatwe, jak tworzenie skryptu AHK, ale z dodatkową zaletą braku konieczności uruchamiania emulowanej aplikacji Windows.

Komentarze

  • O ile wiem, ta odpowiedź może być w 100% poprawna i dokładna. Jednak dużo byłaby bardziej przydatna, gdyby zawierała kilka przykładów i / lub instrukcje, a nawet linki do dalszej dokumentacji.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *