Proton team does not build packages for Gentoo Linux, so we have to figure out how to install it on our own. From what I have gathered, there are 3 ways to go about it: download OpenVPN and Wireguard configuration files from the ProtonVPN UI, install GUI and CLI apps from sources or use community CLI.

Configuration Files

In the ProtonVPN personal settings configuration files can be downloaded both for OpenVPN and Wireguard. To find them, go to:

  • Downloads
  • OpenVPN / Wireguard configuraion

More details can be found if official documentation. The configuration files can be then used in the respective VPN clients.

Install From Sources

This part is trickier. ProtonVPN CLI and GUI app have a lot of dependencies, and they are not documented very well. Luckily, there is an existing ebuild written by FlyingWaffleDev that install ProtonVPN GUI GTK app.

To install it, first add the waffle-build overlay, and install the ebuild:

sudo eselect repository enable waffle-builds
sudo emerge --ask --quiet-build net-vpn/proton-vpn-gtk-app

Finally, launch the app from the icon, login and connect to VPN!

Community CLI

⚠️ Since March 2023 Proton team stopped allowing API calls from the community project, details: https://github.com/Rafficer/linux-cli-community/issues/365

Community CLI can be installed via net-vpn/protonvpn-cli package. After installation, run protonvpn command to establish to connect to VPN.

Installation

Repository has the required package, so it can be easily emerged:

emerge --ask net-vpn/protonvpn-cli

It can also be installed via pip (not preferred):

python -m venv protonvpn
source protonvpn/bin/activate
python -m pip install protonvpn-cli --break-system-packages>
alias protonvpn /home/labbrat/protonvpn/bin/activate protonvpn

Configuration

protonvpn tool doesn’t have login option and authentication is done via init. Main difference between the 2 is login uses Proton credentials as login, and init uses OpenVPN credentials, which can be found in account settings.

Find OpenVPN settings and enter them in init:

protonvpn init

Everything else is pretty much the same. To connect just run:

protonvpn c
  • [Link] - Official guide on downloading and installing Wireguard Configuration files
  • [Link] - Community CLI user guide
  • [Link] - Official CLI tool
  • [Link] - Waffle Builds ProtonVPN GUI app ebuild