diff --git a/docs/devices.md b/docs/devices.md index ec3a62d1..28e09a4c 100644 --- a/docs/devices.md +++ b/docs/devices.md @@ -17,10 +17,10 @@ Linux system configuration) are supported: keyboard, similar to Logitech's *Solar.app* for Windows. * The state of the `FN` key can be toggled on some keyboards ([K360][K360], - [MK700][K700], [K750][K750] and [K800][K800]). 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. + [MK700][K700], [K750][K750], [K800][K800] and [K830][K830]). 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]. @@ -65,6 +65,7 @@ Keyboards (Unifying): | K400 Touch | 2.0 | yes | | | K750 Solar | 2.0 | yes | FN swap, Lux reading, light button | | K800 Illuminated | 1.0 | yes | FN swap, reprog keys | +| K830 Illuminated | 2.0 | yes | FN swap | | TK820 | 2.0 | yes | FN swap | | MK700 | 1.0 | yes | FN swap, reprog keys | @@ -151,6 +152,7 @@ Mouse-Keyboard combos: [K700]: http://logitech.com/product/wireless-desktop-mk710 [K750]: http://logitech.com/product/k750-keyboard [K800]: http://logitech.com/product/wireless-illuminated-keyboard-k800 +[K830]: http://logitech.com/product/living-room-keyboard-k830 [M510]: http://logitech.com/product/wireless-mouse-m510 [M705]: http://logitech.com/product/marathon-mouse-m705 [P_MX]: http://logitech.com/product/performance-mouse-mx diff --git a/docs/devices/k830.txt b/docs/devices/k830.txt new file mode 100644 index 00000000..be60a63a --- /dev/null +++ b/docs/devices/k830.txt @@ -0,0 +1,41 @@ +# Provided by Mikkel Munch Mortensen + +(solaar) + 3: Illuminated Living-Room Keyboard K830 + Codename : K830 + Kind : keyboard + Wireless PID : 4032 + Protocol : HID++ 4.1 + Polling rate : 8 ms (125Hz) + Serial number: 9F7C6FD7 + Firmware: RQK 56.00.B0020 + The power switch is located on the edge of top right corner. + Supports 27 HID++ 2.0 features: + 0: ROOT {0000} + 1: FEATURE SET {0001} + 2: DEVICE FW VERSION {0003} + 3: DEVICE NAME {0005} + 4: WIRELESS DEVICE STATUS {1D4B} + 5: unknown:0020 {0020} + 6: BATTERY STATUS {1000} + 7: BACKLIGHT {1981} + 8: unknown:1B04 {1B04} + 9: unknown:2005 {2005} + 10: NEW FN INVERSION {40A2} + 11: ENCRYPTION {4100} + 12: unknown:4521 {4521} + 13: TOUCHPAD RAW XY {6100} hidden + 14: unknown:6501 {6501} + 15: unknown:00C1 {00C1} + 16: unknown:1811 {1811} internal, hidden + 17: unknown:1830 {1830} internal, hidden + 18: unknown:1890 {1890} internal, hidden + 19: unknown:18A0 {18A0} internal, hidden + 20: unknown:1DF3 {1DF3} internal, hidden + 21: unknown:1E00 {1E00} hidden + 22: unknown:1EB0 {1EB0} internal, hidden + 23: unknown:1861 {1861} internal, hidden + 24: unknown:1A20 {1A20} internal, hidden + 25: unknown:18B0 {18B0} internal, hidden + 26: unknown:1F07 {1F07} internal, hidden + Battery: 50%, discharging. diff --git a/lib/logitech_receiver/descriptors.py b/lib/logitech_receiver/descriptors.py index e147c86a..a11e288f 100644 --- a/lib/logitech_receiver/descriptors.py +++ b/lib/logitech_receiver/descriptors.py @@ -191,6 +191,11 @@ _D('Wireless Illuminated Keyboard K800', protocol=1.0, wpid='2010', _RS.hand_detection(), ], ) +_D('Illuminated Living-Room Keyboard K830', protocol=2.0, wpid='4032', + settings=[ + _FS.new_fn_swap() + ], + ) # Mice diff --git a/lib/logitech_receiver/settings_templates.py b/lib/logitech_receiver/settings_templates.py index 0769dded..23fb93b4 100644 --- a/lib/logitech_receiver/settings_templates.py +++ b/lib/logitech_receiver/settings_templates.py @@ -125,6 +125,11 @@ def _feature_fn_swap(): label=_FN_SWAP[1], description=_FN_SWAP[2], device_kind=_DK.keyboard) +def _feature_new_fn_swap(): + return feature_toggle(_FN_SWAP[0], _F.NEW_FN_INVERSION, + label=_FN_SWAP[1], description=_FN_SWAP[2], + device_kind=_DK.keyboard) + # # @@ -133,6 +138,7 @@ def _feature_fn_swap(): from collections import namedtuple _SETTINGS_LIST = namedtuple('_SETTINGS_LIST', [ 'fn_swap', + 'new_fn_swap', 'smooth_scroll', 'side_scroll', 'dpi', @@ -143,6 +149,7 @@ del namedtuple RegisterSettings = _SETTINGS_LIST( fn_swap=_register_fn_swap, + new_fn_swap=None, smooth_scroll=_register_smooth_scroll, side_scroll=_register_side_scroll, dpi=_register_dpi, @@ -151,6 +158,7 @@ RegisterSettings = _SETTINGS_LIST( ) FeatureSettings = _SETTINGS_LIST( fn_swap=_feature_fn_swap, + new_fn_swap=_feature_new_fn_swap, smooth_scroll=None, side_scroll=None, dpi=None,