Giter Site home page Giter Site logo

protonvpn / linux-app Goto Github PK

View Code? Open in Web Editor NEW
402.0 18.0 64.0 5.23 MB

Official ProtonVPN Linux app

Home Page: https://protonvpn.com/download-linux

License: GNU General Public License v3.0

Makefile 0.39% Shell 0.43% CSS 2.56% Python 96.62%
vpn linux python gui

linux-app's Introduction

Proton VPN Linux App

Copyright (c) 2021 Proton Technologies AG

This repository holds the Proton VPN Linux App. For licensing information see COPYING. For contribution policy see CONTRIBUTING.

Description

The Proton VPN Linux App Library is intended for every Proton VPN service user.

You can download the latest stable release, either from our official repositories or directly on the official GitHub repository.

Dependencies:

Distro Command
Fedora/CentOS/RHEL python3-gi, python3-gi-cairo, python3-psutil
Ubuntu/Linux Mint/Debian and derivatives gtk3, python3-gobject, python3-psutil
Arch Linux/Manjaro gtk3, python-gobject, python-psutil

Indicator/Tray dependency

Distro Command
Fedora/CentOS/RHEL libappindicator-gtk3
Ubuntu/Linux Mint/Debian and derivatives gir1.2-appindicator3-0.1
Arch Linux/Manjaro libappindicator-gtk3

Additional dependency:

Proton VPN NM Library

Installation

Follow our knowledge base article on how to install the Proton VPN Linux App on your system.

linux-app's People

Contributors

alexandrevicenzi avatar aliraza7926 avatar bryanpaget avatar calexandru2018 avatar gnufella avatar hackerncoder avatar mateusz-markowicz avatar okhoshi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

linux-app's Issues

Please add Wireguard support for the Linux client

  • I have searched open and closed issues for duplicates
  • This isn't a feature request
  • This is not a report about my app not working as expected

Please support the Wireguard protocoll on Linux too, not only OpenVPN.

Add split-tunneling functionality

Hi ProtonVPN team!

As far as I can tell, there's no configuration options in the current ProtonVPN desktop client for Linux that allow for split-tunneling. I'd like a few applications to use my work VPN, the others to use ProtonVPN, and still have access to my LAN.

I believe similar functionality is available on your Android app. Do you have a roadmap for implementing this feature?

Initializing connection hangs

Application hangs on connection via both CLI and GUI.

protonvpn.log

2021-07-20 08:50:46,569 — settings_backend.py — INFO — get_backend:13 — Settings backend: <class 'protonvpn_nm_lib.core.user_settings.default_settings_backend.Settings'>
2021-07-20 08:50:46,601 — _base.py — INFO — get_default:16 — Using "<class 'protonvpn_nm_lib.core.keyring.linuxkeyring.KeyringBackendLinuxSecretService'>" keyring
2021-07-20 08:50:46,615 — linuxkeyring.py — INFO — __getitem__:15 — Get key ProtonUser
2021-07-20 08:50:46,641 — linuxkeyring.py — INFO — __getitem__:15 — Get key SessionData
2021-07-20 08:50:46,679 — utilities.py — INFO — ensure_internet_connection_is_available:21 — Checking for internet connectivity
2021-07-20 08:50:46,686 — killswitch.py — INFO — __init__:60 — Initialized killswitch manager
2021-07-20 08:50:46,687 — killswitch.py — INFO — get_status_connectivity_check:601 — Conn check available (1) - Conn check enabled (0)
2021-07-20 08:50:46,687 — utilities.py — INFO — ensure_internet_connection_is_available:23 — Skipping as killswitch is enabled
2021-07-20 08:50:46,688 — utilities.py — INFO — ensure_api_is_reacheable:46 — Checking API connectivity
2021-07-20 08:50:46,688 — utilities.py — INFO — ensure_api_is_reacheable:49 — Skipping as killswitch is enabled
2021-07-20 08:50:46,688 — linuxkeyring.py — INFO — __getitem__:15 — Get key UserData
2021-07-20 08:50:51,656 — api.py — INFO — setup_connection:80 — Setting up connection
2021-07-20 08:50:51,656 — utilities.py — INFO — ensure_internet_connection_is_available:21 — Checking for internet connectivity
2021-07-20 08:50:51,656 — utilities.py — INFO — ensure_internet_connection_is_available:23 — Skipping as killswitch is enabled
2021-07-20 08:50:51,656 — utilities.py — INFO — ensure_api_is_reacheable:46 — Checking API connectivity
2021-07-20 08:50:51,656 — utilities.py — INFO — ensure_api_is_reacheable:49 — Skipping as killswitch is enabled
2021-07-20 08:50:51,656 — utilities.py — INFO — ensure_servername_is_valid:77 — Validating servername
2021-07-20 08:50:51,657 — utilities.py — INFO — is_protocol_valid:125 — Checking if protocol is valid
2021-07-20 08:50:51,661 — api.py — INFO — setup_connection:121 — Appended server label.
2021-07-20 08:50:51,662 — connection_metadata_backend.py — INFO — get_backend:15 — Connection metadata backend: <class 'protonvpn_nm_lib.core.metadata.default_connection_metadata.ConnectionMetadata'>
2021-07-20 08:50:51,662 — default_connection_metadata.py — INFO — save_servername:48 — Saving servername "JP-FREE#1" on "MetadataEnum.CONNECTION"
2021-07-20 08:50:51,662 — default_connection_metadata.py — INFO — save_servername:55 — Saving servername "JP-FREE#1" on "MetadataEnum.LAST_CONNECTION"
2021-07-20 08:50:51,662 — default_connection_metadata.py — INFO — save_protocol:84 — Saving protocol "ProtocolEnum.UDP" on "MetadataEnum.CONNECTION"
2021-07-20 08:50:51,663 — default_connection_metadata.py — INFO — save_protocol:91 — Saving protocol "ProtocolEnum.UDP" on "MetadataEnum.LAST_CONNECTION"
2021-07-20 08:50:51,663 — default_connection_metadata.py — INFO — save_protocol:97 — Saved protocol to file
2021-07-20 08:50:51,663 — default_connection_metadata.py — INFO — save_display_server_ip:103 — Saving exit server IP "103.125.235.22" on "MetadataEnum.CONNECTION"
2021-07-20 08:50:51,663 — default_connection_metadata.py — INFO — save_display_server_ip:110 — Saved exit ip to file
2021-07-20 08:50:51,664 — default_connection_metadata.py — INFO — save_server_ip:122 — Saving server ip "103.125.235.18" on "MetadataEnum.LAST_CONNECTION"
2021-07-20 08:50:51,664 — default_connection_metadata.py — INFO — save_server_ip:128 — Saved server IP to file
2021-07-20 08:50:51,664 — api.py — INFO — setup_connection:139 — Stored metadata to file
2021-07-20 08:50:51,681 — api.py — INFO — setup_connection:141 — Received configuration object
2021-07-20 08:50:51,713 — connection_backend.py — INFO — get_backend:14 — Connection backend: <class 'protonvpn_nm_lib.core.connection_backend.nm_client.nm_client.NetworkManagerClient'>
2021-07-20 08:50:51,713 — dbus_reconnect.py — INFO — get_hash_from_template:192 — Template hash "eaba690d7280b8111323b9b58581bdc327d6d82fcf42542d7655f40a698f739e"
2021-07-20 08:50:51,713 — dbus_reconnect.py — INFO — get_service_file_hash:222 — Generated hash at runtime "eaba690d7280b8111323b9b58581bdc327d6d82fcf42542d7655f40a698f739e"
2021-07-20 08:50:51,713 — api.py — INFO — setup_connection:144 — Setting up JP-FREE#1
2021-07-20 08:50:51,714 — nm_client.py — INFO — setup:49 — Adding VPN connection
2021-07-20 08:50:51,714 — vpn_configuration.py — INFO — generate:123 — Generating OpenVPN configuration
2021-07-20 08:50:51,724 — nm_plugin.py — INFO — import_vpn_config:37 — Connection was normalized
2021-07-20 08:50:51,724 — nm_client.py — INFO — __get_protonvpn_connection:172 — Getting VPN from "NetworkManagerConnectionTypeEnum.ACTIVE" connections
2021-07-20 08:50:51,724 — nm_client.py — INFO — __get_protonvpn_connection:207 — VPN connection: None
2021-07-20 08:50:51,724 — nm_client.py — INFO — __get_protonvpn_connection:172 — Getting VPN from "NetworkManagerConnectionTypeEnum.ALL" connections
2021-07-20 08:50:51,724 — nm_client.py — INFO — __get_protonvpn_connection:207 — VPN connection: <NM.RemoteConnection object at 0x7f6a26f99840 (NMRemoteConnection at 0x561f899e7ab0)>
2021-07-20 08:50:51,725 — nm_client_mixin.py — INFO — _remove_connection_async:45 — Removing VPN connection
2021-07-20 08:50:51,768 — nm_client_mixin.py — INFO — __dynamic_callback:90 — Callback type: "remove"
2021-07-20 08:50:51,768 — nm_client_mixin.py — ERROR — __dynamic_callback:124 — Exception: 'remove'
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py", line 117, in __dynamic_callback
    (callback_type_dict[callback_type]["finish_function"])(result)
