python-uinput:
API Pythonic al modulo del kernel uinput di Linux...
Python-uinput è un'interfaccia Python per il modulo del kernel uinput di Linux che consente di collegare i driver di dispositivo dello spazio utente nel kernel. In pratica, Python-uinput rende semplicissimo creare joystick, tastiere e mouse virtuali per generare eventi di input arbitrari in modo programmatico...
Se prevedi di usarlo su Linux, prova la libreria pyautogui. Per più tasti dovrai usare i tasti di scelta rapida, ad esempio:
pyautogui.hotkey('ctrl', 'c') # ctrl-c to copy
Per me ha funzionato - vedi qui:Come passare una sequenza di tasti (ALT+TAB) usando Popen.communicate (su Linux)?
Considera python-uinput ed evdev. Esempio di shift+a
con quest'ultimo:
from evdev import uinput, ecodes as e
with uinput.UInput() as ui:
ui.write(e.EV_KEY, e.KEY_LEFTSHIFT, 1)
ui.write(e.EV_KEY, e.KEY_A, 1)
ui.syn()
Sebbene sia specifico di X, puoi installare il pacchetto xautomation (apt-get install xautomation
su sistemi basati su Debian) e utilizzare xte
per simulare la pressione dei tasti, ad esempio:
from subprocess import Popen, PIPE
control_f4_sequence = '''keydown Control_L
key F4
keyup Control_L
'''
shift_a_sequence = '''keydown Shift_L
key A
keyup Shift_L
'''
def keypress(sequence):
p = Popen(['xte'], stdin=PIPE)
p.communicate(input=sequence)
keypress(shift_a_sequence)
keypress(control_f4_sequence)