Skip to content

Deprecate Hyperlink widget #113

@junkdog

Description

@junkdog

Summary

Deprecate the current hyperlink widget in favor of backend-level hyperlink handling to behave more like a standard terminal emulator.

Problem

The current hyperlink widget creates an inconsistent user experience where some text that looks like URLs will be clickable (if wrapped in the widget) while other URL text won't be, even though they appear identical to the user. Additionally, the current implementation relies on hijacking style modifiers (SLOW_BLINK) to mark hyperlink cells, which is a hacky workaround.

Proposed Solution

  • Expose enable_hyperlinks() in some appropriate option struct (maybe the Terminal).
  • Deprecate the Hyperlink widget
  • Allow backends to automatically detect and handle URLs in rendered text
  • This provides a consistent "all URLs are clickable" or "no URLs are clickable" experience per backend configuration

Implementation Notes

  • WebGL2 backend already supports this via enable_hyperlinks() option
  • The hyperlink widget uses the HYPERLINK_MODIFIER (slow blink) to mark cells, which feels hacky
  • Backend-level handling allows for automatic URL detection and consistent behavior

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions