diff --git a/ui/data/com.xronlinux.BreezyDesktop.gschema.xml b/ui/data/com.xronlinux.BreezyDesktop.gschema.xml index 004df11..e320ff2 100644 --- a/ui/data/com.xronlinux.BreezyDesktop.gschema.xml +++ b/ui/data/com.xronlinux.BreezyDesktop.gschema.xml @@ -12,7 +12,7 @@ - space', 'Ctrl+Super+Space']]]> + space']]]> Re-center display @@ -21,7 +21,7 @@ - Return', 'Ctrl+Super+Return']]]> + Return']]]> Trigger change to display distance diff --git a/ui/src/breezydesktop.gresource.xml b/ui/src/breezydesktop.gresource.xml index 540448f..a84a9fb 100644 --- a/ui/src/breezydesktop.gresource.xml +++ b/ui/src/breezydesktop.gresource.xml @@ -5,6 +5,5 @@ gtk/no-device.ui gtk/shortcut-dialog.ui gtk/window.ui - gtk/help-overlay.ui diff --git a/ui/src/connecteddevice.py b/ui/src/connecteddevice.py index 23abb92..6fd0ab7 100644 --- a/ui/src/connecteddevice.py +++ b/ui/src/connecteddevice.py @@ -12,7 +12,9 @@ class ConnectedDevice(Gtk.Box): set_toggle_display_distance_start_button = Gtk.Template.Child() set_toggle_display_distance_end_button = Gtk.Template.Child() reassign_recenter_display_shortcut_button = Gtk.Template.Child() + recenter_display_shortcut_label = Gtk.Template.Child() reassign_toggle_display_distance_shortcut_button = Gtk.Template.Child() + toggle_display_distance_shortcut_label = Gtk.Template.Child() def __init__(self): super(Gtk.Box, self).__init__() @@ -23,8 +25,8 @@ class ConnectedDevice(Gtk.Box): self.settings.bind('effect-enable', self.effect_enable_switch, 'active', Gio.SettingsBindFlags.DEFAULT) bind_shortcut_settings(self.get_parent(), [ - self.reassign_recenter_display_shortcut_button, - self.reassign_toggle_display_distance_shortcut_button + [self.reassign_recenter_display_shortcut_button, self.recenter_display_shortcut_label], + [self.reassign_toggle_display_distance_shortcut_button, self.toggle_display_distance_shortcut_label] ]) self.bind_set_distance_toggle([ diff --git a/ui/src/gtk/connected-device.ui b/ui/src/gtk/connected-device.ui index d831291..6b911dd 100644 --- a/ui/src/gtk/connected-device.ui +++ b/ui/src/gtk/connected-device.ui @@ -69,20 +69,33 @@ - Keyboard Shortcuts + Shortcuts Modify keyboard shortcuts and how they work Re-center display shortcut Pin the virtual display to the current position + 2 - - - recenter-display-shortcut - 3 - + + 30 + 30 + + + 3 + + + + + + + recenter-display-shortcut + 3 + Change + + @@ -91,14 +104,27 @@ Display distance shortcut Quickly toggle between two predefined distances + 2 - - - toggle-display-distance-shortcut - 3 - + + 30 + 30 + + + 3 + + + + + + + toggle-display-distance-shortcut + 3 + Change + + diff --git a/ui/src/gtk/window.ui b/ui/src/gtk/window.ui index 5566b30..59c560f 100644 --- a/ui/src/gtk/window.ui +++ b/ui/src/gtk/window.ui @@ -2,8 +2,7 @@
- - _Keyboard Shortcuts - win.show-help-overlay - _About BreezyDesktop app.about diff --git a/ui/src/shortcutdialog.py b/ui/src/shortcutdialog.py index 0def848..66f1140 100644 --- a/ui/src/shortcutdialog.py +++ b/ui/src/shortcutdialog.py @@ -36,7 +36,7 @@ class ShortcutDialog(Gtk.Dialog): label = Gtk.accelerator_get_label(keyval, state) # hacky way to store the label, causes warnings from the WM - SettingsManager.get_instance().settings.set_strv(self.settings_key, [binding, label]) + SettingsManager.get_instance().settings.set_strv(self.settings_key, [binding]) self.close() else: @@ -85,23 +85,25 @@ def is_keyval_forbidden(keyval): def is_accel_valid(mask, keyval): return Gtk.accelerator_valid(keyval, mask) or (keyval == Gdk.KEY_Tab and mask != 0) -def bind_shortcut_settings(window, widgets): - for widget in widgets: +def bind_shortcut_settings(window, widget_tuples): + for widget_tuple in widget_tuples: + widget, label = widget_tuple SettingsManager.get_instance().settings.connect('changed::' + widget.get_name(), - lambda *args, widget=widget: reload_shortcut_widget(widget)) + lambda *args, widget=widget, label=label: reload_shortcut_widget(widget, label)) widget.connect('clicked', lambda *args, widget=widget: on_assign_shortcut(window, widget)) - reload_shortcut_widgets(widgets) + reload_shortcut_widgets(widget_tuples) def on_assign_shortcut(window, widget): dialog = ShortcutDialog(widget.get_name()) dialog.set_transient_for(widget.get_ancestor(Gtk.Window)) dialog.present() -def reload_shortcut_widget(widget): +def reload_shortcut_widget(widget, label): shortcut = SettingsManager.get_instance().settings.get_strv(widget.get_name()) - widget.set_label(shortcut[1] if len(shortcut) > 1 else 'Disabled') + label.set_accelerator(shortcut[0] if len(shortcut) > 0 else 'Disabled') -def reload_shortcut_widgets(widgets): - for widget in widgets: - reload_shortcut_widget(widget) \ No newline at end of file +def reload_shortcut_widgets(widget_tuples): + for widget_tuple in widget_tuples: + widget, label = widget_tuple + reload_shortcut_widget(widget, label) \ No newline at end of file diff --git a/ui/src/window.py b/ui/src/window.py index 190f8bc..d7e0206 100644 --- a/ui/src/window.py +++ b/ui/src/window.py @@ -26,23 +26,20 @@ from .nodevice import NoDevice class BreezydesktopWindow(Gtk.ApplicationWindow): __gtype_name__ = 'BreezydesktopWindow' - connected_device = Gtk.Template.Child() - no_device = Gtk.Template.Child() - def __init__(self, **kwargs): super().__init__(**kwargs) - self.init_template() state_manager = StateManager.get_instance() state_manager.connect('device_update', self._handle_device_update) + self.connected_device = ConnectedDevice() + self.no_device = NoDevice() + self._handle_device_update(state_manager, StateManager.device_name(state_manager.state)) def _handle_device_update(self, state_manager, connected_device_name): if connected_device_name: - self.connected_device.set_visible(True) - self.no_device.set_visible(False) + self.set_child(self.connected_device) self.connected_device.set_device_name(connected_device_name) else: - self.connected_device.set_visible(False) - self.no_device.set_visible(True) \ No newline at end of file + self.set_child(self.no_device) \ No newline at end of file