Spellen

Hoe AutoKey te gebruiken om Linux-spellen te automatiseren

Hoe AutoKey te gebruiken om Linux-spellen te automatiseren
AutoKey is een hulpprogramma voor desktopautomatisering voor Linux en X11, geprogrammeerd in Python 3, GTK en Qt. Met behulp van de scripting- en MACRO-functionaliteit kunt u toetsaanslagen, muisklikken en de meeste delen van een desktopinterface automatiseren. Als u op zoek bent naar een alternatief voor het Windows-programma AutoHotkey, is AutoKey de beste optie die vandaag beschikbaar is voor Linux-gebruikers.

Merk op dat dit alleen een X11-applicatie is, Wayland-ondersteuning is op het moment van schrijven van dit artikel nog niet aan de applicatie toegevoegd.

Enkele van de AutoKey-functies zijn:

Deze gids laat je enkele AutoKey-voorbeelden zien die handig zijn voor Linux-gamers. Laten we om te beginnen Autokey Ubuntu-pakketten installeren vanaf de GitHub-pagina. Download de onderstaande bestanden van hier

Voer na het downloaden van de bestanden de volgende opdrachten in volgorde uit:

$ sudo apt install ./autokey-common_0.95.8-0_all.deb
$ sudo apt install ./autokey-gtk_0.95.8-0_all.deb

Voorbeeld 1: Instelling Sleutel voor automatisch spel opslaan

Het is gebruikelijk om veel pc-games te zien gebruiken toets voor snel opslaan en voor snel laden. Veel andere pc-games, vooral consolepoorten, hebben echter een vervelende manier om games op te slaan waarbij je door meerdere menu-opties moet navigeren. Hier is een snelle mockup die ik heb getekend die dit illustreert (excuseer mijn tekenvaardigheden):

De game wil dat je slaat toets om het spel te pauzeren, dan pijltjestoets, dan toets om het spel op te slaan, gevolgd door toets nogmaals om terug te keren naar het spel. Dit hele proces kan eenvoudig worden geautomatiseerd en worden toegewezen aan: sleutel met behulp van AutoKey. Bekijk de scriptcode hieronder:

import tijd
toetsenbord.send_key('')
tijd.slaap (0.25)
toetsenbord.send_key('')
tijd.slaap (0.25)
toetsenbord.send_key('')
tijd.slaap (0.25)
toetsenbord.send_key('')

Om dit script aan AutoKey toe te voegen, start u de app en klikt u vervolgens op een zichtbare map of klikt u op een door u gemaakte aangepaste map om deze te markeren. Klik op Bestand > Nieuw > Script menu-optie om een ​​nieuw script in die map te maken, zoals weergegeven in de onderstaande schermafbeelding:

Hernoem dit script naar "Quicksave" en plaats de bovenstaande code erin. Klik vervolgens onderaan op de knop "Sneltoets", zoals weergegeven in de onderstaande schermafbeelding:

Klik in het volgende scherm op de knop "Druk om in te stellen" en druk vervolgens op sleutel om het toe te wijzen aan het script.

"Sleutel: (Geen)" verandert in "Sleutel: ”.

Klik op “OK” en druk op om het script op te slaan. Onthoud altijd om het script op te slaan, anders wordt er niets uitgevoerd wanneer u op de toegewezen sneltoets drukt.

Quicksave keymapping is nu klaar voor gebruik. De volgende keer dat u op . drukt toets, wordt een reeks toetsaanslagen in volgorde uitgevoerd.

Merk op dat we de functionaliteit van changed hebben gewijzigd sleutel wereldwijd in het hele besturingssysteem, zolang AutoKey actief is en is gekoppeld aan het systeemvak. Om het te beperken tot een bepaald venster of toepassing, moet u vensterregels specificeren door onderaan op de knop "Vensterfilter" te klikken.

Je kunt hetzelfde script hierboven gebruiken om ook een script te maken om snel te laden. Je hoeft alleen maar de regel te verwijderen voor pijltjestoets en wijs het script vervolgens toe aan sleutel.

Als u op zoek bent naar de juiste sleutelnamen voor gebruik in AutoKey Python 3-scripts, vindt u hier een lijst met alle speciale sleutelcodes die in AutoKey kunnen worden gebruikt. Elke sleutel die niet op de bovenstaande pagina wordt genoemd, kan worden ingevoegd met enkele of dubbele aanhalingstekens. Voorbeeld: toetsenbord.send_key('5'), toetsenbord.send_key('p') enzovoort.

