c0.6.2
This commit is contained in:
+3
-3
@@ -1,4 +1,4 @@
|
||||
# Omarchy Citizen 0.6.1 – Plug-&-Play-Installation
|
||||
# Omarchy Citizen 0.6.2 – Plug-&-Play-Installation
|
||||
|
||||
## Ziel
|
||||
|
||||
@@ -275,9 +275,9 @@ Damit brauchst du im ersten Supportkontakt normalerweise keine Terminalbefehle
|
||||
vom Nutzer anzufordern.
|
||||
|
||||
|
||||
## Hotfix 0.6.1 – Setup-Button
|
||||
## Hotfix 0.6.2 – Setup-Button
|
||||
|
||||
Version 0.6.1 ändert die Ausführung der Panel-Aktionen grundlegend.
|
||||
Version 0.6.2 ändert die Ausführung der Panel-Aktionen grundlegend.
|
||||
|
||||
Beim Klick auf **EINRICHTEN & STARTKLAR MACHEN** wird die Aktion nun direkt als
|
||||
Quickshell-Prozess gestartet. Das Panel zeigt sofort **WIRD GESTARTET**.
|
||||
|
||||
@@ -12,7 +12,7 @@ Panel {
|
||||
property var anchorItem: null
|
||||
property var hostWidget: null
|
||||
|
||||
property string pluginVersion: "0.6.1"
|
||||
property string pluginVersion: "0.6.2"
|
||||
property string health: "checking"
|
||||
property string depsState: "checking"
|
||||
property string depsMissing: ""
|
||||
@@ -47,6 +47,7 @@ Panel {
|
||||
readonly property color warning: "#ffd276"
|
||||
readonly property color danger: "#ff8fa1"
|
||||
readonly property color muted: "#a8bbc9"
|
||||
readonly property string uiFont: "sans-serif"
|
||||
|
||||
readonly property string controlScript: decodeURIComponent(
|
||||
Qt.resolvedUrl("citizenctl").toString().replace(/^file:\/\//, "")
|
||||
@@ -95,7 +96,7 @@ Panel {
|
||||
values[lines[i].slice(0, p)] = lines[i].slice(p + 1)
|
||||
}
|
||||
|
||||
pluginVersion = values.plugin_version || "0.6.1"
|
||||
pluginVersion = values.plugin_version || "0.6.2"
|
||||
health = values.health || "setup"
|
||||
depsState = values.deps || "missing"
|
||||
depsMissing = values.deps_missing || ""
|
||||
@@ -220,7 +221,9 @@ Panel {
|
||||
onExited: function(exitCode) {
|
||||
if (exitCode === 0) {
|
||||
root.actionError = ""
|
||||
root.actionStatus = "Gestartet."
|
||||
root.actionStatus = root.actionKind === "primary" && root.health !== "ready"
|
||||
? "Setup-Fenster wurde geöffnet. Folge dort einfach den angezeigten Schritten."
|
||||
: "Aktion wurde gestartet."
|
||||
root.refreshStatus()
|
||||
|
||||
if (root.actionCloseOnSuccess)
|
||||
@@ -302,7 +305,7 @@ Panel {
|
||||
anchors.centerIn: parent
|
||||
text: "✦"
|
||||
color: root.healthColor()
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.title
|
||||
font.bold: true
|
||||
}
|
||||
@@ -314,7 +317,7 @@ Panel {
|
||||
Text {
|
||||
text: "OMARCHY CITIZEN"
|
||||
color: root.barForeground
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.title
|
||||
font.bold: true
|
||||
}
|
||||
@@ -322,7 +325,7 @@ Panel {
|
||||
Text {
|
||||
text: root.headline()
|
||||
color: root.healthColor()
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.bodySmall
|
||||
font.bold: true
|
||||
}
|
||||
@@ -333,7 +336,7 @@ Panel {
|
||||
width: parent.width
|
||||
text: root.subline()
|
||||
color: root.muted
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.bodySmall
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
@@ -344,10 +347,13 @@ Panel {
|
||||
? "… WIRD GESTARTET"
|
||||
: root.primaryText()
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
active: root.health === "ready" || actionProc.running
|
||||
onClicked: root.runAction(root.health === "repair" ? "repair" : "primary")
|
||||
onClicked: root.runAction(
|
||||
root.health === "repair" ? "repair" : "primary",
|
||||
root.health === "ready"
|
||||
)
|
||||
}
|
||||
|
||||
Text {
|
||||
@@ -355,7 +361,7 @@ Panel {
|
||||
width: parent.width
|
||||
text: root.actionStatus
|
||||
color: root.accent
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.caption
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
@@ -377,7 +383,7 @@ Panel {
|
||||
anchors.margins: Style.space(8)
|
||||
text: root.actionError
|
||||
color: root.danger
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.caption
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
@@ -404,7 +410,7 @@ Panel {
|
||||
Text {
|
||||
text: "HILFE OHNE LINUX-WISSEN"
|
||||
color: root.accent
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.bodySmall
|
||||
font.bold: true
|
||||
}
|
||||
@@ -421,7 +427,7 @@ Panel {
|
||||
width: helpGrid.cellWidth
|
||||
text: "↻ Problem beheben"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("repair")
|
||||
}
|
||||
@@ -430,7 +436,7 @@ Panel {
|
||||
width: helpGrid.cellWidth
|
||||
text: "▣ Support-Paket erstellen"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("support")
|
||||
}
|
||||
@@ -440,7 +446,7 @@ Panel {
|
||||
width: parent.width
|
||||
text: "Das Support-Paket sammelt Diagnoseinformationen automatisch und maskiert typische persönliche Daten vor dem Export."
|
||||
color: root.muted
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.caption
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
@@ -469,13 +475,13 @@ Panel {
|
||||
|
||||
StatusChip {
|
||||
label: "LUG"
|
||||
value: root.helperState === "ready" ? "OK" : "Setup"
|
||||
value: root.helperState === "ready" ? "bereit" : "fehlt"
|
||||
chipColor: root.stateColor(root.helperState)
|
||||
}
|
||||
|
||||
StatusChip {
|
||||
label: "Launcher"
|
||||
value: root.launcherState === "ready" ? "OK" : "Setup"
|
||||
value: root.launcherState === "ready" ? "bereit" : "Setup"
|
||||
chipColor: root.stateColor(root.launcherState)
|
||||
}
|
||||
|
||||
@@ -492,7 +498,7 @@ Panel {
|
||||
(root.helperVersion !== "" ? root.helperVersion : "nicht eingerichtet") +
|
||||
" · Plugin: " + (root.pluginManaged === "git" ? (root.pluginAuto === "true" ? "Auto" : "Git") : "ZIP")
|
||||
color: root.muted
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.caption
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
@@ -503,7 +509,7 @@ Panel {
|
||||
width: parent.width
|
||||
text: root.advancedVisible ? "▲ Erweiterte Optionen ausblenden" : "▼ Erweiterte Optionen anzeigen"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.advancedVisible = !root.advancedVisible
|
||||
}
|
||||
@@ -528,7 +534,7 @@ Panel {
|
||||
Text {
|
||||
text: "ERWEITERTE OPTIONEN"
|
||||
color: root.accent
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.bodySmall
|
||||
font.bold: true
|
||||
}
|
||||
@@ -565,7 +571,7 @@ Panel {
|
||||
Text {
|
||||
text: "PLUGIN-UPDATES"
|
||||
color: root.accent
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.bodySmall
|
||||
font.bold: true
|
||||
}
|
||||
@@ -599,7 +605,7 @@ Panel {
|
||||
width: pluginUpdateGrid.cellWidth
|
||||
text: "Plugin-Update prüfen"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("plugin-update-check")
|
||||
}
|
||||
@@ -608,7 +614,7 @@ Panel {
|
||||
width: pluginUpdateGrid.cellWidth
|
||||
text: "Plugin jetzt aktualisieren"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
active: root.pluginUpdate === "available"
|
||||
onClicked: root.runAction("plugin-update-now")
|
||||
@@ -618,7 +624,7 @@ Panel {
|
||||
width: pluginUpdateGrid.cellWidth
|
||||
text: root.pluginAuto === "true" ? "Auto-Updates ausschalten" : "Auto-Updates einschalten"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction(root.pluginAuto === "true" ? "plugin-auto-disable" : "plugin-auto-enable")
|
||||
}
|
||||
@@ -627,7 +633,7 @@ Panel {
|
||||
width: pluginUpdateGrid.cellWidth
|
||||
text: "Updater-Log öffnen"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("updater-log")
|
||||
}
|
||||
@@ -639,7 +645,7 @@ Panel {
|
||||
? "Auto-Updates verwenden Omarchys eigenen Plugin-Updater mit Validierung und Rollback. Das beim Aktivieren vorhandene Git-Remote wird als vertrauenswürdige Quelle gespeichert."
|
||||
: "Die aktuelle ZIP-Installation bleibt bewusst ohne unbekannte Update-Quelle. Sobald Omarchy Citizen aus einem Git-Repository installiert wird, erkennt das Backend dessen origin automatisch."
|
||||
color: root.muted
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.caption
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
@@ -658,7 +664,7 @@ Panel {
|
||||
width: setupGrid.cellWidth
|
||||
text: root.checkingUpdate ? "Update wird geprüft…" : "LUG Update prüfen"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.checkForUpdates()
|
||||
}
|
||||
@@ -667,7 +673,7 @@ Panel {
|
||||
width: setupGrid.cellWidth
|
||||
text: "LUG aktualisieren"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("update-helper")
|
||||
}
|
||||
@@ -676,7 +682,7 @@ Panel {
|
||||
width: setupGrid.cellWidth
|
||||
text: "Omarchy aktualisieren"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("system-update")
|
||||
}
|
||||
@@ -685,7 +691,7 @@ Panel {
|
||||
width: setupGrid.cellWidth
|
||||
text: "LUG Helper öffnen"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("helper")
|
||||
}
|
||||
@@ -694,7 +700,7 @@ Panel {
|
||||
width: setupGrid.cellWidth
|
||||
text: "Wine-Runner"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("runners")
|
||||
}
|
||||
@@ -703,7 +709,7 @@ Panel {
|
||||
width: setupGrid.cellWidth
|
||||
text: "DXVK verwalten"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("dxvk")
|
||||
}
|
||||
@@ -712,7 +718,7 @@ Panel {
|
||||
width: setupGrid.cellWidth
|
||||
text: "RSI reparieren"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("repair-rsi")
|
||||
}
|
||||
@@ -721,7 +727,7 @@ Panel {
|
||||
width: setupGrid.cellWidth
|
||||
text: "Start-Script reparieren"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("repair-launch")
|
||||
}
|
||||
@@ -730,7 +736,7 @@ Panel {
|
||||
width: setupGrid.cellWidth
|
||||
text: "Start-Log öffnen"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("log")
|
||||
}
|
||||
@@ -739,7 +745,7 @@ Panel {
|
||||
width: setupGrid.cellWidth
|
||||
text: "Plugin-Debuglog öffnen"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("debug-log")
|
||||
}
|
||||
@@ -750,7 +756,7 @@ Panel {
|
||||
Text {
|
||||
text: "NGL · EXPERIMENTELL"
|
||||
color: root.warning
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.bodySmall
|
||||
font.bold: true
|
||||
}
|
||||
@@ -767,7 +773,7 @@ Panel {
|
||||
width: nglGrid.cellWidth
|
||||
text: "NGL Download"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("ngl-page")
|
||||
}
|
||||
@@ -776,7 +782,7 @@ Panel {
|
||||
width: nglGrid.cellWidth
|
||||
text: "NGL installieren"
|
||||
foreground: root.barForeground
|
||||
fontFamily: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
fontFamily: root.uiFont
|
||||
bordered: true
|
||||
onClicked: root.runAction("ngl-install")
|
||||
}
|
||||
@@ -787,7 +793,7 @@ Panel {
|
||||
text: "NGL bleibt bewusst optional. Der normale RSI/LUG-Weg funktioniert unabhängig davon."
|
||||
color: root.warning
|
||||
opacity: 0.82
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.caption
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
@@ -798,7 +804,7 @@ Panel {
|
||||
width: parent.width
|
||||
text: "Ziel: spielen statt Linux administrieren. Für Support genügt normalerweise „Support-Paket erstellen“."
|
||||
color: root.muted
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.caption
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
@@ -807,16 +813,17 @@ Panel {
|
||||
}
|
||||
|
||||
component StatusChip: Rectangle {
|
||||
id: chip
|
||||
property string label: ""
|
||||
property string value: ""
|
||||
property color chipColor: root.accent
|
||||
|
||||
radius: 999
|
||||
color: Qt.rgba(chipColor.r, chipColor.g, chipColor.b, 0.12)
|
||||
border.color: chipColor
|
||||
color: Qt.rgba(chip.chipColor.r, chip.chipColor.g, chip.chipColor.b, 0.12)
|
||||
border.color: chip.chipColor
|
||||
border.width: 1
|
||||
implicitWidth: chipRow.implicitWidth + Style.space(14)
|
||||
implicitHeight: chipRow.implicitHeight + Style.space(8)
|
||||
implicitWidth: chipRow.implicitWidth + Style.space(16)
|
||||
implicitHeight: chipRow.implicitHeight + Style.space(9)
|
||||
|
||||
Row {
|
||||
id: chipRow
|
||||
@@ -824,16 +831,16 @@ Panel {
|
||||
spacing: Style.space(5)
|
||||
|
||||
Text {
|
||||
text: parent.label
|
||||
text: chip.label
|
||||
color: root.muted
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.caption
|
||||
}
|
||||
|
||||
Text {
|
||||
text: parent.value
|
||||
color: parent.chipColor
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
text: chip.value
|
||||
color: chip.chipColor
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.caption
|
||||
font.bold: true
|
||||
}
|
||||
@@ -841,16 +848,17 @@ Panel {
|
||||
}
|
||||
|
||||
component StatusLine: Rectangle {
|
||||
id: statusLine
|
||||
property string label: ""
|
||||
property string value: ""
|
||||
property string state: "unknown"
|
||||
|
||||
width: parent.width
|
||||
radius: 12
|
||||
radius: 11
|
||||
color: root.surfaceRaised
|
||||
border.color: root.border
|
||||
border.width: 1
|
||||
implicitHeight: lineRow.implicitHeight + Style.space(10)
|
||||
implicitHeight: lineRow.implicitHeight + Style.space(12)
|
||||
|
||||
Row {
|
||||
id: lineRow
|
||||
@@ -861,25 +869,25 @@ Panel {
|
||||
spacing: Style.space(8)
|
||||
|
||||
Rectangle {
|
||||
width: 10
|
||||
height: 10
|
||||
width: 9
|
||||
height: 9
|
||||
radius: 5
|
||||
color: root.stateColor(parent.state)
|
||||
color: root.stateColor(statusLine.state)
|
||||
}
|
||||
|
||||
Text {
|
||||
width: Style.space(118)
|
||||
text: parent.label
|
||||
text: statusLine.label
|
||||
color: root.muted
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.bodySmall
|
||||
}
|
||||
|
||||
Text {
|
||||
width: Math.max(0, parent.width - Style.space(158))
|
||||
text: root.stateIcon(parent.state) + " " + parent.value
|
||||
width: Math.max(0, lineRow.width - Style.space(158))
|
||||
text: root.stateIcon(statusLine.state) + " " + statusLine.value
|
||||
color: root.barForeground
|
||||
font.family: root.bar ? root.bar.fontFamily : Style.font.family
|
||||
font.family: root.uiFont
|
||||
font.pixelSize: Style.font.bodySmall
|
||||
elide: Text.ElideRight
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Omarchy Citizen 0.6.1
|
||||
# Omarchy Citizen 0.6.2
|
||||
|
||||
A plug-and-play Star Citizen control panel for Omarchy.
|
||||
|
||||
@@ -70,10 +70,18 @@ remote; unattended updates stop if that remote changes or the checkout is dirty.
|
||||
See [`backend/README.md`](backend/README.md) and [`GIT_DISTRIBUTION.md`](GIT_DISTRIBUTION.md).
|
||||
|
||||
|
||||
## 0.6.1 hotfix
|
||||
## 0.6.2 hotfix
|
||||
|
||||
- primary/setup actions now run through a Quickshell `Process` instead of fire-and-forget `bar.run`
|
||||
- the panel shows `WIRD GESTARTET` immediately after a click
|
||||
- startup failures stay visible in the panel instead of silently closing it
|
||||
- terminal launch has a monitored fallback path and logs immediate launcher failures
|
||||
- installers restart the Omarchy shell after QML changes to avoid stale third-party plugin QML
|
||||
|
||||
## 0.6.2 UI / setup hotfix
|
||||
|
||||
- fixed `undefined` in reusable status rows and chips
|
||||
- panel no longer inherits the bar's theme font; uses a neutral system sans font
|
||||
- first-time setup keeps the panel open and shows a visible status message
|
||||
- setup terminal is launched directly through `xdg-terminal-exec`/UWSM with separate argv
|
||||
- failed package/AUR setup remains visible instead of the terminal disappearing immediately
|
||||
|
||||
Binary file not shown.
@@ -16,7 +16,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
appVersion = "0.6.1"
|
||||
appVersion = "0.6.2"
|
||||
pluginID = "local.omarchy-citizen"
|
||||
)
|
||||
|
||||
|
||||
+54
-25
@@ -2,7 +2,7 @@
|
||||
set -u
|
||||
|
||||
PLUGIN_ID="local.omarchy-citizen"
|
||||
PLUGIN_VERSION="0.6.1"
|
||||
PLUGIN_VERSION="0.6.2"
|
||||
|
||||
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/starcitizen-lug"
|
||||
DATA_DIR="${XDG_DATA_HOME:-$HOME/.local/share}"
|
||||
@@ -388,9 +388,7 @@ probe_detached_start() {
|
||||
"$@" >>"$LOG_FILE" 2>&1 &
|
||||
local pid=$!
|
||||
|
||||
# Give immediate launcher errors a chance to surface. A successful terminal
|
||||
# launcher may either stay alive or exit 0 after handing the terminal off.
|
||||
sleep 0.35
|
||||
sleep 0.45
|
||||
|
||||
if ! kill -0 "$pid" 2>/dev/null; then
|
||||
local rc=0
|
||||
@@ -409,37 +407,44 @@ probe_detached_start() {
|
||||
|
||||
launch_terminal_action() {
|
||||
local action="$1"
|
||||
local cmd
|
||||
log_line "launch-terminal action=$action"
|
||||
|
||||
printf -v cmd 'bash %q %q' "$SELF" "$action"
|
||||
log_line "launch-terminal action=$action cmd=$cmd"
|
||||
# Prefer direct argv-safe terminal launching. This avoids the presentation
|
||||
# wrapper joining arguments into one shell command string.
|
||||
if command -v uwsm-app >/dev/null 2>&1 && command -v xdg-terminal-exec >/dev/null 2>&1; then
|
||||
if probe_detached_start "uwsm-xdg-terminal" \
|
||||
setsid uwsm-app -- xdg-terminal-exec \
|
||||
--app-id=org.omarchy.terminal \
|
||||
--title="Omarchy Citizen Setup" \
|
||||
-e bash "$SELF" "$action"; then
|
||||
printf 'terminal=opened\n'
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if command -v xdg-terminal-exec >/dev/null 2>&1; then
|
||||
if probe_detached_start "xdg-terminal" \
|
||||
xdg-terminal-exec \
|
||||
--title="Omarchy Citizen Setup" \
|
||||
-e bash "$SELF" "$action"; then
|
||||
printf 'terminal=opened\n'
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Final compatibility fallback for older/current Omarchy installations.
|
||||
if command -v omarchy-launch-floating-terminal-with-presentation >/dev/null 2>&1; then
|
||||
if probe_detached_start "omarchy-floating-terminal" \
|
||||
omarchy-launch-floating-terminal-with-presentation bash "$SELF" "$action"; then
|
||||
return 0
|
||||
fi
|
||||
log_line "primary floating terminal launcher failed; trying direct terminal fallback"
|
||||
fi
|
||||
|
||||
if command -v uwsm-app >/dev/null 2>&1 && command -v xdg-terminal-exec >/dev/null 2>&1; then
|
||||
if probe_detached_start "direct-omarchy-terminal" \
|
||||
setsid uwsm-app -- xdg-terminal-exec \
|
||||
--app-id=org.omarchy.terminal \
|
||||
--title="Omarchy Citizen" \
|
||||
-e bash -c "$cmd"; then
|
||||
return 0
|
||||
fi
|
||||
elif command -v xdg-terminal-exec >/dev/null 2>&1; then
|
||||
if probe_detached_start "xdg-terminal" \
|
||||
xdg-terminal-exec -e bash "$SELF" "$action"; then
|
||||
printf 'terminal=opened\n'
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Das Setup-Terminal konnte nicht geöffnet werden." >&2
|
||||
notify_error "Das Setup-Terminal konnte nicht geöffnet werden.
|
||||
|
||||
Bitte erstelle im SC-Panel ein Support-Paket. Darin ist jetzt auch der fehlgeschlagene Startversuch protokolliert."
|
||||
Bitte klicke auf „Support-Paket erstellen“. Der fehlgeschlagene Startversuch ist dort protokolliert."
|
||||
return 1
|
||||
}
|
||||
|
||||
@@ -481,9 +486,32 @@ guided_setup() {
|
||||
}
|
||||
|
||||
install_stack_terminal() {
|
||||
set -e
|
||||
set -Ee
|
||||
exec > >(tee -a "$LOG_FILE") 2>&1
|
||||
|
||||
setup_failed() {
|
||||
local rc=$?
|
||||
trap - ERR
|
||||
echo
|
||||
echo "=================================================="
|
||||
echo " SETUP KONNTE NICHT ABGESCHLOSSEN WERDEN"
|
||||
echo "=================================================="
|
||||
echo
|
||||
echo "Fehlercode: $rc"
|
||||
echo "Keine Sorge: Im SC-Panel kannst du anschließend"
|
||||
echo "„Support-Paket erstellen“ wählen."
|
||||
echo
|
||||
log_line "install-stack failed rc=$rc"
|
||||
notify "Omarchy Citizen" "Setup fehlgeschlagen. Bitte erstelle im SC-Panel ein Support-Paket."
|
||||
if [[ -t 0 ]]; then
|
||||
read -r -p "Drücke Enter, um dieses Fenster zu schließen … " _ || true
|
||||
else
|
||||
sleep 8
|
||||
fi
|
||||
exit "$rc"
|
||||
}
|
||||
trap setup_failed ERR
|
||||
|
||||
echo
|
||||
echo "=================================================="
|
||||
echo " Omarchy Citizen – Plug & Play Setup"
|
||||
@@ -523,6 +551,7 @@ install_stack_terminal() {
|
||||
echo
|
||||
echo "Plug-&-Play-Setup beendet."
|
||||
echo "Du kannst dieses Fenster schließen und ✦SC öffnen."
|
||||
trap - ERR
|
||||
notify "Omarchy Citizen" "Grundsetup abgeschlossen. Öffne ✦SC und starte Star Citizen."
|
||||
log_line "install-stack complete"
|
||||
}
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ omarchy plugin enable "$PLUGIN_ID"
|
||||
omarchy restart shell >/dev/null 2>&1 || true
|
||||
|
||||
echo
|
||||
echo "Omarchy Citizen 0.6.1 wurde installiert:"
|
||||
echo "Omarchy Citizen 0.6.2 wurde installiert:"
|
||||
echo " $DEST"
|
||||
echo
|
||||
echo "Links-Klick auf 'SC' in der Omarchy-Leiste öffnet das Star-Citizen-Panel."
|
||||
|
||||
+2
-2
@@ -2,10 +2,10 @@
|
||||
"schemaVersion": 1,
|
||||
"id": "local.omarchy-citizen",
|
||||
"name": "Omarchy Citizen",
|
||||
"version": "0.6.1",
|
||||
"version": "0.6.2",
|
||||
"author": "Community prototype",
|
||||
"license": "MIT",
|
||||
"description": "Plug-and-play Star Citizen controls for Omarchy with reliable in-panel action execution, guided setup/repair, debug support bundles, update backend and optional NGL.",
|
||||
"description": "Plug-and-play Star Citizen controls for Omarchy. 0.6.2 fixes status rendering and makes first-time setup visibly reliable.",
|
||||
"kinds": [
|
||||
"bar-widget"
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user