KeyError: 'remove'
2021-07-20 08:50:51,768 — nm_client.py — INFO — _post_disconnect:232 — Running post disconnect.
2021-07-20 08:50:51,768 — ipv6_leak_protection.py — INFO — __init__:45 — Intialized IPv6 leak protection manager
2021-07-20 08:50:51,770 — ipv6_leak_protection.py — INFO — get_status_connectivity_check:257 — Conn check available (1) - Conn check enabled (0)
2021-07-20 08:50:51,770 — dbus_reconnect.py — INFO — stop_daemon_reconnector:74 — Stopping daemon reconnector
2021-07-20 08:50:51,770 — dbus_reconnect.py — INFO — check_daemon_reconnector_status:122 — Checking daemon reconnector status
2021-07-20 08:50:51,779 — ipv6_leak_protection.py — INFO — manage:54 — Manage IPV6: KillSwitchActionEnum.DISABLE
2021-07-20 08:50:51,781 — ipv6_leak_protection.py — INFO — get_status_connectivity_check:257 — Conn check available (1) - Conn check enabled (0)
2021-07-20 08:50:51,794 — ipv6_leak_protection.py — INFO — update_connection_status:219 — IPv6 status: {'pvpn-ipv6leak-protection': {<KillSwitchInterfaceTrackerEnum.EXISTS: 0>: True, <KillSwitchInterfaceTrackerEnum.IS_RUNNING: 1>: False}}
2021-07-20 08:50:51,794 — ipv6_leak_protection.py — INFO — remove_leak_protection:108 — Removing IPv6 leak protection
2021-07-20 08:50:51,806 — ipv6_leak_protection.py — INFO — update_connection_status:219 — IPv6 status: {'pvpn-ipv6leak-protection': {<KillSwitchInterfaceTrackerEnum.EXISTS: 0>: True, <KillSwitchInterfaceTrackerEnum.IS_RUNNING: 1>: False}}
2021-07-20 08:50:51,826 — configure_openvpn_connection.py — INFO — make_vpn_user_owned:57 — Making VPN connection be user owned
2021-07-20 08:50:51,826 — configure_openvpn_connection.py — INFO — add_vpn_credentials:93 — Adding OpenVPN credentials
2021-07-20 08:50:51,826 — configure_openvpn_connection.py — INFO — add_server_certificate_check:111 — Adding server certificate check
2021-07-20 08:50:51,826 — configure_openvpn_connection.py — INFO — apply_virtual_device_type:128 — Applying virtual device type to VPN
2021-07-20 08:50:51,826 — configure_openvpn_connection.py — INFO — dns_configurator:181 — DNS configs: UserSettingStatusEnum.ENABLED - []
2021-07-20 08:50:51,827 — nm_client.py — INFO — _pre_setup_connection:221 — Running pre-setup connection.
2021-07-20 08:50:51,827 — ipv6_leak_protection.py — INFO — manage:54 — Manage IPV6: KillSwitchActionEnum.ENABLE
2021-07-20 08:50:51,841 — ipv6_leak_protection.py — INFO — get_status_connectivity_check:257 — Conn check available (1) - Conn check enabled (0)
2021-07-20 08:50:51,857 — ipv6_leak_protection.py — INFO — update_connection_status:219 — IPv6 status: {'pvpn-ipv6leak-protection': {<KillSwitchInterfaceTrackerEnum.EXISTS: 0>: False, <KillSwitchInterfaceTrackerEnum.IS_RUNNING: 1>: False}}
2021-07-20 08:50:51,857 — ipv6_leak_protection.py — INFO — add_leak_protection:75 — Adding IPv6 leak protection
2021-07-20 08:50:51,858 — ipv6_leak_protection.py — INFO — manage:54 — Manage IPV6: KillSwitchActionEnum.DISABLE
2021-07-20 08:50:51,884 — ipv6_leak_protection.py — INFO — get_status_connectivity_check:257 — Conn check available (1) - Conn check enabled (0)
2021-07-20 08:50:51,924 — ipv6_leak_protection.py — INFO — update_connection_status:219 — IPv6 status: {'pvpn-ipv6leak-protection': {<KillSwitchInterfaceTrackerEnum.EXISTS: 0>: False, <KillSwitchInterfaceTrackerEnum.IS_RUNNING: 1>: False}}
2021-07-20 08:50:51,924 — ipv6_leak_protection.py — INFO — remove_leak_protection:108 — Removing IPv6 leak protection
2021-07-20 08:50:51,933 — ipv6_leak_protection.py — INFO — update_connection_status:219 — IPv6 status: {'pvpn-ipv6leak-protection': {<KillSwitchInterfaceTrackerEnum.EXISTS: 0>: False, <KillSwitchInterfaceTrackerEnum.IS_RUNNING: 1>: False}}
2021-07-20 08:50:52,009 — nm_client_mixin.py — INFO — __dynamic_callback:90 — Callback type: "add"
2021-07-20 08:50:52,009 — nm_client_mixin.py — ERROR — __dynamic_callback:124 — Exception: NM.Client.add_connection_finish() takes exactly 2 arguments (1 given)
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py", line 117, in __dynamic_callback
    (callback_type_dict[callback_type]["finish_function"])(result)
