Skip to content

Feature Request: Unified Shortcuts Configuration with Origin Indicators #16

@KonstantinMerkel

Description

@KonstantinMerkel

Feature Request: Unified Shortcuts Configuration with Origin Indicators

Problem Statement

Users currently face a fragmented workflow when configuring shortcuts for their workspace design. Modifying standard window operations (like "Close focused window" or "Move window to workspace") requires navigating deep into native GNOME System Settings, while extension-specific layout shortcuts are managed in the extension's preferences window. This makes it frustrating to map out an optimized, conflict-free tiling workflow.

Proposed Solution

Expose highly relevant native GNOME keyboard shortcuts alongside custom tiling shortcuts directly within the extension's prefs.js configuration window. This consolidates workflow configuration into a single, all-in-one panel.

Expected Behavior

  • All-in-One Dashboard: The extension configuration panel displays a section dedicated to core system keybindings alongside custom tiling hotkeys.
  • Origin Visibility Indicator: The UI must clearly differentiate between system-wide shortcuts and extension-specific shortcuts at a single glance. This will be handled using visual indicators (e.g., specific subtitle labels, custom tag badges like System or Extension, or grouped sub-sections).
  • Bi-directional Reflection: Editing a shortcut within the extension's menu updates the native system behavior instantly, and vice versa.
  • Conflict Prevention: Users can immediately spot and reassign overlapping shortcuts (e.g., if a native navigation rule conflicts with a custom window-swapping shortcut).

Target Native Keybindings to Include

  • Window Control: Close focused window (close), Maximize/Unmaximize (maximize, unmaximize), and Toggle fullscreen (toggle-fullscreen).
  • Workspace Navigation: Switch to workspace 1-4 (switch-to-workspace-x) and Move window to workspace 1-4 (move-to-workspace-x).

Implementation Starting Points

  • Visual Representation: Utilize Adw.ActionRow or Adw.KeybindingRow combined with an Adw.Badge or custom styling to flag the shortcut origin (System vs Extension).
  • Target Schemas: Interface directly with the core GNOME settings namespaces for native behaviors:
    • Window actions: org.gnome.desktop.wm.keybindings
    • Media/System actions: org.gnome.settings-daemon.plugins.media-keys
  • Preferences Component: Pass the foreign, relocatable system schema IDs explicitly into the preferences UI logic instead of binding all rows to the default extension settings object.

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions