@@ -56,7 +56,7 @@ def __init__(self, engine=None, parent=None):
5656 self ._device_display_name = "Logitech mouse"
5757 self ._connected_device_key = ""
5858 self ._device_layout_override_key = ""
59- self ._device_layout = get_device_layout ("mx_master " )
59+ self ._device_layout = get_device_layout ("generic_mouse " )
6060 self ._battery_level = - 1
6161 self ._debug_lines = []
6262 self ._debug_events_enabled = bool (
@@ -475,7 +475,7 @@ def actionLabelFor(self, actionId):
475475 def setDeviceLayoutOverride (self , layoutKey ):
476476 normalized = (layoutKey or "" ).strip ()
477477 device_key = self ._connected_device_key
478- if not device_key :
478+ if not self . _mouse_connected or not device_key :
479479 self .statusMessage .emit ("Connect a device first" )
480480 return
481481 valid_choices = {choice ["key" ] for choice in get_manual_layout_choices ()}
@@ -549,6 +549,8 @@ def _handleConnectionChange(self, connected):
549549 device = getattr (self ._engine , "connected_device" , None ) if self ._engine else None
550550 if connected :
551551 self ._apply_device_layout (device )
552+ else :
553+ self ._apply_device_layout (None )
552554 if not connected and self ._battery_level != - 1 :
553555 self ._battery_level = - 1
554556 self .batteryLevelChanged .emit ()
@@ -571,8 +573,11 @@ def _apply_device_layout(self, device):
571573 self .deviceInfoChanged .emit ()
572574
573575 overrides = self ._cfg .get ("settings" , {}).get ("device_layout_overrides" , {})
576+ valid_override_keys = {choice ["key" ] for choice in get_manual_layout_choices ()}
574577 override_key = overrides .get (device_key , "" ) if device_key else ""
575- layout_key = override_key or getattr (device , "ui_layout" , None ) or "mx_master"
578+ if override_key not in valid_override_keys :
579+ override_key = ""
580+ layout_key = override_key or getattr (device , "ui_layout" , None ) or "generic_mouse"
576581 layout = get_device_layout (layout_key )
577582 layout_changed = False
578583 if override_key != self ._device_layout_override_key :
0 commit comments