The keyboard choice and omarchy-setup-input own Chinese input now. The new passwordless sudo and input tooltips get Chinese text.
73 lines
1.9 KiB
QML
73 lines
1.9 KiB
QML
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Io
|
|
import qs.Commons
|
|
import qs.Ui
|
|
|
|
BarIndicator {
|
|
id: root
|
|
|
|
property bool granted: false
|
|
property bool refreshPending: false
|
|
|
|
active: granted
|
|
activeText: ""
|
|
inactiveText: ""
|
|
activeTooltipText: I18n.tr("Disable Passwordless Sudo")
|
|
inactiveTooltipText: I18n.tr("Passwordless Sudo")
|
|
useActiveColor: true
|
|
activeColor: Color.urgent
|
|
|
|
function refresh() {
|
|
if (!root.bar) return
|
|
if (statusProc.running) {
|
|
root.refreshPending = true
|
|
return
|
|
}
|
|
root.refreshPending = false
|
|
statusProc.running = true
|
|
}
|
|
|
|
onBarChanged: refresh()
|
|
Component.onCompleted: refresh()
|
|
|
|
Connections {
|
|
target: root.indicatorHost
|
|
ignoreUnknownSignals: true
|
|
function onRefreshRequested() { root.refresh() }
|
|
}
|
|
|
|
Timer {
|
|
interval: 5000
|
|
repeat: true
|
|
running: !!root.bar
|
|
onTriggered: root.refresh()
|
|
}
|
|
|
|
Process {
|
|
id: statusProc
|
|
command: ["omarchy-sudo-passwordless", "--active"]
|
|
onExited: function(exitCode, exitStatus) {
|
|
root.granted = exitCode === 0 && exitStatus === 0
|
|
if (root.refreshPending) Qt.callLater(root.refresh)
|
|
}
|
|
}
|
|
|
|
Process {
|
|
id: disableProc
|
|
command: ["omarchy-sudo-passwordless", "--disable"]
|
|
onExited: function(exitCode, exitStatus) {
|
|
if ((exitCode !== 0 || exitStatus !== 0) && root.bar)
|
|
Quickshell.execDetached([Quickshell.env("OMARCHY_PATH") + "/bin/omarchy-notification-send", I18n.tr("Could not disable passwordless sudo"), I18n.tr("Check the sudo configuration and try again.")])
|
|
if (root.indicatorHost) root.indicatorHost.refresh()
|
|
else root.refresh()
|
|
}
|
|
}
|
|
|
|
onPressed: function() {
|
|
if (!root.bar || disableProc.running) return
|
|
if (root.granted) disableProc.running = true
|
|
else root.bar.run("omarchy-launch-floating-terminal-with-presentation omarchy-sudo-passwordless")
|
|
}
|
|
}
|