Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: connect mousebutton to keyboard wekt in vlc maar niet in firefox  (gelezen 105 keer)

Offline peer

  • Lid
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?