Package: protonvpn-linux-gui-calexandru2018
ProtonVPN Linux GUIAnunofficialLinux GUI for ProtonVPN, written in Python. Layout designed in Glade.Protonvpn-linux-gui works on top ofprotonvpn-cli-ng, making it a dependency. All local configurations are managed by the GUI (such as updating protocol, split tunneling, manage killswitch) while the connections are managed by the CLI. This way, you will be able to use the latest version of the CLI, while also being able to use the GUI.Table of ContentsInstalling and UpdatingDependenciesPython dependenciesProtonVPN GUI dependenciesKnown IssuesWaylandProtonVPN Tray dependenciesKnown Issuesdbus-launchInstalling protonvpn-linux-guiDistribution basedPIP basedHow to UpdateManual installationVirtual environmentHow to useProtonVPN GUIProtonVPN TrayEnhancementsCreate .desktop fileProtonVPN GUIProtonVPN TrayVisudo/SudolessNot yet implementedGUI LayoutInstalling and UpdatingDependenciesPython dependenciespython >= 3.5requests >= 2.23.0configparse >= 4.0.2pip for python3 (pip3)protonvpn-cli-ng>= 2.2.2setuptools for python3 (python3-setuptools)ProtonVPN GUI dependenciesDistroCommandFedora/CentOS/RHELsudo dnf install -y python3-gobject gtk3Ubuntu/Linux Mint/Debian and derivativessudo apt install -y python3-gi python3-gi-cairo gir1.2-gtk-3.0OpenSUSE/SLESsudo zypper install python3-gobject python3-gobject-Gdk typelib-1_0-Gtk-3_0 libgtk-3-0Arch Linux/Manjarosudo pacman -S python-gobject gtk3GUI Known issues:WaylandWhile this works well on X11, there are certain restrictions on Wayland since it does not allow GUIs to be launched as root. The way the GUI works at the moment is that it accesses much of the content that the CLI protects with sudo, thus starting with sudo lowers the UX friction, though this is subject to change. More infohereandhere.Workaround is provied:Installxhostorx11-xserver-utilsType in terminalxhost si:localuser:rootType in terminalsudo protonvpn-guiProtonVPN Tray dependenciesDistroCommandFedora/CentOS/RHELsudo dnf install -y libappindicator-gtk3Ubuntu/Linux Mint/Debian and derivativessudo apt install -y gir1.2-appindicator3OpenSUSE/SLESsudo zypper install libappindicator-gtk3Arch Linux/Manjarosudo pacman -S libappindicator-gtk3NOTE:Gnome users will to install and additional extension for this to work:KStatusNotifierItem/AppIndicator SupportTray Known issues:dbus-launchThere is a known issue when user attempts to start the systray/appindicator. This might throw an error that is simillar to this one:(<app-name>:<pid>) LIBDBUSMENU-GLIB-WARNING **: Unable to get session bus: Failed to execute child process "dbus-launch" (No such file or directory)if a user does not have a specific package installed. If you are unable to use the systray/appindicator and have a simillar error then a solution is provided below.Solution:Installdbus-x11package for your distribution, more information can be found on thisstackoverflowpost.Installing ProtonVPN Linux GUIDistribution basedFedora/CentOS/RHEL: To-doUbuntu derivatives: To-doOpenSUSE/SLES: To-doArch Linux/Manjaro:Available at AURPIP basedNote: Make sure to run pip with sudosudo pip3 install protonvpn-linux-gui-calexandru2018To update to a new versionsudo pip3 install protonvpn-linux-gui-calexandru2018 --upgradeManual InstallationClone this repositorygit clone https://github.com/calexandru2018/protonvpn-linux-guiStep into the directorycd protonvpn-linux-guiInstallsudo python3 setup.py installVirtual environmentIf you would like to run the the GUI within a virtual environment (for either development purpose or other), then you can easily do that with the help ofpipenv. Make sure to install pipenv beforehand following the next steps.git clone https://github.com/calexandru2018/protonvpn-linux-guicd protonvpn-linux-guipipenv installinstalls the virtual environment and all necessary dependencies fromPipfile.pipenv shellenters the virtual environment.sudo pip install -e .installs the GUI in your virtual environment.sudo protonvpn-guistarts the GUI from within the virtual environment.How to useProtonVPN GUIsudo protonvpn-guiProtonVPN Trayprotonvpn-trayEnhancementsCreate .desktop fileProtonVPN GUITo create atdesktoplauncher with a .desktop file, follow the instrucitons below.Find the path to the package withpip3 show protonvpn-linux-gui-calexandru2018You should get something likeLocation: /usr/local/lib/<YOUR_PYTHON_VERSION>/dist-packages, this is where your Python packages reside.Note:Based on your distro, yourLocationpath may not look exactly like this one, so make sure to use your own andLocationpath.Based on previous information, the path to your icon should be<PATH_DISPLAYED_IN_STEP_1>/protonvpn_linux_gui/resources/img/logo/protonvpn_logo.pngCreate aprotonvpn-gui.desktopfile in.local/share/applications/, and paste in the following code. Remember to change theIconpath to your own path.[Desktop Entry]
Name=ProtonVPN GUI
GenericName=Unofficial ProtonVPN GUI for Linux
Exec=sudo protonvpn-gui
Icon=<YOUR_ICON_PATH>
Type=Application
Terminal=False
Categories=Utility;GUI;Network;VPNProtonVPN TrayTo create attray iconlauncher with a .desktop file, follow the instrucitons below.Find the path to the package withpip3 show protonvpn-linux-gui-calexandru2018You should get something likeLocation: /usr/local/lib/<YOUR_PYTHON_VERSION>/dist-packages, this is where your Python packages reside.Note:Based on your distro, yourLocationpath may not look exactly like this one, so make sure to use your own andLocationpath.Based on previous information, the path to your icon should be<PATH_DISPLAYED_IN_STEP_1>/protonvpn_linux_gui/resources/img/logo/protonvpn_logo.pngCreate aprotonvpn-tray.desktopfile in.local/share/applications/, and paste in the following code. Remember to change theIconpath to your own path.[Desktop Entry]
Name=ProtonVPN GUI Tray
GenericName=Unofficial ProtonVPN GUI Tray for Linux
Exec=protonvpn-tray
Icon=<YOUR_ICON_PATH>
Type=Application
Terminal=False
Categories=Utility;GUI;Network;VPNVisudo/SudolessIf you would like to launch the GUI without having to type in your sudo password everytime, then you could add the bin tovisudo. This is extremly useful when you have a .desktop file, and all you want to do is click the launcher to have the GUI pop-up without being prompted for sudo password.First you will need the path to the GUI. This can be found by typingwhich protonvpn-gui. You should get something like this:/usr/bin/protonvpn-gui. Save it since you will need it later.Note:As previously mentioned, the path may look different for you, based on your distro.Identify your username by typingwhoami. Save it (or memorize it).In another terminal, type insudo visudo, and a window should pop-up, scroll to the very bottom of it.Once you are at the botton, type:<YOUR_USERNAME_FROM_STEP2> ALL = (root) NOPASSWD: <YOUR_PATH_FROM_STEP1>Exit and save! Have fun :)Not yet implemented:Split TunnelingKill SwitchFiltering serversStart on Boot(only for systemd/systemctl based OS's)Systray/AppIndicatorGUI Layout