added herdr-dpreader and other configs

This commit is contained in:
liph
2026-07-29 12:53:58 +02:00
parent 0ba7d82d10
commit cb84ef757e
14 changed files with 703 additions and 65 deletions
+51 -1
View File
@@ -1,9 +1,12 @@
onboarding = false
[theme]
name = "rose-pine-moon"
name = "rose-pine"
auto_switch = false
[keys]
previous_workspace = "prefix+shift+u"
next_workspace = "prefix+shift+i"
prefix = "ctrl+s"
goto = "prefix+g"
new_tab = "prefix+c"
@@ -46,3 +49,50 @@ command = "herdr-lazygit.open"
key = "prefix+shift+g"
type = "plugin_action"
command = "herdr-lazygit.open-tab"
## herder pane mover
[[keys.command]]
key = "prefix+m"
type = "plugin_action"
command = "osamahbeig.pane-mover.open"
description = "move this pane"
## herdr-spreader templates (keep prefix+1..9 free for switch_tab)
[[keys.command]]
key = "prefix+shift+h"
type = "shell"
command = "bash /home/liph/.config/herdr/scripts/apply-home-with-lazygit.sh"
description = "apply Home + Dotfiles layout with lazygit"
[[keys.command]]
key = "prefix+shift+c"
type = "shell"
command = "bash -c 'herdr workspace close Coding 2>/dev/null || true; herdr workspace close Home 2>/dev/null || true; ~/.config/herdr/plugins/github/herdr-spreader-f248c87aa2e2/target/release/herdr-spreader apply --file ~/.config/herdr/plugins/config/herdr-spreader/coding.yml'"
description = "apply coding layout"
## herr-zoxide
[[keys.command]]
key = "prefix+shift+z"
type = "plugin_action"
command = "herdr-zoxide.browse"
description = "Browse zoxide directories"
## domnisearch
[[keys.command]]
key = "prefix+o"
type = "plugin_action"
command = "herdr.omnisearch.open-live"
description = "OmniSearch"
[[keys.command]]
key = "prefix+shift+o"
type = "plugin_action"
command = "herdr.omnisearch.open-archive"
description = "ArchiveSearch"
## herdr-bar (fuzzy everything)
[[keys.command]]
key = "prefix+k"
type = "plugin_action"
command = "herdr-bar.open"
description = "command bar"
[experimental]
pane_history = true
+462 -62
View File
@@ -1,4 +1,466 @@
[
{
"plugin_id": "herdr-bar",
"name": "Bar",
"version": "0.1.0",
"min_herdr_version": "0.7.4",
"description": "Cmd+K command bar: fuzzy-jump to any tab or agent",
"manifest_path": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr-bar-96eebe452a9c/herdr-plugin.toml",
"plugin_root": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr-bar-96eebe452a9c",
"enabled": true,
"platforms": [
"linux",
"macos"
],
"actions": [
{
"id": "open",
"title": "Open bar",
"description": "Fuzzy-jump to any tab or agent",
"contexts": [
"global"
],
"command": [
"sh",
"-c",
"herdr_bin=\"${HERDR_BIN_PATH:-herdr}\"; [ -x \"$herdr_bin\" ] || herdr_bin=herdr; exec \"$herdr_bin\" plugin pane open --plugin herdr-bar --entrypoint bar --placement popup"
]
}
],
"panes": [
{
"id": "bar",
"title": "Bar",
"description": "Fuzzy-jump to any tab or agent",
"placement": "popup",
"width": "74%",
"height": "62%",
"command": [
"python3",
"run.py"
]
}
],
"source": {
"kind": "github",
"owner": "jeffarese",
"repo": "herdr-bar",
"resolved_commit": "58c23e5c8d7926044f67524f403257bacdf88f6b",
"managed_path": "/home/liph/.config/herdr/plugins/github/herdr-bar-96eebe452a9c",
"installed_unix_ms": 1785318705720
}
},
{
"plugin_id": "herdr-lazygit",
"name": "herdr-lazygit",
"version": "0.3.0",
"min_herdr_version": "0.7.0",
"description": "lazygit in a herdr split pane, with AI-assisted commit messages via custom commands.",
"manifest_path": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr-lazygit-b11d62e75f78/herdr-plugin.toml",
"plugin_root": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr-lazygit-b11d62e75f78",
"enabled": true,
"platforms": [
"linux",
"macos"
],
"build": [
{
"command": [
"/bin/sh",
"scripts/install-runtime.sh"
]
}
],
"actions": [
{
"id": "open",
"title": "Open lazygit",
"description": "Open lazygit in a split pane beside the current work (focus/toggle on repeat).",
"command": [
"bash",
"scripts/open-lazygit.sh"
]
},
{
"id": "open-tab",
"title": "Open lazygit (tab)",
"description": "Open lazygit in its own tab (switch to it if already open, toggle off if focused).",
"command": [
"bash",
"scripts/open-lazygit-tab.sh"
]
}
],
"panes": [
{
"id": "lazygit",
"title": "Git",
"placement": "split",
"command": [
"bash",
"-c",
"exec bash \"$HERDR_PLUGIN_ROOT/scripts/run-lazygit.sh\""
]
}
],
"source": {
"kind": "github",
"owner": "crokily",
"repo": "herdr-lazygit",
"resolved_commit": "a13e12c99e5e469edd73165cabba413c2a2fd698",
"managed_path": "/home/liph/.config/herdr/plugins/github/herdr-lazygit-b11d62e75f78",
"installed_unix_ms": 1785180028608
}
},
{
"plugin_id": "herdr-spreader",
"name": "Spreader",
"version": "0.1.0",
"min_herdr_version": "0.7.0",
"description": "Apply tmuxinator-style project layouts from YAML",
"manifest_path": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr-spreader-f248c87aa2e2/herdr-plugin.toml",
"plugin_root": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr-spreader-f248c87aa2e2",
"enabled": true,
"platforms": [
"linux",
"macos"
],
"build": [
{
"command": [
"cargo",
"build",
"--release"
]
}
],
"actions": [
{
"id": "apply",
"title": "Apply layout",
"contexts": [
"workspace"
],
"command": [
"./target/release/herdr-spreader",
"apply"
]
}
],
"source": {
"kind": "github",
"owner": "yuk1ty",
"repo": "herdr-spreader",
"resolved_commit": "5f76bc9eab02296e88d2707fa4c1cf0d8eabdb80",
"managed_path": "/home/liph/.config/herdr/plugins/github/herdr-spreader-f248c87aa2e2",
"installed_unix_ms": 1785312044504
}
},
{
"plugin_id": "herdr-zoxide",
"name": "Zoxide Navigator",
"version": "0.1.0",
"min_herdr_version": "0.7.0",
"description": "Browse zoxide directories with fzf preview — open as workspace, tab, or split. Config: $(herdr plugin config-dir herdr-zoxide)/config.toml",
"manifest_path": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr-zoxide-f7b96c313637/herdr-plugin.toml",
"plugin_root": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr-zoxide-f7b96c313637",
"enabled": true,
"platforms": [
"linux",
"macos"
],
"actions": [
{
"id": "browse",
"title": "Browse zoxide directories",
"contexts": [
"global"
],
"command": [
"bash",
"open-picker.sh"
]
}
],
"panes": [
{
"id": "picker",
"title": "Zoxide",
"placement": "overlay",
"command": [
"bash",
"zoxide-picker.sh"
]
}
],
"source": {
"kind": "github",
"owner": "den-tanui",
"repo": "herdr-zoxide",
"resolved_commit": "7be842fe84d8d017c80e54f8d7eb7f0f6ef28c44",
"managed_path": "/home/liph/.config/herdr/plugins/github/herdr-zoxide-f7b96c313637",
"installed_unix_ms": 1785316043232
}
},
{
"plugin_id": "herdr.omnisearch",
"name": "Herdr OmniSearch",
"version": "0.4.1",
"min_herdr_version": "0.7.5",
"description": "Fast local search across live Herdr panes and archived agent sessions",
"manifest_path": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr.omnisearch-a5e63b9e63b1/herdr-plugin.toml",
"plugin_root": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr.omnisearch-a5e63b9e63b1",
"enabled": true,
"platforms": [
"linux",
"macos"
],
"startup": [
{
"command": [
"bin/herdr-omnisearch",
"watch-start"
]
}
],
"actions": [
{
"id": "doctor",
"title": "Check OmniSearch health",
"command": [
"bin/herdr-omnisearch",
"doctor"
]
},
{
"id": "open-archive",
"title": "Open archived session search",
"command": [
"bin/herdr-omnisearch",
"open-plugin-pane",
"archive"
]
},
{
"id": "open-live",
"title": "Open live OmniSearch",
"command": [
"bin/herdr-omnisearch",
"open-plugin-pane",
"live"
]
},
{
"id": "refresh-archive",
"title": "Refresh archived session index",
"command": [
"bin/herdr-omnisearch",
"archive-index"
]
},
{
"id": "refresh-live",
"title": "Refresh live OmniSearch index",
"command": [
"bin/herdr-omnisearch",
"index"
]
},
{
"id": "watch-start",
"title": "Start live index watcher",
"command": [
"bin/herdr-omnisearch",
"watch-start"
]
},
{
"id": "watch-status",
"title": "Show live index watcher status",
"command": [
"bin/herdr-omnisearch",
"watch-status"
]
},
{
"id": "watch-stop",
"title": "Stop live index watcher",
"command": [
"bin/herdr-omnisearch",
"watch-stop"
]
}
],
"events": [
{
"on": "pane.agent_detected",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "pane.agent_status_changed",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "pane.closed",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "pane.created",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "pane.exited",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "pane.moved",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "tab.closed",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "tab.created",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "tab.renamed",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "workspace.closed",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "workspace.created",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "workspace.renamed",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
},
{
"on": "workspace.updated",
"command": [
"bin/herdr-omnisearch",
"event-refresh"
]
}
],
"panes": [
{
"id": "archive",
"title": "Archive Search",
"placement": "overlay",
"command": [
"sh",
"-c",
"exec \"$HERDR_PLUGIN_ROOT/bin/herdr-omnisearch\" archive-pick --native --no-refresh --background-refresh --stale-seconds 3600"
]
},
{
"id": "live",
"title": "OmniSearch",
"placement": "overlay",
"command": [
"sh",
"-c",
"exec \"$HERDR_PLUGIN_ROOT/bin/herdr-omnisearch\" pick --native --no-refresh --background-refresh --stale-seconds 10 --lines 500"
]
}
],
"source": {
"kind": "github",
"owner": "dmnkf",
"repo": "herdr-omnisearch",
"resolved_commit": "89c9a523de578f001f68c89a5ec5d18368c78352",
"managed_path": "/home/liph/.config/herdr/plugins/github/herdr.omnisearch-a5e63b9e63b1",
"installed_unix_ms": 1785318415093
}
},
{
"plugin_id": "osamahbeig.pane-mover",
"name": "Pane Mover",
"version": "0.2.0",
"min_herdr_version": "0.7.0",
"description": "Clickable overlay menu to move, re-split, or swap the current pane across tabs and workspaces.",
"manifest_path": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/osamahbeig.pane-mover-d60fe0209b83/herdr-plugin.toml",
"plugin_root": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/osamahbeig.pane-mover-d60fe0209b83",
"enabled": true,
"platforms": [
"macos",
"linux"
],
"actions": [
{
"id": "open",
"title": "Move this pane…",
"contexts": [
"workspace"
],
"command": [
"node",
"open.js"
]
}
],
"panes": [
{
"id": "mover",
"title": "Move pane",
"placement": "overlay",
"command": [
"node",
"mover.js"
]
}
],
"source": {
"kind": "github",
"owner": "osamahbeig",
"repo": "herdr-pane-mover",
"resolved_commit": "a9fde7a4f98f1b6c230c64e2036b387d9c8d5bc3",
"managed_path": "/home/liph/.config/herdr/plugins/github/osamahbeig.pane-mover-d60fe0209b83",
"installed_unix_ms": 1785312184365
}
},
{
"plugin_id": "sessionizer",
"name": "Sessionizer",
@@ -71,67 +533,5 @@
"managed_path": "/home/liph/.config/herdr/plugins/github/sessionizer-66e03d1ff740",
"installed_unix_ms": 1785163972623
}
},
{
"plugin_id": "herdr-lazygit",
"name": "herdr-lazygit",
"version": "0.3.0",
"min_herdr_version": "0.7.0",
"description": "lazygit in a herdr split pane, with AI-assisted commit messages via custom commands.",
"manifest_path": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr-lazygit-b11d62e75f78/herdr-plugin.toml",
"plugin_root": "/home/liph/dotfiles/herdr/.config/herdr/plugins/github/herdr-lazygit-b11d62e75f78",
"enabled": true,
"platforms": [
"linux",
"macos"
],
"build": [
{
"command": [
"/bin/sh",
"scripts/install-runtime.sh"
]
}
],
"actions": [
{
"id": "open",
"title": "Open lazygit",
"description": "Open lazygit in a split pane beside the current work (focus/toggle on repeat).",
"command": [
"bash",
"scripts/open-lazygit.sh"
]
},
{
"id": "open-tab",
"title": "Open lazygit (tab)",
"description": "Open lazygit in its own tab (switch to it if already open, toggle off if focused).",
"command": [
"bash",
"scripts/open-lazygit-tab.sh"
]
}
],
"panes": [
{
"id": "lazygit",
"title": "Git",
"placement": "split",
"command": [
"bash",
"-c",
"exec bash \"$HERDR_PLUGIN_ROOT/scripts/run-lazygit.sh\""
]
}
],
"source": {
"kind": "github",
"owner": "crokily",
"repo": "herdr-lazygit",
"resolved_commit": "a13e12c99e5e469edd73165cabba413c2a2fd698",
"managed_path": "/home/liph/.config/herdr/plugins/github/herdr-lazygit-b11d62e75f78",
"installed_unix_ms": 1785180028608
}
}
]
Submodule herdr/.config/herdr/plugins/.tmp-install-750065-1785311987680/checkout added at 5f76bc9eab
@@ -0,0 +1,15 @@
workspaces:
- name: Coding
root: /mnt/tank/programming/spinstack
tabs:
- label: Nvim
panes:
- command: nvim
focus: true
- split: right
ratio: 0.5
command: yazi
- label: Opencode
panes:
- command: opencode
focus: true
@@ -0,0 +1,36 @@
workspaces:
- name: frontend
root: ~/code/my-project/frontend
env:
NODE_ENV: development
tabs:
- label: editor
cwd: ./src
panes:
- command: nvim
- split: down
ratio: 0.3
command: npm run dev
wait_for:
match: "ready"
timeout_ms: 10000
- name: backend
root: ~/code/my-project/backend
focus: true
env:
RUST_LOG: debug
tabs:
- label: editor
cwd: ./src
panes:
- command: nvim
focus: true
- split: down
ratio: 0.3
command: cargo watch -x test
wait_for:
match: "Compiling"
timeout_ms: 10000
- label: server
panes:
- command: cargo run
@@ -0,0 +1,31 @@
workspaces:
- name: Home
root: /home/liph
tabs:
- label: Base
panes:
- command: neofetch
- split: right
ratio: 0.5
command: yazi
focus: true
- label: Yazi
panes:
- command: zsh
focus: true
- split: right
ratio: 0.5
command: mc
- label: Aerc
panes:
- command: aerc
focus: true
- name: Dotfiles
root: /home/liph/dotfiles
focus: true
tabs:
- label: Dotfiles
panes:
- command: yazi
focus: true
Submodule herdr/.config/herdr/plugins/github/herdr-bar-96eebe452a9c added at 58c23e5c8d
Submodule herdr/.config/herdr/plugins/github/herdr-spreader-f248c87aa2e2 added at 5f76bc9eab
Submodule herdr/.config/herdr/plugins/github/herdr-zoxide-f7b96c313637 added at 7be842fe84
Submodule herdr/.config/herdr/plugins/github/herdr.omnisearch-a5e63b9e63b1 added at 89c9a523de
Submodule herdr/.config/herdr/plugins/github/osamahbeig.pane-mover-d60fe0209b83 added at a9fde7a4f9
+39
View File
@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# Apply the Home layout (Base/Yazi/Aerc tabs in /home/liph) and the Dotfiles
# workspace (yazi in ~/dotfiles + lazygit split to the right).
set -euo pipefail
SPREADER="$HOME/.config/herdr/plugins/github/herdr-spreader-f248c87aa2e2/target/release/herdr-spreader"
CONFIG_DIR="$HOME/.config/herdr/plugins/config/herdr-spreader"
TARGET_DIR="$(realpath ~/dotfiles)"
# Close any existing versions of these workspaces so this is idempotent.
herdr workspace close Home 2>/dev/null || true
herdr workspace close Dotfiles 2>/dev/null || true
# Apply the layout file, which creates both workspaces.
"$SPREADER" apply --file "$CONFIG_DIR/home.yml"
# Focus the Dotfiles workspace.
herdr workspace focus Dotfiles 2>/dev/null || true
# Wait briefly for the focus to settle on the new yazi pane in ~/dotfiles.
for _ in {1..30}; do
current_json=$(herdr pane current 2>/dev/null || true)
pane_cwd=$(echo "$current_json" | python3 -c "
import sys, json
try:
d = json.load(sys.stdin)
print(d['result']['pane'].get('cwd', ''))
except Exception:
print('')
" 2>/dev/null || true)
if [ "$pane_cwd" = "$TARGET_DIR" ]; then
break
fi
sleep 0.1
done
# Open lazygit via the plugin action. Because the yazi pane in ~/dotfiles is focused,
# lazygit will split to the right and target the dotfiles repository.
herdr plugin action invoke herdr-lazygit.open
File diff suppressed because one or more lines are too long
+6 -2
View File
@@ -1,4 +1,4 @@
alias qk='pi --provider ollama-cloud --model kimi-k2.6 -p'
alias qk='pi --provider ollama-cloud --model kimi-k3 -p'
alias qc='pi --provider ollama-cloud --model kimi-k2.7-code -p'
alias qg='pi --provider ollama-cloud --model glm-5.2 -p'
alias qd='pi --provider ollama-cloud --model deepseek-v4-flash -p'
@@ -59,7 +59,11 @@ alias grubb='sudo grub-mkconfig -o /boot/grub/grub.cfg'
alias nlof="~/scripts/fzf_listoldfiles.sh"
# alias fman="compgen -c | fzf | xargs man"
# tmux
## herdr
# alias heh="herdr && herdr-spreader apply [--file ~/.config/herdr/plugins/config/herdr-spreader/home.yml]"
# alias hec="herdr-spreader apply [--file ~/.config/herdr/plugins/config/herdr-spreader/code.yml]"
## tmux
alias ta='tmux attach'
# alias tn='tmux new'
alias tnh='tmuxp load ~/dotfiles/tmux/.tmuxp/home.yaml'