Emulação de teclado em Wayland

5

Existe uma maneira de fazer com que xdotool ou xte ou qualquer outra alternativa funcione no Fedora 26? Eu estou tentando emular keypresses (usando xbindkeys), por exemplo pressionar Alt+B emularia pressionando Ctrl+Shift+B . Mas aparentemente nem xdotool nem xte trabalham em Wayland (por razões de segurança [?])

Existe uma solução alternativa? Caso contrário, como religar chaves a outras chaves?

    
por iLemming 26.07.2017 / 08:19

2 respostas

5

Estou usando este pequeno script. Ele precisa do pacote evemu instalado e da sudo-confguration para o evemu-event sem notificação de senha. EVDEVICE é o dispositivo usado para emular a entrada. /dev/input/event8 é o meu teclado (use sudo evemu-record para encontrar o seu)

#!/bin/bash
# keycomb.sh

EVDEVICE=/dev/input/event8

for key in $@; do
    sudo evemu-event $EVDEVICE --type EV_KEY --code KEY_$key --value 1 --sync
done


# reverse order
for (( idx=${#@}; idx>0; idx-- )); do
    sudo evemu-event $EVDEVICE --type EV_KEY --code KEY_${!idx} --value 0 --sync
done

você pode, por exemplo altere uma guia com ./keycomb.sh RIGHTCTL PAGEDOWN .

Por favor, note: Este script não faz nenhuma validação nos parâmetros, use com cuidado;)

    
por 03.10.2017 / 14:25
4

Isso é muito longo para um comentário, mas não é realmente uma resposta ... Recentemente me deparei com alguns códigos python que dizem

Simple script to replace xdotool when using Gnome/Wayland for entering keystrokes using evdev.

que poderia ser um ponto de partida. Eu não tentei isso. Ele precisa do pacote python evdev e precisa ser executado como root do usuário.

Existe também um pacote evemu que diz

evemu records and replays device descriptions and events, making it possible to emulate input devices through the kernel's input system. Emulated devices are for most practical purposes indistinguishable from real devices.

    
por 26.07.2017 / 17:23