python-uinput:
Pythonic API para el módulo del kernel uinput de Linux...
Python-uinput es una interfaz de Python para el módulo de kernel uinput de Linux que permite adjuntar controladores de dispositivos de espacio de usuario al kernel. En la práctica, Python-uinput simplifica enormemente la creación de joysticks, teclados y ratones virtuales para generar eventos de entrada arbitrarios mediante programación...
Si planea usarlo en Linux, pruebe la biblioteca pyautogui. Para varias teclas, deberá usar una tecla de acceso rápido, por ejemplo:
pyautogui.hotkey('ctrl', 'c') # ctrl-c to copy
Para mí funcionó, consulte aquí:¿Cómo pasar una pulsación de tecla (ALT+TAB) usando Popen.communicate (en Linux)?
Considere python-uinput y evdev. Ejemplo de shift+a
con este último:
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()
Aunque es específico de X, puede instalar el paquete xautomation (apt-get install xautomation
en sistemas basados en Debian) y use xte
para simular pulsaciones de teclas, por ejemplo:
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)