Come utilizzare Autokey per automatizzare i giochi Linux

Come utilizzare Autokey per automatizzare i giochi Linux
Autokey è un'utilità di automazione desktop per Linux e X11, programmata in Python 3, GTK e QT. Utilizzando la sua funzionalità di script e macro, è possibile automatizzare i tasti, i clic del mouse e la maggior parte delle parti di un'interfaccia desktop. Se stai cercando un'alternativa al programma Windows Autohotkey, Autokey è l'opzione migliore disponibile oggi per gli utenti Linux.

Si noti che questa è solo un'applicazione X11, il supporto Wayland non è stato aggiunto all'applicazione al momento della stesura di questo articolo.

Alcune delle funzionalità di Autokey sono:

  • Supporta abbreviazioni che possono espandere automaticamente alcuni caratteri in una delle frasi e dei blocchi di testo comunemente usati.
  • Supporta l'invio di tasti arbitrari e clic del mouse.
  • Supporta le regole specifiche per una finestra specifica dell'applicazione.
  • Gli script di Python 3 possono essere utilizzati per scrivere regole di automazione.
  • Capacità di controllare le funzioni della finestra come massimizzare, ridimensionare e spostarsi.
  • Viene fornito con una serie di esempi preconfigurati per script più facili.
  • Possibilità di mostrare popup di menu personalizzati con un elenco di scelte.
  • Capacità di registrare tasti e clic del mouse.
  • Possibilità di impostare i tasti di scelta rapida senza modi di modificatore.
  • Gli script di automazione sono portatili e possono essere facilmente condivisi con altri utenti.

Questa guida ti mostrerà alcuni esempi Autokey che sono utili per i giocatori di Linux. Per iniziare, installiamo pacchetti Autokey Ubuntu dalla sua pagina GitHub. Scarica i file menzionati di seguito da qui

  • Autokey-common_x.xx.X-X_ALL.Deb
  • autokey-gtk_x.xx.X-X_ALL.deb o autokey-qt_x.xx.X-X_ALL.Deb (scarica solo uno)

Dopo aver scaricato i file, eseguire i seguenti comandi in ordine:

$ sudo APT Installa ./Autokey-Common_0.95.8-0_all.Deb
$ sudo APT Installa ./autokey-gtk_0.95.8-0_all.Deb

Esempio 1: Impostazione del tasto per il salvataggio automatico del gioco

È comune vedere molti giochi per PC che utilizzano la chiave per un salvataggio rapido e per un caricamento rapido. Tuttavia, molti altri giochi per PC, in particolare le porte della console, hanno un modo noioso per salvare il gioco in cui è necessario navigare attraverso più opzioni di menu. Ecco un rapido modello che ho disegnato che illustra questo (scusa le mie capacità di disegno):

Il gioco vuole che tu colpisca la chiave per mettere in pausa il gioco, quindi la chiave freccia, quindi la chiave per salvare il gioco, seguito di nuovo dalla chiave per tornare al gioco. L'intero processo può essere facilmente automatizzato e mappato per la chiave utilizzando Autokey. Dai un'occhiata al codice dello script di seguito:

tempo di importazione
tastiera.Send_key ('')
tempo.dormire (0.25)
tastiera.Send_key ('')
tempo.dormire (0.25)
tastiera.Send_key ('')
tempo.dormire (0.25)
tastiera.Send_key ('')

Per aggiungere questo script ad Autokey, avviare l'app, quindi fare clic su una cartella visibile o fare clic su una cartella personalizzata creata dall'utente per evidenziarlo. Clicca su File> Nuovo> Script Opzione di menu per creare un nuovo script all'interno di quella cartella, come mostrato nello screenshot qui sotto:

Rinomina questo script in "QuickSave" e metti al suo interno il codice sopra. Quindi fare clic sul pulsante "Hotkey" in basso, come mostrato nello screenshot in basso:

Nella schermata successiva, fare clic sul pulsante "Premere per impostare" e quindi premere il tasto per mapparlo allo script.

"Chiave: (nessuno)" cambierà in "Chiave: ".

Fai clic su "OK" e premi per salvare lo script. Ricorda sempre di salvare lo script, altrimenti non verrà eseguito nulla quando si preme il tasto di scelta rapida mappata.

Il keymapping QuickSave è ora pronto per essere utilizzato. La prossima volta quando si preme il tasto, verrà eseguita una serie di thypress.