Voorbeeld 2: Drink twee gezondheidsdrankjes achter elkaar in een rollenspel

Ervan uitgaande dat de sneltoets om gezondheidsdrank te drinken in je spel is , het script zou zijn:

toetsenbord.send_key('h', herhaal=2)

De waarde van de herhaalvariabele kan ook worden gewijzigd in een ander getal. U kunt de stappen in het eerste voorbeeld volgen om het script toe te wijzen aan uw gewenste sneltoets.

Voorbeeld 3: Burst-modus voor geweer in een schietspel

 

Met behulp van de onderstaande code kunt u in kaart brengen: sleutel om driemaal achter elkaar met een pistool te schieten. De originele manier om in het spel te schieten is door eenmaal met de linkermuisknop te klikken.

# muisknoppen: links=1, midden=2, rechts=3
muis.click_relative_self(0, 0, 1)
muis.click_relative_self(0, 0, 1)
muis.click_relative_self(0, 0, 1)

Het bovenstaande script voert de linkermuisklik drie keer achter elkaar uit. Extra instructies kunnen worden toegevoegd als u meer dan drie keer met de linkermuisknop wilt klikken.

U kunt de stappen in het eerste voorbeeld volgen om het script toe te wijzen aan: sneltoets.

Voorbeeld 4: Maak een aangepast spelmenu / Verander een realtime spel in een beurtgebaseerd spel

Met behulp van de lijstmenufunctionaliteit van AutoKey zullen we een menu weergeven als een overlay bovenop een lopend spel. Dit menu zal de focus van het spel stelen en het teruggeven nadat een muisklik is uitgevoerd op een van de menu-items. Zodra de focus is teruggekeerd, wordt een geautomatiseerde toetsaanslag uitgevoerd die een functie in het spel oproept.

Kijk eens naar deze foto:

In de map "GameMenu" heb ik een submap gemaakt met de naam "Show". Zowel de map "GameMenu" als de map "Show" hebben onderliggende items. Hier is de code die ik in elk kinditem heb geplaatst:

  • Inventaris: toetsenbord.send_key('i')
  • Kaart: toetsenbord.send_key('m')
  • Terug naar het spel: toetsenbord.send_key('')
  • Overschakelen naar Assault Rifle: toetsenbord.send_key('2')
  • Overschakelen naar SMG: toetsenbord.send_key('1')

Hier is de map "GameMenu" toegewezen aan sleutel en zo ziet het eruit in een hardloopgame:

Elk menu-item heeft een prefix voor het label. U kunt elk menu-item oproepen door op de bijbehorende cijfertoets op uw toetsenbord te drukken. Druk bijvoorbeeld op <2> sleutel hier schakelt het pistool naar aanvalsgeweer.

Een kleine GIF-demo van dit voorbeeld (klik op de afbeelding of klik met de rechtermuisknop en open de GIF in een nieuw tabblad als de animatie hieronder stopt):

Deze methode werkt mogelijk niet met alle games, afhankelijk van de manier waarop ze met vensters en weergave op volledig scherm omgaan. Sommige games pauzeren niet wanneer de focus wordt gestolen, terwijl andere dat wel doen. Als de game pauzeert wanneer de focus verloren is, heb je in wezen een realtime game omgezet in een turn-based game met behulp van dit AutoKey-script.

Dit voorbeeld werkt per geval met games. Tijdens mijn tests heb ik echter behoorlijk goede resultaten behaald met zowel native als Steam Proton / Wine-games.

Conclusie

Alle hier genoemde voorbeelden zijn eenvoudig, voornamelijk gericht op Linux-gamers. Ze dekken slechts een deel van de krachtige API van AutoKey. AutoKey kan een groot deel van uw workflow automatiseren met behulp van de scriptfuncties voor alledaagse of complexe software. Nog enkele voorbeelden zijn beschikbaar in de officiële documentatie van de app.

Top 5 ergonomische computermuisproducten voor Linux
Veroorzaakt langdurig computergebruik pijn in uw pols of vingers?? Heb je last van stijve gewrichten en moet je constant de hand schudden?? Voelt u ee...
Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux
De meeste Linux-distributies worden standaard geleverd met de bibliotheek "libinput" om invoergebeurtenissen op een systeem af te handelen. Het kan in...
Wijs uw muisknoppen anders toe voor verschillende software met X-Mouse Button Control
Misschien heeft u een tool nodig waarmee u de bediening van uw muis kunt veranderen bij elke applicatie die u gebruikt. Als dit het geval is, kunt u e...