Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows port #1586

Open
BierDav opened this issue Apr 28, 2022 · 8 comments
Open

Windows port #1586

BierDav opened this issue Apr 28, 2022 · 8 comments
Labels
enhancement help wanted long term Unlikely to be implemented quickly

Comments

@BierDav
Copy link

BierDav commented Apr 28, 2022

See PR #1971 for more information.

How much effort would it be to add Windows support. So that in the end you can use solaar in combination with a second software (mine eg.) to create something like logitech flow just better. With better connectivity, debuggability, ... If it is doable, I want to ask if there are some motivated people out there, which would like to help me :)

@pfps
Copy link
Collaborator

pfps commented Apr 28, 2022

Solaar does a number of low-level things that would have to be ported to Windows.
There is device discovery which uses several complex aspects of Linux. There is direct access to the HID++ device interface. There are the interactions between rules and the OS. It should be possible to do all of these in Windows, but that requires someone who knows Windows. The critical bits are the first two.
The GUI interface is mostly done using GTK so that part should be easy to port.

There is an enhancement request to port to Mac OS #1244. Some of the effort to port to Windows could be shared with an effort to port to Mac OS.

@pfps pfps added the long term Unlikely to be implemented quickly label May 18, 2022
@pfps pfps changed the title Windows Support Windows port Jul 10, 2022
@hgkamath
Copy link

hgkamath commented Sep 9, 2022

A thank-you to the developers of this awesome utility. I'm gonna try-out solaar I reboot next time into Linux-Fedora-36.
I chanced on this project while searching for alternatives on windows.
On windows, the logitech setpoint (for my K810) is a whole lot of bloatware, about ~100Mb.
One hopes for a small binary utility, as small as for Linux, <2MB size, be it a cli, tui or a simple-gui (qt or otherwize).

@pfps
Copy link
Collaborator

pfps commented Sep 9, 2022

I think most of the size of the Logitech software is images, which are somewhat helpful.

A port of the CLI part of Solaar would be much simpler than a port of the low-level code supporting the GUI.

@pfps
Copy link
Collaborator

pfps commented Jan 24, 2023

Please look at PR #1971 and check it out.

@centuryboy774
Copy link

centuryboy774 commented Apr 22, 2024

Why? Not to be rude but the logitech software hub exists for windows and macOS. Logitech already covers OS'S with there good software. Only a shame they refuse to port it to linux like every other company. This issue being open seems to hogging up space for other more important endeavors. The whole point of this project is to help linux users control there logitech devices that logitech refuses to make there software for linux.

@hgkamath
Copy link

hgkamath commented May 3, 2024

Firstly, thank-you to the developer(s) for contributing to the project and also considering windows, and other OS.
v1.11, released on 20240218, had partial support for macOS and minimal support for Windows.

I use Linux and Windows almost equally, Linux slightly more, but I do think the ports for other OS-es are equally useful.

Windows users want to be free from both Microsoft's and Logitech's bloat and potentially telemetry too.

Being a python project that uses a interpreter/bytecodeVM, as long as the python-libraries and imports abstract away the OS dependencies (say just like how wxwidgets/wxpython, a GUI toolkit, does) it should be fine to stay ahead on Linux development, and let features on other OS catch up when volunteer developer cycles free up. For this to happen, one mustn't hard-code too many Linux-specific dependencies without a way to abstract, because that will foreclose possibilities for other OSes, or make things harder to change later on. With a good OS abstraction, development for Linux would not be hindered, and Linux features can proceed with full steam ahead. Good OS abstraction is good programming art in itself.

The claim that a little bit of architecture-time over-watch to ensure OS portability is hogging space/resources may not be true. The commit log shows the project is progressing. The existence of an open-source fresh independent black-box re-implementation Logitech's HID++ protocol, which achieves the same function as the proprietary, necessarily raises developers understanding of how the Logitech's software configuration protocol works on Windows. For any OS, the code in kernel or library that implements HID++ has to speak this protocol with the devices. Each OS needs to have device drivers for the HID++ device and must have a shared library to expose the protocol-API to a user-process. A userspace front-end configuration program then uses the HID++ API and allows the user to do modify device setttings. pwr-solaar is then one such front-end that uses the HID++ protocol. Presets for various models/devices exist for exposing relevant controls/settings. Its software architecture isn't going to be so drastically different so as to make portability a insurmountable challenge. Logitech itself had to design its proprietary software and protocol so that it can ported between MacOS and Windows, OS-portability would be inherent to/baked into the the configuration protocol. So aiming for portability in the front-end is a non-issue.

It also helps expands the project's user base. If Windows users also switch to pwr-solaar, then all the more users of the project. If some are development aware they can contribute to bug catching and if they also know python they could contribute to feature development, such activity may benefit users of all OS commonly.

As mentioned in an earlier comment, a port of the cli and library that lets a user do command line configuration and or custom python scripting/tooling around using it is also sufficient. The current portable (Solaar-1.1.12.zip) unzipped is about 4.4 MiB which is decent.

That Logitech intentionally refuses to make Linux drivers is information that users should consider at purchase time. A user needs information on available alternative products that work and are supported on Linux, both as in-kernel-driver and with a configuration tool. Such information needs to disseminated. That's good to know.

@pfps
Copy link
Collaborator

pfps commented Jan 2, 2025

See PR #2165

@vulpes2
Copy link
Contributor

vulpes2 commented Jan 4, 2025

I'm unable to test #2165 or #1971 at all on Windows so far, because pycairo can't be built despite the fact that cairo is actually installed and available in the MSYS2 UCRT64 environment. If anyone's familiar with this stuff on Windows, some help would be appreciated to move get this going.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement help wanted long term Unlikely to be implemented quickly
Projects
None yet
Development

No branches or pull requests

5 participants