Skip to content

feat(openvpn3): add OpenVPN3 VPN management plugin - #947

Open
trinhvanminh wants to merge 5 commits into
noctalia-dev:mainfrom
trinhvanminh:feat/openvpn3
Open

feat(openvpn3): add OpenVPN3 VPN management plugin#947
trinhvanminh wants to merge 5 commits into
noctalia-dev:mainfrom
trinhvanminh:feat/openvpn3

Conversation

@trinhvanminh

Copy link
Copy Markdown

What

New plugin for managing OpenVPN3 VPN connections from the Noctalia bar, control center, and panel.

Features

  • Bar widget with BarPill (Tabler icons, color by state)
  • Control center widget with custom OpenVPN icon
  • Panel with config list, connect/disconnect with loading spinner
  • Session stats (bytes, packets, reconnect)
  • Config details (double-click to expand)
  • Log streaming (real-time)
  • Import/rename/delete configs
  • Two-tier polling (light for bar, heavy only when panel open)
  • Hide when inactive setting
  • i18n: English + Vietnamese

How to test

  1. `qs -c noctalia-shell`
  2. Add `"plugin:openvpn3"` to bar widgets in settings.json
  3. Click shield icon to open panel
  4. Test connect/disconnect, settings, import

@github-actions

Copy link
Copy Markdown
Contributor

Automatic Manifest Check


File: openvpn3/manifest.json

  • (H) Line 2: The id can only contain small characters [a-z], numbers [0-9] and dashes [-]
+  "id": "openvpn3",
+  "repository": "https://github.com/noctalia-dev/legacy-v4-plugins",

@github-actions

Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: openvpn3/ControlCenterWidget.qml

  • (L) Line 72: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+            applyUiScale: false

File: openvpn3/Panel.qml

  • (L) Line 70: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                            applyUiScale: false
  • (H) Line 357: Do not use hardcoded values, always prefer to use the Style singleton instead
+                                pointSize: 48
  • (L) Line 358: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                                applyUiScale: false
  • (H) Line 448: Do not use hardcoded values, always prefer to use the Style singleton instead
+                                    spacing: 2

File: openvpn3/VpnListItem.qml

  • (H) Line 71: Do not use hardcoded values, always prefer to use the Style singleton instead
+                spacing: 2
  • (H) Line 273: Do not use hardcoded values, always prefer to use the Style singleton instead
+            spacing: 2

@github-actions

Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: openvpn3/ControlCenterWidget.qml

  • (L) Line 72: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+            applyUiScale: false

File: openvpn3/Panel.qml

  • (L) Line 70: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                            applyUiScale: false
  • (L) Line 358: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                                applyUiScale: false

- Show config name directly when 1 session active, count when multiple
- Add hover tooltip listing all connected config names
- Use BarPill's built-in tooltipText for native tooltip support
@github-actions

Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: openvpn3/ControlCenterWidget.qml

  • (L) Line 72: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+            applyUiScale: false

File: openvpn3/Panel.qml

  • (L) Line 70: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                            applyUiScale: false
  • (L) Line 358: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                                applyUiScale: false

Add negative margin to VpnListItem hover MouseArea so containsMouse
doesn't briefly flip false when moving between the item body and
the action buttons.
@github-actions

Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: openvpn3/ControlCenterWidget.qml

  • (L) Line 72: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+            applyUiScale: false

File: openvpn3/Panel.qml

  • (L) Line 70: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                            applyUiScale: false
  • (L) Line 358: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                                applyUiScale: false

Use opacity instead of visible for hover-dependent buttons. The
NIconButton internal MouseArea was stealing hover from the parent
MouseArea, causing containsMouse to toggle and icons to flicker.

Also remove the unnecessary negative margins hack.
@github-actions

Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: openvpn3/ControlCenterWidget.qml

  • (L) Line 72: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+            applyUiScale: false

File: openvpn3/Panel.qml

  • (L) Line 70: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                            applyUiScale: false
  • (L) Line 358: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                                applyUiScale: false

@github-actions

Copy link
Copy Markdown
Contributor

Automatic Code Quality Review


File: openvpn3/ControlCenterWidget.qml

  • (L) Line 72: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+            applyUiScale: false

File: openvpn3/Panel.qml

  • (L) Line 70: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                            applyUiScale: false
  • (L) Line 358: The applyUiScale: false would make it so that the component does not support ui scaling. Always check if this is the correct behaviour you want when changing the ui scale!
+                                applyUiScale: false

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant