python-uinput :
API Pythonic vers le module Linux uinput du noyau...
Python-uinput est une interface Python pour le module de noyau Linux uinput qui permet d'attacher des pilotes de périphériques d'espace utilisateur au noyau. En pratique, Python-uinput simplifie la création de joysticks, claviers et souris virtuels pour générer par programme des événements d'entrée arbitraires...
Si vous envisagez de l'utiliser sous Linux, essayez la bibliothèque pyautogui. Pour plusieurs clés, vous devrez utiliser un raccourci clavier, par exemple :
pyautogui.hotkey('ctrl', 'c') # ctrl-c to copy
Pour moi, cela a fonctionné - voir ici : Comment passer une frappe (ALT+TAB) à l'aide de Popen.communicate (sous Linux) ?
Considérez python-uinput et evdev. Exemple de shift+a
avec ce dernier :
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()
Bien qu'il soit spécifique à X, vous pouvez installer le package xautomation (apt-get install xautomation
sur les systèmes basés sur Debian) et utilisez xte
pour simuler des pressions de touches, par exemple :
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)