nativemind_vpn
VPN client widgets made by hand by Gleb Sosnin and Wishyut (VPNclient-app, 2025), carried over with their code as it was (see PROVENANCE.md), plus the VPN editions as data, country flags and app marks.
NmMainBtn(status: vpn.status, timeText: vpn.time, onToggle: vpn.toggle, gradient: edition.main);
NmServersList(servers: [for (final s in servers) s.toHandmadeMap(context, isActive: s.id == selected)], onServersLoaded: save);
final edition = NmVpnEditions.configs.current(); // --dart-define=NM_EDITION=net.vpnclient.orange
Use nmLightTheme / nmDarkTheme (Gleb Sosnin's color schemes) and add NmVpnL10n.delegate and NmNetwork.delegate
to the app's localization delegates. Strings are Wishyut's JSON files (assets/lang/, en / ru / th / zh) read at run
time by NmLocalizationService (nativemind_core); in widget tests load them first:
setUpAll(() => NmVpnL10n.load(const Locale('en'))). License: NativeMindNONC (LICENSE).
Libraries
- nativemind_vpn
- VPN client widgets made by hand (Gleb Sosnin, Wishyut; VPNclient-app 2025), the VPN editions as data, country
flags and app marks, and the earlier library widgets moved from
nativemind_widgets/network.dart(the ones the handmade widgets replace are deprecated). Use it withnativemind_core(theme, NmConfigs).