aboutsummaryrefslogtreecommitdiffstats
path: root/src/widgets (follow)
Commit message (Collapse)AuthorAge
* sl0p: double-click a tab to rename itHEADmainuser2026-08-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Double-clicking a tab in the bar switches to it and drops into RenameTab mode, matching the double-click-to-rename we added for panes in the sl0ppij zellij fork. Enter commits, Esc cancels, exactly as the rename keybind does. Widgets are held behind &self and cannot keep click state, so double-click detection lives centrally in ModuleConfig::handle_mouse_action and is passed to Widget::process_click as a flag. THE TRAP, and the reason this is not a two-line change: handle_mouse_action also runs for Mouse::Release. A single click therefore arrives as LeftClick followed by Release at the SAME position. Counting releases would make every single click register as a double click, and resetting on release would mean a real double click never registers at all, since the release falls between the two clicks. Only LeftClick participates; Release neither counts nor resets. A completed pair is consumed, so a triple click does not fire a second rename. switch_tab_to() is called before switch_to_input_mode(), because RenameTab acts on the ACTIVE tab - renaming without switching first would rename the wrong one. Threshold is 400ms, the same one zellij uses for text-selection double clicks, so the bar feels consistent with the panes. Detection is extracted as register_click_for_double_click() so it can be tested without constructing a ModuleConfig. Tests cover: a real double click, the release-in-between regression, too-slow clicks, clicks at different positions, and the triple-click case. Upstream tests still pass: 25 total (20 upstream + 5 new). Note: this repo's .cargo/config.toml targets wasm32-wasip1 and runs tests under wasmtime, which is not installed here. Tests are run with `cargo test --target x86_64-unknown-linux-gnu` instead.
* fix(command): unit testsDaniel Jankowski2026-07-15
|
* feat(command): add {focused_pane_cwd} to run commands in focused cwd (#273)Dave Willett2026-07-08
| | | | | | | | | | | | | | | | | | | | | | | * feat(command): add {focused_pane_cwd} to run commands in the focused pane's directory Command widgets configured with command_<name>_cwd "{focused_pane_cwd}" now execute in the current working directory of the focused terminal pane, following it as the user changes directories. This relies on zellij's CwdChanged event and get_pane_cwd API. The focused terminal pane of the active tab is tracked via PaneUpdate (seeding the cwd on focus change) and updated on CwdChanged. Affected command results are invalidated so they re-run, and stale results from a previous cwd are discarded to avoid showing the wrong directory. Closes #92 * fix(command): release focused cwd command locks Focused-cwd commands can be invalidated while their first run is still in flight. If that result is later discarded as stale, no command result is stored but the per-command lock remains, preventing future reruns. Release the command lock when invalidating focused-cwd commands so the branch badge can recover on subsequent renders or cwd updates. Add a regression test for rerunning a command with no stored result after its lock is released.
* feat(tabs): add bell and flashing-bell formats and indicator (#259)pali2026-06-03
|
* feat: add {focused_pane_title} to the tab widget formatter (#250)Yui2026-06-03
|
* feat: add zero based tab index support (#249)Rikard Bergqvist2026-04-18
| | | | | * adds zero based tab index support * update after comments
* chore: linting issue in tabs widgetDaniel Jankowski2026-04-11
|
* chore(clippy): fix issuesDaniel Jankowski2025-12-17
|
* feat(command): hide on empty stdoutDaniel Jankowski2025-09-07
|
* feat(pipe): add render modesDaniel Jankowski2025-06-09
|
* fix(command): handle raw formatting correctlyDaniel Jankowski2025-06-09
|
* chore: remove test codeDaniel Jankowski2025-06-09
|
* chore(deps): update to rust 1.87.0Daniel Jankowski2025-06-09
|
* chore(deps): update to toolchain 1.86Daniel Jankowski2025-04-05
|
* feat: add pipe widgetDaniel Jankowski2025-01-18
|
* chore: fix linting issueDaniel Jankowski2024-11-30
|
* feat(tabs): multiple formats for truncation markerDaniel Jankowski2024-08-07
|
* feat: add color aliasesDaniel Jankowski2024-07-15
| | | | closes #75
* fix: hide separator on last tab when truncatedDaniel Jankowski2024-07-06
|
* feat: render truncated tab count to indicatorDaniel Jankowski2024-06-23
|
* feat: add tab bar scrolling based on tab countDaniel Jankowski2024-06-23
| | | | fixes #67
* feat: enable configuration for date and time separatelyDaniel Jankowski2024-06-20
| | | | fixes #70
* feat: multiple formats for command widgetDaniel Jankowski2024-06-20
| | | | fixes #69
* feat: implement click action for command widgetDaniel Jankowski2024-06-02
|
* feat(tabs): format for renaming tabsDaniel Jankowski2024-05-25
|
* chore: add tests for run_command_if_neededDaniel Jankowski2024-05-08
|
* feat: run command once on interval 0Daniel Jankowski2024-05-08
| | | | addresses #52
* feat: make env & cwd configurable for command widgetDaniel Jankowski2024-05-08
| | | | addresses #52
* feat: add formats for swap layoutDaniel Jankowski2024-04-17
|
* feat: remote control zjstatus with pipes (#48)Daniel Jankowski2024-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * chore: update to latest version of zellij * fix: deprecated functions in chrono * chore: update nix deps * chore: remove deprecated chrono functions * feat: add refresh via pipes with line protocol * fix: handle multiple lines in pipe * fix(clippy): char instead of str * feat: add notification widget * chore: update nix flake * chore: update cargo deps * chore: update cargo deps * chore: update nix flake * chore: clean up imports for tracing * chore: update nix flake * chore: update cargo deps * chore: update nix flake * chore: update cargo deps * chore: remove pinning of chrono Since chrono-tz now fixed the deprecations from chrono we can finally remove the pinning. * chore: update nix flake * chore: update cargo deps
* feat(dev): add tracing featureDaniel Jankowski2024-03-13
|
* feat(ci): add linting workflowDaniel Jankowski2024-03-01
|
* feat(tabs): add configurable indicators for sync, fullscreen & floatingDaniel Jankowski2024-02-23
|
* feat: add floating panel total count to tabsDaniel Jankowski2024-02-04
|
* feat: configure default mode ref for unspecified modeDaniel Jankowski2024-02-04
| | | | fixes #36
* fix: char count for multi-cell charsDaniel Jankowski2024-02-04
| | | | fixes #37
* feat: add separator for tabsDaniel Jankowski2024-02-04
| | | | fixes #35
* feat: implement cache for dynamic command renderingDaniel Jankowski2023-12-26
|
* feat: implement render modes for command widgetDaniel Jankowski2023-12-25
| | | | resolves #25
* feat: don't call format_string if the command_xxx_format doesn't contains (#28)benzwt2023-12-25
| | | | | style syntax. This will let the external command to take the responsibly for the output of the content. For example, this feature let conky output its result along with the raw color codes.
* feat: add bench for command widgetDaniel Jankowski2023-12-22
|
* chore: ref config instead of copyingDaniel Jankowski2023-12-17
|
* chore: move from to_string to to_ownedDaniel Jankowski2023-12-17
|
* feat: further perf + mem optimization of widgetsDaniel Jankowski2023-12-17
|
* feat: perf + mem optimization of renderingDaniel Jankowski2023-12-17
|
* feat: refactor to lib and add benchesDaniel Jankowski2023-12-17
|
* chore: refactor mode with more idiomatic rustDaniel Jankowski2023-12-17
|
* fix: handle groups when running commandsDaniel Jankowski2023-11-22
| | | | | | | | Instead of naively splitting at spaces, zjstatus now respects groups with " and ' to enable using more complex arguments, e.g. bash -c "pwd | base64". Resolves #22
* feat: allow multiple formats in mode widgetDaniel Jankowski2023-11-13
|
* feat: add widget for running arbitrary commands (#16)Daniel Jankowski2023-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * chore: update zellij-tile to 0.39.0 with git version * chore: update flake deps * feat: rework render + add stub command widget * feat: implement command handling * chore: refactoring command widget * chore: add command description to README * chore: remove debugging output * fix: recreate lock file after interval Due to a bug when attaching sessions, the lock file needs to be recreated for another try to run the command, when permissions were granted * fix: pause on detach and without permissions * chore: clean up previous unneeded changes * chore: clean up imports * chore: fix clippy issues * chore: remove debug output * fix: strip newline only when it exists * feat: update to zellij-tile 0.39.0