# GlobalProtect-openconnect A GlobalProtect VPN client (GUI) for Linux based on Openconnect and built with Qt5, supports SAML auth mode, inspired by [gp-saml-gui](https://github.com/dlenski/gp-saml-gui).

ko-fi Buy Me A Coffee ## Features - Similar user experience as the official client in macOS. - Supports both SAML and non-SAML authentication modes. - Supports automatically selecting the preferred gateway from the multiple gateways. - Supports switching gateway from the system tray menu manually. ## Install |OS|Stable version | Development version| |---|--------------|--------------------| |Linux Mint, Ubuntu 18.04 or later|[ppa:yuezk/globalprotect-openconnect](https://launchpad.net/~yuezk/+archive/ubuntu/globalprotect-openconnect)|[ppa:yuezk/globalprotect-openconnect-snapshot](https://launchpad.net/~yuezk/+archive/ubuntu/globalprotect-openconnect-snapshot)| |Arch, Manjaro|[AUR: globalprotect-openconnect](https://aur.archlinux.org/packages/globalprotect-openconnect/)|[AUR: globalprotect-openconnect-git](https://aur.archlinux.org/packages/globalprotect-openconnect-git/)| |openSUSE|[OBS: globalprotect-openconnect](https://build.opensuse.org/package/show/home:yuezk/globalprotect-openconnect)|[OBS: globalprotect-openconnect-snapshot](https://build.opensuse.org/package/show/home:yuezk/globalprotect-openconnect-snapshot)| |Fedora|[copr: yuezk/globalprotect-openconnect](https://copr.fedorainfracloud.org/coprs/yuezk/globalprotect-openconnect/)|[copr: yuezk/globalprotect-openconnect](https://copr.fedorainfracloud.org/coprs/yuezk/globalprotect-openconnect/)| Add the repository in the above table and install it with your favorite package manager tool. ## Build & Install from source code Clone this repo with: ```sh git clone https://github.com/yuezk/GlobalProtect-openconnect.git cd GlobalProtect-openconnect ``` ### Arch/Manjaro Install from the [globalprotect-openconnect](https://aur.archlinux.org/packages/globalprotect-openconnect/) AUR. ### Ubuntu/Mint > **⚠️ REQUIRED for Ubuntu 18.04 ⚠️** > > Add this [dwmw2/openconnect](https://launchpad.net/~dwmw2/+archive/ubuntu/openconnect) PPA first to install the latest openconnect. > > ```sh > sudo add-apt-repository ppa:dwmw2/openconnect > sudo apt update > ``` Build and install with: ```sh ./scripts/install-ubuntu.sh ``` ### openSUSE Build and install with: ```sh ./scripts/install-opensuse.sh ``` ### Fedora Build and install with: ```sh ./scripts/install-fedora.sh ``` ### Other Linux Install the Qt5 dependencies and OpenConnect: - QtCore - QtWebEngine - QtWebSockets - QtDBus - openconnect v8.x ...then build and install with: ```sh ./scripts/install.sh ``` ### NixOS In `configuration.nix`: ``` services.globalprotect = { enable = true; # if you need a Host Integrity Protection report csdWrapper = "${pkgs.openconnect}/libexec/openconnect/hipreport.sh"; }; environment.systemPackages = [ globalprotect-openconnect ]; ``` ## Passing the Custom Parameters to `OpenConnect` CLI Custom parameters can be appended to the `OpenConnect` CLI with the following settings. > Tokens with spaces can be surrounded by double quotes; three consecutive double quotes represent the quote character itself.

## Display the system tray icon on Gnome 40 Install the [AppIndicator and KStatusNotifierItem Support](https://extensions.gnome.org/extension/615/appindicator-support/) extension and you will see the system try icon (Restart the system after the installation).

## Future plan - [x] Improve the release process - [ ] Process bugs and feature requests - [ ] Support for bypassing the `gpclient` parameters - [ ] Support the CLI mode ## Troubleshooting The application logs can be found at: `~/.cache/GlobalProtect-openconnect/gpclient.log` ## [License](./LICENSE) GPLv3