| Commit message (Collapse) | Author | Age |
| ... | |
| |
|
|
|
| |
* fix: set double/triple-click selection inactive after its end
* add pr
|
| |
|
|
|
| |
* fix: take background color into account when trimming characters
* add pr
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* initial implementation
* improve edge detection
* fix up/down resize increment bug
* temporarily disable alt-mouse grouping
* fix inverting strategies and simplify edge detection
* resize of floating -> ctrl click, resize of tiled -> (ctrl)click
* fix old functionality and tests
* refactor and fixes
* refactor mouse click handling
* move mouse click handling to separate module
* resize scroll up/down with scroll wheel
* tests for scroll resize
* implement hover help
* fix occlusion bug
* allow disabling with config
* fix focus pinned pane on frame
* use strategy invert resize directly rather than function parameter
* remove annoying log message
* cleanups and formatting
* add pr
|
| |
|
|
|
|
|
|
|
| |
* handle errors in route thread
* fix session-manager deadlock on startup
* rustfmt
* add pr
|
| |
|
|
|
|
|
|
|
|
|
| |
* initial implementation
* session manager ui and plugin api
* remove event
* cleanups and formatting
* add pr
|
| | |
|
| |
|
|
|
| |
* fix: properly occlude cursor in floating pane when pinned pane covers it
* add pr
|
| |
|
|
|
|
|
|
|
| |
attached clients (#4626)
* fix: fallback to first tab when sending a command to a detached session with no users
* rustfmt
* add pr
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
current cwd (#4625)
* fix: properly set cwd for new sessions and filepicker when none is specified
* rustfmt
* add pr
* fix tests
* rustfmt
|
| |
|
|
|
|
|
| |
* implementation
* rustfmt
* add pr
|
| |
|
|
|
|
|
|
|
|
|
| |
* fix: pane becoming borderless when breaking to new tab
* don't treat floating panes specially when breaking to new tab
* fix tests
* rustfmt
* add pr
|
| |
|
|
|
|
|
|
|
|
|
| |
* move webserver querying from http to ipc
* rustfmt
* fix no web build
* rustfmt
* add pr
|
| |
|
|
|
|
|
|
|
| |
* allow opening tiled pane as borderless
* rustfmt
* add pr
* fix e2e tests
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* initial implementation
* add borderless to edit and plugin cli commands
* allow changing existing pane to borderless
* allow setting in layouts and keybindings
* get to work through the existing plugin api commands
* fix when applying (swap) layouts
* fix tests
* allow setting pane as bordered (borderful?) when changing its coordinates (eg. through the cli)
* allow explicitly setting a pane as bordered or borderless without toggling
* rustfmt
* adjust snapshots
* docs(changelog): add PR
|
| |
|
|
|
|
|
| |
* fix: allow 0% when specifying x/y coordinates but not when specifying width/height
* rustfmt
* add pr
|
| |
|
|
|
| |
* fix: properly quit welcome screen when switching sessions
* fix tests and add PR to changelog
|
| |
|
|
|
|
|
| |
* fix: center floating panes when width/height but no x/y are provided
* rustfmt
* add pr
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ad plugin override_layout command
* watch available layouts and report to plugin thread
* Event::AvailableLayoutInfo
* save layout command
* refactor save_layout
* fix api and permissions
* delete_layout API command
* edit layout in place API
* edit layout response through api
* propagate layout parsing errors
* generate random name plugin api
* dump stringified layout API
* synchronicity dump_session_layout and include LayoutMetadata in sync response
* parse_layout plugin api
* fix: default to default layout dir in plugin api
* rename_layout plugin command API
* initial implementation of multi-tab override
* apply to multiple tabs
* allow applying to only the active tab
* add tab/pane names to layout parsing metadata
* indicate is_builtin_plugin in PaneMetadata
* get_layout_dir plugin API command
* consolidate (and fix) is_builtin_plugin logic
* fix bad ret
* allow dumping the layout for just a specific tab in the session
* get focused pane and tab sync api
* color last substring variants
* add plugin
* update assets
* fix tests
* add e2e tests for new plugin apis
* update ui with new shortcut
* rustfmt
* docs(changelog): add PR
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
layout at runtime) (#4566)
* add tests for LayoutApplier
* initial untested implementation of override functions
* add override-layout cli action with stub in screen
* filter run instructions to ignore
* implement override-layout roundtrip through plugin and pty threads
* initial full-cycle working override implementation
* fix some bugs (eg. actually start new terminals)
* fix some bugs with focus after override
* fix floating pane matching bug in layout applier
* formatting
* use first tab, error on more than 1 tab
* fix some floating_panes ordering and shell issues
* get new tab name to work
* respect swap layouts
* allow specifying tab properties on main layout node if we just have one tab
* add tests for new override methods
* start work on retaining panes, hard-coded things, kind of working but broken in many places
* fixed most tiled pane override bugs
* reset viewport before reapplying
* revert constraint system changes
* retain-existing-terminal-panes flag
* add retain terminal panes tests
* add retain plugin panes flag
* add keybind
* add retain plugin panes tests
* add override-layout e2e test
* refactor: layout_applier
* style: rustfmt
* some cleanups
* fix cli flags
* no crashy
* formatting and artifacts
* moar cleanups
* fix: respect expanded in stack when overriding
* docs(changelog): add PR
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* initial implementation
* fix race condition potentially allowing read-only clients to gain write access
* clear read only status on disconnect
* cleanups and formatting
* fix tests
* refactor first message + ipc pipe creation out of trait
* fix web tests
* fix web tests again
* refactor: move os_input connection establishment to session manager trait
* add read-only-token tests
* fix: identify watchers as web-clients when they are and enforce no-web-clients for them as well
* identify watcher web clients on the server
* fix tests
* cleanups and formatting
* add read-only-tokens to the plugin api
* update share plugin ui for read-only tokens
* cleanups and formatting
* docs(changelog): add PR
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix deadlocks
* initial logging to plugin implementation
* only log actions, include keys as Action::Write
* send actions to plugins as a new Event::UserAction
* add Action::Write metadata to plugin API
* run_action plugin command and permission
* block-until-exit/success/failure in the cli
* fix tests
* add NewBlockingPane to the plugin API
* run actions in a different thread so as not to block plugin execution
* add custom context to run_action flow
* fixes for floating pane z_index sorting and unknown protobuf events not crashing plugins
* always render the frame of pinned panes
* macros module
* add macros to config
* KDL macro parsing
* thread macros to the plugin thread
* get/update/delete macros from plugins
* add macros updated event
* add ability to rename macros
* fix deadlock
* fix z_indices with pinned unselectable panes bug
* allow plugins to opt-in to show_cursor
* change show_cursor(bool) to show_cursor(Option<coordinates>)
* test
* upgrade strum to allow proper enum iteration and case insensitive fromstr implementation for Actions
* better cwd tracking for exited command panes
* add initial panes to NewTab Action (no-op for now)
* add initial panes to cli newtab action
* make initial panes work
* add close_on_exit and start_suspended to the cli
* properly convert newtab action (potentially breaking for plugins)
* allow first pane in tab to block
* make distinction between opening panes with the last active client and the current pane in the cli
* improve some apis
* fix fixed size closing pane bug
* fix plugin cursor coordinates
* fix issues with launch-or-focus-plugin having to do with in-place and suppressed panes
* fix: set affected pane in replace pane
* allow setting a pane in place when it is suppressed and being focused (tests failing)
* fix tests
* some fixes for unsuppression of panes
* some fixes for completion_tx in new tab action
* allow replace/suppressed rather than replace/close only
* fixes for inserting suppressed panes without conflicts
* pane focus history and explicit unsuppress plugin api
* fix: prefer explicitly provided pane id in placement in actions that provide it
* fix floating pane coordinate change and z_index
* fix plugin cache dir to persist between sessions
* fix some stack focusing issues when adding panes without a client id
* make sure pinned panes are always above non-pinned floating panes
* allow plugins to copy to clipboard
* initial text styling additions implementations - buggy
* fix dimming issues
* remove extras, stay with just dim and unbold
* unbold and dim as indices
* allow ui components to render success/error colors
* allow plugins to send sigint/sigkill to processes, as well as receive their pid
* ui component fixes and send originating plugin context with run_action
* originating plugin for new tab too
* make plugn show pane command also expand stacked panes
* add sequence plugin
* remove macros
* remove snapshots
* add shortcut for sequence plugin
* fix plugin tests
* plugin tests for new apis
* update snapshots for sequence shortcut
* cleanups and formatting
* Event::CwdChanged
* moar cleanups
* remove some warnings
* remove mroe warnings
* remove dead code
* remove more dead code
* fix minor bugs in sequence plugin
* update sequence help and format codebase
* fix conditional blocking cli commands
* fix initial-command new-tab cli flag
* add client_ids to CwdChanged Event
* last fixes
* add pr
|
| |
|
|
|
|
|
|
|
|
|
| |
* fix(zellij-server): unblock building on 32bit targets
* temporarily comment out changes to test ci
* Bring back conditional compilation
---------
Co-authored-by: Aram Drevekenin <aram@poor.dev>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
more) (#4492)
* initial implementation
* fix tests
* move more ations
* screen adjustments (does not compile)
* plugin/pty adjustments (does not compile)
* more progress, tests not compiling
* fix tests
* more progress, does not compile
* more progress, compiles, tests failing
* tests passing
* rely on Drop for NotificationEnd
* atomicify some more actions
* fmt
* move unblock input to route
* don't pass hard-coded action names
* refactor: consolidate completion channel logic
* comment
* track last active client
* track cli clients explicitly
* use the last active client for cli commands when possible
* fix focus-next-pane for multiple clients
* various fixes for multi-client actions from the cli
* add detach action
* fix tests
* add switch session cli action
* fix switch session deadlock
* add and layout to switch-session cli action
* blocking zellij run: add NewBlockingPane variant
* blocking zellij run: wait forever mechanism
* blocking zellij run: thread NotificationEnd as needed until TerminalPane (tests not compiling)
* blocking zellij run: update cli
* blocking zellij run: add command
* blocking zellij run: finish implementation
* fix tests
* e2e test and close_on_exit fixes
* fmt
* fix e2e tests
* fix plugin tests
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* initial implementation
* make Screen aware of watchers - slightly buggy
* fix: only render focused tab to watcher
* track watcher sizes on Screen
* pad watcher output as needed
* truncate watcher sizes as needed
* render on watcher resize
* fix watcher first resize
* allow watchers to quit with esc, ctrl-c or ctrl-q
* fix: send watcher size on initial connection message
* refactor: move padding logic to output
* fix watcher rendering after all clients disconnected
* fix watcher rendering caching issues
* crop watcher cursor when out of bounds
* remove watchers cleanly on session close
* standardize watcher messages ignoring
* add e2e test for watcher functionality
* update snapshots
* add output tests
* rustfmt
* cleanups
* docs(changelog): add PR
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* initial implementation
* add Selection and better types
* event to plugins
* only send viewport diff
* simplify data structure sent over the wire
* cleanups
* rustfmt
* remove dead code and fix tests
* commit tests
* get pane scrollback plugin command without implementation
* add lines above and lines below to pane contents
* implement get scrollback plugin command
* selection => selected_text
* add convenience method to get the selected text
* move Selection back to zellij-server
* rustfmt
* bring back client id to get contents command
* rustfmt
* add pr
|
| |
|
|
|
| |
* remote web attach
* docs(changelog): add PR
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* translate ipc tuple enum variants to struct enum variants
* initial client/server contract
* tests and missing types
* migrate web server and remove rmp_serde
* change socket folder
* fix crash on unknown messages
* fix client logout on unknown message
* fix web client logout on unknown message
* rustfmt
* add comment and change log level
* address compilation warnings
* style(fmt): rustfmt
* fix plugin system test assertions
* add pr
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* commented out ConfigWrittenToDisk instructions
* commented out WriteConfigToDisk instructions
* commented out FailedToWriteConfigToDisk and WriteConfigToDisk instructions
* pass cli assets from client to server instead of parsed config - kind of working, lots of stuff still broken
* move ClientAttributes to the server side
* move ClientAttributes to the server side in Attach instruction as well
* move CliArgs and runtime options from NewClient -> move them to the server
* moved plugin_aliases to the server side
* moved initial config writing to the server side
* moved layout parsing to the server
* some cleanups
* move config file watching and live reload to the server
* move config file writing to the server side
* use saved config when attaching
* get web server to work with the new config roles
* some cleanups
* moar cleanups
* even moar cleanups
* yet more cleanups
* fix tests
* style(fmt): rustfmt
* style(fmt): rustfmt
* fix e2e tests
* docs(changelog): add PR
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#4334)
The CSI > u sequence (push) should default omitted flags to 0 per the Kitty
keyboard protocol specification. Previously, omitted flags incorrectly
defaulted to 1, causing progressive enhancements to be enabled when they
should remain disabled.
This fix ensures push with no flags (printf "\e[>u") correctly sets flags
to 0, matching the protocol specification and making push behavior
consistent with the existing CSI = u implementation.
Author: Anton Afanasyev <anton@doubleasoftware.com>
|
| |
|
|
|
| |
* fix(panes): backspace pane name regression
* docs(changelog): add PR
|
| |
|
|
|
| |
* style: some cleanups
* style(fmt): rustfmt
|
| |
|
|
|
|
| |
* Pre-allocates `buf` string.
* Uses `trim_end_matches()` instead of regex.
Co-authored-by: Tanapol Prucksakorn <tanapol.pr@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
* fix: allow stacking panes if root pane is floating
* fix: handle multiple client gracefully in multiple select
* style(fmt): rustfmt
* fix compact-bar tooltip multiuser duplication
* style(fmt): rustfmt
|
| |
|
|
|
|
|
| |
via pipe (#4309)
* fix(plugins): standardize should_focus parameter when launching new plugins via pipe
* docs(changelog): add PR
|
| |
|
|
|
|
|
| |
* fix: some issues with stacking panes
* cleanups and formatting
* docs(changelog): add PR
|
| |
|
|
|
|
|
|
|
|
|
| |
rename (#4303)
* fix(ux): allow pasting to search/tab-rename/pane-rename
* fix(ux): allow setting wide chars (eg. emoji) in tab/pane names
* style(fmt): rustfmt
* docs(changelog): add PR
|
| |
|
|
|
|
|
| |
* fix(grid): account for wide characters when double-triple mouse clicking
* fix(e2e): moar race conditions
* docs(changelog): add PR
|
| |
|
|
|
|
|
| |
* fix(ui): switch left/right in multiple-select to prevent confusion
* fix(mouse): do not send release event to inactive pane
* docs(changelog): add PR
|
| |
|
|
|
| |
* fix(web): change URL when renaming session
* style(fmt): rustfmt
|
| |
|
|
|
| |
* fix(clipboard): reap process of external command
* docs(changelog): add PR
|
| | |
|
| |
|
|
|
| |
* remove popups from welcome screen
* docs(changelog): add pr
|
| |
|
|
|
|
|
|
|
| |
* use plugin cwd as last focused pane cwd when starting plugins
* fix strider to use the new change_host_folder method
* start terminals in same cwd as plugin pane if focused
* style(fmt): rustfmt
|
| |
|
|
|
| |
Add cmd from sysinfo in terminal_ids_to_commands if no cmd are return by
ps. So then, cmd and cwd are udpated in "session-layout.kdl" even if no
cmd is runing in pane.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
provide post command discovery hook (#4276)
* do not serialize when only UI elements are present
* start work on a post serialization hook
* add post_command_discovery_hook
* fix tests
* style(fmt): rustfmt
* some cleanups
* moar formatting
* docs(changelog): add PR
|
| |
|
|
|
|
|
|
|
| |
* working for cli and keybinding
* working for plugin API
* style(fmt): rustfmt
* docs(changelog): add PR
|
| |
|
|
|
|
|
| |
* fix(plugins): use the terminal title when spawning terminals
* docs(changelog): add PR
* fix: plugin tests
|
| |
|
|
|
|
|
| |
* working
* done
* docs(changelog): add PR
|