['Website As App v1.2.0 * Copyright 2023-2024 by Marcin Orlowski.', 'Opens any web site as standalone desktop app.', 'https://github.com/MarcinOrlowski/website-as-app/']
Project description
WebApp
Run any website as standalone desktop application
This Python script offers a unique approach to web browsing by opening any webpage in a dedicated window using the embedded QT WebEngine. By removing the typical browser UI elements, it effectively turns websites into standalone desktop applications. This can be particularly useful if you've ever wished to run a frequently used website as a separate app, independent from your main browser.
The tool provides a practical solution for those who find themselves juggling numerous browser tabs or wanting a clearer separation between work and personal web applications. With each website running as its own "app", you gain the benefit of individual entries in your window manager or task switcher, potentially improving your workflow organization and efficiency.
Whether you're looking to streamline your digital workspace or simply curious about alternative ways to interact with web content, this script presents an interesting concept that might just solve a problem you didn't know you had.
IMPORTANT: It's worth pointing out however, that this tool doesn't transform websites into offline applications. Rather, it focuses on separating your key websites from each other and from the multitude of browser tabs you might typically have open. While this approach offers improved organization and workflow, it's crucial to understand that an internet connection is still required for these "apps" (websites) to function as they normally would in a traditional browser environment.
Installation
I recommend you use pipx to install this tool in isolated environment:
$ pipx install website-as-app
You can also use plain pip
:
$ pip install website-as-app
But that might be a problem on some distributions no longer allowing such installations, therefore
use of pipx
is strongly recommended as the all-in-one solution.
Once installed webapp
executable (and its alias runasapp
) should be available in your system.
Please use --help
to see all available options, as i.e. custom icons, window title etc.
Usage
When app is installed system-wide, you can run it from anywhere:
$ webapp "https://github.com"
If you are using virtual environment, there's handy Bash script in extras/
directory
which takes care of initializing virtual environment and running the app using that environment.
You simply use extras/webapp.sh
script instead of webapp
directly:
$ extras/webapp.sh "https://github.com"
Configuration
Available options:
webapp -h
usage: webapp [--profile PROFILE] [--name NAME] [--icon ICON] [--zoom ZOOM] [--no-tray] url
Open any website in standalone window (like it's an app)
positional arguments:
url The URL to open
options:
--profile PROFILE, -p PROFILE Profile name (for cookies isolation etc). Default: "default"
--name NAME, -n NAME Application name (shown as window title)
--icon ICON, -i ICON Full path to PNG image file to be used as app icon
--geometry GEOMETRY, -g GEOMETRY Initial window ("WIDTHxHEIGHT+X+Y"). Default: "450x600+0+0"
--zoom ZOOM, -z ZOOM WebView scale. Default: 1.0 (no scale change).
--no-tray, -t Disables docking app in system tray (closing window quits app)
--minimized, -m Starts app minimized to system tray.
--allow-multiple, -a Allows multiple instances of the app to run on the same profile
--debug, -d Makes app print more debug messages during execution
The most important option is --profile
which allows you to isolate cookies and app settings
per instance. Any instance using the same profile will have access to the same cookies and
settings. This is useful if you want to run multiple instances of the same app, but with
different accounts. By default default
profile is used and it's recommended to use different
profile per each app instance.
By default only one instance per profile is allowed to run (attempt to run second instance
will bring the first one to the front). If you want to allow multiple instances of the app
to run on the same profile, use --allow-multiple
switch.
NOTE: --zoom
accepts fractional values, so you can use i.e. --zoom 1.25
to scale content up by
25% or --zoom 0.75
to scale down to 75% of the original size.
Current limitations
- Due to security based limitations of embedded
QWebBrowerView
you will not be able to save any file to your local storage nor filesystem. - Website's Javascript code cannot write to system clipboard so you might need to manually select given portion of the site and copy using function from context menu as any buttons on the page that is using JS to write to the host's clipboard will not currently work.
License
- Written and copyrighted ©2023-2024 by Marcin Orlowski <mail (#) marcinorlowski (.) com>
- ResponseBuilder is open-sourced software licensed under the MIT license
Project details
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
File details
Details for the file website_as_app-1.2.0.tar.gz
.
File metadata
- Download URL: website_as_app-1.2.0.tar.gz
- Upload date:
- Size: 276.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e966c193cc5dd6f9fac2bf55b5196ea8201fa48fec75d4a85949bd99ff838bed |
|
MD5 | 4a259f68e6ee03a1978cb9547e2a77b1 |
|
BLAKE2b-256 | 5d584d18f2558646c24c5b13e20c4b72a6bc8cd9c14bc8424465ac98a2519bd1 |
File details
Details for the file website_as_app-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: website_as_app-1.2.0-py3-none-any.whl
- Upload date:
- Size: 276.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59f37117ce47ee0aba73a7fe88c5040dad9bac08d149345bf9da684ff2b93c28 |
|
MD5 | 3e5d9be71ff8951fba15c4cee99602ad |
|
BLAKE2b-256 | 48164580391930db6c3829353f198fedb2b94e0540cf2d7a7c6a383e45da6111 |