Si noti che abbiamo modificato la funzionalità della chiave a livello globale in tutto il sistema operativo, purché Autokey sia in esecuzione e annessata al vassoio del sistema. Per limitarlo a una particolare finestra o applicazione, dovrai specificare le regole della finestra facendo clic sul pulsante "Filtro della finestra" nella parte inferiore.

È possibile utilizzare lo stesso script sopra per creare uno script anche per un caricamento rapido. Devi solo rimuovere la riga per il tasto freccia e quindi mappare lo script su.

Se stai cercando nomi chiave corretti da utilizzare negli script di Autokey Python 3, è possibile trovare un elenco di tutti i codi chiave speciali utilizzabili in Autokey. Qualsiasi tasto non menzionato nella pagina sopra può essere inserito utilizzando citazioni singole o doppie. Esempio: tastiera.Send_key ('5'), tastiera.send_key ('p') e così via.

Esempio 2: bere due pozioni per la salute di fila in un gioco di ruolo

Supponendo che il take -take per bere la pozione sanitaria nel tuo gioco sia, la sceneggiatura sarebbe:

tastiera.send_key ('h', ripetizione = 2)

Il valore della variabile ripetuta può essere modificato anche in qualsiasi altro numero. Puoi seguire i passaggi nel primo esempio per mappare lo script sul takeding desiderato.

Esempio 3: modalità Burst per la pistola in un gioco sparatutto

Usando il codice qui sotto, è possibile mappare il tasto per sparare a una pistola tre volte di fila. Il modo originale di sparare nel gioco è premere un clic del mouse sinistro una volta.

# Pulsanti del mouse: a sinistra = 1, Middle = 2, a destra = 3
topo.Click_relative_self (0, 0, 1)
topo.Click_relative_self (0, 0, 1)
topo.Click_relative_self (0, 0, 1)

Lo script sopra eseguirà il mouse sinistro clic tre volte di riga. È possibile aggiungere dichiarazioni extra se si desidera eseguire il clic sinistro più di tre volte.

Puoi seguire i passaggi nel primo esempio per mappare lo script su Hotkey.

Esempio 4: crea un menu di gioco personalizzato / trasforma un gioco in tempo reale in un gioco a turni

Utilizzando la funzionalità del menu Elenco di Autokey, mostreremo un menu come sovrapposizione in cima a un gioco in esecuzione. Questo menu ruberà l'attenzione dal gioco e lo restituirà dopo che un clic del mouse viene eseguito su una delle voci di menu. Una volta restituito il focus, verrà eseguito un tasto automatizzato che invoca una funzione all'interno del gioco.

Dai un'occhiata a questa foto:

Nella cartella "Gamemenu", ho creato una sottocartella chiamata "Show". Sia la cartella "Gamemenu" che "Show" hanno articoli per bambini. Ecco il codice che ho inserito all'interno di ogni elemento figlio:

  • Inventario: tastiera.Send_key ('I')
  • Mappa: tastiera.Send_Key ('M')
  • Torna al gioco: tastiera.Send_key ('')
  • Passa al fucile d'assalto: tastiera.Send_Key ('2')
  • Passa a SMG: tastiera.Send_Key ('1')

Qui la cartella "Gamemenu" è mappata sulla chiave e questo è quello che sembra all'interno del gioco di corsa:

Ogni voce di menu ha un numero prefisso prima della sua etichetta. È possibile invocare qualsiasi voce di menu premendo il tasto numerico corrispondente sulla tastiera. Ad esempio, la pressione del tasto qui cambierà la pistola in Assalta Rifle.

Una piccola demo GIF di questo esempio (fare clic sull'immagine o fare clic con il tasto destro e aprire la gif in una nuova scheda se l'animazione si interrompe di seguito):

Questo metodo potrebbe non funzionare con tutti i giochi, a seconda del modo in cui gestiscono il rendering finestra e schermo intero. Alcuni giochi non si fermano quando la messa a fuoco viene rubata mentre altri lo fanno. Se il gioco fa una pausa quando si perde l'attenzione, hai essenzialmente convertito un gioco in tempo reale in un gioco a turno usando questo script Autokey.

Questo esempio funzionerà con i giochi caso per caso. Tuttavia, nei miei test, ho ottenuto risultati piuttosto buoni con i giochi di proton / vino nativi e di vapore.

Conclusione

Tutti gli esempi menzionati qui sono basilari, concentrati principalmente per i giocatori Linux. Coprono solo una parte della potente API di Autokey. Autokey può automatizzare molto del flusso di lavoro utilizzando le sue caratteristiche di scripting anche per software quotidiano o complesso. Alcuni altri esempi sono disponibili nella documentazione ufficiale dell'app.