Linux Browser
A small graphical browser for Linux, packaged as a normal Python application. It uses Qt WebEngine, which embeds Chromium, so pages are rendered with their real HTML, CSS, JavaScript, images, and network behavior rather than being converted to terminal text.
Debian 12 / Ubuntu Installation
Dependencies
Install graphics and browser libraries:
sudo apt update
sudo apt install -y \
libgl1 libegl1 \
libxkbcommon-x11-0 libxcb-cursor0 \
libxcomposite1 libxdamage1 libxrandr2 \
libnss3 libxshmfence1 libxtst6 \
libasound2t64 xvfb xdg-utils
The PyPI wheels provide the Qt and Chromium components. A working display or Xvfb (virtual framebuffer) is required to render pages.
Usage
With a graphical display (desktop/GUI environment):
linux-browser https://example.com
Headless (no display server):
QT_QPA_PLATFORM=offscreen xvfb-run -a linux-browser https://example.com
Via SSH or in a container:
export DISPLAY=:99
Xvfb :99 &
linux-browser https://example.com
Install and run
python3 -m venv .venv
.venv/bin/python -m pip install linux-browser
.venv/bin/linux-browser
Open a specific page directly:
linux-browser https://example.com
The address bar accepts URLs and search terms. Back, forward, reload, and common keyboard shortcuts are available in the toolbar.
Development
python3 -m venv .venv
.venv/bin/python -m pip install -e . pytest build
.venv/bin/python -m pytest
The WebEngine test loads an in-memory page and checks that CSS and JavaScript execute (powered by PySide6's built-in WebEngine). It is skipped when PySide6 is not installed, which keeps package metadata checks usable in minimal build environments.
Build and publish
Build the package and validate it before uploading:
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip build twine
python -m build
python -m twine check dist/*
Publish with your PyPI API token:
export PYPI_API_TOKEN="pypi-xxxxxxxxxxxxxxxx"
TWINE_USERNAME="__token__" TWINE_PASSWORD="$PYPI_API_TOKEN" python -m twine upload --repository pypi dist/*
You can also use the helper script in this repo:
chmod +x scripts/publish.sh
export PYPI_API_TOKEN="pypi-xxxxxxxxxxxxxxxx"
./scripts/publish.sh
Use the token value from your PyPI account, not your account password. The __token__ username is the standard PyPI format for API tokens.
Metadata
Release files for linux-browser 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| linux_browser-0.1.3.tar.gz | 5.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| linux_browser-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.3 kB
Release files / linux_browser-0.1.3.tar.gz
| Download URL | linux_browser-0.1.3.tar.gz |
|---|---|
| Size | 5.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7983225419f90b5f0c9c7222dd924769dab9214cedcf4116035c4f58562a3378
|
|
BLAKE2b-256 checksum How to use checksums |
1450e8ba03431287d470a7c696cf6493efb713681a81a74970f80015dbbc42f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.1
|
Release files / linux_browser-0.1.3-py3-none-any.whl
| Download URL | linux_browser-0.1.3-py3-none-any.whl |
|---|---|
| Size | 4.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c7d03554749d1952276c0c2364ce6386f6f978c93f27f98509faa94cfbae648
|
|
BLAKE2b-256 checksum How to use checksums |
e580d401e6695781bbab6da0874e3885255165a6f0a761802a56f2afafe361cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.1
|