mapeando os botões do mouse

0

Ubuntu 17.10 - Eu quero mapear os botões do mouse para comandos.

Eu quero espaço de trabalho de movimento de fogo à esquerda (equivalente ao teclado: CTRL + ALT + LEFT ) quando o botão do mouse 6 (roda à esquerda) é pressionado.

No Ubuntu 17.04 eu usei "comandos" no Gerenciador de Configuração do CompizConfig.

Qual é a maneira canônica de fazer isso em 17.10 e no gnome 3?

Minha solução atual é (com /dev/input/* definido como legível pelo usuário padrão e pyautogui instalado):

import time
import struct
import pyautogui

FORMAT = 'llHHI'
EVENT_SIZE = struct.calcsize(FORMAT)

def move(direction):
    pyautogui.keyDown('ctrl')
    pyautogui.keyDown('alt')
    pyautogui.press(direction)
    pyautogui.keyUp('ctrl')
    pyautogui.keyUp('alt')

def left():
    move('left')

def right():
    move('right')

def zoom():
    pyautogui.press('winleft')

CODES = {
    (2, 6, 2**32 - 1): left,
    (2, 6, 1): right,
    (1, 280, 0): zoom,
}

with open('/dev/input/event6', 'rb') as f:
    while True:
        event = f.read(EVENT_SIZE)
        if event:
            _, _, type_, code, value = struct.unpack(FORMAT, event)
            event = CODES.get((type_, code, value))
            event and event()
            # if (type_, code, value) != (0, 0, 0):
            #     print(f'type: {type_} code: {code} value: {value}')
        else:
            time.sleep(0.1)

Diga-me que não é isso que eu devo fazer?

    
por SColvin 06.12.2017 / 16:25

0 respostas