readme updates

This commit is contained in:
Daniel Pavel 2012-12-03 15:07:35 +02:00
parent 1b6e6692c0
commit 5a99e55309
3 changed files with 65 additions and 37 deletions

95
README
View File

@ -1,60 +1,83 @@
Solaar **Solaar** is a Linux device manager for Logitech's
------ [Unifying Receiver](http://www.logitech.com/en-us/66/6079) peripherals.
It comes in two flavours, command-line and GUI. Both are able to list the
This application connects to a Logitech Unifying Receiver devices paired to a Unifying Receiver, show detailed info for each device, and
(http://www.logitech.com/en-us/66/6079) and listens for events from devices also pair/unpair supported devices with the receiver.
attached to it.
Currently the K750 solar keyboard is also queried for its solar charge status.
Support for other devices could be added in the future, but the K750 keyboard is
the only device I have and can test on.
Requirements Requirements
------------ ------------
- Python (2.7 or 3.2). Either version should work well. You should have a reasonably new kernel (3.2+), with the `logitech-djreceiver`
- Gtk 3; Gtk 2 should partially work with some problems. driver enabled and loaded; also, the `udev` package must be installed and the
- Python GI (GObject Introspection), for Gtk bindings. daemon running. If you have a modern Linux distribution (2011+), you're most
- pyudev for enumerating udev devices. likely good to go.
- Optional libnotify GI bindings, for desktop notifications.
The necessary packages for Debian/Ubuntu are `python-pyudev`/`python3-pyudev`, The command-line application (`bin/solaar-cli`) requires Python 2.7.3 or 3.2+
`python-gi`/`python3-gi`, `gir1.2-gtk-3.0`, and optionally `gir1.2-notify-0.7`. (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 Installation
------------ ------------
Normally USB devices are not accessible for r/w by regular users, so you will Normally USB devices are not accessible for r/w by regular users, so you will
need to install a udev rule to allow access to the Logitech Unifying Receiver. need to do a one-time udev rule installation to allow access to the Logitech
Unifying Receiver.
In rules.d/ you'll find a udev rule file, to be copied in /etc/udev/rules.d/ (as In the `rules.d/` folder of Solaar you'll find a udev rule file, to be copied in
root). `/etc/udev/rules.d/` (as the root user).
In its current form it makes the UR device available for r/w by all users In its current form it makes the Unifying Receiver device available for r/w by
belonging to the 'plugdev' system group (standard Debian/Ubuntu group for all users belonging to the `plugdev` system group (standard Debian/Ubuntu group
pluggable devices). It may need changes, specific to your particular system's for pluggable devices). It may need changes, specific to your particular
configuration. system's configuration.
If in doubt, replacing GROUP="plugdev" with GROUP="<your username>" should just If in doubt, replacing `GROUP="plugdev"` with `GROUP="<your username>"` should just
work. work.
After you copy the file to /etc/udev/rules.d (and possibly modify it for your After you copy the file to `/etc/udev/rules.d` (and possibly modify it for your
system), run 'udevadm control --reload-rules' as root for it to apply. Then system), run `udevadm control --reload-rules` as root for it to apply. Then
physically remove the Unifying Receiver, wait 30 seconds and re-insert it. physically remove the Unifying Receiver, wait 10 seconds and re-insert it.
Supported Devices
-----------------
**Solaar** will detect all devices paired with your Unifying Receiver, and at
the very least display some basic information about them. Depending on the
device, it may be able to read its battery status. Changing various settings
of the devices (like mouse DPI) is currently not supported, but implementation
is planned.
The [K750 Solar Keyboard](http://www.logitech.com/keyboards/keyboard/devices/7454)
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, similar to Logitech's Solar app for Windows.
Extended support for other devices will be added in the future, depending on the
documentation available, but the K750 keyboard is the only device I have and can
test on right now.
Thanks Thanks
------ ------
This project began as a third-hand clone of Noah K. Tilton's logitech-solar-k750 This project began as a third-hand clone of [Noah K. Tilton](https://github.com/noah)'s
project on GitHub (no longer available). It was developed further thanks to the logitech-solar-k750 project on GitHub (no longer available). It was developed
diggings in Logitech's HID protocol done, among others, by Julien Danjou further thanks to the diggings in Logitech's HID++ protocol done by many other
(http://julien.danjou.info/blog/2012/logitech-k750-linux-support) and people:
Lars-Dominik Braun (http://6xq.net/git/lars/lshidpp.git).
- [Julien Danjou](http://julien.danjou.info/blog/2012/logitech-k750-linux-support),
Cheers, who also provided some internal
-pwr [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)

View File

@ -348,7 +348,7 @@ def _update_device_box(frame, dev):
def update(window, receiver, device=None): def update(window, receiver, device=None):
assert receiver is not None assert receiver is not None
# print ("update", receiver, receiver.status, device, None if device is None else device.number) # print ("update %s %s, %s" % (receiver, receiver.status, device))
window.set_icon_name(ui.appicon(receiver.status)) window.set_icon_name(ui.appicon(receiver.status))
vbox = window._vbox vbox = window._vbox

View File

@ -57,6 +57,11 @@ PAIRING_ERRORS = _NamedInts(
too_many_devices=0x03, too_many_devices=0x03,
sequence_timeout=0x06) sequence_timeout=0x06)
REGISTERS = _NamedInts(
battery=0x0D,
dpi=0x63,
leds=0x51)
# #
# functions # functions
# #