147 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| **Solaar** is a Linux device manager for Logitech's [Unifying Receiver][unifying]
 | |
| peripherals. It is able to pair/unpair devices to the receiver, and for most
 | |
| devices read battery status.
 | |
| 
 | |
| It comes in two flavors, command-line and GUI.  Both are able to list the
 | |
| devices paired to a Unifying Receiver, show detailed info for each device, and
 | |
| also pair/unpair supported devices with the receiver.
 | |
| 
 | |
| 
 | |
| ## Supported Devices
 | |
| 
 | |
| **Solaar** will detect all devices paired with your Unifying Receiver, and at
 | |
| the very least display some basic information about them.
 | |
| 
 | |
| For some devices, extra settings (usually not available through the standard
 | |
| Linux system configuration) are supported:
 | |
| 
 | |
| * The [K750 Solar Keyboard][K750] is also queried for its solar charge status.
 | |
|   Pressing the `Solar` key on the keyboard will pop-up the application window
 | |
|   and display the current lighting value (Lux) as reported by the keyboard,
 | |
|   similar to Logitech's *Solar.app* for Windows.
 | |
| 
 | |
| * The state of the `FN` key can be toggled on some keyboards ([K750][K750],
 | |
|   [K800][K800] and [K360][K360]). It changes the way the function keys
 | |
|   (`F1`..`F12`) work, i.e. whether holding `FN` while pressing the function keys
 | |
|   will generate the standard `Fx` keycodes or the special function (yellow
 | |
|   icons) keycodes.
 | |
| 
 | |
| * The DPI can be changed on the [Performance MX Mouse][P_MX].
 | |
| 
 | |
| * Smooth scrolling (higher sensitivity on vertical scrolling with the wheel) can
 | |
|   be toggled on the [M705 Marathon Mouse][M705] and [Anywhere MX Mouse][A_MX].
 | |
| 
 | |
| Extended support for other devices may be added in the future, depending on the
 | |
| documentation available, but the K750 keyboard and M705 mouse are the only
 | |
| devices I have and can directly test on right now.
 | |
| 
 | |
| 
 | |
| ## Pre-built packages
 | |
| 
 | |
| Pre-built packages are available for a few Linux distros:
 | |
| 
 | |
| * Ubuntu 12.04+: [ppa:daniel.pavel/Solaar][ppa]
 | |
| * a Debian/sid package: [.deb][debian]
 | |
| * a [Gentoo overlay][gentoo], courtesy of Carlos Silva
 | |
| * an [OpenSUSE rpm][opensuse], courtesy of Mathias Homann
 | |
| * an [Arch package][arch], courtesy of Arnaud Taffanel
 | |
| 
 | |
| [ppa]: http://launchpad.net/~daniel.pavel/+archive/solaar
 | |
| [debian]: http://pwr.github.com/Solaar/packages/solaar_0.8.7-1_all.deb
 | |
| [gentoo]: http://code.r3pek.org/gentoo-overlay/src
 | |
| [opensuse]: http://software.opensuse.org/package/Solaar
 | |
| [arch]: http://aur.archlinux.org/packages/solaar
 | |
| 
 | |
| ## Manual instalation
 | |
| 
 | |
| ### Requirements
 | |
| 
 | |
| You should have a reasonably new kernel (3.2+), with the `logitech-djreceiver`
 | |
| driver enabled and loaded; also, the `udev` package must be installed and the
 | |
| daemon running.  If you have a modern Linux distribution (2011+), you're most
 | |
| likely good to go.
 | |
| 
 | |
| The command-line application (`bin/solaar-cli`) requires Python 2.7.3 or 3.2+
 | |
| (either version should work), and the `python-pyudev`/`python3-pyudev` package.
 | |
| 
 | |
| The GUI application (`bin/solaar`) also requires Gtk3, and its GObject
 | |
| Introspection bindings. The Debian/Ubuntu package names are
 | |
| `python-gi`/`python3-gi` and `gir1.2-gtk-3.0`; if you're using another
 | |
| distribution the required packages are most likely named something similar.
 | |
| If the desktop notifications bindings are also installed (`gir1.2-notify-0.7`),
 | |
