My Open Source Project: pwa Development Notes

Published: 2026-04-14

Notice:

This is the complete version.

It can support all kinds of complex URL requests, including:

  • URL parameters
  • Special characters
  • Complex request paths

All complex URLs can be recognized correctly.

Running on AlmaLinux, Fedora, and Red Hat are all OK.

Other distributions have not been tested yet.

Based on the GNOME desktop environment.

The previous `pwa-mini` version was the simplest and fastest version.

It was designed for simple applications and quick usage.

This version is different.

`pwa` works together with the desktop GUI application:

`chrome-pwa-desktop-manage`

to manage and launch applications.

Of course, you can also use `pwa` directly to manage applications.

Both methods can work independently.

You can use only commands, or use the GUI.

It depends on your personal preference.

No more talking, let's look at the application screenshots first.

chrome-pwa-desktop-manage GUI Management

Desktop shortcut management tool settings icon screenshot.

pwa command

PWA operation steps screenshot.

The window opened by this version includes the address bar.

This makes it easier to manually control browser functions, such as ad filtering.

The opening speed is almost the same as the mini version.

The difference is basically negligible.

Project Address:

https://github.com/pixel-jey/chrome-pwa-desktop-manage

Clone repository:

```bash

git clone https://github.com/pixel-jey/chrome-pwa-desktop-manage

```

The repository contains:

```text

chrome-pwa-desktop-manage.desktop

icons

pwa

README.md

uninstall.sh

chrome-pwa-desktop-manage.spec

install.sh

PwaManager.jar

screenshots

com.google.chrome-pwa-desktop-manage.metainfo.xml

LICENSE

PwaManager.java

storage

```

Install:

```bash

sudo ./install.sh

```

After installation:

Open GNOME Software and check the installed application list.

You will see:

`chrome PWA Desktop Manager`

Image Description
Image Description
Image Description
Image Description
Image Description
Image Description
Image Description
Image Description
Image Description
Image Description

There are detailed screenshots and notes inside.

Following the images and descriptions makes the operation very simple and easy.

how to use:

Run:

```bash

pwa

```

Output:

```text

PWA Manager CLI

Usage: pwa [arguments]

Commands:

create Create a new PWA desktop entry

run Launch or focus a PWA window

icon Update a PWA's icon

app Launch or focus a generic application

view [FILE_NAME] Display content of desktop files

rm Remove a PWA desktop entry

```

First Install:

Firefox users need to install GNOME extension first:

```text

ActivateWindowByTitle

```

Used for:

Chrome PWA desktop shortcuts and applications.

It keeps only one application window open.

Chrome RPM Stable version:

```text

/opt/google/chrome/google-chrome

```

If using another Chrome version, create a symbolic link.

Java path:

```text

/usr/java/jdk-17

```

Changing the Default JDK (Optional)

By default, `chrome-pwa-desktop-manage` launches with the bundled Java path. If you have multiple JDK versions installed, you can manually modify the launcher script to use a different Java runtime.

Open the launcher script:

```bash

cat /usr/bin/chrome-pwa-desktop-manage

```

Example:

#!/usr/bin/env bash
APP_PATH="/usr/share/chrome-pwa-desktop-manage/"
cd "$APP_PATH"
exec /usr/java/jdk-17/bin/java -jar PwaManager.jar

Simply replace the Java executable path with your preferred JDK installation. For example, change:

```bash

/usr/java/jdk-17/bin/java

```

to another installed version such as:

```bash

/usr/java/jdk-21/bin/java

```

or any custom Java installation path available on your system.

Notice:

1.0 Python

2.0 Java

This project was originally written in Python.

However, after deployment and debugging on Fedora, especially with frequent system updates, I found that the stability was not good enough.

Later, I completely rewrote it using Java.

After changing to Java, the operation became:

  • More stable
  • Faster
  • Smoother

The current version is much more reliable.

Usage Process

The operation is a little more complicated.

First, you need to open the website through Chrome and install the PWA application.

Then run:

```bash

pwa view

```

You will see many:

```text

APP_ID

```

This ID is very important.

Commands like:

  • create
  • run
  • icon

all require this ID.

New Commands

Recently, two new commands were added:

```text

pwa-icon

pwa-one

```

pwa-icon

Usage:

```bash

pwa-icon

```

This command automatically obtains the PNG icon in:

  • 64x64
  • 128x128

The icon can also be used later to update application icons.

For better visual experience, you can create your own icon.

Then update it directly using the command.

pwa-one

Usage:

```bash

pwa-one

```

This command combines:

  • Application creation
  • Icon update

It is recommended to use:

```text

pwa-one

```

because it is the easiest way.

After creation, it automatically updates the 128x128 PNG icon.

It provides a more convenient complete workflow.

Explore More

Technology Guides →

How JComponent and JTextComponent Simplify Swing Development

My Favorite Android Phones: Why Pixel and Nothing Represent the True Android Experience

My Favorite Linux Distributions: RHEL, AlmaLinux, and Fedora from a Developer's Perspective

pwa-mini: A Lightweight PWA Manager for Linux GNOME Desktop

Southeast Asia Insights →

Chang vs Leo vs Singha: My Personal Experience with Thailand's Most Popular Beers

Why I'll Never Buy an Airport SIM Card Again: My eSIM Journey Across Southeast Asia

My First Week Living in Bangkok: Excitement, Confusion, and Lessons I Didn't Expect

My First Condo in Bangkok: How It Was Completely Different From the One I Had in the Philippines