Como mapear a roda de rolagem de um mouse para cima e para baixo no servidor Ubuntu?

0

Gostaria de percorrer os comandos anteriores ou percorrer um editor de texto com a roda de rolagem. Eu não sei como fazer isso sem iniciar um sistema X Window completo.

    
por Tyler Crompton 22.07.2015 / 04:40

1 resposta

1

Isso não é simples.

No entanto, é possível usar um pouco de programação para fazer um filtro de linha de comando para provar o conceito. Por exemplo, em Python (veja abaixo).

Esse filtro pegaria a entrada padrão (ou seja, o seu teclado) e passaria para a saída padrão. Ele também deve capturar os dados do mouse e, quando ele vir os dados da roda de rolagem, adicionar a seta para cima ou para baixo até a saída padrão.

Você pode capturar a saída do mouse em / dev / input / mouse (ou mouse0 ou mouse1)

Você então começa como:

sudo ./filter.py | bash

Um conceito de trabalho bruto está aqui:

#!/usr/bin/python

import fcntl
import os
import sys

# make stream a non-blocking file
f = open('/dev/input/mouse0')
fd = f.fileno()
fl = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)

while (True):
    key = sys.stdin.read(1)
    sys.stdout.write(key)
    sys.stdout.flush()
    try:
        mouse = f.read(1)
        sys.stdout.write('date\n')
        sys.stdout.flush()
    except:
        continue

Ele irá executar todos os comandos que você digitar (sem prompt) e quando você mover o mouse, e depois apertar enter ele irá executar o comando 'date'.

    
por NZD 22.07.2015 / 09:56