aboutsummaryrefslogtreecommitdiffstats
path: root/default-plugins/tab-bar/src/main.rs (follow)
Commit message (Collapse)AuthorAge
* Nested session handling (#5417)Aram Drevekenin2026-07-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix: theme query and updated pixel dimensions * add no-ui-fullscreen key/action/capability * protocol core * integration test harness * fix integration tests * fix flaky tests * nested ui (dimming) and directional focus initial implementation * integration tests for nested ui dimming and directional focus * initial full screen nesteed implementation * fix: keep hidden floating panes hidden across nested no-ui fullscreen * fix integration tests * no ui fullscreen integration tests * hardening behavior/tests * fix(nested): re-derive descend/dim on host tab switch and new-tab so clicking dimmed chrome ascends * initial modal implementation * initial ui improvements * fix integration tests * improve nested selection ui * nested session modal refactoring and tests * improve integration test speed somewhat * some ui adjustments * simplify full/auto nested session handling * hints in compact-bar * guest stdin leak fix * allow floating panes to be fullscreen * make nested session handling configurable * protocol reannounce * refactor: naming confusion * improve ux somewhat * rustfmt * merge fixes * improve integration test rate limiting (fix ci) * add pr
* UI tweaks (#5337)Aram Drevekenin2026-07-06
| | | | | | | | | | | | | | | | | | | * remove dimmed * clearer list ui * fix integration tests * rustfmt * move hint to tab-bar * redesign stack list * rustfmt * fix e2e * add pr
* Title frames (#5318)Aram Drevekenin2026-06-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * initial implementation * improve single line title design * hint text plugin infra * add proto regen task * display alt text in status bar * don't display text with full frames * style alt hover text * fix + style control own pane hover * make multiplayer indications responsive * update snapshots * plugin api * single pane as tab * better scroll styling * fix tests * tab-bar plus hover * plugin surface tests * integration tests * adjust all integration tests * reduce hover noise * add pane id to in place * more integration tests * style: rustfmt * update plugin assets * update assets and snapshots * add pr
* fix: performance regression when switching tabs (#4918)Aram Drevekenin2026-03-26
| | | | | | | | | | | | | | | | | | | * remove pane render report * only collect pane contents if pane should render * add logs * conditional keybinding serialization * remove logs * rustfmt * fix tests * tests * rustfmt
* Migrate from wasmtime to wasmi (#4449)Aram Drevekenin2025-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * initial implementation * fix stdio and host folder mounting * some memory usage optimizations * fix plugin tests * remove unused plugin cache * fix docker-compose for e2e tests when running locally * rustfmt * initial pinned executor implementation * EXPERIMENT: add jemalloc * initial dynamic pinned threadpool * cleanups and experiments * keep state on execution threads * reintroduce memory cache * add wasmi engine to executor threads * load plugins for new clients on the relevant executor thread * only show loading indication of loading for more than 0.4 secs * fix anonymous plugin loading without client id * refactor lots of stuff * update snapshots * tests for pinned executor * remove jemalloc * fix stderr from plugins * cleanups * rustfmt * cleanups * fix endless loading for additinal attachments * more cleanups * remove singlepass feature * fix displaying plugin permission message * render optimizations * always render for tests * rustfmt * optimize release build for wasmi * fixes for multiple client plugin loading * fix frame rendering for multiple clients * rustfmt * fix loading background plugins and e2e event ordering change * rustfmt * account for races in the pin_floating_panes e2e test * docs(changelog): add PR
* feat(config): new theme definition spec (#3242)Mark Grey2025-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Implement initial structs from spec * kdl configuration unmarshalling * typo text styling * remove is_selected toggle * incorporate new status bar ui into theming * improve test coverage of config behavior * tab bar correction * correct also compact bar * remove spacing between table columns * refactor table styling * use text_unselected.emphasis_1 for keygroup sep * fix tab bar more text * repair field flattening for theme * remove extra styling KDL node * update tests * updated selected text conversion * padding for header bar * minor corrections for existing themes * background handling * compact bar corrections * properly handle opaque method to activate background * update newer plugins to use styling struct * correct omission of selected state * fix: bold typeface for text elements * fix: fg -> white for list_unselected conversion * fix: emphasis and opacity handling for nested_list * correct stylings in the session-manager * fix emphases translation for table component * correct emphasis for run instructions * correct frame_highlight translation for old themes * provide missing implementation of frame_highlight * fencepost emphasis color names * Set a pseudo-None for frame_unselected in old theme conversion * correct alternating bg for simplified-ui * update snapshots * fix inner text padding and errorneous snapshots * suppress warning about deprecated usage of palette * remove unused import * feat(plugins): API to change floating pane coordinates (#3958) * basic functionality through the cli * added to plugin api * add display area and viewport size to TabInfo * fix tests and add new one * some cleanups * refactor: extract pane_id parsing logic * style(fmt): rustfmt * docs(changelog): floating pane coordinate chagne API * fix(tiled-panes): opening panes from the cli (#3963) * feat(plugins): add `PastedText` Event (#3962) * working with text paste * handle utf8 conversion error * feat(plugins): add PastedText Event * docs(changelog): plugins pasted text event * black for table opaque background * properly apply opacity to table * correct padding for explicit width ribbons * feat(plugins): Allow opening panes near plugin (#3966) * added command + terminal variants * added editor variant * style(fmt): rustfmt * docs(changelog): plugin apis to open panes near plugin * feat(plugins): send info about $EDITOR and $SHELL (#3971) * feat(plugins): send info about $EDITOR and $SHELL * fix(e2e): snapshot update * docs(changelog): plugin editor and shell info * fix(floating-panes): when changing coordinates, if a pane is not floating - make it floating (#3972) * fix(panes): when changing floating pane coordinates, if the pane is not floating, float it * style(fmt): rustfmt * docs(changelog): floating pane coordinate fix * fix(break-pane): strip logical position when inserting pane to new tab (#3973) * docs(changelog): logical position fix * Optional frame_unselected theme * fixture with correct width to account for arrow padding * update snapshot and rustfmt --------- Co-authored-by: Aram Drevekenin <aram@poor.dev>
* feat(plugins): add configurable black background for ui components (#3681)Daniel Jankowski2024-10-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(plugins): add transparent background for text and nested_list * chore: fix formatting issue * feat: invert flag behaviour * feat: implement bg_black handling for table cells * fix: order of selected and bg_black in protocol * chore: rename from bg_black to opaque * fix: explicit selected, if opaque and selected for text * chore: fix formatting issues * feat: opaque tab-bar * feat: opaque session-manager bars * feat: opaque ribbon in plugin manager * feat: opaque one-line ui * feat: opaque tab-bar in configuration plugin
* feat(ui): status bar redesign (#3475)Aram Drevekenin2024-07-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | * work * work * working * get default mode from server and some ui responsiveness * work * finish design and get tests to pass * get e2e tests to pass * add classic layout * add classic layout assets * fix e2e tests * style(fmt): rustfmt * fix plugin system test * style(fmt): some cleanups
* fix(ux): various ui/ux fixes (#2722)Aram Drevekenin2023-08-24
| | | | | | | | | | | | | | | * force plugin render on permission request response * clear warnings * Revert "feat(ui): new status bar mode (#2619)" This reverts commit 27763d26ab83dd9f81c69c75601cbf6075f13790. * adjust status bar help * fix colors in session manager and shortcut in status-bar * adjust keybindings
* feat(plugins): make plugins configurable (#2646)Aram Drevekenin2023-07-25
| | | | | | | | | | | | | | | | | | | | | * work * make every plugin entry point configurable * make integration tests pass * make e2e tests pass * add test for plugin configuration * add test snapshot * add plugin config parsing test * cleanups * style(fmt): rustfmt * style(comment): remove commented code
* fix(tab-bar,compact-bar): tab switching with mouse sometimes not working (#2587)Thomas Linford2023-06-30
| | | | | | | | | | | | | * tab-bar: fix clicks sometimes not registering Caching the click position wasn't working across multiple plugin instances. Also a couple of refactors: - move the code with the tab switching logic inside update - avoid rendering when calling switch_tab_to, since it will happen anyway afterwards * same fix for compact-bar
* Add option to hide session name in tab-bar (deriving from #2172) (#2301)Marcel Baur2023-03-30
| | | | | | | | | | | * feat(tab-bar): add option to hide prefix (#2172) * feat(tab-bar): only hide session_name * fix(snapshots): update snapshots with new config-var naming --------- Co-authored-by: Marcel Baur <marcel@baur.gg>
* performance(rendering): improve rendering performance (#1960)Aram Drevekenin2022-11-21
| | | | | | | | | | | | | * refactor(plugins): plugins now need to explicitly ask to be rendered * performance(render): remove various needless renders * performance(render): cache boundaries * performance(render): adjust tests and cache cursor location/shape * style(comment): remove outdated * style(fmt): rustfmt
* refactor(plugins): change the data flow (#1934)Aram Drevekenin2022-11-15
| | | | | | | | | * refactor(plugins): do not block render loop * refactor(plugins): cleanup * style(fmt): rustfmt * fix(plugins): various rendering pipeline fixes
* fix(tab-bar): mouse-click in simplified-ui (#1658)Paulo Coelho2022-09-09
| | | | | | | * fix(tab-bar): fix tab bar click when tabs are collapsed * fix(tab-bar): calculate tab length correctly for any separator * fix(tab-bar): fix clippy
* add(style): add trailing comma in match blocks (#1483)a-kenji2022-06-10
| | | This makes it easier to distinguish from normal blocks
* feat(ui): tweak simplified UI (#1458)Aram Drevekenin2022-06-06
| | | | | | | * fix(ui): tweak simplified-ui tabs * fix(ui): tweak simplified-ui status bar * style(fmt): rustfmt
* Improve theme usage + add default ones (#1274)Kunal Mohan2022-04-02
| | | | | | | | | | | | | | | * Remove gray from theme config and improve colors for dark themes * improve theme usage * Add new themes and minor fixes * improve tokyo-night theme according to new changes * Fix formatting * change default black colour * docs(CHANGELOG): #1274 improve themes
* fix(screen): crash in intermediate no-tabs state (#1272)Aram Drevekenin2022-03-25
| | | | | * fix(screen): log error instead of crashing in intermediate state with no active tabs * style(fmt): rustfmt
* feat(ui): round frame corners (#1227)Brooks Rady2022-03-22
| | | | | | | | | | | | | | | * feat(ui): round frame corners * Allow rounded_corners to be set without a palette * Revert "Allow rounded_corners to be set without a palette" This reverts commit 9271a4b5452f2e59e0ebd55136343f0fbfabaa13. * fix(style): remove redundant code * fix(style): clippy lints that somehow got missed * feat(config): add ui config section
* feat(collaboration): implement multiple users (#957)Aram Drevekenin2021-12-20
| | | | | | | * work * feat(collaboration): implement multiple users * style(cleanup): some leftovers
* fix(style): various internal refactoringsMarcin Puc2021-12-07
|
* This adds a UI for multiple users in panes (behind a feature flag) (#897)Aram Drevekenin2021-11-25
| | | | | | | * feat(ui): multiple users in panes * style(fmt): make rustfmt happy * style(fmt): make clippy happy
* fix(plugin): clean up the mouse PR a littleBrooks J Rady2021-10-12
|
* feat(plugin): Add mouse events for plugins (#629)qepasa2021-10-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(plugin): Add mouse events for plugins * Add double click support in strider * Add support for mouse clicks in tab-bar and fix bug in strider with selecting past the list of files and random double click action * continue working on mouse support for tab bar * finish tab change * fix fmt and fix bug in strider double-click * fix clippy * cleanup dbgs and logs * fix clippy * noop change to rerun e2e tests * Rebase and fix mouse click behavior in tab-bar and strider after rebase * fix fmt * remove dbgs and and comment in tab-line/main.rs * cargo fmt * Code review suggestions * rebase fix * fix clippy * fix mouse selection for tabs in tab-bar
* fix(tab-bar): prevent active tab from being hidden (#703)Paulo Coelho2021-09-09
|
* fix(tab-bar): don't crash at small widthsBrooks J Rady2021-08-28
|
* feat(ui): overhauled resize and layout systemsBrooks Rady2021-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor(panes): move to parametric pane sizes * Fixed the simpler errors by casting to usize * The least I can do is pass the formatting check... * Move to stable toolchain * Well, it compiles? * And now it doesn't! ;) * Baseline functionality with the new Dimension type * Working POC for percent-based resizing * REVERT THIS COMMIT – DELETES TESTS * Perfected the discrete resize algorithm * Fixed fixed-size panes * Basic bidirectional resize * feat(resize): finalised parametric resize algorithm * Reduce the logging level a bit * Fixed nested layouts using percents * Bug squishing for implicit sizing * Here is a funky (read: rubbish) rounding approach * And now it's gone again! * Improve discretisation algorithm to fix rounding errors * Fix the last layout bug (maybe?) * Mixed explicit and implied percents work now * Let's pretend that didn't happen... * Make things a bit less crashy * Crash slightly more for now (to find bugs) * Manaually splitting of panes works now * Start moving to percent-based resizes * Everything but fullscreen seems to be working * Fix compilatation errors * Culled a massive amount of border code * Why not pause to please rustfmt? * Turns out I was still missing a few tests... * Bringing back even more tests! * Fix tests and pane boarders * Fix the resize system without gaps * Fix content offset * Fixed a bug with pane closing * Add a hack to fix setting of the viewport * Fix toggling between shared borders and frames * fix(tests): make e2e properly use PaneGeom * style(fmt): make rustfmt happy * Revert unintentional rounding of borders * Purge some old borderless stuff * Fix busted tab-bar shrinking * Update E2E tests * Finish implementing fullscreen! * Don't crash anymore? * Fix (almost) all tests * Fix a lack of tab-stops * All tests passing * I really can't be bothered to debug a CI issue * Tie up loose ends * Knock out some lingering FIXMEs * Continue to clean things up * Change some naming and address FIXMEs * Cull more code + FIXMEs * Refactor of the resize system + polish * Only draw frames when absolutely necessary * Fix the tab-bar crash * Fix rendering of boarders on reattach * Fix resizing at small pane sizes * Deduplicate code in the layout system * Update tab-bar WASM * Fixed the pinching of panes during resize * Unexpose needlessly public type * Add back a lost test * Re-add tab tests and get them to compile * All tabs need layouts * Start fixing tests + bug in main * Stabilize the resize algorithm rounding * All tests from main are now passing * Cull more dead code
* Display session name within sessionLovecraftian Horror2021-07-08
|
* Fixed a build warning and renamed a struct fieldBrooks J Rady2021-06-03
|
* Getting back to where we started... (Buggy Resizing)Brooks J Rady2021-05-29
|
* Osc implementation (#517)Aram Drevekenin2021-05-17
| | | | | | | | | | | | | * fix(compatibility): implement most osc methods * style(fmt): rustfmt * style(fmt): remove cargo warnings * style(fmt): make clippy happy * style(fmt): fix formatting after my clippy fixes broke it again ;P * fix(grid): fix tests
* Add Option for Simplified Layouta-kenji2021-05-10
| | | | | | | | | | | | | * the simplified layout omits the Nerdfonts characters that are not found in every Fontset * add an optional config option to opt into the simplified ui `simplified_ui: bool` * add a config flag that allows opting into the simplified ui `zellij options --simplified-ui` * move the `clean` flag to the `setup` subcommand
* fix(colors): stabilize colors (#453)Aram Drevekenin2021-05-04
| | | | | * fix(colors): stabilize colors * style(fmt): rustfmt
* chore: cleanup, fix: the tests finally passdenis2021-05-01
|
* chore: painless merge this timedenis2021-05-01
|\
| * Including text on tab name to let users know sync is on.Dante Pippi2021-04-28
| |
* | wip: I really don't want people to hate medenis2021-04-24
| |
* | wip: tab bar coloringdenis2021-04-24
| |
* | wip: colors adjustmentsdenis2021-04-24
| |
* | wip: merge main indenis2021-04-22
|/
* fix(naming): made plugin terminology more consistentBrooks J Rady2021-04-19