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?