Skip to content

feat(netbird): Add custom terminal command support for SSH and Ping actions#530

Merged
ItsLemmy merged 3 commits intonoctalia-dev:mainfrom
l1a:dev
Apr 7, 2026
Merged

feat(netbird): Add custom terminal command support for SSH and Ping actions#530
ItsLemmy merged 3 commits intonoctalia-dev:mainfrom
l1a:dev

Conversation

@l1a
Copy link
Copy Markdown
Contributor

@l1a l1a commented Mar 30, 2026

Adds support for configuring a custom terminal command in the NetBird plugin settings, to be used when launching SSH or Ping actions.

Also handles passing arguments correctly by using -- for terminals that require it (like ptyxis, gnome-terminal, wezterm), while falling back to -e for others.

Changes:

  • Add terminalCommand to manifest.json defaults.
  • Add NTextInput in Settings.qml to allow users to specify a custom terminal command.
  • Update detectTerminal in Main.qml to respect the user's custom terminal command if provided, bypassing auto-detection.
  • Update Panel.qml to read the configured terminal command and construct the execute command appropriately using buildTerminalCmd to account for different execution flags (-e vs --).

@github-actions
Copy link
Copy Markdown
Contributor

Automatic Code Quality Review

File: netbird/Main.qml

  • (H) Missing required property pluginApi. For example:
property var pluginApi: null

File: netbird/Panel.qml

  • (H) Missing required property pluginApi. For example:
property var pluginApi: null
  • (H) Missing required property geometryPlaceholder. For example:
readonly property var geometryPlaceholder: panelContainer
  • (H) Missing required property allowAttach. For example:
readonly property bool allowAttach: true

File: netbird/Settings.qml

  • (L) Line 135: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        label: pluginApi?.tr("settings.terminal") || "Terminal Configuration"
  • (L) Line 136: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+        description: pluginApi?.tr("settings.terminal-desc") || "Set a custom terminal command or leave blank for auto-detection"
  • (L) Line 140: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
+                return (pluginApi?.tr("settings.terminal-detected") || "Auto-detected") + ": " + detected;
  • (L) Line 142: When it comes to translations there is no need for fallback values. From: pluginApi?.tr("example") || "value". To: pluginApi?.tr("example")
                 return pluginApi?.tr("settings.terminal-none") || "No terminal emulator detected";
  • (H) Missing required property pluginApi. For example:
property var pluginApi: null

@github-actions
Copy link
Copy Markdown
Contributor

@Cleboost - this PR modifies your plugin. Please review when you have a chance.

Copy link
Copy Markdown
Contributor

@Cleboost Cleboost left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@Cleboost
Copy link
Copy Markdown
Contributor

Cleboost commented Apr 2, 2026

@spiros132 can you take a look?

Comment thread netbird/manifest.json Outdated
}
"id": "netbird",
"name": "NetBird",
"version": "1.0.1",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just don't forget to bump the version.

Copy link
Copy Markdown
Collaborator

@spiros132 spiros132 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfect, thank you!

@ItsLemmy

@ItsLemmy ItsLemmy merged commit 645bee4 into noctalia-dev:main Apr 7, 2026
2 checks passed
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.

4 participants