Tried Bluetooth, it’s as choppy as I expected, and now I can’t pair my Master 3 back to the Unifying receiver, “Start Pairing Now” does nothing
I decided to temporarily switch to a Signature M550 (which is a simpler mouse using Bolt receiver). BTT recognizes it, but “Invert Main Scroll Wheel” does not work.
After clicking the "Start Pairing Now" button you need to also put your mouse into pairing mode by long presssing the button on the bottom. You can also have one configuration connected via bluetooth and one via receiver (the mouse supports 3 different connections! You can switch between 1-3 by pressing the button on the bottom)
5.797 (uploading now) should resolve issues with mice connected via a logitech receiver.
It also contains a button to show debug information about other processes that listen to scroll events, if you can't get BTT to recognize scroll events at all press that button and tell me what you see there:
I use G502 Hero, and noticed Logitech support in the recent BTT update. It is great that you are creating a replacement for Logitech software. My mouse works with BTT (and all buttons are available for remapping, including Button 8 on top of my mouse).
But I want DPI control buttons (№ 6 and 7) to remain DPI with hardware pre-programmed values. I know that my mouse can work in hardware and software modes, and I preprogrammed it using G-HUB (in Windows). But when I start BTT, the DPI buttons become programmable, but it is not what I’d like for them.
I tried to remove the tick on “Make All Buttons Available for Remapping in BTT”, but it didn’t solve my problem. Even if I quit BTT, DPI buttons don’t start to work again. So I rolled back to the earlier version of BTT and re-plugged my mouse to reset it.
I might miss something (I believe I use less than 10% of BTT features) , but I’l love to see the following functionality:
Switching between software and hardware mode (yes, I understand that in hardware mode some buttons will not be available for creating triggers);
Program the mouse and write configuration to the NVRAM (so we wouldn’t need G-HUB anymore);
Return to hardware mode on BTT quit;
Optionally: use software mode via Logitech protocol, but read the DPI settings from NVRAM to simulate the same behaviour in software; this could be the most flexible solution – all buttons are still programmable, but configuration is compatible to user’s hardware programming.
P.S. I never had a chance to personally thank you for your great product, that I use for years. Thank you!!!
@python You can already use the predefined action "Change Mouse DPI" and assign it to the button(s) with a fixed value. Does that solve your issue? (You can also use any other BTT trigger to change the DPI of the mouse, e.g. via keyboard)
Thanks, Andrey, I just tested It, and it works: I can assign changing of DPI to a certain value to any control.
But this doesn’t fully resolve my issue. In my case, I have preprogrammed 5 DPI values, and I’d like to continue to switch between them with 2 DPI buttons (6 and 7) that work like DPI [+] and [-], not just 2 predefined values. But thank you for letting me know, it is useful.
This is truly great! I’m actually a software developer, so I’d be able to modify this script to taste.
As for "Cycle through multiple actions", I’ll try to learn it.
here’s my scroll debug information
btw if it help - I notice that the recognition when recording the scroll is inverse - scrolling down shows up and vice versa (and just as a side question - I counted four different switches to reverse mouse scroll direction - 1. in Mac settings mouse natural scrolling, 2. in Mac settings trackpad natural scrolling (tied to the first), 3. in BTT setting - Inverse scrolling for normal mice only, 4. in BTT Logitech config - Invert Main Scroll Wheel. how do these all related/conflict?)
Just FYI, I’m using a logarithmic scale for DPI change, it makes more sense than +100, e.g. from 300 DPI to 400 DPI is significant, but switching, say, from 2000 DPI to 2100 will practically change nothing.
That scroll tap info looks good, there don't seem to be other apps intercepting the scroll events. But then it really should work, there is nothing I can think of that would prevent BTT from receiving them in this case. What kind of actions did you have assigned?
Unfortunately the scrolling inversion situation got very complicated with recent macOS versions and I haven't added code that tries to translate the scroll deltas to their correct names. Depending on the system and macOS settings they might show the wrong direction.
ok so recording it “in the flipped direction” not necessarily means it wouldn’t work?
and im just trying “show hud” for testing but not even that is working…
its weird bc It works with the rest of the keys of the mx 4, just not with either of the scroll wheels.
maybe im doing something wrong with the Logitech config element or the smooth scroll element?
5.798 (uploading) now also supports async await for the logitech functions, makes the code easier to read. I have added basic documentation here: Logitech JavaScript · GitBook
async function increaseDPI() {
const deviceName = "G502"; // Replace with your actual mouse name
const increment = 100;
// Get current DPI
const dpiResult = await logitech_get_dpi({ deviceName: deviceName });
if (dpiResult.error) {
throw new Error(dpiResult.error);
}
const currentDPI = dpiResult.dpi;
log(`Current DPI: ${currentDPI}`);
// Calculate new DPI
const newDPI = currentDPI + increment;
// Set new DPI
const setResult = await logitech_set_dpi({ deviceName: deviceName, dpi: newDPI });
if (setResult.error) {
throw new Error(setResult.error);
}
return `Did set DPI to: ${newDPI}`;
}
It should not matter, but maybe it causes BTT to ignore the events because technically they have been generated by itself.
Do you maybe have this option enabled in the BTT settings?
thanks it did work.
but im having more issues with the smooth scrolling feature.
when it works its close to perfect, but in some apps like discord and vs code it just won’t scroll at all, and in terminal it seems to have an entirely different scrolling behavior that disregards the smooth scroll (and is way too sensitive)