First, thanks for the privilege boundary section in the README — the setresuid-around-the-read on import and the reasoning about why the setup script goes through a terminal rather than pkexec are the most careful writeups I've read in a bar widget. It's why I'm filing this rather than just moving on.
The gap
OpenVPN is driven exclusively through openvpn-client@ with profiles in /etc/openvpn/client. WireGuard already gets two routes, one of them NetworkManager, which the README rightly points out needs neither the root helper nor wireguard-tools. OpenVPN has no equivalent.
Why that matters
Corporate OpenVPN with a one-time password (static-challenge, or a dynamic challenge from the server) cannot work through a systemd unit. There is no tty and no dialog in which to type a code that rotates every 30 seconds, and the stored-credentials model can't hold one by definition. So the whole class of 2FA work VPNs is out of reach of the OpenVPN backend today, even though the widget is otherwise exactly what I want.
NetworkManager handles this case: its secret agent prompts interactively at connect time, per connection, with a field for the challenge response. That's the same mechanism that makes it work on Ubuntu out of the box.
What I'm asking for
List and control OpenVPN connections from nmcli the way WireGuard ones already are — connections of type vpn with vpn.service-type ending in openvpn, brought up and down with nmcli connection up/down. No root helper, no /etc/openvpn/client, polkit governs activation. If it's useful, nmcli connection import type openvpn file <path> would slot in as a third option under Add config, next to the two WireGuard ones.
One question while I'm here
Does unified mode currently notice a tun interface that NetworkManager brought up on its own? I'd expect the interface-derived parts (address, routes, uptime, throughput) to work since they come off the interface, but there'd be no profile row to attribute it to. If it does show up, a partial view might already be closer than I think.
Happy to test patches — I have a static-challenge config to hand.
Environment: Omarchy 4 (Quattro), MultiVPN via omarchy plugin add, OpenVPN profile imported into NetworkManager with networkmanager-openvpn.
First, thanks for the privilege boundary section in the README — the setresuid-around-the-read on import and the reasoning about why the setup script goes through a terminal rather than pkexec are the most careful writeups I've read in a bar widget. It's why I'm filing this rather than just moving on.
The gap
OpenVPN is driven exclusively through
openvpn-client@with profiles in/etc/openvpn/client. WireGuard already gets two routes, one of them NetworkManager, which the README rightly points out needs neither the root helper norwireguard-tools. OpenVPN has no equivalent.Why that matters
Corporate OpenVPN with a one-time password (
static-challenge, or a dynamic challenge from the server) cannot work through a systemd unit. There is no tty and no dialog in which to type a code that rotates every 30 seconds, and the stored-credentials model can't hold one by definition. So the whole class of 2FA work VPNs is out of reach of the OpenVPN backend today, even though the widget is otherwise exactly what I want.NetworkManager handles this case: its secret agent prompts interactively at connect time, per connection, with a field for the challenge response. That's the same mechanism that makes it work on Ubuntu out of the box.
What I'm asking for
List and control OpenVPN connections from
nmclithe way WireGuard ones already are — connections of typevpnwithvpn.service-typeending inopenvpn, brought up and down withnmcli connection up/down. No root helper, no/etc/openvpn/client, polkit governs activation. If it's useful,nmcli connection import type openvpn file <path>would slot in as a third option under Add config, next to the two WireGuard ones.One question while I'm here
Does unified mode currently notice a
tuninterface that NetworkManager brought up on its own? I'd expect the interface-derived parts (address, routes, uptime, throughput) to work since they come off the interface, but there'd be no profile row to attribute it to. If it does show up, a partial view might already be closer than I think.Happy to test patches — I have a
static-challengeconfig to hand.Environment: Omarchy 4 (Quattro), MultiVPN via
omarchy plugin add, OpenVPN profile imported into NetworkManager withnetworkmanager-openvpn.