Daniel Pavel
3690863a27
fixed receiver icon in systray menu
2013-05-26 02:56:43 +03:00
Daniel Pavel
078d003cfe
about window icon was not displayed
2013-05-26 02:56:25 +03:00
Daniel Pavel
b6ab795878
don't add receivers to the status icon tooltip
2013-05-26 02:03:58 +03:00
Daniel Pavel
7e81dede2f
non-modal about dialog; fixes #46
2013-05-26 02:01:59 +03:00
Daniel Pavel
3482257b15
fix solaar-cli when no hidraw path given
2013-05-26 01:40:10 +03:00
Daniel Pavel
9f3ab8d3dd
Merge remote-tracking branch 'origin/master'
2013-05-26 01:33:13 +03:00
Daniel Pavel
db53de2233
updated status_icon to support future appindicator implementation
2013-05-26 01:24:49 +03:00
Peter Wu
7f229005a6
solaar-cli: support specifying different receiver
2013-05-25 15:46:13 +02:00
Peter Wu
e3a887f36c
solaar-cli: fix argument parsing in Python 3
2013-05-25 15:17:43 +02:00
Daniel Pavel
3873d7099c
slightly reduce sleep timings when waiting for reply
2013-05-23 04:59:16 +03:00
Daniel Pavel
8b8b387f2a
minor tweak to guessing device icon
2013-05-22 20:50:49 +03:00
Daniel Pavel
e73f076324
don't support the VX Nano right now
2013-05-22 20:43:29 +03:00
Daniel Pavel
131f8f7f45
disable status polling on devices
...
the regular flow should be reading the battery on all devices now
2013-05-22 20:42:26 +03:00
Daniel Pavel
c3b73964d5
improved support for some Nano receivers
2013-05-22 20:41:11 +03:00
Daniel Pavel
790fc7c04b
improved support for the Nano receiver
2013-05-22 07:31:16 +03:00
Peter Wu
9c0dac044c
hid10: update 07 battery parsing based on spec
...
This fixes pwr/Solaar#49 partially, at least the charging state will be reported
correctly hereafter. The charge level may still be incorrect though.
2013-05-22 00:10:17 +02:00
Daniel Pavel
da6711c93c
the 'Solar key' on K750 is named 'Light Check button'
2013-05-21 00:48:21 +03:00
Daniel Pavel
e868cf6270
use a separate icon for the about logo
2013-05-20 16:32:26 +03:00
Daniel Pavel
d3dcdcb92e
Merge remote-tracking branch 'origin/master'
2013-05-19 11:54:38 +03:00
Peter Wu
f0542923d7
hid10: update flags description for notifications
...
The Logitech HID++ 1.0 documentation actually names the fields for devices and
receiver. Clarify that and explain why enabling all of the bits is a bad idea.
2013-05-19 10:30:41 +02:00
Peter Wu
29d0c07164
hid10: Formatting and re-order NOTIFICATION_FLAGs
...
Align values for easier reading the numeric values of NOTIFICATION_FLAGs. To
maintain consistency in the ordering of the values, swap keyboard_backlight with
keyboard_present.
2013-05-19 10:20:21 +02:00
Peter Wu
152abb086a
hid10: document notifications better
...
See [registers.txt][1] for 'keyboard_backlight'. The behavior of
keyboard_sleep_raw and keyboard_multimedia_raw is described at
[keyboard.txt][2].
[1]: https://git.lekensteyn.nl/ltunify/tree/registers.txt
[2]: https://git.lekensteyn.nl/ltunify/tree/keyboard.txt
2013-05-19 10:14:31 +02:00
Daniel Pavel
d5c36ddc89
about window tweak
2013-05-19 03:54:30 +03:00
Daniel Pavel
226a4ea2f3
version 0.8.8.1
2013-05-19 03:53:49 +03:00
Daniel Pavel
ac0eafe6ab
don't crash when failing to load the icon mask
2013-05-19 03:52:01 +03:00
Daniel Pavel
ef62892f60
pop up a desktop notification if the battery is below 5%
2013-05-18 14:35:33 +03:00
Daniel Pavel
7ae24488d9
only notify on connected devices at start-up
2013-05-18 02:20:22 +03:00
Daniel Pavel
317cf6d00f
only enable certain notification flags on devices
...
Also added some documentation to the notification flags, where possible.
2013-05-18 00:15:42 +03:00
Daniel Pavel
a5eeac6e5a
enable notifications for peripherals; fixes #27
2013-05-17 23:06:24 +03:00
Daniel Pavel
1764633bc5
status icon menu items open the right device window
2013-05-17 19:55:07 +03:00
Daniel Pavel
5f46c820e6
re-work the status icon updating
2013-05-17 16:03:37 +03:00
Daniel Pavel
c20b279362
minor tweaks
2013-05-08 12:06:01 +03:00
Daniel Pavel
24ceb8801e
window popup fix for kwin
...
also, only try to position the window next to the status icon if it has never
been shown before
2013-05-07 05:59:29 +02:00
Daniel Pavel
8d5ca66db7
get rid of bad map() calls
2013-05-06 17:51:03 +02:00
Daniel Pavel
074cafbab1
simpler (and dumber) way to position receiver windows initially
2013-05-06 17:39:27 +02:00
Daniel Pavel
79cd52833c
fix hidconsole for python 2/3
2013-05-06 17:38:09 +02:00
Daniel Pavel
6b75286885
Merge remote-tracking branch 'origin/master'
2013-05-06 17:23:38 +02:00
Daniel Pavel
b884ae039c
Merge pull request #40 from Lekensteyn/fixes
...
Fix window close, fix positioning of new windows
2013-05-06 08:19:27 -07:00
Daniel Pavel
3ecfdd027e
handle all 07/0D register notifications
2013-05-06 17:08:58 +02:00
Daniel Pavel
55ca9927b0
python 2/3: fix handling of first argument (unicode) of pack/unpack
2013-05-06 16:50:17 +02:00
Daniel Pavel
15f24eb26b
use 'with' lock syntax instead of acquire/release
2013-05-06 15:35:20 +02:00
Daniel Pavel
0283bb0e91
fix str/unicode detection in Python 3.2
2013-05-06 15:33:42 +02:00
Daniel Pavel
d39c0995b6
Merge remote-tracking branch 'origin/master'
2013-05-06 14:55:21 +02:00
Daniel Pavel
db4c088ce9
Merge pull request #37 from Lekensteyn/py3-compat
...
Py3 compat: replace use of "unicode" (pwr/Solaar#32 )
The `u''` syntax fails in Python 3.2; will fix is_string after the merge.
2013-05-06 05:54:53 -07:00
Daniel Pavel
a4898e24b7
extended documentation of descriptors and registers
2013-05-06 14:51:57 +02:00
Daniel Pavel
74ca91d611
next version will be 0.8.8
2013-05-06 14:33:06 +02:00
Daniel Pavel
e94d4b28b0
build a proper ghost device when unpairing; fixes #36
2013-05-06 12:06:28 +02:00
Peter Wu
dded8504e6
Fix window positioning of main windows
...
Previously, the intent was likely to position the receiver window near the
status icon. It did so by calling move followed by present. According to the
Gtk documentation, move() may fail if the window is hidden before.
Therefore present the window *after* determining the position, but *before*
moving it. (presenting the window before getting the position gives a Gtk
warning and has unpredictable behavior wrt. the window position).
As window positioning is now enabled, add additional logic to prevent overlap
of windows: position the first window near the status icon and others on the
left. This is not idea, e.g. when the status icon is on the left side of the
screen, but the idea of positioning windows near to each other is broken anyway.
2013-05-05 11:18:29 +02:00
Peter Wu
a2bad425f6
Fix window close, icon toggle logic
...
"Toggle" should mean "show or hide all windows", not "flip the visibility state
of windows". Case: one receiver window is open. When a new receiver is
connected, I also expect it to be open. Instead it is hidden, so I click the
icon. Now the new receiver window is shown, but the previous one is hidden.
Huh?! Indeed, let's fix that.
2013-05-05 11:18:29 +02:00
Daniel Pavel
a4ec8ec05d
better error dialog on receiver permission error; fixes #17
...
The problem is caused by starting Solaar right after installing it; while udev
does have the new rule loaded, the /dev/hidraw* device nodes already exist
with the old permissions.
Rather than doing a "udevadm --reload-rules" (which could have unknown side-
effects on other devices), instruct the user to remove and re-insert the usb
receiver. The new /dev/hidraw* device nods will be created with the right
permissions.
2013-05-05 10:35:03 +02:00
Daniel Pavel
1f48e44cc6
Merge remote-tracking branch 'origin/master'
2013-05-04 20:20:43 +02:00
Daniel Pavel
83613f02a0
disable info label while we're still reading the info from the device
2013-05-04 20:19:33 +02:00
Daniel Pavel
9d8743e765
comment-out descriptor settings for Anywhere MX, not actually tested
2013-05-04 20:18:10 +02:00
Peter Wu
2327a0012e
descriptors.py: Clarify use of negative values
...
The negative behavior is not obvious, document it in the descriptors.py file
such that people who edit it to add new devices know how it works.
2013-05-04 20:02:37 +02:00
Daniel Pavel
4cdd796a3d
comment-out some debugging prints
2013-05-04 19:50:50 +02:00
Daniel Pavel
e819265e7e
fix automatic register blacklisting
2013-05-04 19:50:08 +02:00
Daniel Pavel
d7dd9393ff
minor clean-ups
2013-05-04 17:19:48 +02:00
Daniel Pavel
64c36a1562
updated descriptors table and the devices doc
2013-05-04 17:18:39 +02:00
Daniel Pavel
13a54565ba
cleaned-up the descriptors table
2013-05-04 15:09:50 +02:00
Daniel Pavel
4eeca12d6a
create and destroy windows on demand
...
based on receiver added/removed events generated by udev
2013-05-04 12:20:51 +02:00
Daniel Pavel
ad577d22d0
handle sleep in udev monitoring, fixes #35
2013-05-04 12:19:29 +02:00
Daniel Pavel
5e68094e87
split the about window into its own module
2013-05-04 12:01:28 +02:00
Peter Wu
10c26fe642
Py3 compat: replace use of "unicode" ( pwr/Solaar#32 )
...
Generating "an unknown notification" type bailed out because of an unknown
feature type None. Since `isinstance(other, str)` is False for None, the script
will raise an exception on `isinstance(other, unicode)`.
There is no differentiation between `str` and `bytes` in Python 2, therefore
add another condition to `NamedInt.__eq__` to catch unknown types (like
`bytes`).
2013-05-03 23:46:46 +02:00
Daniel Pavel
49ecd252ed
always log exceptions, even without -v
2013-05-03 18:42:45 +02:00
Daniel Pavel
2ee2a5dc46
Merge remote-tracking branch 'origin/master'
2013-05-03 17:08:32 +02:00
Daniel Pavel
430fdf4fcf
initial support for the MOUSE_POINTER hid++2.0 feature
2013-05-03 17:08:26 +02:00
Daniel Pavel
abca81ea38
fix device _match-ing in enumerate()
2013-05-03 16:35:54 +02:00
Daniel Pavel
a0a76f738b
assert that data read/written on the receiver handle is of type bytes
2013-05-03 16:35:28 +02:00
Daniel Pavel
7d440c2430
replace thrown OSError with IOError
2013-05-03 16:25:32 +02:00
Daniel Pavel
94274fd092
Merge pull request #34 from Lekensteyn/battery-notif
...
Refactor battery setter, register 07 processing
2013-05-02 20:40:20 -07:00
Peter Wu
266edd80f3
Process reg07 battery notification
2013-05-03 00:10:58 +02:00
Peter Wu
d1b1be32ca
Make read_battery use set_battery_info
...
This allows battery readouts to generate warnings and debug logs for a given
status and level.
2013-05-02 23:56:08 +02:00
Peter Wu
fbdd923d43
Refactor battery info update
...
- `self[BATTERY_STATUS] = BATTERY_STATUS[battery_status]` should be:
`self[BATTERY_STATUS] = _hidpp20.BATTERY_STATUS[battery_status]`, otherwise
the battery status would be a single char from the string `battery-status`.
- Make `_hidpp20.BATTERY_OK` check against strings instead of a number.
- Move setting battery information to a separate function, `set_battery_info`.
This prepares for notifications when a battery error/warning occurs.
2013-05-02 23:51:40 +02:00
Peter Wu
d8e469a33a
hidpp10: split reg07 (battery) parsing so it can be reused
2013-05-02 23:06:45 +02:00
Peter Wu
a6b89b3ea3
Python3 compatibility for hidconsole
...
`type(u'')` is 'str' in Python 3, it was `unicode` on Python 2 (with
`unicode_literals` from `__future__`).
2013-05-02 22:58:35 +02:00
Daniel Pavel
0f80901bce
quicker detection of matching receivers in udev
2013-05-02 11:11:53 +02:00
Daniel Pavel
8fc45e5590
fix solaar-cli to handle the new Receiver.open() api
2013-05-01 15:51:12 +02:00
Daniel Pavel
c829304e31
use only udev events to detect receiver devices
2013-05-01 15:47:23 +02:00
Daniel Pavel
d3f94ff2fb
detect some HID++1.0 custom battery notifications
...
they're not handled yet
2013-05-01 11:36:15 +02:00
Daniel Pavel
04db6d3838
python 3 fixes for #29
2013-04-30 22:31:06 +02:00
Daniel Pavel
e5a28ac64e
simplified window/icon code, reworked how device updates are signalled
2013-04-30 19:44:03 +02:00
Daniel Pavel
2397c6c0ea
about dialog updated
2013-04-30 17:25:09 +02:00
Daniel Pavel
c3e6c3d1da
more flexible icon loading
2013-04-30 15:45:35 +02:00
Daniel Pavel
22da75cb72
replaced some deprecated GObject calls with GLib
2013-04-30 11:47:30 +02:00
Daniel Pavel
9c621d5816
always try to initialize systray icon and notifications
2013-04-28 15:44:20 +02:00
Daniel Pavel
feedbcf581
some code clean-ups
2013-04-28 15:16:45 +02:00
Daniel Pavel
a57f3be58d
renamed event alert levels to be more clear
2013-04-28 15:12:20 +02:00
Daniel Pavel
897dffc426
only dispatch notification events from the specialized listener thread
2013-04-28 15:09:09 +02:00
Daniel Pavel
6f0b61e6d8
better handling of eq/ne/hash in receiver and device objects
2013-04-28 15:02:17 +02:00
Daniel Pavel
674ee9ac9e
split read_battery in status into its own function
2013-04-28 15:01:27 +02:00
Daniel Pavel
5eab013cf6
more explicit logging
2013-04-28 14:58:40 +02:00
Daniel Pavel
079ef8d800
incipient support for the Nano receiver
2013-04-28 14:27:16 +02:00
Daniel Pavel
1a9be279c6
move the code for single-instance check into its own file
2013-04-28 14:06:41 +02:00
Daniel Pavel
f5d2eba0c4
hidapi: dropped native, slight update to the python implementation
...
added an optional filter for driver name when enumerating devices
2013-04-28 14:05:33 +02:00
Daniel Pavel
e7d19c9084
small fixes to hidconsole
2013-04-28 14:00:46 +02:00
Daniel Pavel
638bf38b25
version increased to 0.8.7.1
2013-04-28 13:59:07 +02:00
Daniel Pavel
c4dc49ac5e
Merge pull request #24 from Lekensteyn/hid10-fnkey
...
Add FN key swap support for K800 (and presumably K710)
2013-04-28 02:03:33 -07:00
Peter Wu
5e58f1e273
Fix battery status reading, add "fully charged"
...
Commit 438c501fae
introduced support for HID++ 1.0
battery information. That accidentally selected the third parameter instead of
the second one. This commit fixes that and additionally adds a "fully charged"
status too that was found on the K800.
2013-04-27 17:07:55 +02:00
Peter Wu
c79ad65d37
Add K710 with FN key swap support ( pwr/Solaar#18 )
...
The K710 keyboard is (according to the issue reporter) part of a MK710 combo
(which also contains a M705 mouse). Observing a succesful 07 register read,
I think that it is a HID++ 1.0 device too that uses the same register for FN
key swapping as K800.
2013-04-27 15:17:05 +02:00
Peter Wu
95a97ad776
Support FN keys swap for K800
2013-04-27 15:13:42 +02:00