A simple shell script to generate webapps using Firefox, which
- install instantly and without root privelege
- are recognized as full-blown applications by your desktop environment/widow manager
- take very little storage space compared to their native counterparts
- have cookies and preferences isolated from one another
- are setup with sane privacy and security defaults
- can optionally come with privacy add-ons (UBlock Origin and Decentraleyes) pre-installed
⚠ DISCLAIMER: this is my first bash script, so expect some rough edges here and there
First clone this repository, then cd
into it:
git clone https://github.com/pesader/webapp-factory
cd webapp-factory
There's no way to install webapp-factory globally for now (working on it!), so you must run it from the root directory of the repository.
To install webapps, this script needs at least a link to a website (first parameter) and a name (second parameter), for example:
./webapp install https://app.element.io/ Element
You can also specify the link and the name of webapp using the -l
(short for "link") and -n
(short for "name") flags. There's also the option to set an icon using the -i
flag! Let's first use the findicon
subcommand to find out the name of the icon we're looking for:
./webapp findicon element
Papirus: element-nightly
Papirus: io.elementary.photos
Papirus: distributor-logo-elementary
Papirus: gelemental
Papirus: io.elementary.appcenter
Papirus: element-desktop
Papirus: io.elementary.code
Papirus: com.github.eudaldgr.elements
Papirus: io.elementary.mail
Papirus: element-desktop-nightly
Papirus: io.elementary.camera
Papirus: element
Looks like element
is the name of the icon for Element! Convenient!
Now let's use in our webapp:
./webapp install -n Element -l https://app.element.io/ -i element
Optionally, you can append the -p
flag to the command above to have UBlock Origin and Decentraleyes pre-installed in the webapp:
./webapp install -n Element -l https://app.element.io/ -i element -p
After that, hover the mouse near the titlebar of the window, click the top right menu, and enable the add-ons manually, as shown in the screencast below.
wafactory_compressed.mp4
Simply type webapp remove
followed by the name of the webapp you want to remove.
This script is intended to work on GNU/Linux distributions, and was tested on Ubuntu 20.04 with GNOME 3.36.
For the script to work, it needs firefox
, bash
, and wget
. The Papirus icon set is not necessary but highly recommended, since it contains lots of additional icons!
This script is mostly an automated version of the instructions described in this Reddit comment, by user u/Apoema, with a few extra bells and whistles.
I also took a lot of inspiration from Nativefier, Webapp Manager, Ubuntu Web Remix, and Chromium's own implementation of webapps.
Many thanks to arkenfox and pyllyukko for their user.js
configs, from where I took some of the privacy and security options used on this project.
The colors of the logo are from the amazing Nord Theme, by Arctic Studio.
This program is licensed under the GPL 3.0