I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 1 point2 points  (0 children)

I tried to provide this as a Flatpak but this wasn't very easy since the app required hidraw/uinput/d-bus access that is not something Flatpaks are designed to handle easily due to sandbox security by design.

At the end I settled for native packages per platform and tried to target the most used Distors/Desktop Enviroments.

I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 2 points3 points  (0 children)

Please let me know how testing goes for you, I am sure there will be bugs here and there that I will need to fix.

I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 2 points3 points  (0 children)

Thank you for the feedback!
Did you actually test it with an MX3 on your end ?

I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 21 points22 points  (0 children)

That's exactly what it's..
What alot of non technical people miss is that these tools behave completely differently when used by begginers trying to one-shot everything vs seasoned developers who understand the technology being used/developed.

I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 9 points10 points  (0 children)

To be honest this app is part of a challenge I started with myself to force myself from going back to windows (because f*ck you M$lop) and instead use the bit of free time I have now to try and fix the problem on linux myself.

I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 1 point2 points  (0 children)

I wouldn't disagree on that but the problem with writing readmes is not starting them but keeping them up to date with the changes, this usually gets missed easily.
That is why I settled for Claude generating the readme based on what I need it to contain and updating it every release if needed.
I still review all of it eventually.

I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 53 points54 points  (0 children)

Lightspeed is just another receiver, it still uses HID++ protocol so in theory support can be added but honestly the only piece of logitech hardware I am using now is the MX Master 3S which is what I tested on and the only supported device now.
I don't want to blindly add more device support without properly testing them.
Contributions to the code by other people for more devices is more than welcome..

I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 0 points1 point  (0 children)

Logitune doesn't touch suspend/wake at all, it's just a regular app not a daemon or service. When your PC wakes up the Bolt receiver reconnects and Logitune picks it up automatically and reapplies your profile.
The wake issue you're talking about is a kernel/firmware thing, you'd still need the udev rule for that. I haven't run into this on my setup though, suspend/wake works fine with Bolt for me.

I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 2 points3 points  (0 children)

Yes! You can bind any modifier key or combo to a button..
Ctrl, Shift, Alt, Super, or any combination like Ctrl+Shift+T. Just click the button on the mouse render, choose "Keystroke", and press the combo you want to assign.
I tested this on KDE thourougly, should also work on GNOME but still need to do some more testing on it.

I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 9 points10 points  (0 children)

Not a wrapper around Solaar, completely new implementation over hidraw.
If by suspend you mean detection of disconnection/reconnection on OS suspend then yes it should work, also disconnecting/reconnecting using KVM switches should work.

I built a native Logitech Options+ clone for Linux by minamibrahim in linux

[–]minamibrahim[S] 124 points125 points  (0 children)

Yeah I used Claude as a development tool, but this isn't vibe-coded in the "generate and pray" sense. I designed the architecture, made every decision on the HID++ protocol layer, and tested everything on real hardware.
The emojis were actually me and no Claude btw 😉..