Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jcemerson/protonvpn-cli-gui

Kivy-based ProtonVPN GUI for protonvpn-cli-ng on Linux (Unofficial)
https://github.com/jcemerson/protonvpn-cli-gui

kivy linux protonvpn protonvpn-cli-ng python3

Last synced: 3 months ago
JSON representation

Kivy-based ProtonVPN GUI for protonvpn-cli-ng on Linux (Unofficial)

Awesome Lists containing this project

README

        

ProtonVPN-CLI-GUI


ProtonVPN


GitHub Downloads




Downloads per Week

PyPi Downloads


Python Versions
Wheel
License

A GUI for ProtonVPN-CLI on Linux (Unofficial), written entirely in Python.

ProtonVPN-CLI-GUI is Kivy-based GUI built on top of protonvpn-cli-ng as the back-end. Wherever possible, the GUI relies on the actual code of the CLI, so ProtonVPN-CLI-GUI will remain up to date with ProtonVPN-CLI.

### Installing Dependencies

**Dependencies:**

- Kivy
- OpenVPN
- pip for Python3 (pip3)
- ProtonVPN-CLI
- Python3.6+
- setuptools for python3 (python3-setuptools)

To install ProtonVPN-CLI, depending on your distribution, run the appropriate following command to install the necessary dependencies.
For more detailed information on installing, updating and uninstalling, please view the extensive [usage guide](https://github.com/ProtonVPN/protonvpn-cli-ng/blob/master/USAGE.md#installation--updating):

| **Distro** | **Command** |
|:----------------------------------------|:------------------------------------------------ |
|Fedora/CentOS/RHEL | `sudo dnf install -y openvpn dialog python3-pip python3-setuptools`|
|Ubuntu/Linux Mint/Debian and derivatives | `sudo apt install -y openvpn dialog python3-pip python3-setuptools`|
|OpenSUSE/SLES | `sudo zypper in -y openvpn dialog python3-pip python3-setuptools` |
|Arch Linux/Manjaro | `sudo pacman -S openvpn dialog python-pip python-setuptools` |

**Installing ProtonVPN-CLI**

`sudo pip3 install protonvpn-cli`

Once you've installed protonvpn-cli-ng, install ProtonVPN-CLI-GUI.

*Note: This has only been tested on Linux Mint 19.3 Cinnamon.*

## Installing ProtonVPN-CLI-GUI

**Kivy Dependencies**

Prior to installing the GUI, run the following command to ensure the necessary Kivy dependencies are in place.

`sudo apt install -y build-essential git python3-dev ffmpeg libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libportmidi-dev libswscale-dev libavformat-dev libavcodec-dev zlib1g-dev xclip`

For installing the GUI, you can either install via PIP (simple) or by cloning this repository (must manually manage dependencies, etc).

*Note: Make sure to run pip with sudo*

`sudo pip3 install protonvpn-cli-gui`

### To update to a new version

`sudo pip3 install protonvpn-cli-gui --upgrade`

## Manual Installation

1. Clone this repository:

`git clone https://github.com/jcemerson/protonvpn-cli-gui`

2. Navigate to the directory:

`cd {/path/to/directory/}protonvpn-cli-gui`

3. Install:

`sudo python3 setup.py install`

### How to use

`sudo protonvpn-cli-gui`

### Recommendation for Convenience:
For passwordless execution without using a terminal, such as by automated script or .desktop file, update your sudoers file by using `sudo visudo` and paste the following at the bottom (last line) of your file:

`{your_linux_username} ALL = (root) NOPASSWD: /usr/local/bin/protonvpn-cli-gui`

*Note: The path to your bin might be different. To find, use* `which protonvpn-cli-gui`

## Create .desktop file

To create a desktop application launcher using a .desktop file:

1. Create a new file in `.local/share/applications/` named `protonvpn-cli-gui.desktop` with the following contents:

```
[Desktop Entry]
Name=ProtonVPN-CLI-GUI
GenericName=ProtonVPN-CLI-GUI
Exec=sudo protonvpn-cli-gui
Icon={path/to/icon}
Type=Application
Terminal=False
Categories=Network;VPN
```
*Note: Be sure to update the Icon with your own path to an image file.*

### This is a pre-release and not all planned features have been implemented.

Some remaining features include:

- Logging (GUI-only. Kivy, OpenVPN, and ProtonVPN-CLI all have logs of their own.)
- Searchable Server List
- Start on Boot
- Connection Profiles (user-configurable connection profiles that can be saved, e.g. "Fastest TOR server with TCP connection", "Fastest P2P server in Iceland", etc.).
- Built-in Connection Speed Test
- System Tray icon with connection status notification

## Screenshots


Main Screen


Secure Core Notification


Disconnected


Secure Core


Menu


VPN Settings