diff --git a/herdr/.config/herdr/release-notes.json b/herdr/.config/herdr/release-notes.json index c4c7b7f..07217ce 100644 --- a/herdr/.config/herdr/release-notes.json +++ b/herdr/.config/herdr/release-notes.json @@ -1,5 +1,5 @@ { - "version": "0.8.2", - "body": "### Added\n- CLI help now points coding agents to Herdr's plain-text guide, documentation index, and built-in control skill.\n- Added Qwen Code detection for idle, working, and user-confirmation states, plus optional native session restore. (#2730, #2743)\n- Herdr now keeps the outer terminal window title in sync with the session through `ui.window_title`, so window managers and terminal tab bars show the active workspace and the host the panes actually run on. (#2627, thanks @dhh)\n- The desktop tab bar now has configurable right-aligned status entries for zoom state, hostname, date/time, literal text, and asynchronously refreshed command output.\n- Optional `keys.move_tab_previous` and `keys.move_tab_next` bindings now reorder the active tab in place, wrapping at either end. (#2561, thanks @dhh)\n- Optional `keys.resize_pane_left`, `keys.resize_pane_down`, `keys.resize_pane_up`, and `keys.resize_pane_right` bindings now resize the focused pane in one keystroke without entering resize mode. (#2558, thanks @dhh)\n- Windows clients can now use `herdr --remote` to attach to Herdr servers on Linux and macOS. (#2329)\n- Cursor Agent CLI, MastraCode, Hermes Agent, and Grok CLI integrations now install and run natively on Windows.\n- Panes can now route normal right-click gestures to mouse-reporting applications through the pane menu, `herdr pane input`, `pane.input.set`, or the `pane split --right-click pane` launch option.\n- `ui.pane_outer_borders` can now keep or hide the outside edges of split-pane borders independently from internal dividers. (#2535, thanks @dhh)\n- `theme.custom.sidebar_bg` can now give the desktop sidebar its own background without changing built-in theme defaults.\n- Settings and `ui.status_indicators = \"symbols\"` can now use distinct static shapes for blocked, working, done, idle, and unknown agent states. (#2260)\n- Navigate-mode selection rows now use a dedicated per-theme cursor color, customizable via `theme.custom.selection_bg`, so the cursor stays distinguishable from the active Space and Agent highlight.\n- Copy mode now supports `B`, `E`, and `W` motions over whitespace-delimited big words. (#2270, thanks @jplew)\n- The plugin marketplace now discovers valid manifests at repository roots and subdirectories, groups multiple plugins under each repository, and publishes their versions and exact default-branch commits.\n\n### Changed\n- Windows support is now generally available through stable releases and uses the stable update channel by default. Existing preview installs stay on preview until explicitly switched.\n- Headless servers now use a configurable 120×40 virtual terminal instead of 80×24 when no client is attached, giving newly created panes a practical default size. (#2828)\n- Desktop tab labels are now centered in their tabs, so the active-tab highlight has symmetric padding. (#2570, thanks @dhh)\n- Experimental pane graphics now support bounded named layers, acknowledged full-RGBA primary-layer direct file frames on audited local terminals, owned BGRA fallback, exact pixel mouse input, and placement-only resize replay.\n\n### Fixed\n- Unix CLI commands now exit quietly when a downstream pipe closes instead of panicking with exit 101. (#2994)\n- The terminal theme now keeps the active Space row fill visible when the Navigate cursor lands on it, in both expanded and collapsed sidebars. (#2987)\n- Busy multi-pane sessions now avoid redundant hidden-pane wakeups and full terminal-state formatting in pane-scaled paths, preventing CPU regressions from high-rate background output, scrollbars, and enhanced keyboard modes. (#2550, #2901, #2962)\n- Chinese IME commits now reach panes on macOS when the focused application requests printable key-release events. (#2924)\n- Windows now recognizes `Ctrl+1` through `Ctrl+9` keybindings instead of decoding those key records as control characters. (#2910)\n- PowerShell panes now keep their process-reported working directory synchronized with the shell's logical location. (#2879, thanks @Pimpmuckl)\n- Foreground typing no longer waits behind render cadence consumed by output from panes in hidden tabs. (#2890)\n- The Windows ARM64 installer now waits for x64 emulation to release the verified executable before activating the downloaded release. (#2916)\n- On Unix, Ctrl-click URL openers are now reaped after they exit, preventing defunct child processes from accumulating on long-running servers. (#2903)\n- Windows updates now reuse only verified local packages, avoiding security-tool download blocks while preserving checksum validation. (#2751, #2816, thanks @Pimpmuckl)\n- Herdr no longer sends the full OSC 4 palette query burst under WSL, preventing reply fragments from leaking into the shell through ConPTY. (#2440)\n- Qwen Code panes now use locale-independent terminal-title states and localized confirmation fallbacks, preventing active or blocked turns from appearing idle. (#2756)\n- Claude Code panes now recognize and strip every half-circle title spinner frame, preventing active turns from appearing idle and keeping titles clean. (#2707, #2709, #2760, #2762)\n- Copilot prompts now focus the target pane before sending input, so background panes do not silently drop prompts. (#1698, #2734, thanks @xkrogen)\n- Agent hooks now invoke the running Herdr binary instead of whichever binary appears first on `PATH`. (#2722, thanks @Pimpmuckl)\n- Closing a terminal running `herdr --remote` no longer produces a local client core dump while the remote session stays alive. (#2424)\n- Active Space and Agent rows now use dedicated theme colors that remain visible when the host terminal background matches the selected Herdr theme. (#2792)\n- `agent prompt` now rejects agents already waiting at approval or question dialogs with `agent_blocked`, without sending text or Enter. (#2788)\n- `agent start` now waits for new pane shells and first-run agent prompts to become ready instead of racing them or reporting premature readiness. (#2410, #2537, #2773, #2774, thanks @Pimpmuckl)\n- `prefix+e` now preserves logical lines when opening soft-wrapped scrollback in an editor. (#2733)\n- Alternate-screen pane reads avoid unnecessary ANSI formatting work, reducing read latency for TUI agents. (#2387, #2426)\n- Tab bar clicks are now properly registered when using Ghostty in native fullscreen. (#796, #2736, thanks @HackAttack)\n- Prefix keybindings now disambiguate layout-aware shifted punctuation, so a shifted `\\` no longer triggers `prefix+|` on keyboard layouts where the same key produces both characters. (#2674)\n- Remote clients now continue redrawing at very large terminal sizes instead of freezing when a full ANSI frame exceeds the transport limit. (#2670)\n- Windows Git status refreshes now reuse repository configuration instead of repeatedly triggering security scans for WSL repositories. (#2643, #2688, thanks @Pimpmuckl)\n- Windows idle agent detection now shares process snapshots across panes, reducing CPU use in sessions with many Git Bash panes. (#2459, #2494, #2642, #2651, thanks @Pimpmuckl)\n- Embedded bare repositories now derive the correct repository name and worktree location. (#2657, #2660)\n- Root-repository workspaces now retain their saved labels across update restarts. (#2594, #2727)\n- Elevated Windows panes no longer expose PowerShell's administrator decoration as the terminal title. (#2632, thanks @Pimpmuckl)\n- Modal name inputs now anchor the host IME cursor to the text field instead of the pane behind the dialog. (#1755, #2569, thanks @kataokatsuki)\n- Session Navigator movement ignores modified `j`, `k`, and arrow keys instead of consuming unrelated pane input. (#1981, #2377, thanks @atomsbaza)\n- OpenCode panes now track the root conversation selected in their own TUI for native restore without adopting activity from attached clients. (#2450)\n- Server stop requests now bypass pane and API traffic, preventing busy sessions from blocking shutdown or admitting a client while shutdown is pending. (#2612)\n- Fish `Ctrl+Alt` keybindings now work in panes after legacy Alt-prefixed control bytes are decoded with both modifiers. (#2514)\n- Windows recent-history reads no longer perform redundant snapshots, restoring `recent` output while reducing read cost. (#962, #2474, thanks @Pimpmuckl)\n- The Windows installer now activates releases with an atomic directory swap, preventing interrupted updates from leaving an empty release directory. (#2356, #2530, thanks @Pimpmuckl)\n- `herdr config check` now reports unknown built-in theme names instead of silently accepting them. (#2452)\n- macOS `herdr --remote` clients now keep the accepted bridge socket blocking, preventing an immediate disconnect after the protocol handshake. (#2478, thanks @mathijshenquet)\n- Prefix keybindings now preserve Shift in WezTerm Kitty keyboard mode, so commands such as config reload no longer trigger their unshifted action. (#2435)\n- Pane applications now receive modifyOtherKeys releases and shifted alternate reports without dropped releases or leaked Ctrl+Tab sequences. (#2296, #2302, #2303)\n- Detaching now restores host keyboard reporting, preventing enhanced keyboard sequences from leaking into the shell after Herdr exits. (#2393, #2395)\n- Default mouse reports are decoded instead of leaking escape bytes into the focused pane. (#2309, #2312)\n- BEL characters emitted by pane programs now reach the outer terminal so its audible and visual bell settings can react. (#2453)\n- Stable direct installs, self-updates, and remote helper downloads now require and verify the SHA-256 digest published for each GitHub release asset.\n- `pane read` and `pane wait-output` now accept `--flag=value` and options before or after the pane ID. (#2183, thanks @KyleCo76)\n- `pane current`, `pane get`, and `pane layout --current` now resolve the calling pane instead of another client's focused pane. (#2297, #2298)\n- Configs containing the retired Herdr-written `ui.agent_panel_scope` setting no longer report it as an unknown key after upgrades. (#2292)\n- Claude Code confirmation prompts using `Enter to confirm · Esc to cancel` now report `blocked` instead of `idle`. (#2268)\n- Kiro CLI prompts now have positive idle detection instead of remaining in an unknown state. (#2301, thanks @smileynet)\n- Cursor's Run Everything footer no longer produces a false blocked state. (#1763, #2220, thanks @Nagi-ovo)\n- Versioned Python agent wrappers such as `python3.13` are now detected. (#2188, thanks @plarson)\n- Pi state reporting now ignores RPC, JSON, and print-mode helper processes that are not interactive TUI sessions. (#2159, thanks @rhjoh)\n- Collapsed workspace and Agent rows keep their status and active indicators visible, including with ten or more workspaces. (#2216, #2239, #2382, thanks @ianks)\n- Sidebar agent lists keep scrolling when differently sized clients are attached to the same session. (#2255, thanks @aiworkflowpro)\n- The Session Navigator now searches renamed single-tab labels. (#2320)\n- New splits return focus to the pane they were opened from. (#2266, thanks @jondkinney)\n- Halfwidth Katakana voiced and semi-voiced marks now render in the correct cell. (#2257, thanks @kazunari-kamata)\n- Ctrl-clicking a URL no longer forwards its release after the browser takes host focus, preventing duplicate tabs. (#2290, #2291, thanks @kataokatsuki)\n- OSC 4 palette overrides now render with the requested color instead of forwarding the palette index. (#2162, thanks @hamidi-dev)\n- Host terminal appearance is re-queried when focus returns, keeping automatic light and dark themes current. (#2416, #2417)\n- The bundled and installable Herdr agent skill now matches this stable release's CLI and lifecycle behavior. (#2847)\n- `pane send-keys` and `agent send-keys` now preserve Shift when sending `shift+tab`, allowing agent permission modes to be cycled programmatically. (#1561, thanks @keinstn and @tomohisa)", + "version": "0.9.0", + "body": "### Added\n- Manage Local and saved SSH machines from one Herdr window, with a combined agent list, machine-scoped navigation, notifications, and automatic reconnects. Add and manage connections with `herdr machine`; a disconnected machine does not interrupt the others. (#3670)\n- Multiple clients can now view different workspaces and tabs independently. Different tabs fit their viewing clients; when clients share a tab, the last one to interact with it controls its size. (#3526)\n- Added Muse agent detection for idle, working, approval, and question states. (#2489, thanks @ohk)\n- Sidebar text and metadata tokens can now change color, boldness, and dimming based on their values, using ordered text or numeric rules. (#3693)\n- Custom themes can now define separate light and dark color overrides when automatic theme switching is enabled. (#2324, thanks @aneym)\n- `ui.pane_borders = \"always\"` can now frame a single pane when outer borders are enabled. `\"auto\"` keeps split-only borders, `\"off\"` hides them, and existing boolean values keep working. (#3234, thanks @rsmdt)\n\n### Changed\n- Client updates can now leave compatible servers and their running agents untouched. Missing server features disable only the affected action instead of preventing connection. Servers older than endpoint generation 1 need a one-time upgrade. Replacing a remote server asks before stopping its pane processes, with No as the default answer; experimental handoff remains opt-in. (#3509)\n- The terminal UI now runs in each client, reducing redraw work in busy multi-client sessions and keeping themes, menus, copy mode, and other presentation settings local to the viewing machine. (#3487)\n- Idle terminal scrollback now uses less memory without reducing retained history or changing reads and resizing. (#3556)\n- Pane images and the graphics API are now enabled by default in compatible terminals. Set `terminal.kitty_graphics = false` to disable them; the old `experimental.kitty_graphics` setting remains accepted.\n- Closing a primary workspace with open worktree workspaces now requires explicit group intent: `workspace close --group` or `workspace.close` with `close_group: true`. Otherwise the whole group stays open. (#2874)\n- New lifecycle event subscriptions now start with live events rather than replaying retained history. API clients should subscribe before taking their initial snapshot to avoid missing changes. (#1270)\n\n### Fixed\n- Mouse selections now stay visible and copyable while terminal output continues, including with automatic copying disabled. Ctrl+C and Cmd+C copy a selection even before a delayed mouse release, and a failed copy no longer interrupts the agent. Selection highlights also remain visible when host colors are unavailable. (#3100, #2708, #3684, thanks @moret and @Pimpmuckl)\n- Wayland clipboard copies no longer freeze Herdr while `wl-copy` serves the selection. (#3014)\n- Live handoff now preserves mouse forwarding for running pane applications. (#3000, thanks @xkrogen)\n- Interrupted pane exits during host shutdown no longer replace the saved session with an empty session or a new default workspace. (#3415)\n- SSH clients whose terminal disappears now detach instead of resizing running panes to a fallback size and triggering expensive history reflow. (#3519)\n- Focusing a workspace now scrolls the sidebar to keep it visible. (#3554)\n- Removing a background worktree workspace no longer changes focus to its parent. Windows worktrees can also be removed while their agent panes are running, without a replacement shell locking the checkout again. (#3098, #3532)\n- Worktree commands can now trust a verified repository for one request with `--trust-repository`, including accessible Windows repositories owned by another SID, without changing global Git configuration. (#3044)\n- Oversized Kitty images no longer prevent smaller images from appearing, and image replacements no longer redraw or disappear one row at a time. Direct graphics stay bound to the client that owns them. (#3033, #3166, #3549, thanks @kataokatsuki)\n- Pixel mouse coordinates remain correct when pane applications reassert SGR mouse reporting. (#3295)\n- Prefix bindings such as `prefix+|` now recognize characters produced by macOS Option and custom keyboard layouts, while exact chords keep priority. Arrow navigation also works when terminals such as Alacritty attach text to special-key reports. (#3079, #3328, thanks @vlcinsky)\n- Direct terminal attaches now honor `ui.mouse_capture` and preserve multiline pastes as one paste instead of submitting each line separately. (#2992, #3054)\n- `agent prompt` now reliably sends the prompt and Enter before reporting successful submission. With `--wait`, prompts sent to a non-working agent require observed working or blocked activity, so unrelated state changes cannot complete the wait. Pending submissions fail cleanly if the terminal exits. (#3506, #3685)\n- Long Codex prompts on Windows now wait long enough for the text to arrive before submitting Enter. Expired queued submissions are rejected before typing starts. (#3187)\n- Recent pane reads now include output that has not yet scrolled off the viewport, instead of returning empty text. (#3444)\n- `pane report-agent` and `pane report-agent-session` now accept options before the pane ID and `--option=value` arguments. (#2926)\n- `herdr agent explain --file` now reports unreadable files as structured JSON rather than raw Rust errors. (#3022)\n- Running named servers now pick up detection manifests downloaded by another server without needing a restart. (#2711)\n- Agents that set their terminal title or progress once at startup no longer lose that detection signal when first recognized. (#3326, thanks @aneym)\n- Claude Code now recognizes visible turn and background-agent activity when terminal titles are unavailable, and remains working while background MCP tasks continue. An idle prompt with only a background shell running no longer stays working. (#1630, #3090, #3414)\n- Claude Code MCP questions and Bash approval prompts now stay blocked while waiting for an answer, including different option layouts and cursor positions. (#3283, #3383, #2650, #3615, thanks @caner-akca)\n- Claude Code hooks now ignore Cursor's Claude-compatible events, preventing Cursor sessions from being saved as Claude sessions. (#2832)\n- Codex no longer appears blocked because earlier output quotes a confirmation prompt, and its startup update dialog now correctly reports blocked. Explicitly resumed sessions are saved before the first prompt, so they survive a server restart. (#3301, #3632, #3517)\n- GitHub Copilot CLI now stays working while it waits for background agents. (#3291, #3403, thanks @LaneBirmingham)\n- Oh My Pi now stays working through already-scheduled continuations instead of briefly reporting idle and ending `agent wait` early. (#2851, #3122, thanks @caner-akca and @taoeffect)\n- OpenCode child-agent permission and question prompts no longer leave the parent pane stuck as blocked after work continues. (#3669, thanks @markjaquith)\n- Foreground working-directory reads now follow the foreground process-group leader rather than a descendant, keeping new panes in the intended directory. (#3270, #3386, thanks @caner-akca)\n- Oversized or unreadable Git ref files no longer cause repeated heavy status reads or make workspaces use stale ref data. (#3343, #3373, thanks @caner-akca)\n- Tab bar status commands no longer display stray ANSI escape fragments, and host palette replies are applied together to avoid redundant updates. (#3001, #3580)\n- Unix plugin panes now keep `PWD` aligned with their requested working directory unless explicitly overridden. Windows plugin panes now resolve relative commands from the plugin root and handle launch paths correctly. (#2984, #3024)\n- Plugin link handlers now receive matching OSC 8 `file://` clicks; unmatched file links still do not launch the system URL opener. (#2941)\n- Windows panes now preserve non-US shifted text, physical modified keys, Ctrl+/, and dead-key composition in Kitty keyboard applications. (#3045, #2954, #3546, #3503)\n- Windows OpenSSH sessions now receive mouse input reliably without dropped reports or escape fragments leaking into panes. Remote and LF-only multiline pastes retain their newlines and order. (#2810, #3459, #3209, #3172)\n- Windows panes now keep Cursor and bundled Pi launches detected, and PowerShell agent shims accept native arguments. Codex no longer inherits Windows Terminal identity that caused excessive repainting and scroll jumps during resume. (#3032, #3205, #3455, #3127, thanks @Pimpmuckl)\n- Antigravity hooks now run correctly on Windows, and Devin integration setup uses the correct Windows config directory. (#3348, #2724)\n- Windows installations no longer need a separately installed Visual C++ runtime. Installer paths remain discoverable in OpenSSH sessions, and malformed inherited environment values are rejected safely. (#3089, #3611, #3430)\n- Windows users whose endpoint security blocks fileless PowerShell installation can use a local `install.cmd` bootstrap with checksum-verified downloads. (#2751)\n- WSL remote sessions can now paste images from the Windows clipboard. (#3376)\n- Nix installations now fetch crates through the static CDN, avoiding download failures from the previous endpoint. (#3505)\n- The Unix installer now explains that Android/Termux is unsupported instead of installing a Linux binary that cannot run there. (#3571)\n\n### Removed\n- Removed the single-process `--no-session` mode. All terminal UI launches now attach to a background server; detach leaves panes running, while `server stop` ends the session.", "show_on_startup": true } \ No newline at end of file diff --git a/herdr/.config/herdr/sessions/home/session-history.json b/herdr/.config/herdr/sessions/home/session-history.json index e05d832..8ca8deb 100644 --- a/herdr/.config/herdr/sessions/home/session-history.json +++ b/herdr/.config/herdr/sessions/home/session-history.json @@ -3,47 +3,11 @@ "workspaces": [ { "tabs": [ - { - "panes": { - "1": { - "ansi": "\u001b[0m\u001b[38;5;5march liph \u001b[0m\u001b[38;5;4m~\u001b[0m\r\n\u001b[0m\u001b[38;5;5m❯\u001b[0m ", - "lines": 2 - } - } - } - ] - }, - { - "tabs": [ - { - "panes": { - "3": { - "ansi": "\u001b[0m\u001b[38;5;6m~\u001b[0m\r\n \u001b[0m\u001b[38;5;4m\u001b[0m\u001b[7m\u001b[38;5;4m liph \u001b[0m\u001b[38;5;4m\u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m\u001b[0m\u001b[7m\u001b[38;5;4m .atuin \u001b[0m\u001b[38;5;4m\u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;5;6m/home/liph/\u001b[0m\u001b[1m\u001b[38;5;4m.atuin\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4m.cache \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[1m\u001b[38;5;8m└── \u001b[0m\u001b[38;5;4m \u001b[0m\u001b[1m\u001b[38;5;4mlogs\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4m.cargo \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[1m\u001b[38;5;8m ├── \u001b[0m search.log.2026-09-03\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;255;152;0m \u001b[0m\u001b[38;5;4m.config \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[1m\u001b[38;5;8m ├── \u001b[0m search.log.2026-09-04\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4m.gnupg \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[1m\u001b[38;5;8m ├── \u001b[0m search.log.2026-09-06\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4m.local \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[1m\u001b[38;5;8m └── \u001b[0m search.log.2026-09-07\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4m.locale \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4m.mozilla \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4m.npm \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;158;158;158m \u001b[0m\u001b[38;5;4m.pi\u001b[0m\u001b[3m\u001b[38;5;4m -> dotfiles/pi/.pi\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4m.pyenv \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4m.rustup \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;158;158;158m \u001b[0m\u001b[38;5;4m.ssh\u001b[0m\u001b[3m\u001b[38;5;4m -> dotfiles/ssh/.\u001b[0m\u001b[38;5;4m… \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;158;158;158m \u001b[0m\u001b[38;5;4maerc\u001b[0m\u001b[3m\u001b[38;5;4m -> dotfiles/aerc/\u001b[0m\u001b[38;5;4m… \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;158;158;158m \u001b[0m\u001b[38;5;4maerc_back\u001b[0m\u001b[3m\u001b[38;5;4m -> dotfiles/\u001b[0m\u001b[38;5;4m… \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;158;158;158m \u001b[0m\u001b[38;5;4mcloud\u001b[0m\u001b[3m\u001b[38;5;4m -> /mnt/tank/clo\u001b[0m\u001b[38;5;4m… \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;158;158;158m \u001b[0m\u001b[38;5;4mcode\u001b[0m\u001b[3m\u001b[38;5;4m -> /mnt/tank/code\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;0;188;212m \u001b[0m\u001b[38;5;4mDocuments \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mdotfiles \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;0;188;212m \u001b[0m\u001b[38;5;4mDownloads \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;158;158;158m \u001b[0m\u001b[38;5;4mpaperless\u001b[0m\u001b[3m\u001b[38;5;4m -> /mnt/tank\u001b[0m\u001b[38;5;4m… \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;137;224;81m \u001b[0m.aliases.zsh\u001b[0m\u001b[3m -> dotfil\u001b[0m… \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;255;255;255m \u001b[0m.bash_history \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;255;255;255m \u001b[0m.bash_logout \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;137;224;81m \u001b[0m.bash_profile \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;137;224;81m \u001b[0m.bashrc \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;137;224;81m \u001b[0m.export.zsh\u001b[0m\u001b[3m -> dotfile\u001b[0m… \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;245;77;39m \u001b[0m.gitconfig \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;255;255;255m \u001b[0m.gtkrc-2.0 \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;137;224;81m \u001b[0m.plugins.zsh\u001b[0m\u001b[3m -> dotfil\u001b[0m… \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;255;255;255m \u001b[0m.wget-hsts \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;255;255;255m \u001b[0m.zcompdump \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;137;224;81m \u001b[0m.zshrc\u001b[0m\u001b[3m -> dotfiles/zsh\u001b[0m… \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n\u001b[0m\u001b[38;2;152;195;121m\u001b[0m\u001b[38;5;0m\u001b[48;2;152;195;121m NORMAL \u001b[0m\u001b[38;2;152;195;121m\u001b[48;2;90;96;120m 8B \u001b[0m\u001b[38;2;90;96;120m \u001b[0m\u001b[38;2;152;195;121m.atuin\u001b[0m\u001b[38;2;90;96;120m  \u001b[0m\u001b[38;5;8m 0 󰆐 0 \u001b[0m\u001b[38;2;90;96;120m2026-09-03 12:02  \u001b[0m\u001b[38;5;2md\u001b[0m\u001b[38;5;3mr\u001b[0m\u001b[38;5;1mw\u001b[0m\u001b[38;5;6mx\u001b[0m\u001b[38;5;8m------\u001b[0m\u001b[38;2;90;96;120m \u001b[0m\u001b[38;2;152;195;121m\u001b[48;2;90;96;120m Top \u001b[0m\u001b[38;5;0m\u001b[48;2;152;195;121m 1/33 \u001b[0m\u001b[38;2;152;195;121m\u001b[0m", - "lines": 35 - }, - "2": { - "ansi": "neo\r\n\u001b[0m\u001b[38;5;5m❯ \u001b[0m\u001b[38;5;2mneo\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;6m -` \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m .o+` \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `ooo/ \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `+oooo: \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `+oooooo: \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m -+oooooo+: \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `/:-:++oooo+: \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `/++++/+++++++: \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `/++++++++++++++: \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `/+++ooooooooooooo/` \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m ./ooosssso++osssssso+` \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m .oossssso-````/ossssss+` \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m -osssssso. :ssssssso. \u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m :osssssss/ osssso+++.\u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m /ossssssss/ +ssssooo/-\u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `/ossssso+/:- -:/+osssso\u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `+sso+:-` `.-/+o:\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;6m `++:. `\u001b[0m\u001b[38;5;7m\u001b[48;5;7m \u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;6m .` \u001b[0m\u001b[38;5;15m\u001b[48;5;15m \u001b[0m\r\n\r\n\r\n\r\n\u001b[0m\u001b[38;5;5march liph \u001b[0m\u001b[38;5;4m~\u001b[0m\r\n\u001b[0m\u001b[38;5;5m❯\u001b[0m ", - "lines": 26 - } - } - }, - { - "panes": { - "5": { - "ansi": "mc\r\n\u001b[0m\u001b[38;5;5m❯ \u001b[0m\u001b[1m\u001b[38;5;1mmc\u001b[0m\r\nzsh: command not found: musikcube\r\n\r\n\u001b[0m\u001b[38;5;5march liph \u001b[0m\u001b[38;5;4m~\u001b[0m\r\n\u001b[0m\u001b[38;5;1m❯\u001b[0m ", - "lines": 6 - }, - "4": { - "ansi": "\u001b[0m\u001b[38;5;5march liph \u001b[0m\u001b[38;5;4m~\u001b[0m\r\n\u001b[0m\u001b[38;5;5m❯\u001b[0m ", - "lines": 2 - } - } - }, { "panes": { "6": { - "ansi": "\u001b[0m\u001b[1m\u001b[38;2;234;154;151m\u001b[48;2;35;33;54m phil \u001b[0m\u001b[48;2;35;33;54m spam proton \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m [..] \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m [..] \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\u001b[1m\u001b[38;2;35;33;54m\u001b[48;2;35;33;54m│\u001b[0m\u001b[38;2;110;106;134m \u001b[0m\r\n\u001b[0m\u001b[1m\u001b[2m\u001b[38;2;156;207;216m\u001b[48;2;35;33;54m[phil] Connecting... | ~ \u001b[0m", - "lines": 37 + "ansi": "\u001b[0m\u001b[38;5;5march liph \u001b[0m\u001b[38;5;4m~\u001b[0m\r\n\u001b[0m\u001b[38;5;5m❯\u001b[0m ", + "lines": 2 } } } @@ -54,8 +18,48 @@ { "panes": { "7": { - "ansi": "yazi\r\n\u001b[0m\u001b[38;5;5m❯ \u001b[0m\u001b[38;5;2myazi\u001b[0m\r\n\r\n\u001b[0m\u001b[38;5;5march liph \u001b[0m\u001b[38;5;4m~/dotfiles\u001b[0m\u001b[38;5;3m main* \u001b[0m\r\n\u001b[0m\u001b[38;5;5m❯\u001b[0m ", - "lines": 5 + "ansi": "neo\r\n\u001b[0m\u001b[38;5;5m❯ \u001b[0m\u001b[38;5;2mneo\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;6m -` liph\u001b[0m@\u001b[0m\u001b[1m\u001b[38;5;6march\u001b[0m \r\n\u001b[0m\u001b[1m\u001b[38;5;6m .o+` \u001b[0m--------- \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `ooo/ OS\u001b[0m: Arch Linux x86_64 \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `+oooo: Host\u001b[0m: 20KS006FMZ ThinkPad E580 \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `+oooooo: Kernel\u001b[0m: 6.18.50-1-lts \r\n\u001b[0m\u001b[1m\u001b[38;5;6m -+oooooo+: Uptime\u001b[0m: 7 hours, 43 mins \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `/:-:++oooo+: Packages\u001b[0m: 987 (pacman) \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `/++++/+++++++: Shell\u001b[0m: zsh 5.9.2 \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `/++++++++++++++: Resolution\u001b[0m: 1920x1080 \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `/+++ooooooooooooo/` DE\u001b[0m: Niri \r\n\u001b[0m\u001b[1m\u001b[38;5;6m ./ooosssso++osssssso+` Terminal\u001b[0m: WezTerm \r\n\u001b[0m\u001b[1m\u001b[38;5;6m .oossssso-````/ossssss+` CPU\u001b[0m: Intel i7-8550U (8) @ 4.000GHz \r\n\u001b[0m\u001b[1m\u001b[38;5;6m -osssssso. :ssssssso. GPU\u001b[0m: Intel Kaby Lake-R GT2 [UHD Graphics 620 \r\n\u001b[0m\u001b[1m\u001b[38;5;6m :osssssss/ osssso+++. GPU\u001b[0m: AMD ATI Radeon 540/540X/550/550X / RX 5 \r\n\u001b[0m\u001b[1m\u001b[38;5;6m /ossssssss/ +ssssooo/- Memory\u001b[0m: 4398MiB / 15752MiB \r\n\u001b[0m\u001b[1m\u001b[38;5;6m `/ossssso+/:- -:/+osssso+-\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;6m `+sso+:-` `.-/+oso: \u001b[0m\u001b[38;5;0m\u001b[48;5;0m \u001b[0m\u001b[38;5;1m\u001b[48;5;1m \u001b[0m\u001b[38;5;2m\u001b[48;5;2m \u001b[0m\u001b[38;5;3m\u001b[48;5;3m \u001b[0m\u001b[38;5;4m\u001b[48;5;4m \u001b[0m\u001b[38;5;5m\u001b[48;5;5m \u001b[0m\u001b[38;5;6m\u001b[48;5;6m \u001b[0m\u001b[38;5;7m\u001b[48;5;7m \u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;6m `++:. `-/+/ \u001b[0m\u001b[38;5;8m\u001b[48;5;8m \u001b[0m\u001b[38;5;9m\u001b[48;5;9m \u001b[0m\u001b[38;5;10m\u001b[48;5;10m \u001b[0m\u001b[38;5;11m\u001b[48;5;11m \u001b[0m\u001b[38;5;12m\u001b[48;5;12m \u001b[0m\u001b[38;5;13m\u001b[48;5;13m \u001b[0m\u001b[38;5;14m\u001b[48;5;14m \u001b[0m\u001b[38;5;15m\u001b[48;5;15m \u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;6m .` `/\u001b[0m\r\n\r\n\r\n\u001b[0m\u001b[38;5;5march liph \u001b[0m\u001b[38;5;4m~\u001b[0m\r\n\u001b[0m\u001b[38;5;5m❯\u001b[0m ", + "lines": 25 + }, + "8": { + "ansi": "\u001b[0m\u001b[38;5;6m~\u001b[0m\r\n \u001b[0m\u001b[38;5;4m\u001b[0m\u001b[7m\u001b[38;5;4m liph \u001b[0m\u001b[38;5;4m\u001b[0m\u001b[38;5;7m│ \u001b[0mLoading... \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ │\u001b[0m\r\n\u001b[0m\u001b[38;2;152;195;121m\u001b[0m\u001b[38;5;0m\u001b[48;2;152;195;121m NORMAL \u001b[0m\u001b[38;2;152;195;121m\u001b[48;2;90;96;120m 0B \u001b[0m\u001b[38;2;90;96;120m \u001b[0m\u001b[38;2;152;195;121mEmpty dir\u001b[0m\u001b[38;2;90;96;120m  \u001b[0m\u001b[38;5;8m 0 󰆐 0 \u001b[0m\u001b[38;2;90;96;120m \u001b[0m\u001b[38;2;152;195;121m\u001b[48;2;90;96;120m Top \u001b[0m\u001b[38;5;0m\u001b[48;2;152;195;121m 0/0 \u001b[0m\u001b[38;2;152;195;121m\u001b[0m", + "lines": 35 + } + } + }, + { + "panes": { + "10": { + "ansi": "mc\r\n\u001b[0m\u001b[38;5;5m❯ \u001b[0m\u001b[1m\u001b[38;5;1mmc\u001b[0m\r\nzsh: command not found: musikcube\r\n\r\n\u001b[0m\u001b[38;5;5march liph \u001b[0m\u001b[38;5;4m~\u001b[0m\r\n\u001b[0m\u001b[38;5;1m❯\u001b[0m ", + "lines": 6 + }, + "9": { + "ansi": "\u001b[0m\u001b[38;5;5march liph \u001b[0m\u001b[38;5;4m~\u001b[0m\r\n\u001b[0m\u001b[38;5;5m❯\u001b[0m ", + "lines": 2 + } + } + }, + { + "panes": { + "11": { + "ansi": "aerc\r\n\u001b[0m\u001b[38;5;5m❯ \u001b[0m\u001b[38;5;2maerc\u001b[0m\r\n\u001b[0m\u001b[1m\u001b[38;5;3mFound existing alias for \u001b[0m\u001b[1m\u001b[38;5;5m\"aerc\"\u001b[0m\u001b[1m\u001b[38;5;3m. You should use: \u001b[0m\u001b[1m\u001b[38;5;5m\"a\"\u001b[0m", + "lines": 3 + } + } + } + ] + }, + { + "tabs": [ + { + "panes": { + "12": { + "ansi": "\u001b[0m\u001b[38;5;6m~/dotfiles\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m\u001b[0m\u001b[7m\u001b[38;5;4m .git \u001b[0m\u001b[38;5;4m\u001b[0m\u001b[38;5;7m│ \u001b[0mNo items\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4maerc \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mansible \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4matuin \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mbackgrounds \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mgarmin \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mghostty \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mherdr \u001b[0m\u001b[38;5;3m \u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mherdr_1 \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mhypr \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mkanata \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mkitty \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mniri \u001b[0m\u001b[38;5;5m? \u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mnushell \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mnvim \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mohmyposh \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mopencode \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mparu \u001b[0m\u001b[38;5;3m \u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mpi \u001b[0m\u001b[38;5;3m \u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mscripts \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mssh \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mstarship \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mswaync \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mtmux \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mtridactyl \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mwaybar \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mwezterm \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mwofi \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4myazi \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│\u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;2;3;169;244m \u001b[0m\u001b[38;5;4mzshrc \u001b[0m\u001b[38;5;3m \u001b[0m\u001b[38;5;4m \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;245;77;39m \u001b[0m.gitignore \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;122;13;33m \u001b[0mpackage-lock.json \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n \u001b[0m\u001b[38;5;7m│ \u001b[0m\u001b[38;2;232;39;75m \u001b[0mpackage.json \u001b[0m\u001b[38;5;7m│\u001b[0m\r\n\u001b[0m\u001b[38;2;152;195;121m\u001b[0m\u001b[38;5;0m\u001b[48;2;152;195;121m NORMAL \u001b[0m\u001b[38;2;152;195;121m\u001b[48;2;90;96;120m 168B \u001b[0m\u001b[38;2;90;96;120m \u001b[0m\u001b[38;2;152;195;121m.git\u001b[0m\u001b[38;2;90;96;120m  \u001b[0m\u001b[38;5;8m 0 󰆐 0 \u001b[0m \u001b[0m\u001b[38;2;90;96;120m2026-09-09 07:28  \u001b[0m\u001b[38;5;2md\u001b[0m\u001b[38;5;3mr\u001b[0m\u001b[38;5;1mw\u001b[0m\u001b[38;5;6mx\u001b[0m\u001b[38;5;3mr\u001b[0m\u001b[38;5;8m-\u001b[0m\u001b[38;5;6mx\u001b[0m\u001b[38;5;3mr\u001b[0m\u001b[38;5;8m-\u001b[0m\u001b[38;5;6mx\u001b[0m\u001b[38;2;90;96;120m \u001b[0m\u001b[38;2;152;195;121m\u001b[48;2;90;96;120m Top \u001b[0m\u001b[38;5;0m\u001b[48;2;152;195;121m 1/34 \u001b[0m\u001b[38;2;152;195;121m\u001b[0m", + "lines": 35 + }, + "13": { + "ansi": "╭─[1]─Status──────────────────────────╮╮\r\n│\u001b[0m\u001b[38;5;2m✓\u001b[0m dotfiles → main │▐\r\n╰─────────────────────────────────────╯│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m╭─[2]─Files \u001b[0m- Worktrees - Submodules\u001b[0m\u001b[1m\u001b[38;5;2m──╮\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m\u001b[1m\u001b[48;5;4m▼ / \u001b[0m\u001b[1m\u001b[38;5;2m▐\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m ▼ herdr/.config/herdr \u001b[0m\u001b[1m\u001b[38;5;2m▐\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m \u001b[0m\u001b[38;5;1mM\u001b[0m release-notes.json \u001b[0m\u001b[1m\u001b[38;5;2m▐\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m ▼ sessions/home \u001b[0m\u001b[1m\u001b[38;5;2m▐\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m \u001b[0m\u001b[38;5;1mM\u001b[0m session-history.json \u001b[0m\u001b[1m\u001b[38;5;2m▐\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m \u001b[0m\u001b[38;5;1mM\u001b[0m session.json \u001b[0m\u001b[1m\u001b[38;5;2m▐\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m ▼ niri/.config/niri \u001b[0m\u001b[1m\u001b[38;5;2m▐\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m \u001b[0m\u001b[38;5;1mM\u001b[0m config.kdl \u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m \u001b[0m\u001b[38;5;1m??\u001b[0m config.kdl.bak2 \u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m \u001b[0m\u001b[38;5;1m??\u001b[0m config.kdl.bak3 \u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m \u001b[0m\u001b[38;5;1mM\u001b[0m paru \u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m ▼ pi/.pi/agent \u001b[0m\u001b[1m\u001b[38;5;2m│\u001b[0m│\r\n\u001b[0m\u001b[1m\u001b[38;5;2m╰─────────────────────────────1 of 22─╯\u001b[0m│\r\n╭─[3]─\u001b[0m\u001b[38;5;2mLocal branches \u001b[0m- Remotes - Tags─╮│\r\n│\u001b[0m\u001b[38;5;2m *\u001b[0m main \u001b[0m\u001b[38;5;2m✓\u001b[0m ││\r\n│ ││\r\n│ ││\r\n│ ││\r\n│ ││\r\n╰──────────────────────────────1 of 1─╯│\r\n╭─[4]─\u001b[0m\u001b[38;5;2mCommits \u001b[0m- Reflog────────────────╮│\r\n│\u001b[0m\u001b[38;5;2m89b1e380\u001b[0m \u001b[0m\u001b[38;2;36;244;94mli\u001b[0m \u001b[0m\u001b[38;2;36;244;94m○\u001b[0m udated colorscheme ▐│\r\n│\u001b[0m\u001b[38;5;2me078b218\u001b[0m \u001b[0m\u001b[38;2;36;244;94mli\u001b[0m \u001b[0m\u001b[38;2;36;244;94m○\u001b[0m changed to tokyo night ││\r\n│\u001b[0m\u001b[38;5;2m82af2452\u001b[0m \u001b[0m\u001b[38;2;36;244;94mli\u001b[0m \u001b[0m\u001b[38;2;36;244;94m○\u001b[0m hyprlock changes ││\r\n│\u001b[0m\u001b[38;5;2m0eaac74d\u001b[0m \u001b[0m\u001b[38;2;36;244;94mli\u001b[0m \u001b[0m\u001b[38;2;36;244;94m○\u001b[0m updated zshrc ││\r\n│\u001b[0m\u001b[38;5;2m9becc60e\u001b[0m \u001b[0m\u001b[38;2;221;12;75mli\u001b[0m \u001b[0m\u001b[38;2;221;12;75m○\u001b[0m herdr ││\r\n╰─────────────────────────────1 of 76─╯╯\r\n╭─[5]─Stash───────────────────────────╮╮\r\n│\u001b[0m\u001b[38;5;6m1d\u001b[0m On main: tmp install ││\r\n╰──────────────────────────────1 of 1─╯╯\r\n\u001b[0m\u001b[38;5;4mStage: