Skip to content

Repository files navigation

Gosub Beacon — GTK browser

Beacon is a GTK4 browser built on the Gosub engine. The engine does the actual work (networking, cookies, storage, history, rendering); Beacon is the native chrome around it. It exists to test the engine in a real application, so don't expect a daily driver — but basic browsing works.

Gosub Beacon with three tabs loaded

Currently working:

  • page loading and rendering (Skia rasterization, GPU compositing via GtkGLArea)
  • tabs, back/forward with a tree-shaped session history
  • bookmarks and visited history in sqlite, with a bookmarks bar and URL-bar completion
  • downloads with a save dialog and a progress popover
  • keyboard: Tab focus traversal, Enter on links, scrolling keys
  • right-click context menu (open/copy link, image, save link as)
  • internal pages: gosub://home, help, version, history, bookmarks and a settings editor on gosub://config
  • favicons, cursor shapes, error pages, a JSON viewer
  • crashed tabs show a reload page instead of taking the browser down

Not working yet: JavaScript, forms and text input, text selection.

More screenshots

Hacker News debian.org
JSON viewer Engine settings
Internal pages Error page

All screenshots

Building

Beacon uses path dependencies into the engine, so check out gosub-engine next to this repository (../gosub-engine), on the beacon branch (upstream main plus engine work Beacon needs that has not merged yet).

Dependencies on Debian/Ubuntu, or similar on other systems:

sudo apt install libgtk-4-dev libglib2.0-dev libcairo2-dev libgdk-pixbuf-2.0-dev \
                 libpango1.0-dev libsqlite3-dev libssl-dev pkg-config \
                 clang libclang-dev libgl-dev libegl-dev libfontconfig-dev libfreetype-dev

Linux only for now. macOS and Windows shells will consume the engine's C API instead of this GTK code, but help with either is welcome.

Running

cargo run                          # opens the default startup tabs
cargo run -- https://example.com   # URLs on the command line become the startup tabs

Profile data (cookies, local storage, bookmarks/history, settings) ends up in ~/.local/share/gosub-beacon.

About

A browser based on the Gosub engine

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages