sebastien / revoco Goto Github PK
View Code? Open in Web Editor NEWLogitech MX Revolution configuration tool for Linux
Logitech MX Revolution configuration tool for Linux
``` == Revoco == MX revolution control for Linux ``` About ----- A command-line tool to setup the Logitech MX Revolution mouse buttons behavior under Linux Install ------- ``` $ make $ ./revoco Revoco v0.6 - Change the wheel behaviour of Logitech's MX-Revolution mouse. Usage: revoco free free spinning mode revoco click click-to-click mode revoco manual[=button[,button]] manual mode change via button revoco auto[=speed[,speed]] automatic mode change (up, down) revoco battery query battery status revoco mode query scroll wheel mode revoco reconnect initiate reconnection Prefixing the mode with 'temp-' (i.e. temp-free) switches the mode temporarily, otherwise it becomes the default mode after power up. Button numbers: 0 previously set button 7 wheel left tilt 3 middle (wheel button) 8 wheel right tilt 4 rear thumb button 9 thumb wheel forward 5 front thumb button 11 thumb wheel backward 6 find button 13 thumb wheel pressed ``` References ---------- Note: this is copy/paste http://blogs.gentoo.org/betelgeuse/2006/11/26/getting_mx_revolution_setup_in_gentoo/ ``` == Getting MX Revolution setup in Gentoo == Posted on November 26, 2006 by betelgeuse ``` I recently bought a Logitech MX Revolution mouse. This is a very nice cordless laser mouse with plenty of buttons. See Gizmodo review for pictures. As usual I first googled to find what others have done to get everything working with this mouse. Of course the usual functionality was there without anything special. The first link Google gave me was http://andy.hillhome.org/blog/2006/09/27/logitech-mx-revolution-in-linux/ Based on this information I set out to setup my new mouse. First I changed my xorg.conf to have the following: ``` Section "InputDevice" Identifier "Mx Rev" Driver "evdev" Option "Protocol" "Auto" Option "Name" "Logitech USB Receiver" Option "Phys" "usb-*/input0 EndSection ``` This gives evdev control of my mouse and still keeps my other stuff working using the normal /dev/mice/input. This at least makes it possible to control this mouse specifically if I need to. The hotplug input framework should hopefully make this kind of stuff obsolete in the future. Having evdev working and handling the mouse I got xev to recognize all my mouse buttons nicely. I have been using imwheel with my previous mouses and have found it an able tool to map mouse events to keyboard events. Here is my `.imwheelrc`: ``` "Firefox" None, Thumb1, Alt_L|Left None, Thumb2, Alt_L|Right None, Left, Control_L|W None, Right, Control_L|T "Thunderbird" None, Thumb1, N None, Thumb2, B "Konsole" None, Thumb1, Shift_L|Right None, Thumb2, Shift_L|Left ``` What this does: - Makes back/forward work in Firefox with Thumb buttons - Makes creating/deleting tabs work by tilting the scroll wheel - Makes Thunderbird go to next unread message / previous message using Thumb buttons - Makes Konsole change tabs using Thumb buttons Using the same pattern you should be able to adjust the rest of the buttons to your liking. I will probably look into using the Thumb wheel to control beryl. The last thing I didn’t like about the default behavior of the MX in Linux was the scroll wheel. By default it is in the Free-spin mode which means that clicking the wheel does not generate Button2 events. I found a handy tool to control the features of this mouse in the comments of that blog post and I made an ebuild for it http://overlays.gentoo.org/svn/dev/betelgeuse/app-misc/revoco/. Using this tool I can just issue revoco manual=6 and after that I can use the One-Touch Search button to change the scrolling mode of the mouse. I don’t know yet if this is good enough for the main tree as it atm must be run setuid because of default /dev/usb/hiddevN permissions. Will probably add it if I find the time to rewrite it using libhid. The final touch to glue all this together is to have my .xprofile start the necessary programs for me: ``` revoco manual=6 #xmodmap -e "keycode 122 = XF86Search" /usr/bin/imwheel -k -b "007689" ``` Notice that you can use xmodmap to map the One-Touch search to XF86Search if you like. It’s quite weird how the button is handled. To the OS it is shown as a keyboard with one button. Well engineers are creative. # EOF
Do you provide help with stuff like this? I don't want to waste time writing a lot of stuff out if you don't have the time to help anyway.
Basically I added the new product code and it selected the device but it doesn't work.
Here is the device from lsusb -v
.
Bus 003 Device 004: ID 046d:c70a Logitech, Inc. MX5000 Cordless Desktop
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x046d Logitech, Inc.
idProduct 0xc70a MX5000 Cordless Desktop
bcdDevice 51.03
iManufacturer 1 Logitech
iProduct 2 BT Mini-Receiver
iSerial 3 000761CA8E60
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4 RR51.03_B0077
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 98mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 226
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 5
Device Status: 0x0000
(Bus Powered)
And then there are 2 more devices in there but neither can be selected with the ioctl
by adding the product code. Only the one above gets detected there.
Bus 003 Device 003: ID 046d:c70e Logitech, Inc. MX1000 Bluetooth Laser Mouse
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x046d Logitech, Inc.
idProduct 0xc70e MX1000 Bluetooth Laser Mouse
bcdDevice 51.03
iManufacturer 1 Logitech
iProduct 2 BT Mini-Receiver
iSerial 3 000761CA8E60
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4 RR51.03_B0077
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 98mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 59
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Device Status: 0x0000
(Bus Powered)
Bus 003 Device 002: ID 046d:0b02 Logitech, Inc. C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 9 Hub
bDeviceSubClass 0 Unused
bDeviceProtocol 0 Full speed (or root) hub
bMaxPacketSize0 8
idVendor 0x046d Logitech, Inc.
idProduct 0x0b02 C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
bcdDevice 51.03
iManufacturer 1 Logitech
iProduct 2 BT Mini-Receiver
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 25
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0001 1x 1 bytes
bInterval 255
Hub Descriptor:
bLength 9
bDescriptorType 41
nNbrPorts 3
wHubCharacteristic 0x0004
Ganged power switching
Compound device
Ganged overcurrent protection
bPwrOn2PwrGood 50 * 2 milli seconds
bHubContrCurrent 100 milli Ampere
DeviceRemovable 0x0c
PortPwrCtrlMask 0xff
Hub Port Status:
Port 1: 0000.0100 power
Port 2: 0000.0103 power enable connect
Port 3: 0000.0103 power enable connect
Device Status: 0x0000
(Bus Powered)
The link in the readme has gone away!
It should now point to http://blogs.gentoo.org/betelgeuse/2006/11/26/getting_mx_revolution_setup_in_gentoo/
also, please at least copy paste a summary in case it goes away again?!
I'm so glad i found this, i was fearing that i'd never smartshift again since i'm not using windows anymore with this mouse
good job putting this up, it needs to be more visible on google though :(
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.