Skip to content

[V1.1] UX1 Navigation, Fensterzustand & Tastatur-Grundgerüst #122

Open

Description

@Toqsick

Job

„Schnell erledigen": Die Shell soll sich wie ein Werkzeug anfühlen, das sich merkt, wo man war, und per Tastatur bedienbar ist. Flutter-Pendants: DS4 (#86, Sidebar/Navigation) und DS3 (#79, Kürzel) — gelten für GTK sinngemäß, der Flutter-UI-Teil entfällt.

Scope

  • Adw.OverlaySplitView statt Adw.NavigationSplitView: Sidebar ein-/ausklappbar (Strg+B); unter 1000 px Breite (Adw.Breakpoint) eine Rail aus symbolischen Icons — je Modul in MODULES ein Icon-Name (z. B. view-grid-symbolic, utilities-system-monitor-symbolic, drive-harddisk-symbolic, security-high-symbolic).
  • Fensterzustand (Größe, Position soweit der Compositor sie liefert, Paned-Position, letztes Modul, Sidebar-Zustand) atomar (tmp + rename) in $XDG_CONFIG_HOME/linux-assistant/gtk-state.json mit schema-Feld.
  • Kürzel aus einer zentralen Tabelle (prototype/gtk/shortcuts.py): Strg+1…9 = Modul, Esc = Dashboard, F5 = Modul neu laden, Strg+B = Sidebar, Strg+? = Gtk.ShortcutsWindow (aus derselben Tabelle generiert).
  • Header zeigt Modul-Icon + Titel.
  • Grenzen: nur UI-Zustand, keine Systemaktionen.

Andockpunkte

Abnahme

  • Neustart stellt Größe, Paned-Position, Sidebar-Zustand und letztes Modul wieder her (State-Datei-Test, headless)
  • Strg+3 wechselt ins dritte Modul; Esc führt zum Dashboard (Widget-Test unter xvfb)
  • Unter 1000 px erscheint die Rail, darüber die volle Sidebar
  • Kürzel-Overlay listet exakt die Einträge der Kürzel-Tabelle (Test vergleicht beide)

Abhängigkeiten

Blockiert durch: — (⚡ sofort startbar; nach Merge von PR #119 rebasen) · Blockiert: #123 (UX2)
Risiko & Fallback: Fensterposition ist unter Wayland nicht abfragbar → nur Größe/Paned/Modul merken, Position auslassen und dokumentieren.

Tier: QoL · Größe: M · shell:gtk · Gates: python3 -m unittest discover -s prototype/gtk/tests (Widget-Tests unter xvfb-run).
Quelle: Ausbauplan V1.1–V1.3, Epic UX (Teilplan UX1).

Activity

  1. added
    size:M2–3 Sessions
    epic:uxEpic Oberfläche & Bedienung (GTK)
    shell:gtkZiel = GTK4/libadwaita-Shell (prototype/gtk) + la_core-Kern
    on Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    epic:uxEpic Oberfläche & Bedienung (GTK)shell:gtkZiel = GTK4/libadwaita-Shell (prototype/gtk) + la_core-Kernsize:M2–3 Sessionstier:qolQuality of Life

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions