Everything on top of a stock Omarchy 4.0.4-1 install, gathered so a second machine can be brought to the same state: the ~/.config files that actually differ from the shipped defaults, the three hand-built themes, the ten shell plugins pinned to commits, the two custom scripts, two user units, and the /etc drop-ins. install.sh applies it all idempotently, backing up anything it overwrites. capture.sh runs the other way so the repo stays the source of truth rather than a snapshot that rots. indie.herdr-hud's ten local-only commits ship as a git bundle plus a working-tree patch, since they stay off the upstream PR deliberately. Secrets, the dotfiles repo's territory (shell/git/mise), the remote-access stack and aether-managed themes are all scoped out; README says why for each. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
49 lines
2.0 KiB
Diff
49 lines
2.0 KiB
Diff
diff --git i/Cat.qml w/Cat.qml
|
|
index 58ed7f6..f1bbe9b 100644
|
|
--- i/Cat.qml
|
|
+++ w/Cat.qml
|
|
@@ -30,13 +30,18 @@ Item {
|
|
property string omarchyPath: ""
|
|
|
|
readonly property string pluginId: manifest && manifest.id ? String(manifest.id) : "io.github.tallsam.navbar-cat"
|
|
+ // The shell strips `__sourceDir` from third-party manifests, so fall back to
|
|
+ // this file's own directory.
|
|
+ readonly property string pluginDir: manifest && manifest.__sourceDir
|
|
+ ? String(manifest.__sourceDir)
|
|
+ : String(Qt.resolvedUrl(".")).replace(/^file:\/\//, "").replace(/\/$/, "")
|
|
readonly property string assetDir: {
|
|
- var dir = manifest && manifest.__sourceDir ? String(manifest.__sourceDir) : ""
|
|
+ var dir = pluginDir
|
|
if (dir === "") return ""
|
|
return (dir.indexOf("file://") === 0 ? dir : "file://" + dir) + "/assets"
|
|
}
|
|
readonly property string helper: {
|
|
- var dir = manifest && manifest.__sourceDir ? String(manifest.__sourceDir) : ""
|
|
+ var dir = pluginDir
|
|
if (dir === "") return ""
|
|
return dir.replace(/^file:\/\//, "") + "/bin/navbar-cat-cursor"
|
|
}
|
|
@@ -52,8 +57,21 @@ Item {
|
|
|
|
// Settings live inline on this plugin's entry in shell.json's `plugins[]`,
|
|
// per the shell's storage rules.
|
|
+ // Third-party plugins get a scoped `shell` without `shellConfig`, so read
|
|
+ // shell.json directly when the shell does not hand it over.
|
|
+ FileView {
|
|
+ id: shellJson
|
|
+ path: Quickshell.env("HOME") + "/.config/omarchy/shell.json"
|
|
+ watchChanges: true
|
|
+ onFileChanged: reload()
|
|
+ }
|
|
+ readonly property var fileConfig: {
|
|
+ try { return JSON.parse(shellJson.text()) } catch (e) { return null }
|
|
+ }
|
|
+
|
|
readonly property var config: {
|
|
- var settings = shell && shell.shellConfig ? shell.shellConfig.plugins : null
|
|
+ var source = shell && shell.shellConfig ? shell.shellConfig : root.fileConfig
|
|
+ var settings = source ? source.plugins : null
|
|
if (Array.isArray(settings)) {
|
|
for (var i = 0; i < settings.length; i++) {
|
|
if (settings[i] && String(settings[i].id || "") === root.pluginId) return settings[i]
|