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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file linux_browser-0.1.3.tar.gz.
File metadata
- Download URL: linux_browser-0.1.3.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7983225419f90b5f0c9c7222dd924769dab9214cedcf4116035c4f58562a3378
|
|
| MD5 |
b555f6e18131287a50f40a67cedebe2b
|
|
| BLAKE2b-256 |
1450e8ba03431287d470a7c696cf6493efb713681a81a74970f80015dbbc42f4
|
File details
Details for the file linux_browser-0.1.3-py3-none-any.whl.
File metadata
- Download URL: linux_browser-0.1.3-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c7d03554749d1952276c0c2364ce6386f6f978c93f27f98509faa94cfbae648
|
|
| MD5 |
586bef5d6ac04787fe2a621ed34ce88f
|
|
| BLAKE2b-256 |
e580d401e6695781bbab6da0874e3885255165a6f0a761802a56f2afafe361cf
|