11-02-2012 01:37 AM
I've been looking for something like the Solar App for Linux for a while, and since it seems nobody has bothered to make one, I started making one myself.
The project is open source and available at https://github.com/pwr/Solaar . It's been developed using the little bit of documentation Logitech released on their HID protocol, a lot of intercepted USB traffic, and trial-and-error. Needless to say, it is highly experimental, and not supported by Logitech in any way.
Technically the application should support any of the Logitech devices that use the Unifying Receiver, but I only have a K750 keyboard and that's the only device I've been able to test it with.
If anyone decides to test it, please note that before running it you will have to perform a few steps, including some compilation and system configuration. So please read the README and INSTALL files carefully.
At https://github.com/pwr/Solaar/downloads you will find an archive of the application, with the necessary libraries pre-compiled for 64bit. I'm not sure it will work for anyone else since I've done the compilation on my machine (Debian sid), but you can give it a try. Don't forget to install the udev rules though, otherwise the Unifying Receiver won't be detected.
Any feedback and patches welcome .
11-05-2012 01:09 PM - edited 11-05-2012 01:13 PM
(Quick info: I've got a single unifying receiver supporting both a K750 Keyboard and a Performance MX mouse, Ubuntu 12.10 64-bit).
So I've downloaded your code from your github site and I'm trying to work through what I'm seeing.
I understand the udev rules (I have a short writeup you might consider including in your documentation so users understand what to look for to ensure their UDEV rules work correctly, looks like your rules will work out of the box for most people's installations however) and have those in place with PlugDev user working properly.
I go into your distribution and notice the "bin" directory.
* hidconsole does what I believe it should...it will properly connect to the unifying receiver to send codes to it (haven't tried to do anything with it, but i did verify it could connnect to my unifying receiver properly).
* scan seems to work as well. Other than one issue I can't reproduce (it started throwing a bunch of errors) it seems to properly detect and understand the keyboard and displays proper information about it's functionalty and status.
* Solaar: the application DOES manage to start (I get the tray ICON in KDE with Gnome support installed). Of the 3 times i've started it:
* the first time (before reboot with UDEV in place) the app properly told me it found the receiver but couldn't write to it.
* the second time after the UDEV Reboot the app properly started and started "scanning". Never displayed information.
* The third time after killing the second run, it's started again but I can't tell if it's ever stopped scanning and/or found any information.
ON each of the three times, the applciation would not quit (the first two times I eventually got the ability to right click the task bar icon and got the "quit" option, but the "quit' feature did not work). This last time the icon is in the tray but right click produces no results and no data seems to be coming from the keyboard at all. At one point I did manage to get a box up on screen that was blank/empty but that had the "Solaar" name in it's title. Again, no indication as to what it was supposed to be doing.
Unsure where to go from here, there are no other directories that seem to contain executable software and no build instructions.
I'd love to assist you in any way making this application work. Let me know what you need done. I am NOT a python developer but am a linux sys admin with development experience so pretty much anything outside of submitting actual patches I should be able to help with.
Let me know what you need, what information would be helpful, or if there are installation requirements (i.e. The app must be in X directory, try downloading from GIT source, etc.) or a build I can do let me know what you need.
BTW I assume you've seen the following info:
11-06-2012 08:01 AM
Thank you for testing the application, and the feedback .
The documentation is indeed currently somewhat lacking, I've mostly focused on the code so far. I'll expand the README with more detailed installation instructions, though any contribution would be more than welcome!
For deploying the application, theoretically you would not need to do anything specially. You could get the code from the Github page (https://github.com/pwr/Solaar), or download the archive and unpack it anywhere, and then just start the binaries form anywhere. Unless I've messed something up (which is quite possible), in which case the contents of the console output would help me fix the problem.
I've developed hidconsole mostly for testing communication with the receiver and checking request/reply traffic with the controller; only people developing on the application and debugging communication with devices would find it of any use.
The scan command is mostly to check if the application recognizes devices connected and can talk to them. I'd love to see a 'scan -v' output from your machine (-v it will also print traffic with the UR), since this would help me debug most problems in detecting devices and their capabilities.
The problems with Solaar are indeed strange. Could you start it with 'solaar -vv' for a full log, and send me the output?
Also, something I haven't documented yet: left-clicking the tray icon should show the application window, and right clicking it should show the context menu. You could also add '-S' to disable the systray icon, the application window should show up immediately and closing it should stop the application.
Possibly, there may be some dependency issues. I haven't built in any checking of dependencies and their versions yet, but probably I should do that. Just to make sure, I assume you're using the latest Solaar version (0.7.1), and have the right dependencies installed (libgtk3, python-pyudev, python-gi, gir1.2-gtk-3 -- the names of the packages might be different for your distro). Could you tell me what version of these packages you have?
If you have a Github account, I'd appreciate if you could create issues in the project, with each problem you encounter (and all the console output from the application). If not, just send me an email at daniel.pavel AT gmail DOT com with all the outputs. Btw, what distro do you use, and what version? I've developed on Debian unstable so far.
One more thing -- could you do test runs of 'solaar -vv' with both devices connected and then both devices turned off? The output would greatly help me in checking that the devices are identified correctly.
I've seen Julien's blog entry, actually it's what I used to start the development . I was just planning to contact him as well, but as there still seem to be issues, I'd rather fix them first.
11-07-2012 08:39 AM
PWR: No issues at all, happy to help.
Yea, I've got a GITHUB account though haven't used it in a while, they've done ALOT of changes. I'll go ahead and follow your code and try to setup some bug reports for you with your output. Anything I can't get there I"ll send to you in e-mail.
Thanks for the work on this, I'll get the various requested items to you today hopefully.
11-08-2012 02:08 AM
New version release of Solaar.
- Improved support of HID 1.0 devices
- Replaced the native code (and any need for compilation) with pure-Python, which makes deployment much less cumbersome.
Thanks to Illydth for testing and sending error reports .
11-08-2012 02:47 PM
To anyone who has not tried this, the code is pretty flawless right now...at least on my system.
Starting the app at Session Start has no problems and the app pretty easily detects your devices. There seems to be a way to even pair devices in the interface (which I've not tested but I assume works) so you can even add devices to a unified receiver through this.
AWESOME software, looking VERY professional at this point and seems to work flawlessly. HATS OFF to PWR for this piece of software.
If you've not tried this and are looking for a quality piece of code to check your battery status and light levels in Linux, this is it.
11-12-2012 11:37 PM
I've done another release of Solaar, this is version 0.7.4.
This new version has some UX improvements to the app -- thanks to feedback from Douglas I've worked a bit to make the UI more intuitive and less intrusive, and the tray icon shows the battery level when available.
As always, the package is available at https://github.com/pwr/Solaar/downloads -- just download, unpack and run "./bin/solaar".