Skip to content

[DEV] Implement Draggable Floating Desktop Icon (macOS)#67

Description

@JasonMun7

馃敤 The Task

Enable the Echo Desktop Icon (HUD) to be freely draggable across the user's screen. Currently, it is locked to a fixed position; it needs to behave like a native floating utility.

馃 Goal

The icon is obstructing user content. We need it to behave like our other floating elements鈥攕pecifically following the implementation patterns found in RecordingHud and RunHud.

馃摑 Implementation Details

  • HUD Reference: Audit RecordingHud.swift and RunHud.swift to identify the existing window level and drag-handling logic.
  • NSWindow Dragging: Implement .isMovableByWindowBackground = true or a custom mouseDragged event handler on the icon's container view.
  • Coordinate Persistence: Ensure the NSWindow frame origin is saved to UserDefaults so the icon persists its position after a restart or app relaunch.
  • Screen Bounds Check: Implement logic to ensure the window cannot be dragged entirely off-screen or behind the macOS Dock/Menu Bar.
  • Click-Drag Separation: Ensure that dragging the HUD doesn't inadvertently trigger the "Start Workflow" action.

鈿狅笍 Risk Level

Low
This is a window-management task. It should not impact the underlying agentic logic or the vision-processing pipeline.

Activity

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

    enhancementNew feature or request

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions