Closed a-priestley closed 2 years ago
Wayland should not affect your issue.
It looks as if Solaar is not pushing settings correctly. To see what is going on, run Solaar as solaar -ddd
(after killing any running Solaar), turn the headset off and on, and post the output. This will show the communications between Solaar and the headset.
On power-off:
2022-09-24 14:32:33,380,380 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 0800 00000000000000000000000000000000]
2022-09-24 14:32:33,380,380 DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0AB5,G733 Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 00000000000000000000000000000000
On power-on:
2022-09-24 14:34:03,828,828 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 0800 0F1F0100000000000000000000000000]
2022-09-24 14:34:03,828,828 DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0AB5,G733 Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 0F1F0100000000000000000000000000
2022-09-24 14:34:03,828,828 DEBUG [ReceiverListener:hidraw2] logitech_receiver.status: <Device(255,0AB5,G733 Gaming Headset,)>: battery 60, discharging
2022-09-24 14:34:03,828,828 INFO [ReceiverListener:hidraw2] solaar.listener: status_changed <Device(255,0AB5,G733 Gaming Headset,)>: paired online, {'NOTIFICATION FLAGS': False, 'BATTERY LEVEL': 60, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 3871, 'BATTERY CHARGING': False, 'ERROR': None} (0)
2022-09-24 14:34:03,828,828 DEBUG [MainThread] solaar.ui: status changed: <Device(255,0AB5,G733 Gaming Headset,)> (NONE) None
2022-09-24 14:34:03,829,829 DEBUG [MainThread] solaar.ui.icons: battery icon for 60:False = battery-good
2022-09-24 14:34:03,830,830 DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'G733 Gaming Headset', {'NOTIFICATION FLAGS': False, 'BATTERY LEVEL': 60, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 3871, 'BATTERY CHARGING': False, 'ERROR': None})
2022-09-24 14:34:03,830,830 DEBUG [MainThread] solaar.ui.icons: battery icon for 60:False = battery-good
2022-09-24 14:34:03,830,830 DEBUG [MainThread] solaar.ui.icons: battery icon for 60:False = battery-good
2022-09-24 14:34:03,859,859 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 0800 0F1F0100000000000000000000000000]
2022-09-24 14:34:03,859,859 DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0AB5,G733 Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 0F1F0100000000000000000000000000
2022-09-24 14:34:03,859,859 DEBUG [ReceiverListener:hidraw2] logitech_receiver.status: <Device(255,0AB5,G733 Gaming Headset,)>: battery 60, discharging
2022-09-24 14:34:14,228,228 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 080A 0F110100000000000000000000000000]
Hmm, I don't see what I expect there. Please post the entire output from solaar -ddd
from when Solaar is started, with indications of when the headset is turned off and then on again.
No problem...
Headset already on -> solaar -ddd
Power-off headset:
2022-09-24 14:51:16,321,321 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 0800 00000000000000000000000000000000]
2022-09-24 14:51:16,321,321 INFO [ReceiverListener:hidraw2] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw2)>
2022-09-24 14:51:16,321,321 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) <= w[11 FF 011C 08000000000000000000000000000000]
2022-09-24 14:51:16,326,326 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 011C 1F200000000000000000000000000000]
2022-09-24 14:51:16,327,327 DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0AB5,G733 Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 00000000000000000000000000000000
Power-on headset:
2022-09-24 14:52:06,770,770 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 0800 0F160100000000000000000000000000]
2022-09-24 14:52:06,770,770 DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0AB5,G733 Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 0F160100000000000000000000000000
2022-09-24 14:52:06,770,770 DEBUG [ReceiverListener:hidraw2] logitech_receiver.status: <Device(255,0AB5,G733 Gaming Headset,)>: battery 60, discharging
2022-09-24 14:52:06,770,770 INFO [ReceiverListener:hidraw2] solaar.listener: status_changed <Device(255,0AB5,G733 Gaming Headset,)>: paired online, {'NOTIFICATION FLAGS': False, 'BATTERY LEVEL': 60, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 3862, 'BATTERY CHARGING': False, 'ERROR': None} (0)
2022-09-24 14:52:06,770,770 DEBUG [MainThread] solaar.ui: status changed: <Device(255,0AB5,G733 Gaming Headset,)> (NONE) None
2022-09-24 14:52:06,770,770 DEBUG [MainThread] solaar.ui.icons: battery icon for 60:False = battery-good
2022-09-24 14:52:06,771,771 DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'G733 Gaming Headset', {'NOTIFICATION FLAGS': False, 'BATTERY LEVEL': 60, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 3862, 'BATTERY CHARGING': False, 'ERROR': None})
2022-09-24 14:52:06,771,771 DEBUG [MainThread] solaar.ui.icons: battery icon for 60:False = battery-good
(solaar:903389): Gtk-CRITICAL **: 14:52:06.771: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
2022-09-24 14:52:06,772,772 DEBUG [MainThread] solaar.ui.icons: battery icon for 60:False = battery-good
2022-09-24 14:52:06,788,788 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 0800 0F160100000000000000000000000000]
2022-09-24 14:52:06,788,788 DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0AB5,G733 Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 0F160100000000000000000000000000
2022-09-24 14:52:06,788,788 DEBUG [ReceiverListener:hidraw2] logitech_receiver.status: <Device(255,0AB5,G733 Gaming Headset,)>: battery 60, discharging
2022-09-24 14:52:15,118,118 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 080A 0F060100000000000000000000000000]
Was there any other output between power off and power on?
If not, Solaar needs to interpret the message it sees as the signal of the device becoming inactive.
Please also provide the output of solaar -ddd
as Solaar starts up with the headset active and also with the headset powered off.
I'm afraid what I posted was everything that came from the three events. I will post the same but for the headset being powered off initially:
Headset off: 'solaar -ddd`
This comes in a few seconds later.. maybe I didn't notice before:
2022-09-24 16:23:19,304,304 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF FF08 0A050000000000000000000000000000]
^Actually it happens periodically with no input. A simple polling of the device if I'm not mistaken.
Power-on headset:
2022-09-24 16:24:19,352,352 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF FF08 0A050000000000000000000000000000]
2022-09-24 16:24:20,499,499 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 0800 0F090100000000000000000000000000]
2022-09-24 16:24:20,499,499 INFO [ReceiverListener:hidraw2] logitech_receiver.base: New lock <_ThreadedHandle(/dev/hidraw2)>
2022-09-24 16:24:20,500,500 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) <= w[11 FF 011E 08000000000000000000000000000000]
2022-09-24 16:24:20,504,504 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 011E 1F200000000000000000000000000000]
2022-09-24 16:24:20,504,504 DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0AB5,G733 Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 0F090100000000000000000000000000
2022-09-24 16:24:20,504,504 DEBUG [ReceiverListener:hidraw2] logitech_receiver.status: <Device(255,0AB5,G733 Gaming Headset,)>: battery 50, discharging
2022-09-24 16:24:20,505,505 INFO [ReceiverListener:hidraw2] solaar.listener: status_changed <Device(255,0AB5,G733 Gaming Headset,)>: paired online, {'NOTIFICATION FLAGS': False, 'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 3849, 'BATTERY CHARGING': False, 'ERROR': None} (0)
2022-09-24 16:24:20,505,505 DEBUG [MainThread] solaar.ui: status changed: <Device(255,0AB5,G733 Gaming Headset,)> (NONE) None
2022-09-24 16:24:20,506,506 DEBUG [MainThread] solaar.ui.icons: battery icon for 50:False = battery-good
2022-09-24 16:24:20,507,507 DEBUG [MainThread] solaar.ui.tray: picked device with lowest battery: ('/dev/hidraw2', 255, 'G733 Gaming Headset', {'NOTIFICATION FLAGS': False, 'BATTERY LEVEL': 50, 'BATTERY STATUS': NamedInt(0, 'discharging'), 'BATTERY NEXT LEVEL': None, 'BATTERY VOLTAGE': 3849, 'BATTERY CHARGING': False, 'ERROR': None})
2022-09-24 16:24:20,507,507 DEBUG [MainThread] solaar.ui.icons: battery icon for 50:False = battery-good
(solaar:928976): Gtk-CRITICAL **: 16:24:20.508: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
2022-09-24 16:24:20,508,508 DEBUG [MainThread] solaar.ui.icons: battery icon for 50:False = battery-good
2022-09-24 16:24:20,531,531 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 0800 0F090100000000000000000000000000]
2022-09-24 16:24:20,531,531 DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0AB5,G733 Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 0F090100000000000000000000000000
2022-09-24 16:24:20,531,531 DEBUG [ReceiverListener:hidraw2] logitech_receiver.status: <Device(255,0AB5,G733 Gaming Headset,)>: battery 50, discharging
Click on Headset in GUI:
2022-09-24 16:25:04,034,034 DEBUG [MainThread] solaar.ui.icons: battery icon for 50:False = battery-good
2022-09-24 16:25:04,037,037 DEBUG [AsyncUI] logitech_receiver.settings: divert-gkeys: settings read True from <Device(255,0AB5,G733 Gaming Headset,)>
2022-09-24 16:25:04,040,040 DEBUG [AsyncUI] logitech_receiver.settings: sidetone: settings read 65 from <Device(255,0AB5,G733 Gaming Headset,)>
2022-09-24 16:25:19,458,458 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 080A 0EFA0100000000000000000000000000]
Toggle off Divert G Keys:
2022-09-24 16:26:37,958,958 DEBUG [AsyncUI] logitech_receiver.settings: divert-gkeys: setting write False to <Device(255,0AB5,G733 Gaming Headset,)>
2022-09-24 16:26:37,959,959 DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(False, None) => b'\x00'
2022-09-24 16:26:37,959,959 DEBUG [AsyncUI] logitech_receiver.settings: divert-gkeys: settings prepare write(False) => b'\x00'
2022-09-24 16:26:37,960,960 DEBUG [AsyncUI] logitech_receiver.base: (21) <= w[11 FF 052E 00000000000000000000000000000000]
2022-09-24 16:26:38,003,003 DEBUG [AsyncUI] logitech_receiver.base: (21) => r[11 FF 052E 00000000000000000000000000000000]
2022-09-24 16:26:38,003,003 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 052E 00000000000000000000000000000000]
2022-09-24 16:26:42,974,974 INFO [MainThread] solaar.configuration: saved ['1.1.5', {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G733 Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'equalizer'], '_battery': 0, '_modelId': '0AB500000000', '_sensitive': {'divert-gkeys': True, 'sidetone': True}, '_unitId': 'FFFFFFFF', 'divert-gkeys': False, 'sidetone': 65}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_modelId': '000000000000', '_unitId': '00000000', '_battery': 0, '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], 'onboard_profiles': NamedInt(2, 'Disable'), 'report_rate': NamedInt(1, '1'), 'dpi': NamedInt(800, '800')}] to /home/apriestley/.config/solaar/config.yaml
And back on:
2022-09-24 16:27:19,570,570 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 080A 0EF80100000000000000000000000000]
2022-09-24 16:27:57,009,009 DEBUG [AsyncUI] logitech_receiver.settings: divert-gkeys: setting write True to <Device(255,0AB5,G733 Gaming Headset,)>
2022-09-24 16:27:57,009,009 DEBUG [AsyncUI] logitech_receiver.settings: BooleanValidator: prepare_write(True, None) => b'\x01'
2022-09-24 16:27:57,009,009 DEBUG [AsyncUI] logitech_receiver.settings: divert-gkeys: settings prepare write(True) => b'\x01'
2022-09-24 16:27:57,010,010 DEBUG [AsyncUI] logitech_receiver.base: (21) <= w[11 FF 0528 01000000000000000000000000000000]
2022-09-24 16:27:57,055,055 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF 0528 01000000000000000000000000000000]
2022-09-24 16:27:57,055,055 DEBUG [AsyncUI] logitech_receiver.base: (21) => r[11 FF 0528 01000000000000000000000000000000]
2022-09-24 16:28:02,026,026 INFO [MainThread] solaar.configuration: saved ['1.1.5', {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G733 Gaming Headset', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'onboard_profiles', 'report_rate', 'pointer_speed', 'dpi', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'equalizer'], '_battery': 0, '_modelId': '0AB500000000', '_sensitive': {'divert-gkeys': True, 'sidetone': True}, '_unitId': 'FFFFFFFF', 'divert-gkeys': True, 'sidetone': 65}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], '_battery': 0, '_modelId': '000000000000', '_unitId': '00000000', 'dpi': 800, 'onboard_profiles': 2, 'report_rate': 1}, {'_NAME': 'G502 Gaming Mouse', '_modelId': '000000000000', '_unitId': '00000000', '_battery': 0, '_absent': ['hi-res-scroll', 'lowres-scroll-mode', 'hires-smooth-invert', 'hires-smooth-resolution', 'hires-scroll-mode', 'smart-shift', 'thumb-scroll-invert', 'thumb-scroll-mode', 'pointer_speed', 'speed-change', 'backlight', 'backlight-timed', 'fn-swap', 'reprogrammable-keys', 'persistent-remappable-keys', 'divert-keys', 'disable-keyboard-keys', 'crown-smooth', 'divert-crown', 'divert-gkeys', 'm-key-leds', 'mr-key-led', 'multiplatform', 'change-host', 'gesture2-gestures', 'gesture2-divert', 'gesture2-params', 'sidetone', 'equalizer'], 'onboard_profiles': NamedInt(2, 'Disable'), 'report_rate': NamedInt(1, '1'), 'dpi': NamedInt(800, '800')}] to /home/apriestley/.config/solaar/config.yaml
Headset off:
2022-09-24 16:31:06,354,354 DEBUG [ReceiverListener:hidraw2] logitech_receiver.notifications: <Device(255,0AB5,G733 Gaming Headset,)>: notification for feature ADC MEASUREMENT, report 0, data 00000000000000000000000000000000
The message
2022-09-24 16:23:19,304,304 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF FF08 0A050000000000000000000000000000]
is an error return from the device for some attempt to read the device's battery.
If you have the output from solaar -ddd
please look in it to see if this message is always the same or if the 0A
changes and what to. Also run sudo lsof /dev/hidraw*
and then use ps to find the command line for any process other than Solaar that is accessing the hidraw nodes.
In any case Solaar has a problem with the G733 in that Solaar is not set up for devices that have receivers that don't work like other receivers. So Solaar thinks the G733 is directly connected and when connected is always active. PR #1773 should fix this problem by using ADC notifications to make the device inactive and active and thus pushing settings when the device becomes active. PR #1773 does do some useless communication if Solaar is started with the device inactive but that should be benign and should eliminate the need for some special code to handle the device.
Please run PR #1773 and check whether settings are correctly set up when the device becomes active (e.g, when the device is turned off and on again) and when Solaar starts up with the device inactive and the device becomes active later on.
To clone and use Solar from its GitHub repository
git clone https://github.com/pwr-Solaar/Solaar.git
cd Solaar
Run Solaar as bin/solaar from this directory.
To run PR #1773, first clone Solaar if you have not already done so and cd to the clone directory. The first time you download the pull request, fetch it into a new branch and checkout that branch, as in:
git fetch origin pull/1773/head:pull_1773
git checkout pull_1773
To download a new version of the pull request, fetch it and then set your pull branch to the new fetch, as in:
git checkout pull_1773
git fetch origin pull/1773/head
git reset --hard FETCH_HEAD
Also, please provide output of solaar show
wiith PR #1773. PR #1773 fixes a different bug that miscounts the number of features of devices.
The message
2022-09-24 16:23:19,304,304 DEBUG [ReceiverListener:hidraw2] logitech_receiver.base: (18) => r[11 FF FF08 0A050000000000000000000000000000]
is an error return from the device for some attempt to read the device's battery.
If you have the output from
solaar -ddd
please look in it to see if this message is always the same or if the0A
changes and what to. Also runsudo lsof /dev/hidraw*
and then use ps to find the command line for any process other than Solaar that is accessing the hidraw nodes.
Looks like it happens quite a few times in my previous post.
Headset off, Solaar launched:
=> r[11 FF FF08 0A050000000000000000000000000000]
And again a few seconds later:
=> r[11 FF FF08 0A050000000000000000000000000000]
Headset powered on:
=> r[11 FF FF08 0A050000000000000000000000000000]
=> r[11 FF 0800 0F090100000000000000000000000000]
After thread lock on hidraw2
<= w[11 FF 011E 08000000000000000000000000000000]
=> r[11 FF 011E 1F200000000000000000000000000000]
Click on headset in GUI:
=> r[11 FF 080A 0EFA0100000000000000000000000000]
Toggle off G Keys:
=> r[11 FF 052E 00000000000000000000000000000000]
Toggle on G Keys:
=> r[11 FF 080A 0EF80100000000000000000000000000]
=> r[11 FF 0528 01000000000000000000000000000000]
And that seems to be it.
In terms of /dev/hidraw
access, I'm currently having issues with fuse which I wasn't aware of until now, but here is the output:
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
solaar 38681 apriestley 15u CHR 241,1 0t0 586 /dev/hidraw1
solaar 38681 apriestley 16u CHR 241,2 0t0 592 /dev/hidraw2
solaar 38681 apriestley 19u CHR 241,2 0t0 592 /dev/hidraw2
steam 77015 apriestley 97u CHR 241,6 0t0 657 /dev/hidraw6
steam 77015 apriestley 100u CHR 241,7 0t0 659 /dev/hidraw7
steam 77015 apriestley 101u CHR 241,8 0t0 661 /dev/hidraw8
steam 77015 apriestley 103u CHR 241,9 0t0 663 /dev/hidraw9
In any case Solaar has a problem with the G733 in that Solaar is not set up for devices that have receivers that don't work like other receivers. So Solaar thinks the G733 is directly connected and when connected is always active. PR #1773 should fix this problem by using ADC notifications to make the device inactive and active and thus pushing settings when the device becomes active. PR #1773 does do some useless communication if Solaar is started with the device inactive but that should be benign and should eliminate the need for some special code to handle the device.
Please run PR #1773 and check whether settings are correctly set up when the device becomes active (e.g, when the device is turned off and on again) and when Solaar starts up with the device inactive and the device becomes active later on.
To clone and use Solar from its GitHub repository
git clone https://github.com/pwr-Solaar/Solaar.git cd Solaar
Run Solaar as bin/solaar from this directory.
To run PR #1773, first clone Solaar if you have not already done so and cd to the clone directory. The first time you download the pull request, fetch it into a new branch and checkout that branch, as in:
git fetch origin pull/1773/head:pull_1773 git checkout pull_1773
To download a new version of the pull request, fetch it and then set your pull branch to the new fetch, as in:
git checkout pull_1773 git fetch origin pull/1773/head git reset --hard FETCH_HEAD
Also, please provide output of
solaar show
wiith PR #1773. PR #1773 fixes a different bug that miscounts the number of features of devices.
I'll try out #1773 and get back to you with the results.
Here is the output of bin/solaar show
from pull_1773
with the headset turned off:
Does the above error indicate that Solaar still thinks the headset is connected directly?
Here it is with the headset switched on:
That aside, it seems to have solved the main issue. Sidetone and G Key diversion now work out of the gate. However, battery voltage still does not display unless Solaar is launched followed by the headset being switched on.
The battery information is kept by the device so when the device is off (but the receiver is plugged in) the battery information is not accessible. When the device is switched on it should send battery information and Solaar should then display it. If this is not the case let me know.
The error occurs because Solaar isn't prepared for an error when querying a feature for a device that appears to be mostly active. I think I'll add something to make Solaar understand this situation a bit better.
Can you post the output of bin/solaar -ddd
when Solaar is started up with the headset off and then the headset turned on? I want to make sure that there are no problems in this situation.
Also, I see that the second output from solaar show
isn't producing battery information. Can you run bin/solaar -ddd show
with the headset on so that I can see the communications between Solaar and the device?
Also please try bin/solaar -ddd config G733
and post the output.
The battery information is kept by the device so when the device is off (but the receiver is plugged in) the battery information is not accessible. When the device is switched on it should send battery information and Solaar should then display it. If this is not the case let me know.
This is only the case if Solaar is running before the device is powered on.
Can you post the output of bin/solaar -ddd when Solaar is started up with the headset off and then the headset turned on? I want to make sure that there are no problems in this situation.
Headset off:
Headset on:
Also, I see that the second output from solaar show isn't producing battery information. Can you run bin/solaar -ddd show with the headset on so that I can see the communications between Solaar and the device?
Also please try bin/solaar -ddd config G733 and post the output.
I've added a rule to the device as well, to execute a command that turns off the headset lights on the condition that the device (G733 Headset (FFFFFFFF))
is active. This also suffers from the issue that the device must be powered on with solaar already running.
Errors or warrnings from Solaar: WARNING [MainThread] logitech_receiver.diversion: rules cannot access active process or modifier <- is this why? I am on wayland and understand that processes in Solaar can be an issue with it.
This is sent because Wayland does not provide a way to access the current active process or modifier keys due to security concerns.
Errors or warrnings from Solaar: WARNING [MainThread] logitech_receiver.diversion: rules cannot access active process or modifier <- is this why? I am on wayland and understand that processes in Solaar can be an issue with it.
This is sent because Wayland does not provide a way to access the current active process or modifier keys due to security concerns.
Understood. Not a deal-breaker since I'd want to autostart solaar anyway. As long as the main issue is solved (which it is), I'm happy.
There were multiple issues all having to do with Solaar assuming that it is not the case that some devices features can be successfully accessed and others not. This caused some errors but also caused Solaar to believe that your headset has no battery feature.
To fix this last problem you have to edit ~/.config/solaar/config.yaml and remove lines that say:
_battery: 0
Solaar should then again set up its battery feature information for your devices.
You also need to download the current version of PR #1773 because it has patches needed to do this correctly.
I've added a rule to the device as well, to execute a command that turns off the headset lights on the condition that the device (G733 Headset (FFFFFFFF)) is active. This also suffers from the issue that the device must be powered on with solaar already running.
Please provide contents of ~/.config/solaar/rules.yaml so that I can see how the rule is set up.
There were multiple issues all having to do with Solaar assuming that it is not the case that some devices features can be successfully accessed and others not. This caused some errors but also caused Solaar to believe that your headset has no battery feature.
To fix this last problem you have to edit ~/.config/solaar/config.yaml and remove lines that say:
_battery: 0
Solaar should then again set up its battery feature information for your devices.
You also need to download the current version of PR #1773 because it has patches needed to do this correctly.
Battery reporting issue is fixed. Thanks!
Please provide contents of ~/.config/solaar/rules.yaml so that I can see how the rule is set up.
%YAML 1.3
---
- Active: FFFFFFFF
- Execute: [headsetcontrol, -l, '0']
...
---
- Key: [G1, pressed]
- KeyPress:
- XF86_AudioPlay
- click
...
Just as an FYI, the G502 section duplicating in the config is still happening. If you like I can open up an issue for it.
Yes please open a separate issue for duplicate config entries.
Solaar rules are only initiated when a notification is seen by Solaar. When the headset is powered on it emits an ADC notification, which then causes the rule to run. If the headset is already powered on then there probably isn't any notification to trigger rule processing.
The rule also is considered whenever any notification is seen by Solaar which is probably not what you want. The right solution would be for Solaar to implement the lighting feature for the headset, but I don't have documentation for that feature. You could create an extension issue for this if you want.
Yes please open a separate issue for duplicate config entries.
Solaar rules are only initiated when a notification is seen by Solaar. When the headset is powered on it emits an ADC notification, which then causes the rule to run. If the headset is already powered on then there probably isn't any notification to trigger rule processing.
The rule also is considered whenever any notification is seen by Solaar which is probably not what you want. The right solution would be for Solaar to implement the lighting feature for the headset, but I don't have documentation for that feature. You could create an extension issue for this if you want.
The command I'm running comes from another device-control related package, HeadsetControl, you may be able to find what you need in the source code.
Edit: just a quick thought, since the enhancement would concern RGB, it might not be something that Solaar should concern itself with. OpenRGB might be better suited to deal with this.
I looked at the code for headsetcontrol. It only does a couple of things with the feature and doesn't seem to use the feature to determine its full capabilities.
Solaar rules are only initiated when a notification is seen by Solaar. When the headset is powered on it emits an ADC notification, which then causes the rule to run. If the headset is already powered on then there probably isn't any notification to trigger rule processing.
The rule also is considered whenever any notification is seen by Solaar which is probably not what you want. The right solution would be for Solaar to implement the lighting feature for the headset, but I don't have documentation for that feature. You could create an extension issue for this if you want.
Is there a better way to do this with the existing headsetcontrol command in lieu of solaar implementing it? The only reason I'm doing it this way is because solaar provides an easy way of capturing the device connection event so I can automate the command, rather than having to issue it manually every time I power on the device.
You could use add a Feature condition with ADC_MEASUREMENT as the feature as an extra condition at the beginning of the rule. That would cut down the number of times the rule runs.
But it wouldn't fix the problem with there not being any notification when Solaar starts up. A fix for that would be to create a script that runs headsetcontrol first and then starts Solaar. After that, everything should work OK. Well the rule would run more often than needed but that's probably acceptable.
@pfps thanks for this. The command runs twice with that rule in place, but I'm okay with that!
Information
solaar --version
orgit describe --tags
if cloned from this repository):solaar 1.1.5
Arch
uname -srmo
):Linux 5.19.9-zen1-1-zen x86_64 GNU/Linux
solaar show
:~/.config/solaar/config.yaml
(or~/.config/solaar/config.json
if~/.config/solaar/config.yaml
not present):WARNING [MainThread] logitech_receiver.diversion: rules cannot access active process or modifier
<- is this why? I am on wayland and understand that processes in Solaar can be an issue with it.Describe the bug If my headset powers-off and back on again, in order for my settings to activate, I must toggle them. So with the G733 I have the capability of diverting G Keys and adjusting sidetone. To get them to work, they need to be "refreshed" by flipping the toggle on and off for G Keys and moving the slider for side tone. Conversely, and perhaps related, the battery indicator does not work unless Solaar is already running when the headset is powered on.
To Reproduce Steps to reproduce the behavior:
Screenshots If applicable, add screenshots to help explain your problem.
Additional context As mentioned previously, I am running Wayland, so this may be an example of functionality that is not available.