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.
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:
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.
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
sudo pip3 install protonvpn-cli-gui --upgrade
-
Clone this repository:
git clone https://github.com/jcemerson/protonvpn-cli-gui
-
Navigate to the directory:
cd {/path/to/directory/}protonvpn-cli-gui
-
Install:
sudo python3 setup.py install
sudo protonvpn-cli-gui
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
To create a desktop application launcher using a .desktop file:
-
Create a new file in
.local/share/applications/
namedprotonvpn-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.
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