Skip to content
This repository was archived by the owner on Oct 18, 2025. It is now read-only.

LeeKrane/p81-workaround

Repository files navigation

Perimeter81 Workaround - v1.0

This project provides a workaround to streamline the usage of the Perimeter81 VPN client, specifically for environments utilizing pkexec. It's designed to automate the starting of the perimeter81helper and subsequently restart NetworkManager after the Perimeter81 application is closed.

Version: v1.0

Tested Environment: CachyOS (an Arch Linux derivative) with KDE Plasma 6 and Wayland.

Note: While this project is primarily developed and tested on the environment mentioned above, it is likely to work on other distributions with pkexec, notify-send, and the required systemd services installed. However, this is not officially tested or guaranteed.

How it Works

The workaround consists of a script and a desktop entry:

  1. boot.sh: This is the main script that acts as a wrapper around the Perimeter81 application.
    • It first executes .pre-run.sh with root privileges using pkexec to start the perimeter81helper systemd service.
    • It then launches the official Perimeter81 application (/opt/Perimeter81/perimeter81).
    • Once the Perimeter81 application is closed, it sends a desktop notification indicating the stopping process is starting.
    • It then executes .post-run.sh with root privileges using pkexec to stop the perimeter81helper and restart the NetworkManager systemd service.
    • Finally, it sends a desktop notification confirming that the process is complete.
  2. .pre-run.sh: A simple script executed with root privileges to start the perimeter81helper systemd service.
  3. .post-run.sh: A simple script executed with root privileges to stop the perimeter81helper and restart the NetworkManager systemd service.
  4. p81-fix.desktop: A desktop entry file that points to the boot.sh script. This allows you to launch the Perimeter81 workaround directly from your application menu.

Initialization

To integrate the workaround with your desktop environment, a simple initialization script is provided:

  • init-fix.sh: This script copies the p81-fix.desktop file to your user's local applications directory (~/.local/share/applications/) and then updates the desktop database. This makes the "Perimeter81 VPN (fixed)" entry appear in your application launcher.

To initialize the workaround, simply run the init-fix.sh script from the project directory:

./init-fix.sh

Installation

  1. Clone the repository:

    git clone https://gitlab.com/krane.dev/p81-workaround.git
  2. Navigate into the cloned directory:

    cd p81-workaround
  3. Copy the workaround files to a location of your choice. It's recommended to place them in a consistent system-wide location like /opt:

    sudo cp -r . /opt/p81-workaround
  4. Make the scripts executable:

    sudo chmod +x /opt/p81-workaround/*.sh
  5. Run the initialization script to add the desktop entry:

    /opt/p81-workaround/init-fix.sh

Usage

After installation and initialization, you should find a new application entry in your menu called "Perimeter81 VPN (fixed)". Launching this entry will use the workaround script to manage the perimeter81helper and NetworkManager services as needed, providing desktop notifications for feedback.

Alternatively, you can directly execute the boot.sh script from the terminal:

/opt/p81-workaround/boot.sh

Requirements

  • pkexec installed and configured.
  • notify-send command available (usually part of a desktop environment's notification system).
  • Perimeter81 VPN client installed, specifically at the path /opt/Perimeter81/perimeter81. This includes the helper service perimeter81helper.
  • NetworkManager systemd service.

Releases

You can find official releases of the Perimeter81 Workaround project on the GitLab releases page. Each release is tagged and provides a snapshot of the project at a specific version.

  • v1.0: The initial release of the project.

You can download release archives from the following URL:

https://gitlab.com/krane.dev/p81-workaround/-/releases

Contributing

Feel free to contribute to this project by opening issues or submitting merge requests on the GitLab repository.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages