feat: auto-detect clipboard tool at startup (#6)\n\n- Priority: dms cl copy → wl-copy → clipmanctl copy → none\n- Show error toast if no clipboard tool is found\n- statusCheck runs after clipboard detection completes
This commit is contained in:
parent
2c29fcc0b6
commit
d8bd3c6c30
1 changed files with 25 additions and 2 deletions
|
|
@ -13,6 +13,7 @@ PluginComponent {
|
|||
property string tailscaleIP: ""
|
||||
property string currentExitNode: ""
|
||||
property var peers: []
|
||||
property string clipboardCmd: ""
|
||||
|
||||
layerNamespacePlugin: "tailscalectl"
|
||||
popoutWidth: 360
|
||||
|
|
@ -25,7 +26,9 @@ PluginComponent {
|
|||
onTriggered: statusCheck.running = true
|
||||
}
|
||||
|
||||
Component.onCompleted: statusCheck.running = true
|
||||
Component.onCompleted: {
|
||||
detectClipboard.running = true
|
||||
}
|
||||
|
||||
Process {
|
||||
id: toggleProcess
|
||||
|
|
@ -39,6 +42,22 @@ PluginComponent {
|
|||
id: copyProcess
|
||||
}
|
||||
|
||||
Process {
|
||||
id: detectClipboard
|
||||
|
||||
command: ["sh", "-c", "which dms >/dev/null 2>&1 && echo 'dms cl copy' || which wl-copy >/dev/null 2>&1 && echo 'wl-copy' || which clipmanctl >/dev/null 2>&1 && echo 'clipmanctl copy' || echo none"]
|
||||
|
||||
stdout: StdioCollector {
|
||||
onStreamFinished: {
|
||||
root.clipboardCmd = this.text.trim()
|
||||
}
|
||||
}
|
||||
|
||||
onExited: (code, status) => {
|
||||
statusCheck.running = true
|
||||
}
|
||||
}
|
||||
|
||||
Process {
|
||||
id: statusCheck
|
||||
|
||||
|
|
@ -89,7 +108,11 @@ PluginComponent {
|
|||
}
|
||||
|
||||
function copyToClipboard(text) {
|
||||
copyProcess.command = ["sh", "-c", "printf '%s' '" + text.replace(/'/g, "'\\''") + "' | wl-copy"]
|
||||
if (!root.clipboardCmd || root.clipboardCmd === "none") {
|
||||
ToastService.showError("tailscalectl", "No clipboard tool found")
|
||||
return
|
||||
}
|
||||
copyProcess.command = ["sh", "-c", "printf '%s' '" + text.replace(/'/g, "'\\''") + "' | " + root.clipboardCmd]
|
||||
copyProcess.running = true
|
||||
ToastService.showInfo("tailscalectl", "Copied: " + text)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue