BooConnect is a lightweight, modern GTK4 GUI client designed specifically for Cisco AnyConnect VPNs. Powered by the robust openconnect engine under the hood, it provides a seamless native desktop experience for Linux users without the hassle of terminal commands or complex system configurations.
- Tailored for AnyConnect: A focused, specialized client for Cisco AnyConnect networks.
- Native GTK4/libadwaita UI: Beautiful, modern interface that looks great on GNOME and other modern Linux desktops.
- No Sudoers Modification Required: Handles
sudoauthentication securely and automatically in the background. - 2FA / SMS Token Support: Elegantly handles secondary authentication prompts (Tokens, SMS codes) via a clean GUI dialog.
- System Tray Indicator: Unobtrusive background operation with a tray icon to monitor status and easily disconnect.
- Audio & Desktop Notifications: Get instant alerts when your VPN connects or disconnects.
- Split Tunneling Ready: Built-in support for custom routing via a drop-in
vpnc-script.
Before installing, ensure you have the required packages installed on your system:
1. Core Dependencies:
openconnect(The core VPN engine)paplay(For audio notifications)
2. Audio Support (if you don't hear notification sounds):
- Ubuntu/Debian:
sudo apt install pulseaudio-utils - Fedora:
sudo dnf install pulseaudio-utils - Arch Linux:
sudo pacman -S libpulse
3. GNOME Users (Crucial for the Tray Icon): Modern GNOME does not display legacy tray icons by default. You must install the AppIndicator extension:
- Install:
gnome-shell-extension-appindicator(AppIndicator and KStatusNotifierItem Support extension) - Enable it via the GNOME Extensions app.
If you have downloaded the compiled binaries along with the assets:
- Open your terminal in the directory containing the files.
- Make the installer executable:
chmod +x install.sh - Run the installer:
./install.sh
Launch BooConnect from your application menu, or LogOff/LogOn and start from Tray
(The installer will securely copy the files to ~/.local/share/BooConnect, create desktop entries, and set up the tray icon for autostart.)
Development Dependencies
To compile BooConnect from source, you need the Vala compiler and the development libraries (headers) for GTK4, libadwaita, and JSON-GLib.
-
Ubuntu / Debian / Linux Mint
sudo apt install valac build-essential libgtk-4-dev libadwaita-1-dev libjson-glib-dev libgtk-3-dev libappindicator3-dev -
Fedora
sudo dnf install vala gcc gtk4-devel libadwaita-devel json-glib-devel gtk3-devel libappindicator-gtk3-devel -
Arch Linux
sudo pacman -S vala base-devel gtk4 libadwaita json-glib gtk3 libappindicator-gtk3
valac --pkg gtk4 --pkg libadwaita-1 --pkg json-glib-1.0 main.vala -o BooConnect
valac --pkg gtk+-3.0 --pkg appindicator3-0.1 tray.vala -o BooConnectTray
(Note: Use --pkg ayatana-appindicator3-0.1 on some newer distros)
If you only want specific corporate traffic to go through the VPN (Split Tunneling), BooConnect makes it easy:
Navigate to the installation directory: cd ~/.local/share/BooConnect
You will find a generated file named vpnc-script.sample.
Rename it to vpnc-script:
mv vpnc-script.sample vpnc-script
Open vpnc-script in your text editor and modify the CISCO_SPLIT_INC variables to match your corporate network's IP ranges.
Next time you hit "Connect", BooConnect will automatically detect the file and apply your custom routing rules!
This project is licensed under the MIT License.
