Create Linux desktop launchers for Progressive Web Apps in Firefox and Chromium.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Noah Petherbridge df6956e419 Bugfixes 2 years ago
pkg Bugfixes 2 years ago Add README 2 years ago
main.go Initial commit 2 years ago

Generate Linux desktop launchers for Progressive Web Apps

pwa-launcher is a command-line program to generate Linux desktop app launchers for Progressive Web Apps, using either Firefox or Chromium.

This tool will create a launcher in your standard Linux applications list that uses the favicon of the website in question and will launch the site as a web app in Firefox or Chrome.

Note: at time of writing, Firefox stable (77.0.1) has some support for "site specific browsers" but it is not enabled by default. Enable it in about:config by setting browser.ssb.enabled = true.


The icotool command will be used to extract PNG images from a website's favicon.ico file. Install it with e.g. apt install icoutils. If the command is not available, only PNG images such as apple-touch-icons can be used automatically by this program. (.ico files with image/png mime types will be used as PNG images directly, too).


pwa-launcher [options] <url>

# Examples
pwa-launcher -title Reddit -browser google-chrome
pwa-launcher -browser firefox-esr

Options (all are optional unless they can't be auto-detected):

  • -title

    Set the app name for the launcher. The default will parse the <title> of the website if available.

  • -browser

    Specify what web browser to use. Use either the absolute path (/usr/bin/firefox) or just the command name. The default will search for a suitable browser, preferring Firefox > Chromium > Google Chrome.

  • -icon

    Specify an icon image to use with the launcher. Can be a local icon on disk or at an HTTP URL (will be downloaded). The default will search the website's HTML to find icons and also check some well-known URIs for Apple Touch icons. The largest available icon size is used by default.

  • -exec

    Manually provide the exec line for launching the web browser. By default a suitable value is used based on whether you're using Firefox or Chromium. Providing this option will override the -browser option, as the -browser is really only used to determine the command name and type of browser you're using.

    Example values include: firefox --ssb %s or chromium --app=%s

    Use the placeholder "%s" where the URL would go in the command.

  • <url>

    The web URL that the launcher will open. If a title and icon are needed, the program will parse the HTML at this URL and search for titles and icons.

Launchers and Icons

Desktop launchers are placed in the user's home directory at ~/.local/share/applications/ and their app icons (PNG images) are placed in ~/.config/pwa-launcher

File naming convention is like pwa-$(domain)-$(time).desktop where the domain is the base domain of the site (e.g. and the time is a Unix timestamp.

To remove launchers and icons, delete them from the above locations.