aboutsummaryrefslogtreecommitdiffstats
path: root/zellij-utils/src (follow)
Commit message (Collapse)AuthorAge
...
* | | Remove test feature and hacksKunal Mohan2021-07-06
| | |
* | | Add `layout-dir` to `setup --check` subcommanda-kenji2021-07-04
| | |
* | | feat(ui): initial mouse support (#448)Thomas Linford2021-07-02
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Initial mouse support * enable mouse support (termion MouseTerminal) * handle scroll up and down events * Allow enabling/disabling of mouse reporting Store the mouse terminal on OsInputOutput * WIP: switch pane focus with mouse * testing to get mouse character selection * wip mouse selection * wip: mouse selection - initial handling of mouse events for text selection within a pane - wide characters currently problematic - selection is not highlighted * highlight currently selected text * improve get currently selected text from TerminalPane * copy selection to clipboard (wayland only for now) * Add missing set_should_render on selection update * Improve text selection - Strip whitespace from end of lines - Insert newlines when selection spans multiple lines * Simplify selection logic - Remove Range struct - Selection is not an Option anymore, it's empty when start == end * copy selection to clipboard with OSC-52 sequence * Improve text selection with multiple panes - Constrain mouse hold and release events to currently active pane - Fix calculation of columns with side by side panes * fix for PositionAndSize changes * Fix mouse selection with full screen pane. - Transform mouse event positions to relative when passing to pane. * Move selection to grid, rework highlighting. - Mark selected lines for update in grid output buffer, for now in the simplest way possible, but can be made more efficient by calculating changed lines only. - Clear selection on pane resize. - Re-add logic to forward mouse hold and release events only to currently active pane. * Tidy up selection - add method to get selection line range - add method to sort the current selection * Grid: move current selection up/down when scrolling - Make the selection work with lines in lines_above and lines_below - Todo: update selection end when scrolling with mouse button being held - Todo: figure out how to move selection when new characters are added. * Grid: move selection when new lines are added * Keep track of selection being active - Handle the selection growing/shrinking when scrolling with mouse button held down but not yet released. * Improve selection end with multiple panes * Tidying up - remove logging statements, unused code * Add some unit tests for selection, move position to zellij-utils * Change Position::new to take i32 for line * Grid: add unit tests for copy from selection * add basic integration test for mouse pane focus * Add basic integration test for mouse scroll * Use color from palette for selection rendering * Improve performance of selection render - Try to minimize lines to update on selection start/update/end * fixes for updated start method * fix lines not in viewport being marked for rendering - the previous optimization to grid selection rendering was always adding the lines at the extremes of previous selection, causing problems when scrolling up or down - make sure to only add lines in viewport * Disable mouse mode on exit * use saturating_sub for usize subtractions * copy selection to clipboard on mouse release * disable mouse on exit after error * remove left-over comments * remove copy keybinding * add default impl for selection methods in Pane - remove the useless methods from Impl Pane in PluginPane * move line diff between selections to selection * add option to disable mouse mode * Allow scrolling with mouse while selecting. * move action repeater to os_input_output, change timeout to 10ms - change repeater to take an action instead of a position with hardcoded action * replace mouse mode integration tests with e2e tests * cleanup * cleanup * check if mouse mode is disabled from merged options * fix missing changes in tests, cleanup
* | Merge pull request #596 from a-kenji/run-command-actiona-kenji2021-07-02
|\ \ | | | | | | Add running commands to an action
| * | Add running commands to an actiona-kenji2021-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the ability to bind running commands to an action. Eg: ``` - action: [Run: {command: "htop",},] key: [F: 6,] `` Optionally the direction and arguments can be specified: ``` - action: [Run: {command: "htop", args: ["-C",]},] key: [F: 7,] ``` The directional splits are analogous to the `[NewPane]` splits. ``` - action: [Run: {command: "htop", args: ["-C",], direction: "Up"},] key: [F: 8,] ```
* | | Add option to specify default-shella-kenji2021-07-01
|/ / | | | | | | | | | | | | * Adds an option to specify a default shell either by specifying `default_shell: [PATH]` in the config, or running zellij with `zellij options --default-shell [PATH]`
* | Merge branch 'main' of https://github.com/zellij-org/zellij into ↵a-kenji2021-06-30
|\ \ | | | | | | | | | modularize-spawn-terminal
| * | chore(tests): move all integration tests to be either unit or e2e tests - ↵Aram Drevekenin2021-06-30
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | remove old testing infra (#589) * tests(integration): move basic integration tests to be unit tests * fix(tests): silently fail threadbus for tests * tests(unit): move compatibility tests to become unit tests for grid * tests(unit): move close_pane tests to become unit tests for grid * tests(e2e): move basic layout test to e2e * tests(unit): move move_focus tests to be unit tests * tests(unit): move resize_down tests to be unit tests * tests(unit): move resize_left tests to be unit tests * tests(unit): move resize_right tests to be unit tests * tests(unit): move resize_up tests to be unit tests * tests(infra): remove unused infra * style(fmt): make rustfmt happy * debug * debug * debug * debug * chore(test): shift volume mounting around because github actions is a special child
| * chore(clippy): needless_borrowa-kenji2021-06-29
| |
* | Modularize spawn_terminal_functiona-kenji2021-06-30
|/ | | | | * Breaks the spawn_terminal_function up in order to prepare for more functionality.
* Change `layout` directory from `data` to `config`a-kenji2021-06-16
| | | | | | | | | | | | | | | | | | * default layouts won't be installed by anymore, instead they will be directly loaded * `layout-dir` is now a subdirectory of the `config-dir` by default, instead of the `data-dir` POSSIBLE BREAKING CHANGE: In case of having custom layouts in the previous `layout-dir` one can switch either the layouts to the new dir, or set the `layout-dir` to be the current `layout-dir` * it is possible to change the location of the `layout-dir`: - `zellij options --layout-dir [LAYOUR_DIR]` - `layout_dir: [LAYOUT_DIR]`
* Merge branch 'main' of https://github.com/zellij-org/zellij into layout-errora-kenji2021-06-14
|\
| * Fixed a build warning and renamed a struct fieldBrooks J Rady2021-06-03
| |
| * Merge branch 'main' into resize-overhaulBrooks J Rady2021-06-01
| |\
| | * Fix options in config filea-kenji2021-06-01
| | | | | | | | | | | | | | | * options depended on specification of the `simplified_ui` flag, now they are independend of each other
| * | Getting back to where we started... (Buggy Resizing)Brooks J Rady2021-05-29
| | |
* | | Move `layout.rs` from `server` to `utils`a-kenji2021-06-14
| |/ |/| | | | | * give feedback on most errors in the layout-file
* | Merge branch 'main' of https://github.com/zellij-org/zellij into theme-configa-kenji2021-05-30
|\|
| * Add default_mode to attacha-kenji2021-05-29
| | | | | | | | | | * Attaching a new session now also respects the default_mode setting of the client
| * Merge pull request #513 from a-kenji/default-mode-368a-kenji2021-05-29
| |\ | | | | | | Default mode 368
| | * Merge branch 'main' of https://github.com/zellij-org/zellij into ↵a-kenji2021-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | default-mode-368 * If starting in the locked mode after the merge, the locked mode seems to need 2 actions to go to the normal mode - after that everything works as expected. - This is not intended.
* | | Add color theme configa-kenji2021-05-30
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add option `theme` that allows for setting of a theme, the default is `default` * under `themes` the themes can be described as follows: either: ``` themes: default: fg: [0,0,0] bg: [0,0,0] black: [0,0,0] red: [0,0,0] green: [0,0,0] yellow: [0,0,0] blue: [0,0,0] magenta: [0,0,0] cyan: [0,0,0] white: [0,0,0] orange: [0,0,0] ``` or ``` themes: default: fg: 0 bg: 0 black: 0 red: 0 green: 0 yellow: 0 blue: 0 magenta: 0 cyan: 0 white: 0 orange: 0 ``` If the key is different from default, it needs to either be specified on start with `options --theme [THEME]`, or in the configuration file under theme: [THEME]. closes #390
* | Make session-name option in attach commandKunal Mohan2021-05-29
| | | | | | | | | | If only one session is running, attach to it. Otherwise list the active sessions (if any)
* | refactors for #525 (#534)kxt2021-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor(fakes): clean up add_terminal_input * refactor(fakes): append whole buf to output_buffer in FakeStdoutWriter::write * refactor(fakes): append whole buf to output_buffer in FakeInputOutput::write_to_tty_stdin * fix(fakes): allow partial reads in read_from_tty_stdout This patch fixes two bugs in read_from_tty_stdout: * if there was a partial read (ie. `bytes.read_position` is not 0 but less than `bytes.content.len()`), subsequent calls to would fill `buf` starting at index `bytes.read_position` instead of 0, leaving range 0..`bytes.read_position` untouched. * if `buf` was smaller than `bytes.content.len()`, a panic would occur. * refactor(channels): use crossbeam instead of mpsc This patch replaces mpsc with crossbeam channels because crossbeam supports selecting on multiple channels which will be necessary in a subsequent patch. * refactor(threadbus): allow multiple receivers in Bus This patch changes Bus to use multiple receivers. Method `recv` returns data from all of them. This will be used in a subsequent patch for receiving from bounded and unbounded queues at the same time. * refactor(channels): remove SenderType enum This enum has only one variant, so the entire enum can be replaced with the innards of said variant. * refactor(channels): remove Send+Sync trait implementations The implementation of these traits is not necessary, as SenderWithContext is automatically Send and Sync for every T and ErrorContext that's Send and Sync.
* | Move `config` assets to `zellij-utils` cratea-kenji2021-05-27
| | | | | | | | | | | | * The assets macro seems to not be able to read across create boundaries. Now the assets are included in the crate they are used in.
* | hotfix(publish): Move install module and asset_map to main zellij package. ↵Kunal Mohan2021-05-27
|/ | | | publish should hopefully work now.
* Allow user to specify session nameKunal Mohan2021-05-22
|
* join router threads on exitKunal Mohan2021-05-22
|
* Add ability to attach to sessionsKunal Mohan2021-05-22
|
* add keybinds for session mode and detachKunal Mohan2021-05-22
|
* Use Action enum for Quit and detach instead of separate messages under ↵Kunal Mohan2021-05-22
| | | | ClientToServerMsg
* Add ability to detach a sessionKunal Mohan2021-05-22
|
* Implement the minimal list-sessions commandKunal Mohan2021-05-22
|
* add attach and list sessions subcommand to CliArgsKunal Mohan2021-05-22
|
* Add documentation to actions structa-kenji2021-05-22
| | | | * Add warning for renaming the actions
* Change Description of Config Flagsa-kenji2021-05-22
| | | | | * Make distinction clearer between certain flags
* Merge pull request #522 from zellij-org/re-export-dependenciesKunal Mohan2021-05-19
|\ | | | | Re-export common dependencies from zellij-utils
| * Re-export common dependencies from zellij-utilsKunal Mohan2021-05-19
| |
* | refactor(IO): random fixes (#521)kxt2021-05-18
| | | | | | | | | | | | | | | | | | | | | | | | * refactor(os_input_output): use Pid for child process * fix(debug): change debug_to_file to write &[u8] This patch changes debug_to_file to write entire slices in one call, to avoid the overhead of opening and closing files for each byte written. * refactor(ServerOsApi): remove unnecessary muts from methods Co-authored-by: KOVACS Tamas <ktamas@fastmail.fm>
* | Fix `clean` flaga-kenji2021-05-18
| | | | | | | | | | | | | | * The setup subcommand was exiting the programm no matter what even if the `clean` flag was provided. Now it returns to the main function on encountering the clean flag.
* | Merge branch 'main' of https://github.com/zellij-org/zellij into layout-path-506a-kenji2021-05-18
|/
* 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
* fmt and clippyKunal Mohan2021-05-16
|
* Big refactor: separate crates for client, server and utilitiesKunal Mohan2021-05-16