| you will also get desktop notifications when devices come online/go offline.
 | |
| 
 | |
| ### Installation
 | |
| 
 | |
| Normally USB devices are not accessible for r/w by regular users, so you will
 | |
| need to do a one-time udev rule installation to allow access to the Logitech
 | |
| Unifying Receiver.
 | |
| 
 | |
| You can run the `rules.d/install.sh` script from Solaar to do this installation
 | |
| automatically (it will switch to root when necessary), or you can do all the
 | |
| required steps by hand, as the root user:
 | |
| 
 | |
| 1. copy `rules.d/99-logitech-unfiying-receiver.rules` from Solaar to
 | |
|   `/etc/udev/rules.d/`
 | |
| 
 | |
|   By default, the rule makes the Unifying Receiver device available for r/w by
 | |
|   all users belonging to the `plugdev` system group (standard Debian/Ubuntu
 | |
|   group for pluggable devices). It may need changes, specific to your
 | |
|   particular system's configuration. If in doubt, replacing `GROUP="plugdev"`
 | |
|   with `GROUP="<your username>"` should just work.
 | |
| 
 | |
| 2. run `udevadm control --reload-rules` to let the udev daemon know about the
 | |
|   new rule
 | |
| 
 | |
| 3. physically remove the Unifying Receiver, wait 10 seconds and re-insert it
 | |
| 
 | |
| 
 | |
| ## Known Issues
 | |
| 
 | |
| - Ubuntu's Unity indicators are not supported at this time. However, if you
 | |
|   whitelist 'Solaar' in the systray, you will get an icon (see
 | |
|   [Enable more icons to be in the system tray?][ubuntu_systray] for details).
 | |
| 
 | |
| [ubuntu_systray]: http://askubuntu.com/questions/30742
 | |
| 
 | |
| - The application only looks at the first Unifying Receiver it finds, even if
 | |
|   there's more than one plugged in. Support for multiple receivers is in
 | |
|   progress.
 | |
| 
 | |
| - Devices connected throught a [Nano Receiver][nano] (which is very similar to
 | |
|   the Unifying Receiver) are not supported at this time.
 | |
| 
 | |
| - Running the command-line application (`bin/solaar-cli`) while the GUI
 | |
|   application is also running *may* occasionally cause either of them to become
 | |
|   confused about the state of the devices. I haven't encountered this often
 | |
|   enough to be able to be able to diagnose it properly yet.
 | |
| 
 | |
| 
 | |
| ## Thanks
 | |
| 
 | |
| This project began as a third-hand clone of [Noah K. Tilton](https://github.com/noah)'s
 | |
| logitech-solar-k750 project on GitHub (no longer available). It was developed
 | |
| further thanks to the diggings in Logitech's HID++ protocol done by many other
 | |
| people:
 | |
| 
 | |
| - [Julien Danjou](http://julien.danjou.info/blog/2012/logitech-k750-linux-support),
 | |
| who also provided some internal
 | |
| [Logitech documentation](http://julien.danjou.info/blog/2012/logitech-unifying-upower)
 | |
| - [Lars-Dominik Braun](http://6xq.net/git/lars/lshidpp.git)
 | |
| - [Alexander Hofbauer](http://derhofbauer.at/blog/blog/2012/08/28/logitech-performance-mx)
 | |
| - [Clach04](http://bitbucket.org/clach04/logitech-unifying-receiver-tools)
 | |
| 
 | |
| Also thanks to Douglas Wagner and Julien Gascard for helping with application
 | |
| testing and supporting new devices.
 | |
| 
 | |
| --
 | |
| 
 | |
| [unifying]: http://logitech.com/en-us/66/6079
 | |
| [nano]: http://logitech.com/mice-pointers/articles/5926
 | |
| [K750]: http://logitech.com/product/k750-keyboard
 | |
| [K800]: http://logitech.com/product/wireless-illuminated-keyboard-k800
 | |
| [K360]: http://logitech.com/product/keyboard-k360
 | |
| [M705]: http://logitech.com/product/marathon-mouse-m705
 | |
| [P_MX]: http://logitech.com/product/performance-mouse-mx
 | |
| [A_MX]: http://logitech.com/product/anywhere-mouse-mx
 |