TypeError: NM.Client.add_connection_finish() takes exactly 2 arguments (1 given)
2021-07-20 08:50:52,010 — utilities.py — INFO — ensure_internet_connection_is_available:21 — Checking for internet connectivity
2021-07-20 08:50:52,010 — utilities.py — INFO — ensure_internet_connection_is_available:23 — Skipping as killswitch is enabled
2021-07-20 08:50:52,010 — nm_client.py — INFO — connect:89 — Starting VPN connection
2021-07-20 08:50:52,010 — nm_client.py — INFO — __get_protonvpn_connection:172 — Getting VPN from "NetworkManagerConnectionTypeEnum.ALL" connections
2021-07-20 08:50:52,010 — nm_client.py — INFO — __get_protonvpn_connection:207 — VPN connection: <NM.RemoteConnection object at 0x7f6a2cad8c80 (NMRemoteConnection at 0x7f6a1c06ad30)>
2021-07-20 08:50:52,010 — nm_client_mixin.py — INFO — _start_connection_async:29 — Starting VPN connection
2021-07-20 08:50:52,016 — nm_client_mixin.py — INFO — __dynamic_callback:90 — Callback type: "start"
2021-07-20 08:50:52,016 — nm_client_mixin.py — ERROR — __dynamic_callback:124 — Exception: NM.Client.activate_connection_finish() takes exactly 2 arguments (1 given)
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py", line 117, in __dynamic_callback
    (callback_type_dict[callback_type]["finish_function"])(result)
TypeError: NM.Client.activate_connection_finish() takes exactly 2 arguments (1 given)

These errors seem to relate (especially the last one)

2021-07-20 08:50:51,725 — nm_client_mixin.py — INFO — _remove_connection_async:45 — Removing VPN connection
2021-07-20 08:50:51,768 — nm_client_mixin.py — INFO — __dynamic_callback:90 — Callback type: "remove"
2021-07-20 08:50:51,768 — nm_client_mixin.py — ERROR — __dynamic_callback:124 — Exception: 'remove'
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py", line 117, in __dynamic_callback
    (callback_type_dict[callback_type]["finish_function"])(result)
KeyError: 'remove'
2021-07-20 08:50:52,009 — nm_client_mixin.py — INFO — __dynamic_callback:90 — Callback type: "add"
2021-07-20 08:50:52,009 — nm_client_mixin.py — ERROR — __dynamic_callback:124 — Exception: NM.Client.add_connection_finish() takes exactly 2 arguments (1 given)
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py", line 117, in __dynamic_callback
    (callback_type_dict[callback_type]["finish_function"])(result)
TypeError: NM.Client.add_connection_finish() takes exactly 2 arguments (1 given)
2021-07-20 08:50:52,016 — nm_client_mixin.py — INFO — __dynamic_callback:90 — Callback type: "start"
2021-07-20 08:50:52,016 — nm_client_mixin.py — ERROR — __dynamic_callback:124 — Exception: NM.Client.activate_connection_finish() takes exactly 2 arguments (1 given)
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py", line 117, in __dynamic_callback
    (callback_type_dict[callback_type]["finish_function"])(result)
TypeError: NM.Client.activate_connection_finish() takes exactly 2 arguments (1 given)

I'm using Archlinux

$ pacman -Qs networkmanager
local/libnm 1.32.2-1
    NetworkManager client library
local/libnma 1.8.30-1
    NetworkManager GUI client library
local/networkmanager 1.32.2-1
    Network connection manager and user applications
local/networkmanager-openvpn 1.8.14-1
    NetworkManager VPN plugin for OpenVPN
local/nm-connection-editor 1.22.0-1
    NetworkManager GUI connection editor and widgets
local/python-protonvpn-nm-lib 3.3.2-1 (ProtonVPN)
    Official ProtonVPN NetworkManager Library, maintained by the ProtonVPN team.

$ pacman -Qs proton
local/protonvpn-cli 3.7.2-1 (ProtonVPN)
    Official ProtonVPN Command Line Interface, maintained by the ProtonVPN team.
local/protonvpn-gui 1.0.1-1 (ProtonVPN)
    ProtonVPN Graphical User Interface
local/python-proton-client 0.5.1-1 (ProtonVPN)
    Proton API Python Client.
local/python-protonvpn-nm-lib 3.3.2-1 (ProtonVPN)
    Official ProtonVPN NetworkManager Library, maintained by the ProtonVPN team.

Window icons not visible with custom themes

Hello.

I seem to be having issues with the icons on the window borders not showing up with certain 'Controls' themes on Linux Mint. Even stock themes that ship with Linux Mint. If I click where the icons should be, they act as if they are there and function as if I were clicking on them.

ProtonVPN is the only app that has this issue which makes be believe it isn't something wrong with themes, but how ProtonVPN displays the icons(?)

See below screenshots:

With no icons:
noIcons

With icons - different theme:
noIcons\

Theme that shows icons: Adwaita
Theme that doesn't: Mint-Y-Dark-Aqua

I will see if I can look through the theme's data and see if I can pin-point the culprit, but again, the ProtonVPN app is the only application that seems to have this bug.

Thanks for taking the time to create a GUI for Linux, really do appreacite your efforts. My only gripe with Linux is having to do everything through CLI, so a GUI is really a breath of fresh air.

'Task' object has no attribute 'run_in_thread'

I add the new ProtonVPN repository on my Debian 10 and install the app but when I try to log in I receive this error on console:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/protonvpn_gui/view/login.py", line 235, in on_clicked_login
    self.login_view_model.login_async(username, password)
  File "/usr/lib/python3/dist-packages/protonvpn_gui/view_model/login.py", line 37, in login_async
    process.start()
  File "/usr/lib/python3/dist-packages/protonvpn_gui/patterns/factory/background_process_factory.py", line 84, in start
    self.process.run_in_thread(to_run_in_thread)
AttributeError: 'Task' object has no attribute 'run_in_thread'

I install the last updates today. Before this no login working and no logs.
System info:

