Skip to content

Latest commit

 

History

History
142 lines (111 loc) · 4.78 KB

File metadata and controls

142 lines (111 loc) · 4.78 KB

BigLinux Browser Selector

image

FeaturesInstallationProject StructureContributingLicense

GTK4 Python 3.10+ Adwaita License GPL


About

BigLinux Browser Selector is a modern, GTK4-based application for BigLinux that allows users to choose and install their preferred web browser with an intuitive interface. It features real-time installation progress, integrated installer support, and accessibility for screen readers.

Features

  • Modern GTK4/libadwaita interface — Clean, native look and feel
  • Browser selection & install — Choose from 10 supported browsers; install missing ones with real-time progress display
  • Real-time installation feedback — Live log output during browser installation
  • Set default browser — Configure your chosen browser as the system default
  • Accessibility support — Screen reader compatible with ARIA roles and focus indicators
  • Multiple installation sources — Supports both native packages and Flatpak installations

Installation

From BigLinux repositories (recommended)

sudo pacman -S biglinux-browser-selector

Manual build (Arch-based distros)

cd pkgbuild
makepkg -si

Dependencies

Package Purpose
gtk4 UI toolkit
python Runtime (≥ 3.10)
python-yaml YAML page configuration
python-gobject GTK4 Python bindings
polkit Privilege elevation
zenity Auxiliary dialogs

Project Structure

biglinux-browser-selector/
├── usr/
│   ├── bin/
│   │   └── biglinux-browser-selector     # launcher script
│   ├── share/
│   │   ├── applications/
│   │   │   └── org.biglinux.browser-selector.desktop
│   │   ├── browser_selector/
│   │   │   ├── main.py                   # entry point
│   │   │   ├── app.py                    # Adw.Application + CSS
│   │   │   ├── window.py                 # main window & browser logic
│   │   │   ├── widgets.py                # custom GTK4 widgets (BrowserCard, InstallPanel)
│   │   │   ├── utils.py                  # shared utilities
│   │   │   ├── style.css                 # Adwaita-based styles
│   │   │   ├── pages.yaml                # browser configuration
│   │   │   └── scripts/
│   │   │       ├── browser.sh            # browser management script
│   │   │       └── browserInstall.sh     # installation script (runs as root)
│   │   └── icons/hicolor/scalable/apps/
│   │       └── biglinux-browser-selector.svg
├── pkgbuild/
│   ├── PKGBUILD                          # Arch package build
├── README.md
└── LICENSE

Supported Browsers

  • Brave
  • Chromium
  • Chrome (Google)
  • Falkon
  • Firefox
  • Librewolf
  • Opera
  • Vivaldi
  • Edge (Microsoft)
  • Zen Browser

Each browser supports both native package installation and Flatpak variants where available.

Development

Running locally

cd usr/share/biglinux/browser_selector
python main.py

Code quality

pip install ruff
ruff check usr/share/biglinux/browser_selector/
ruff format usr/share/biglinux/browser_selector/

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Make your changes
  4. Run tests and code quality checks
  5. Commit and push
  6. Open a Pull Request

Community

License

This project is licensed under the GPL license. See the PKGBUILD for details.