Comments (5)
Research for this subject can be found on https://git.lekensteyn.nl/ltunify/tree/keyboard.txt.
Tasks:
- Add persistence to Solaar so that keyboard mapping can be stored. (tracked in issue #6)
- How to discover available keys? Hard-code per model?
- UI for configuring custom key bindings.
- When notification bits are modified to allow customization, warn on closing Solaar that these customizations will be gone when Solaar is inactive.
from solaar.
The B100 and B101 features (KBD Reprogrammable Keys) do not allow the key bindings to be changed as far as I know. I probed functions 2..f, but they do not have any features. I guess the "reprogrammable" flag just indicates whether a UI element should exist for that in SetPoint.
If it is possible to change key bindings via this feature, it must be an extension of function 0 or 1, but those do not seem to accept extra parameters (I tried ff
as additional parameters and passing control ids, task ids + flags).
Perhaps one of the other features allow for persistently changing these values?
from solaar.
I've also played with the REPROG_CONTROLS
feature (0x1B00
) with my K750 keyboard, and haven't managed to go any further than listing the current mappings. Without some specific documentation from Logitech, I'm afraid there's not much to be done...
from solaar.
I have an initial implementation of reprogrammable keys for Solaar. Reprogramming a key or button tells a device that the key or button should act like another key or button (even a key or button that is not on the device at all). Only keys and buttons that are reprogrammable (not divertable - that's something that needs support from drivers) can be reprogrammed, and they can only be reprogrammed to a limited set of targets.
The interface presents two selection boxes. The left-hand box shows a key or button that can be reprogrammed. The right-hand box has the possible targets for that key or button, with the default target first. To change the behaviour of a key or button, select the key in the left-hand box and then select the target in the right-hand box.
To test out this feature, clone Solaar from my directory and run from its keys branch, via
git clone https://github.com/pfps/Solaar
cd Solaar
git checkout keys
bin/solaar
A few caveats:
-
This is a preliminary implementation and still has debugging statements in it, but the implementation is working for me so it is time to have it tested out by others and on other hardware.
-
The implementation is only for the feature REPROG CONTROLS V4 {1B04}. Running
solaar show
will show all the features of your device. If you have a device with a different version of REPROG CONTROLS let me know and I may be able to implement that version as well. -
The implementation is slower than it should be because it communicates too much with the device. I expect to fix this in a little while.
-
The interface is not nearly as slick as the Logitech one, and it never will be.
-
The key and button names and the target names are taken from Logitech documentation and may not be intuitive. Suggestions for improvements are welcome.
-
There is a preliminary implementation of REPORT RATE here as well, but changing the rate doesn't work.
from solaar.
Closed by PR #810
from solaar.
Related Issues (20)
- How to navigate forward/backward with Gestures? HOT 2
- Invert fn with ctrl key on MX keys mini HOT 1
- the MX keyboard light diode of the ShiftLK key is inconsistent HOT 2
- Target the same device with different connection modes (Bluetooth vs Bolt) HOT 2
- "Exception: pairing failed: failed" when pairing logitech mx master 3s HOT 6
- Bolt Detection Issue using M650L in non sudo use HOT 3
- Allow mouse gesture button to emulate trackpad HOT 7
- Solaar is unable to find any device HOT 8
- Broken link in documentation HOT 2
- Equalizer doesn't do anything HOT 13
- MX Master 3S For Ubuntu 24.04 no shown in the GUI device list HOT 1
- Solaar does not recognize Unifying Receiver plugged into Raspberry Pi 4 HOT 4
- Non-battery tray icon can't be themed independently HOT 5
- Crash on updating UI HOT 5
- DPI resets randomly on MX Master 3 HOT 7
- Help with diversion with g502 lightspeed HOT 3
- Is it possible to control the LEDs on the Logitech G733 Headset HOT 8
- Mx master 3S cant get mouse gesture button to work HOT 2
- add signal strength? HOT 1
- Update UI to GTK4 for a More Modern and Intuitive Experience HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from solaar.