Linux name 4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 GNU/Linux

Asks for OpenVPN credentials upon connection on Fedora 34

A system dialog appears every time I connect using the ProtonVPN app asking for my OpenVPN password. I don't believe this is the intended behavior, and makes connecting much more difficult.

Steps to reproduce

  1. On the command line
sudo dnf install https://protonvpn.com/download/protonvpn-stable-release-1.0.0-1.noarch.rpm -y
sudo dnf install protonvpn -y --refresh
protonvpn
  1. In the GUI
    1. Enter the KDE wallet password
    2. Login using your credentials
    3. Select any combination of Secure Core, Netshield, and Kill Switch options
    4. Click "Quick Connect"

Expected behavior

Connection proceeds without prompt

Actual behavior

Dialog appears asking for OpenVPN password for whichever server was selected. Entering the OpenVPN password from my ProtonVPN account page allows the connection to succeed.

Machine Info

OS Name=Fedora
Version=34 (KDE Plasma)
uname -a output=Linux nattie 5.11.17-300.fc34.x86_64 #1 SMP Wed Apr 28 14:21:28 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Unable to use ProtonVPN on Manjaro Gnome

I am unable to use Protonvpn app or protonvpn-cli on Manjaro Gnome.
App doesn't launch at all.
'protonvpn-cli login tbrimbo' and 'protonvpn-cli s' commands both prompt:

Traceback (most recent call last):
File "/usr/bin/protonvpn-cli", line 33, in
sys.exit(load_entry_point('protonvpn-cli==3.7.1', 'console_scripts', 'protonvpn-cli')())
File "/usr/bin/protonvpn-cli", line 25, in importlib_load_entry_point
return next(matches).load()
StopIteration

I tried them on Manjaro Cinnamon and they work.

[Workaround] Debian 11 Tray Indicator for ProtonVPN

We are happy to answer your questions about the code or discuss technical ideas.

Please complete the following checklist (by adding [x]):

  • I have searched open and closed issues for duplicates
  • This isn't a feature request
  • This is not a report about my app not working as expected

This is a known issue mentioned here https://protonvpn.com/support/early-access-linux-vpn-debian/

I was wondering if anyone has a workaround for the obsoleted package gir1.2-appindicator3-0.1

sudo apt install gnome-shell-extension-appindicator gir1.2-appindicator3-0.1

Thankies

High memory usage after several hours of use

I am using arch with the app installed through the chaotic aur. I started the app roughly around 3pm yesterday, put the pc to sleep at 5:30pm, and at 9am the next morning protonvpn was using 1.8GB of ram. I did use some intense webpages, such as reddit, youtube, and outlook webmail, but at the time I was running out of memory my browser was only using a little under 500mb on my current tab, which was outlook during a refresh. My pc only has a little over 5gb of ram, so I really can't afford to have programs taking up so much memory.
On a bit of a side note, I used to use the cli app, but recent builds have made the cli and gui conflicting packages, at least when using the precompiled binaries from the chaotic aur. I don't think this was an issue when I was using the cli app through a script to autostart it.

Fails to connect on Arch with no error log.

Attempting to connect to a server fails with no report other than a notification saying that the connection "Failed" or "Timed out", never progresses beyond 78% and occasionally prompts the user with a pre-filled password field with no explanation other than "a password is required" despite having already logged in.

