Agent de plateau système multiplateforme pour la gestion du client VPN TrustTunnel
  • C++ 55.3%
  • Python 21.9%
  • Shell 21.6%
  • CMake 1.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-14 20:09:54 +02:00
src premier commit 2026-08-12 07:20:49 +02:00
tools premier commit 2026-08-12 07:20:49 +02:00
.gitignore premier commit 2026-08-12 07:20:49 +02:00
CLAUDE.md premier commit 2026-08-12 07:20:49 +02:00
CMakeLists.txt premier commit 2026-08-12 07:20:49 +02:00
com.trusttunnel.client.plist premier commit 2026-08-12 07:20:49 +02:00
com.trusttunnel.tray.plist premier commit 2026-08-12 07:20:49 +02:00
Info.plist premier commit 2026-08-12 07:20:49 +02:00
install.sh premier commit 2026-08-12 07:20:49 +02:00
make-dist.sh premier commit 2026-08-12 07:20:49 +02:00
PKGBUILD premier commit 2026-08-12 07:20:49 +02:00
README.md troisième commit 2026-08-14 20:09:54 +02:00
screenshot-mac.png premier commit 2026-08-12 07:20:49 +02:00
screenshot.jpg premier commit 2026-08-12 07:20:49 +02:00
trusttunnel-tray.desktop premier commit 2026-08-12 07:20:49 +02:00
trusttunnel.rules premier commit 2026-08-12 07:20:49 +02:00
trusttunnel.service premier commit 2026-08-12 07:20:49 +02:00

Agent de barre détat TrustTunnel

Agent de barre détat multiplateforme pour gérer le client VPN TrustTunnel. Construit avec C++17 et Qt6. Prend en charge Arch Linux.

Linux

Fonctionnalités

  • Icône de barre détat avec couleur détat : vert (connecté), rouge (déconnecté), jaune (en transition), gris (aucun profil configuré)
  • Activer/Désactiver/Redémarrer le client VPN
  • Changement de profil — conservez plusieurs configurations (profiles/<nom>.toml) et basculez entre elles depuis la barre détat (reconnexion pour appliquer)
  • Nouveau profil à partir du profil actuel ; modifier le profil actif dans votre éditeur par défaut
  • Afficher les journaux en direct
  • Interrogation détat toutes les 3 secondes
  • Fonctionnement sans mot de passe sur Linux — une règle polkit permet aux utilisateurs actifs du groupe wheel de démarrer/arrêter/redémarrer le service sans invite de mot de passe

Linux (Arch)

  • Contrôle du service via D-Bus (org.freedesktop.systemd1.Manager)
  • État : systemctl is-active + /sys/class/net/tun0
  • Contrôle du service sans mot de passe via une règle polkit ciblant trusttunnel.service (bascule vers linvite polkit normale si absente)
  • Journaux via journalctl dans konsole/gnome-terminal/xterm
  • Démarrage automatique via une entrée de bureau /etc/xdg/autostart/ (PKGBUILD) ou ~/.config/autostart/ (manuel)

Dépendances

  • Qt6 (Widgets, SvgWidgets ; + DBus sur Linux)
  • CMake >= 3.16
  • polkit (Linux) — pour la règle de contrôle de service sans mot de passe

Arch Linux

sudo pacman -S qt6-base qt6-svg cmake polkit

Compilation

Linux

cmake -B build
cmake --build build

Installation

Arch Linux (recommandé)

makepkg -si

Cela construit et installe le paquet trusttunnel-tray avec les chemins Arch appropriés :

  • Binaire : /usr/bin/trusttunnel-tray
  • Service systemd : /usr/lib/systemd/system/trusttunnel.service
  • Démarrage automatique : /etc/xdg/autostart/trusttunnel-tray.desktop
  • Règle polkit : /etc/polkit-1/rules.d/49-trusttunnel.rules

Après linstallation, activer et démarrer le service VPN :

sudo systemctl enable --now trusttunnel

La gestion du service utilise la politique polkit intégrée de systemd (org.freedesktop.systemd1.manage-units). Le fichier trusttunnel.rules installé retourne YES pour manage-units ciblant trusttunnel.service pour les utilisateurs locaux actifs du groupe wheel, afin que la barre détat puisse Activer/Désactiver/Redémarrer et changer de profil sans mot de passe. Si la règle est absente, linvite de mot de passe polkit normale est utilisée.

Profils

Les profils VPN sont des fichiers complets trusttunnel_client.toml stockés dans /opt/trusttunnel_client/profiles/<nom>.toml. La configuration active /opt/trusttunnel_client/trusttunnel_client.toml est un lien symbolique relatif vers le profil actif, afin que le daemon lise son chemin sans changement. Au premier lancement, la barre détat migre toute configuration plate existante vers profiles/default.toml et redirige le chemin vers un lien symbolique.

Utilisez le sous-menu Profil de la barre détat pour :

  • Basculer le profil actif (redirige le lien symbolique et redémarre le service — sans mot de passe)
  • Créer un nouveau profil initialisé à partir du profil actuel
  • Modifier le profil actif dans votre éditeur de texte par défaut (redémarrer pour appliquer)

Désinstallation

Arch Linux

pacman -R trusttunnel-tray

Linux (installation manuelle)

sudo systemctl disable --now trusttunnel.service
sudo rm /etc/systemd/system/trusttunnel.service
sudo rm /etc/polkit-1/rules.d/49-trusttunnel.rules
sudo systemctl daemon-reload
sudo rm /opt/trusttunnel_client/trusttunnel-tray
rm ~/.config/autostart/trusttunnel-tray.desktop

Structure du projet

CMakeLists.txt                  - Configuration de construction (multiplateforme)
PKGBUILD                        - Script de construction du paquet Arch Linux
Info.plist                      - Configuration du bundle dapplication macOS (LSUIElement)
src/main.cpp                    - Point dentrée
src/TrayAgent.h                 - Déclaration de la classe TrayAgent
src/TrayAgent.cpp               - Implémentation de TrayAgent (#ifdef par plateforme)
install.sh                      - Script dinstallation depuis les sources multiplateforme
make-dist.sh                    - Générateur darchive tar macOS autonome (récupère Qt 6.5.3 LTS)
trusttunnel.service             - Service systemd Linux (VPN au démarrage)
trusttunnel-tray.desktop        - Entrée de bureau de démarrage automatique Linux
trusttunnel.rules               - Règle polkit Linux (contrôle de service sans mot de passe)
com.trusttunnel.client.plist    - LaunchDaemon macOS (VPN au démarrage)
com.trusttunnel.tray.plist      - LaunchAgent macOS (barre détat à la connexion)