Ik heb een oude muis waarvan alleen de linkermuisknop hetb doet. Deze muis wil ik gebruiken om video's te starten en pauzeren. Hiervoor heb ik een tijd geleden een python programmaatje gemaakt.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sun Jul 7 13:52:07 2024
@author: peer
"""
# 1 user shuld be added to the group input in linux
# 2 package evdev must be installed
# 3 package pynput must be installed
DEVICENAME = "Logitech USB-PS/2 Optical Mouse"
DEVICEINFO = "vendor 046d, product c03e, version 0110"
import evdev, gc
from pynput.keyboard import Key, Controller
#initialize
#os.chdir(os.path.dirname(os.path.abspath(__file__)))
keyboard = Controller()
devices = [evdev.InputDevice(path) for path in evdev.list_devices()]
#for device in devices:
# print(device.name)
# MAIN LOOP
try:
for device in devices:
if device.name == DEVICENAME: #check name
#print(device.name)
info = str(device.info)
index = info.find(',')
info = info[11:]
#print(info)
#print(DEVICEINFO)
if info == DEVICEINFO: # check info
print("ok")
device.grab() #get exclusive lock on mouse
while True: # loop read mouse click
for event in device.read_loop():
if event.type == evdev.ecodes.EV_KEY:
line = str(evdev.categorize(event))
print(line)
if "down" in line:
print("special key Key.media_play_pause pressed!!")
keyboard.press(Key.media_play_pause)
else:
print("Key.media_play_pause released!!")
keyboard.release(Key.media_play_pause)
except:
pass
device.ungrab()
del(device,devices)
gc.collect()In dit programma wordt de muis gegrabt dwz. alle input van de muis komt in het programma terecht en nergens anders. Daarna wordt de inpout gekoppeld aan de Key.media_play_pause. Het programmaatje wordt automatisch bij het booten gestart.
Als ik een video open in vlc dan kan ik de videoe starten en pauzeren met de mediatoets op het keyboard en met de muis. Als ik een video open in firefox dan werkt de mediatoets op het keyboard wel maar de muis werkt hier niet.
Ik vermoed dat hier iets mis gaat met de environment maar ik heb geen flauw idee wat.
Is er iemand die kan helpen?