Console log: (doesn't seem relevant)

Gtk-Message: 12:31:46.114: Failed to load module "colorreload-gtk-module"
Gtk-Message: 12:31:46.114: Failed to load module "window-decorations-gtk-module"
/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py:11: Warning: g_main_context_push_thread_default: assertion 'acquired_context' failed
  nm_client = NM.Client.new(None)
/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py:11: Warning: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed
  nm_client = NM.Client.new(None)

Environment:
OS: Arch Linux x86_64
DE: Xfce 4.16

Edit: running with cli gives the following output, which isn't anymore helpful, but at least shows the GUI isn't obscuring any details:

Setting up ProtonVPN.
Connecting to ProtonVPN on US-FREE#2 with UDP.

Unable to connect to ProtonVPN: ProtonVPN connection failed due to unknown reason.

image
image
image

Missing TCP/UDP switch

Hi,

Is there a way to switch between TCP/UDP on the Linux app?
It defaults to UDP and some websites block UDP clients.

The only place available is in protonvpn-cli cmd line.

Cannot open protonvpn-gui on arch/swaywm

I am able to open the Linux app using Gnome desktop (wayland), works fine on Gnome

Today I decided to switch back to Sway window manager, I cannot open the app, I get this when I run protonvpn:

Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/keyring/linuxkeyring.py", line 21, in __getitem__
    stored_data = self.__keyring_backend.get_password(
  File "/usr/lib/python3.9/site-packages/keyring/backends/SecretService.py", line 78, in get_password
    collection = self.get_preferred_collection()
  File "/usr/lib/python3.9/site-packages/keyring/backends/SecretService.py", line 67, in get_preferred_collection
    raise KeyringLocked("Failed to unlock the collection!")
keyring.errors.KeyringLocked: Failed to unlock the collection!

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/protonvpn_gui/main.py", line 246, in do_activate
    if not protonvpn.check_session_exists():
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/api.py", line 321, in check_session_exists
    return self._env.api_session.is_valid
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/environment.py", line 53, in api_session
    self.__api_session = APISession()
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/session/session.py", line 171, in __init__
    self.__keyring_load_session()
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/session/session.py", line 195, in __keyring_load_session
    keyring_data_user = ExecutionEnvironment().keyring[
  File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/keyring/linuxkeyring.py", line 32, in __getitem__
    raise exceptions.KeyringError(e)
protonvpn_nm_lib.exceptions.KeyringError: Failed to unlock the collection!

Please complete the following checklist (by adding [x]):

  • I have searched open and closed issues for duplicates
  • This isn't a feature request
  • This is not a report about my app not working as expected

Support for Ubuntu 18.04 LTS

Hi, I think many people are still on Ubuntu 18.04 and would appreciate it if the Linux App would also support the last generation LTS.

DNS leak on linux GUI app

While the linux cli successfully updates the nameservers in /etc/resolv.conf the GUI does not and hence results in an DNS leak.

Error loading servers errno 5

A popup shows up when starting the app, saying Error loading servers [Errno 5] 输入/输出错误.


----------- Initialized protonvpn -----------


2021-11-02 17:14:16,898 — main.py — INFO —do_startup:87 — ProtonVPN v1.5.1 (protonvpn-nm-lib v3.6.0; proton-client v0.7.1)
2021-11-02 17:14:16,923 — main.py — INFO —do_startup:109 — Startup successful
2021-11-02 17:14:17,025 — dashboard.py — INFO —setup_icons_images:378 — Setting up dashboard images and icons
2021-11-02 17:14:17,030 — dashboard.py — INFO —setup_css:450 — Setting up css
2021-11-02 17:14:17,032 — dashboard.py — INFO —setup_actions:477 — Setting up actions
2021-11-02 17:14:17,037 — main.py — INFO —do_activate:266 — Window to display <dashboard.DashboardView object at 0x7f786bb0f300 (DashboardView at 0x55ec9e1d42c0)>
2021-11-02 17:14:18,641 — dashboard.py — ERROR —__on_startup:175 — [Errno 5] 输入/输出错误
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/protonvpn_gui/view_model/dashboard.py", line 173, in __on_startup
self.__server_list_vm.on_load_servers()
File "/usr/lib/python3.9/site-packages/protonvpn_gui/view_model/server_list.py", line 40, in on_load_servers
self.__generate_server_list()
File "/usr/lib/python3.9/site-packages/protonvpn_gui/view_model/server_list.py", line 48, in __generate_server_list
self.server_list_model.generate_list(
File "/usr/lib/python3.9/site-packages/protonvpn_gui/model/server_list.py", line 65, in generate_list
res = exec.map(self._generate_process, _jobs)
File "/usr/lib64/python3.9/concurrent/futures/process.py", line 726, in map
results = super().map(partial(_process_chunk, fn),
File "/usr/lib64/python3.9/concurrent/futures/_base.py", line 597, in map
fs = [self.submit(fn, *args) for args in zip(*iterables)]
File "/usr/lib64/python3.9/concurrent/futures/_base.py", line 597, in
fs = [self.submit(fn, *args) for args in zip(*iterables)]
File "/usr/lib64/python3.9/concurrent/futures/process.py", line 697, in submit
self._adjust_process_count()
File "/usr/lib64/python3.9/concurrent/futures/process.py", line 675, in _adjust_process_count
p.start()
File "/usr/lib64/python3.9/multiprocessing/process.py", line 121, in start
self._popen = self._Popen(self)
File "/usr/lib64/python3.9/multiprocessing/context.py", line 277, in _Popen
return Popen(process_obj)
File "/usr/lib64/python3.9/multiprocessing/popen_fork.py", line 16, in init
util._flush_std_streams()
File "/usr/lib64/python3.9/multiprocessing/util.py", line 439, in _flush_std_streams
sys.stderr.flush()
OSError: [Errno 5] 输入/输出错误

how to enable alternative routing?

We are happy to answer your questions about the code or discuss technical ideas.

Please complete the following checklist (by adding [x]):

  • I have searched open and closed issues for duplicates
  • This isn't a feature request
  • This is not a report about my app not working as expected

I live in a country where it's not possible to use protonvpn without alternative routing, it works great on android and windows but i don't see an option to enable it here, where is it?

Broken debian installer

We are happy to answer your questions about the code or discuss technical ideas.

Please complete the following checklist (by adding [x]):

  • [ x] I have searched open and closed issues for duplicates
  • [ x] This isn't a feature request
  • [ x] This is not a report about my app not working as expected

The debian installer is broken due to package conflicts. Although one can force override it, the developers need to fix the root cause.

$sudo apt install protonvpn
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libsecret-tools protonvpn-cli protonvpn-gui python3-dialog python3-docopt python3-gnupg python3-jeepney python3-keyring python3-proton-client python3-protonvpn-nm-lib
  python3-secretstorage python3-systemd
Suggested packages:
  gir1.2-appindicator3-0.1 gnome-shell-extension-appindicator python3-doc libkf5wallet-bin python3-keyrings.alt python-secretstorage-doc
The following NEW packages will be installed:
  libsecret-tools protonvpn protonvpn-cli protonvpn-gui python3-dialog python3-docopt python3-gnupg python3-jeepney python3-keyring python3-proton-client python3-protonvpn-nm-lib
  python3-secretstorage python3-systemd
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 2.981 kB/4.704 kB of archives.
After this operation, 11,8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://repo.protonvpn.com/debian stable/main all protonvpn-gui all 1.2.0-2 [2.981 kB]
Fetched 2.981 kB in 46s (64,4 kB/s)                                                                                                                                                          
Selecting previously unselected package libsecret-tools.
(Reading database ... 431225 files and directories currently installed.)
Preparing to unpack .../00-libsecret-tools_0.20.4-2_amd64.deb ...
Unpacking libsecret-tools (0.20.4-2) ...
Selecting previously unselected package python3-dialog.
Preparing to unpack .../01-python3-dialog_3.5.1-1_all.deb ...
Unpacking python3-dialog (3.5.1-1) ...
Selecting previously unselected package python3-docopt.
Preparing to unpack .../02-python3-docopt_0.6.2-3_all.deb ...
Unpacking python3-docopt (0.6.2-3) ...
Selecting previously unselected package protonvpn-cli.
Preparing to unpack .../03-protonvpn-cli_2.2.4-2_all.deb ...
Unpacking protonvpn-cli (2.2.4-2) ...
Selecting previously unselected package python3-jeepney.
Preparing to unpack .../04-python3-jeepney_0.6.0-1_all.deb ...
Unpacking python3-jeepney (0.6.0-1) ...
Selecting previously unselected package python3-secretstorage.
Preparing to unpack .../05-python3-secretstorage_3.3.1-1_all.deb ...
Unpacking python3-secretstorage (3.3.1-1) ...
Selecting previously unselected package python3-keyring.
Preparing to unpack .../06-python3-keyring_22.0.1-1_all.deb ...
Unpacking python3-keyring (22.0.1-1) ...
Selecting previously unselected package python3-gnupg.
Preparing to unpack .../07-python3-gnupg_0.4.6-1_all.deb ...
Unpacking python3-gnupg (0.4.6-1) ...
Selecting previously unselected package python3-proton-client.
Preparing to unpack .../08-python3-proton-client_0.5.1-3_all.deb ...
Unpacking python3-proton-client (0.5.1-3) ...
Selecting previously unselected package python3-systemd.
Preparing to unpack .../09-python3-systemd_234-3+b4_amd64.deb ...
Unpacking python3-systemd (234-3+b4) ...
Selecting previously unselected package python3-protonvpn-nm-lib.
Preparing to unpack .../10-python3-protonvpn-nm-lib_3.3.2-1_all.deb ...
Unpacking python3-protonvpn-nm-lib (3.3.2-1) ...
Selecting previously unselected package protonvpn-gui.
Preparing to unpack .../11-protonvpn-gui_1.2.0-2_all.deb ...
Unpacking protonvpn-gui (1.2.0-2) ...
dpkg: error processing archive /tmp/apt-dpkg-install-FyHeqn/11-protonvpn-gui_1.2.0-2_all.deb (--unpack):
 trying to overwrite '/usr/bin/protonvpn', which is also in package protonvpn-cli 2.2.4-2
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Selecting previously unselected package protonvpn.
Preparing to unpack .../12-protonvpn_1.0.0-3_all.deb ...
Unpacking protonvpn (1.0.0-3) ...
Errors were encountered while processing:
 /tmp/apt-dpkg-install-FyHeqn/11-protonvpn-gui_1.2.0-2_all.deb
Scanning application launchers
Removing duplicate launchers or broken launchers
Launchers are updated

OS info:

Linux parrot 5.10.0-8parrot1-amd64 #1 SMP Debian 5.10.46-8parrot1 (2021-07-21) x86_64 GNU/Linux

Debian repo not found?

I did an apt update today and it said the ProtonVPN repo is not found, so then I went to repo.protonvpn.com/debian and it is 404'd?

OpenWRT with ProtoVPN Upload Instance Bug

Forgive me in advance, this issue is not related to the linux-app. This is related to:
https://protonvpn.com/support/how-to-set-up-protonvpn-on-openwrt-routers/

It might be specific to OpenWRT, not protonvpn

If you wouldn't mind pointing me in the direction of a more appropriate place to post this issue, please do, otherwise here we go.

Wanted to post in case someone else has this issue.

  1. For instruction number two, downloading the config and uploading to openwrt.

Log in to your ProtonVPN account and click the Downloads category. You can download the desired configuration files by selecting the Router option.

Then, go back to Openvpn and scroll down to the OVPN configuration file upload section. Browse (1) and get the desired configuration file that you have just downloaded. Give it a name (2) and upload it (3).

Although the file downloaded correctly, when uploading into openwrt line 41 becomes malformed.

Expected line 41 (also how it downloads from protonvpn)

proto udp
remote ...

After uploading to OpenWRT

proto udpremote ...

After I ssh into the router and run logread I could see that the uploaded file was malformed. I added a newline, and I was good to go.

Improve UI

The button isn't centered and the buttons don't fit the app's theme.
image

reproducible builds

I'm not very satisfied with the installation method on Ubuntu. The deb is just for adding the proton vpn repo
I'd prefer to do a reproducible build so I could install proton vpn on my computer.

Error loading servers

We are happy to answer your questions about the code or discuss technical ideas.

Please complete the following checklist (by adding [x]):

  • [ X] I have searched open and closed issues for duplicates
  • [ X] This isn't a feature request
  • [ X] This is not a report about my app not working as expected

The latest update breaks while fetching the server list:

protonvpn-error
protonvpn-version

Platform:

Linux parrot 5.10.0-8parrot1-amd64 #1 SMP Debian 5.10.46-8parrot1 (2021-07-21) x86_64 GNU/Linux

Alternative Routing not working?

ProtonVPN is generally censored on my network so I tend to use alternative routing on Android to be able to use ProtonVPN, but when I open the Linux app it gets stuck on loading the server list unless I bypass the censorship by other means (e.g. another VPN).

So I was wondering whether it has anything to do with alternative routing not working properly, as the Android client works just fine on the same network.

Unable to add IPv6 leak protection connection/interface

Seeing this when trying to start on a headless Ubuntu

==> /home/drew/.cache/protonvpn/logs/protonvpn-cli.log <==
2021-10-01 13:25:55,232 — cli_wrapper.py — ERROR — connect:268 — Unable to add IPv6 leak protection connection/interface
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/protonvpn_cli/cli_wrapper.py", line 184, in connect
    protocol=protocol
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/api.py", line 145, in setup_connection
    self._env.connection_backend.setup(**data)
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client.py", line 81, in setup
    self._pre_setup_connection(kwargs.get("entry_ip"))
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client.py", line 223, in _pre_setup_connection
    ipv6_lp.manage(KillSwitchActionEnum.ENABLE)
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/killswitch/ipv6_leak_protection.py", line 62, in manage
    self.add_leak_protection()
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/killswitch/ipv6_leak_protection.py", line 103, in add_leak_protection
    subprocess_command
  File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/killswitch/ipv6_leak_protection.py", line 178, in run_subprocess
    raise exception(exception_msg)
protonvpn_nm_lib.exceptions.EnableIPv6LeakProtectionError: Unable to add IPv6 leak protection connection/interface
2021-10-01 13:27:09,167 — cli.py — INFO — __init__:27 —

Kill switch stuck not able to use internet

If you are running ProtonVPN with kill switch enabled and you log out, shutdown, reboot, lose power, upon reboot, you will notice that you are connected but, your network will not work because ProtonVPN will fail to disable the Kill switch and it will be active upon reboot.

Support Fedora 35 (Python 3.10)

Fedora 35 is currently in beta and should come out later this month shipping Python 3.10.

Attempting to install protonvpn-gui in Fedora 35 with dnf install protonvpn-gui currently results in the following error:

Error: 
 Problem: conflicting requests
  - nothing provides python(abi) = 3.9 needed by protonvpn-gui-0.7.2-1.noarch
  - nothing provides python(abi) = 3.9 needed by protonvpn-gui-0.7.3-2.noarch
  - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.0.0-1.noarch
  - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.0.1-1.noarch
  - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.1.0-7.noarch
  - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.1.1-1.noarch
  - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.2.0-2.noarch
  - nothing provides python(abi) = 3.9 needed by protonvpn-gui-1.3.0-7.noarch

It would be nice if you could publish a new version built with Python 3.10 in anticipation of the Fedora 35 release.
Thank you!

ProtonVPN autentication failed in Linux

I have successfully installed protonVPN .DEB package by converting package by Alien. ProtonVPN linux tool started but AU always failed, In background I have login to site with the same account.

Screenshot from 2021-07-11 13 51 31

Screenshot from 2021-07-11 13 51 58

Repos/Binaries/Installation Instruction for openSUSE

Hi, I'm facing problems installing the .rpm file for openSUSE Tumbleweed. I've separately installed the dependenciesfor openSUSE, namely python3-dialog and dbus-x11, but it still doesn't work. ProtonVPN cli and GUI gets installed but doesn't run when invoked.

Several dependencies not in the repos

Fedora 34

Some of the deps aren't in the repos: python3-gi and python3-gi-cairo aren't in the repositories. Maybe it is a typo? What are the equivalents of these repos on fedora?

Lag on startup

There is a little lag on startup, and the main window becomes unmovable for ~5 seconds.
Probably related to this error:

/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py:11: Warning: g_main_context_push_thread_default: assertion 'acquired_context' failed
  nm_client = NM.Client.new(None)

Consider supporting Ayatana app indicator

It looks like Ayatana is where new development of application indicator functionality is happening. On my distro (Solus), I managed to get the ProtonVPN GUI app indicator working with Ayatana with just this patch:

--- a/protonvpn_gui/view/indicator.py	2021-08-31 15:47:14.420742423 +0200
+++ b/protonvpn_gui/view/indicator.py	2021-08-31 15:47:33.515563589 +0200
@@ -103,8 +103,12 @@
     ERROR_PATH = os.path.join(ICON_DIR_PATH, VPN_TRAY_ERROR)
 
     def __init__(self, application):
-        gi.require_version("AppIndicator3", "0.1")
-        from gi.repository import AppIndicator3 as appindicator
+        try:
+            gi.require_version("AppIndicator3", "0.1")
+            from gi.repository import AppIndicator3 as appindicator
+        except ValueError:
+            gi.require_version("AyatanaAppIndicator3", "0.1")
+            from gi.repository import AyatanaAppIndicator3 as appindicator
         self.setup_reply_subject()
         self.__application = application
         self.__generate_menu()

Maybe worth upstreaming as a way of future-proofing the app as distros move towards Ayatana?

Can this be made to run without systemd on Devuan?

Just wondering if there are known steps that could be taken to run it on Devuan, which uses sysvinit by default. Are there any known work arounds to the systemd dependency? I've read that the systemd dependency is really just a convenience for the daemon and that there should be ways of getting it to work without systemd, and figured I would ask here.

The Linux community cli still works fine on Devuan, so this systemd dependency for the gui app does not block protonvpn use on Devuan.

Unknown API Error When Using The App

When attempting to login to ProtonVPN using the Linux app (and the protonvpn-cli), I get an Unknown API Error. Checking the logs I see this message printed repeatedly:

proton.exceptions.UnknownConnectionError: Failed to parse: https://api.protonvpn.ch/auth/info

Attempting to access the web address from a browser gives me this error:

"No route found for \"GET https://api.protonvpn.ch/auth/info\": Method Not Allowed (Allow: POST)"

I've tried uninstalling and reinstalling the app, and have tried clearing any config files that I could find but still have the same issue.

Dummy connection (pvpn-ipv6leak-protection) alive at boot Linux Mint

When I start my PC Wi-Fi connection doesn't work at all and ProtonVPN GUI is stack at loading the first page. If I open Network Settings and disable an interface called "Dummy" Wi-Fi starts working and I can connect to PVPN.

Connection name is: pvpn-ipv6leak-protection
Operating system: Linux Mint 20.2 (but also on 20.1) Cinnamon
Linux Kernel: 5.4.0-77-generic

Let me know if you need any log

Systemd-free GNU/Linux distros support

GNU/Linux has a various initialization systems. Are you planning support for other initialization systems (as least OpenRC and Runit)?
If you do not plan then why?

App fails to launch

Hi,

I am running debian (sid with some experimental packages). I recently updated some gnome related packages in the experimental repo. Since the update the app does not work anymore. I can connect via CLI.

When launching the app from the desktop icon the result is a window with almost no element in it. If I launch it from the terminal, the window does not even appear. Here the terminal output:

Traceback (most recent call last): File "/usr/lib/python3/dist-packages/protonvpn_gui/main.py", line 147, in do_activate win = self.get_dashboard_window() File "/usr/lib/python3/dist-packages/protonvpn_gui/main.py", line 179, in get_dashboard_window return DashboardView( File "/usr/lib/python3/dist-packages/protonvpn_gui/view/dashboard.py", line 157, in __init__ self.quick_settings_popover = QuickSettingsPopoverView( File "/usr/lib/python3/dist-packages/protonvpn_gui/view/quick_settings_popover.py", line 32, in __init__ self.__create_widgets() File "/usr/lib/python3/dist-packages/protonvpn_gui/view/quick_settings_popover.py", line 139, in __create_widgets self.__create_secure_core_buttons() File "/usr/lib/python3/dist-packages/protonvpn_gui/view/quick_settings_popover.py", line 168, in __create_secure_core_buttons self.secure_core_button_off = SecureCoreOff(self) File "/usr/lib/python3/dist-packages/protonvpn_gui/view/quick_settings_popover.py", line 379, in __init__ super().__init__( File "/usr/lib/python3/dist-packages/protonvpn_gui/view/quick_settings_popover.py", line 247, in __init__ self.__img = WidgetFactory.image(img_factory_name) File "/usr/lib/python3/dist-packages/protonvpn_gui/patterns/factory/abstract_widget_factory.py", line 38, in image return subclass.factory(widget, extra_arg) File "/usr/lib/python3/dist-packages/protonvpn_gui/patterns/factory/concrete_factory/image_factory.py", line 27, in factory return subclasses_dict[widget_name](extra_arg) File "/usr/lib/python3/dist-packages/protonvpn_gui/patterns/factory/concrete_factory/image_factory.py", line 563, in __init__ self.create_icon_pixbuf_from_name( File "/usr/lib/python3/dist-packages/protonvpn_gui/patterns/factory/concrete_factory/image_factory.py", line 210, in create_icon_pixbuf_from_name return GdkPixbuf.Pixbuf.new_from_file_at_scale( gi.repository.GLib.Error: gdk-pixbuf-error-quark: Couldn’t recognize the image file format for file “/usr/lib/python3/dist-packages/protonvpn_gui/assets/icons/secure-core.imageset/secure-core-off.svg” (3)

Thanks

Mike

Fedora-33 :: Second password entry, when I click "connect", fails ...

Hello Friends:

I launch the ProtonVPN app (installed via dnf(1)), and enter my username and password. That works. But when I attempt to actually connect, a Linux dialogue box -- Authorization Required -- pops up requesting a password to be entered again. When I paste in that same password, it fails (wrong password).

Side Note: I think that second Authorization Required prompt comes from Gnome Keyring (but I could be wrong). I use XFCE as my desktop, by the way.

For that second password, I tried both my ProtonVPN password as well as my Linux user account password (in case it's requesting access to a keyring or something). I'm just guessing.

Any ideas? Do you need logs?
Thank you in advance!

Thank you!

App hangs on connection

When clicking Quick Connect, the vpn connection is established but the interface is stuck on Connecting with the waiting circle animation going indefinitely.

Debian Bullseye aarch64

Also, does the Kill Switch functionality work if the app is closed but libindicator is not used (such as when using a desktop environment that does not implement it, like Phosh)?

Any plans to integrate gnome-keyring instead of kde-wallet for saving credentials?

I run Kubuntu 21.04, and only use kde wallet for protonvpn as its required.

Any kde related software, such as with entering wifi passwords to connect to wifi, unlocking luks devices... all prompt me to unlock kwallet, which I have to keep cancelling out as I dont want to use it to save those credentials. The only way I know of getting rid of these prompts to unlock kwallet ia disabling the kwallet submodule in system settings, but then protonvpn is unable to retrieve the credentials to login.

If no plans of integrating gome-keyring, is there at least a way of addressing above issue?

Thank you :)

Unable to connect wIth ks --on (Manjaro)

I have an issue with connecting after enabling kill switch (with kill switch off everything works just fine) on Manjaro.

This seems to be related with #12 ?

ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/dbus/connection.py", line 232, in maybe_handle_message
self._handler(*args, **kwargs)
File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/connection_backend/nm_client/monitor_vpn_connection_start.py", line 58, in on_vpn_state_changed
env.killswitch.manage(KillSwitchActionEnum.SOFT)
File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/killswitch/killswitch.py", line 82, in manage
actions_dict = {
File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/killswitch/killswitch.py", line 280, in setup_soft_connection
self.setup_post_connection_ks(None, activating_soft_connection=True)
File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/killswitch/killswitch.py", line 221, in setup_post_connection_ks
self.activate_connection(self.ks_conn_name)
File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/killswitch/killswitch.py", line 404, in activate_connection
conn_dict = self.nm_wrapper.search_for_connection( # noqa
File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/dbus/dbus_network_manager_wrapper.py", line 56, in search_for_connection
all_connection_properties = self.get_settings_from_connection(
File "/usr/lib/python3.9/site-packages/protonvpn_nm_lib/core/dbus/dbus_network_manager_wrapper.py", line 418, in get_settings_from_connection
return iface.GetSettings()
File "/usr/lib/python3.9/site-packages/dbus/proxies.py", line 72, in call
return self._proxy_method(*args, **keywords)
File "/usr/lib/python3.9/site-packages/dbus/proxies.py", line 141, in call
return self._connection.call_blocking(self._named_service,
File "/usr/lib/python3.9/site-packages/dbus/connection.py", line 652, in call_blocking
reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.freedesktop.NetworkManager.Settings.PermissionDenied: uid 1000 has no permission to perform this operation

WireGuard support

When WireGuard support was released for Windows, Android and iOS it was promised that Linux support was upcoming, this issue is for tracking it's release.

Make develop branch public?

I'm curious if the Proton team has had a formal discussion about whether they want to engage in active contributions with the community or not when it comes to the Linux app. Currently it looks like all active development takes place in a private branch, and users are told to install a prebuilt early release package if they want to test development features, or to wait until features are added by the team but there is no ETA.

This app is really bare bones ATM and in-house development seems to be pretty slow. The main motivator to fix the killswitch bug seemed to be getting the package added to the popOS repo rather than it being an obnoxious usability issue, and there are several others still open, like a massive memory leak in the GUI and total lack of support for features like split tunneling.

Did Proton decide they just don't want any help from the community on fixing bugs and implementing features? Seems like they could use the help and I find that decision a little surprising since its basically free labor.

fail to start a vpn connection

debian 11
kde

when i start a connection i get a popup dialog asking to "provide the secrets for the VPN connection 'ProtonVPN US#43'

logs are

INFO:protonvpn-gui:Connection was setup
INFO:protonvpn-gui:Displaying connection information
INFO:protonvpn-gui:Attempting to connect
INFO:protonvpn:Checking for internet connectivity
INFO:protonvpn:Skipping as killswitch is enabled
INFO:protonvpn:Starting VPN connection
INFO:protonvpn:Getting VPN from "NetworkManagerConnectionTypeEnum.ALL" connections
INFO:protonvpn:VPN connection: <NM.RemoteConnection object at 0x7fcbe08685c0 (NMRemoteConnection at 0x62df650)>
INFO:protonvpn:Starting VPN connection
INFO:protonvpn:Callback type: "start"
ERROR:protonvpn:Exception: NM.Client.activate_connection_finish() takes exactly 2 arguments (1 given)
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/connection_backend/nm_client/nm_client_mixin.py", line 117, in __dynamic_callback
(callback_type_dict[callback_type]["finish_function"])(result)
TypeError: NM.Client.activate_connection_finish() takes exactly 2 arguments (1 given)
INFO:protonvpn:Template hash "aa91e34fef0f8a1a72a812a4b1845354222bdf5771881532805083eb7caab143"
INFO:protonvpn:Generated hash at runtime "aa91e34fef0f8a1a72a812a4b1845354222bdf5771881532805083eb7caab143"
INFO:protonvpn:Get connection interface from 'proton0' virtual device.
ERROR:protonvpn:org.freedesktop.NetworkManager.Settings.PermissionDenied: uid 1000 has no permission to perform this operation
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/dbus/dbus_wrapper.py", line 257, in get_vpn_interface
all_settings = self.get_all_conn_settings(
File "/usr/lib/python3/dist-packages/protonvpn_nm_lib/core/dbus/dbus_wrapper.py", line 391, in get_all_conn_settings
return iface.GetSettings()
File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 72, in call
return self._proxy_method(*args, **keywords)
File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 141, in call
return self._connection.call_blocking(self._named_service,
File "/usr/lib/python3/dist-packages/dbus/connection.py", line 652, in call_blocking
reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.freedesktop.NetworkManager.Settings.PermissionDenied: uid 1000 has no permission to perform this operation
INFO:protonvpn:Found virtual device 'proton0'.
INFO:protonvpn:ProtonVPN conn info: [True, dbus.UInt32(1, variant_level=1), dbus.ObjectPath('/org/freedesktop/NetworkManager/ActiveConnection/18')]
INFO:protonvpn:Adding listener to active ProtonVPN AU#43 connection at /org/freedesktop/NetworkManager/ActiveConnection/18

Internet kill switch seems to be implicitly enabled [Debian, Ubuntu, Arch, Fedora]

I have the protonvpn-gui 1.0.1-1 installed (https://aur.archlinux.org/packages/protonvpn-gui/), and whenever I boot into my Linux desktop, the internet doesn't work.

The workaround I've found is to open the VPN client (neither the client or service is enabled/started by default), and then close the client again, so I assume that the VPN client has something to do with my internet issues, and my theory is that the internet kill switch is enabled (is marked as disabled in the GUI).

Add at least basic settings

Just installed the app on Manjaro KDE and... well, it's completely useless because no single setting exists in the app. While Android app is great, Linux app lacks these settings:

  1. Start on boot. Now, even if I set kill switch as permanent, it has no effect because it only works when app is launched. Forgot to launch app manually every single time after (re)booting OS? Too bad, you are not protected.
  2. Create default profile. My workplace only allows connections from whitelisted IPs, so it's extremely important my IP is the same every single time after VPN connection is established (in other words, I don't want to connect to a random server every time).
  3. Allow minimizing app into the tray. Now, it either runs as a "normal" app in a separate window, either it doesn't work at all because closing app.. well, literally closes it.

While I like your service (migrated from Nord VPN) and your policy/transparency, I was actually shocked to see that you released Linux app which only provides a false sense of security and actually does almost nothing. But your Android app is OK, so I surely know you can do it.

OpenSuse RPM package is missing

Hello guys. OpenSuse is most popular Linux distribution in Europe and has only little bit less popularity than Ubuntu in the world. I'm don't understand why you ignore millions and millions Linux users? Is so hard for developer to create RPM installation package?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.