Skip to content

biglinux/biglinux-webapps

Repository files navigation

BigLinux WebApps

A modern GTK4 tool to create and manage webapps, supporting multiple browsers while detecting icons and titles automatically. Integrate your favorite web applications into your desktop environment.

Features

  • Multi-browser Support: Create webapps using any installed browser
  • Automatic Detection: Automatically detects website titles and favicons
  • Categorization: Organize webapps by categories
  • Search Functionality: Quickly find your webapps using the search feature
  • Import/Export: Easily backup and restore your webapps collection
  • Browser Switching: Change browsers for existing webapps without recreating them
  • Customized Profiles: Uses optimized browser profiles for a better webapp experience

Technical Details

  • Built with Rust using GTK4 and libadwaita
  • WebKitGTK 6.0 for webapp viewer with isolated profiles
  • Uses website scraping to extract icons and metadata
  • Integrated with desktop environment via desktop files
  • Compatible with both Xorg and Wayland display servers

Screenshots

webapps07

webapps08

webapps05

webapps06

Installation

The package is available in BigLinux repositories:

sudo pacman -S biglinux-webapps

Usage

  1. Launch the application from your menu or run:
    big-webapps-gui
  2. Click the "Add" button to create a new webapp
  3. Enter the URL, name, and select a browser
  4. Enjoy your new integrated webapp!

License

GPL-3.0-or-later

Building from source

Requires a Rust toolchain (pinned in rust-toolchain.toml) plus the GTK4 / libadwaita / WebKitGTK 6.0 dev libraries.

cargo build --release --workspace --locked
./target/release/big-webapps-gui

Other binaries: big-webapps-viewer (WebKit window), big-webapps-exec (launcher shim).

For contributors and AI agents

Start here before editing the tree:

  • AGENTS.md — crate/binary map, build/test/lint commands, where to edit.
  • ARCHITECTURE.md — async boundaries, subprocess argv table, data flow.
  • INVARIANTS.md — enforced contracts and their CI gate.
  • SECURITY.md — threat model, reporting channel.

The committed quality gate is .github/workflows/rust-quality.yml (fmt, clippy -D warnings, build --locked, test, cargo deny, cargo machete, i18n POT freshness).

Dependencies

  • gtk4 (>= 4.10)
  • libadwaita-1 (>= 1.6)
  • webkitgtk-6.0 (>= 2.50)
  • gettext
  • openssl

Development Validation

Run the repo-local validator before sending changes for review:

bash scripts/validate-customizations.sh

Contributing Translations

Translations use gettext. Source catalogs live in po/.

Extracting new strings (after adding gettext("…") calls in Rust source):

# update the .pot template and merge it into every catalog
./scripts/update-translations.sh

Adding a new language (xx = locale code):

cp po/en.po po/xx.po
# edit xx.po with your translations

Building .mo files (done automatically by PKGBUILD):

for po in po/*.po; do
    lang=$(basename "$po" .po)
    msgfmt -o "po/${lang}.mo" "$po"
done

Runtime .mo files are installed to /usr/share/locale/<lang>/LC_MESSAGES/biglinux-webapps.mo.

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages