summaryrefslogtreecommitdiffstats
path: root/zellij-utils/src
AgeCommit message (Collapse)Author
2022-03-10fix(config): allow POSIX style `--config` override (#1205)a-kenji
Allow multiple `--config` flags, then use the latter. Also allows similar behaviour for similar flags. fixes: #310
2022-03-05add(comp): dynamic completions for fish (#1176)a-kenji
And infrastructure to make it possible to add more dynamic completions for different shells in the future. eg: ``` zellij attach [completes-active-sessions] zellij kill-session [completes-active-sessions] ``` fixes: #1030
2022-03-03fix(layout): allow lowercase keys and values (#1160)a-kenji
A layout needed to be specified as follows: ``` --- template: direction: Horizontal parts: - direction: Vertical body: true - direction: Vertical borderless: true split_size: Fixed: 1 ``` now the same layout can be specified as: ``` --- template: direction: horizontal parts: - direction: vertical body: true - direction: vertical borderless: true split_size: fixed: 1 ```
2022-03-01add: set `env` var's from config and layout (#1154)a-kenji
Add ability to set `ENVIRONMENT VARIABLES` from the config and the layout files. example: ``` env: ZELLIJ_CONFIG: DEFAULT ``` or ``` env: ZELLIJ_LAYOUT_NAME: BUILD_SESSION ``` If two keys conflict (configuration and layout), then the key from the layout is used. fixes: #1059
2022-02-28fix: typo in error message (#1151)a-kenji
2022-02-28fix: Allow terminal title passthrough even when not drawing pane frames. (#1113)Kerfuffle
* fix: Allow terminal title passthrough even when not drawing pane frames. * Minor formatting fix. * Handle case where the session name is not set.
2022-02-23fix: invalid assignment of `client_id` (#1052)Jae-Heon Ji
* feat: sync socket connection in * chore: apply clippy * chore: change message name
2022-02-21feat(ux): tmux mode (#1073)Aram Drevekenin
* work * basic tmux move and functionality * tmux mode ui * rustfmt
2022-02-18feat(ui): add floating panes (#1066)Aram Drevekenin
* basic functionality * close and reopen scratch terminal working * embed/float and resize whole tab for floating and static floating panes * move focus working * fix focus change in floating panes * move pane with mouse * floating z indices * tests and better resize algorithm * starting to work on performance * some performance experimentations * new render engine * reverse painters algorithm for floating panes * fix frame buffering * improve ux situation * handle multiple new panes on screen without overlap * adjust keybindings * adjust key hints * fix multiuser frame ui * fix various floating/multiuser bugs * remove stuff * wide characters under floating panes * fix wide character frame override * fix non-frame boundaries interactions with floating panes * fix selection character width * fix title frame wide char overflow * fix existing tests * add tests * refactor output out of tab * refactor floating panes out of tab * refactor tab * moar refactoring * refactorings and bring back terminal window title setting * add frame vte output * remove more unused stuff * remove even more unused stuff * you know the drill * refactor floating panes and remove more stuffs * refactor pane grids * remove unused output caching * refactor output * remove unused stuff * rustfmt * some formatting * rustfmt * reduce clippy to normal * remove comment * remove unused * fix closign pane * fix tests
2022-02-02feat(copy): allow osc52 copy destination configuration (#1022)Thomas Linford
add copy_cliboard option to allow configuring copy destination to primary selection instead of default clipboard
2022-02-01feat: add focus attribute in layout (#958)Jae-Heon Ji
* feat(layout): add focus attribute in layout * feat: add state of focus to tab * chore: i love clippy * test(layout): update focus options * feat: add focus pane * feat: apply focus-pane when layout is only loaded * change the instruction name for focus-on-tab * chore: apply cargo-fmt * test: add e2e testcase
2022-01-31fix(config): warn on mode without actions (#1035)a-kenji
Log with a warning, if the user finds himself in a mode, that has no action associated with it. fix #949
2022-01-23chore(deps): update arg parsing to clap v3 (#1017)Marcin Puc
* Update arg parsing to clap v3 * Ignore shell argument case
2022-01-15Add a copy command option (#996)Christophe Verbinnen
Usage: zellij options --copy-command "xclip -sel clip" Co-authored-by: Christophe Verbinnen <christophev@knowbe4.com>
2022-01-04Feature: Configurable scroll buffer (#936)Kunal Mohan
* Configurable scroll buffer * Fix unit test failures * Add scroll_buffer_size description in the default config file * Fix config file
2021-12-28fix(plugins): typo that gives plugins the wrong theme (#975)LordMZTE
2021-12-20feat(collaboration): implement multiple users (#957)Aram Drevekenin
* work * feat(collaboration): implement multiple users * style(cleanup): some leftovers
2021-12-09Feature: Add pane names (#928)Kunal Mohan
* Read pane name from layout * Update pane name at runtime * Fix tests * prefer and render pane name over pane title * fix clippy errors * fix after rebase
2021-12-08fix(plugins): support multiple users (#930)Aram Drevekenin
* fix(plugins): support multiple clients * fix(style): make clippy happy
2021-12-07fix(style): various internal refactoringsMarcin Puc
2021-12-04fix(config): unbind keys correctly (#925)a-kenji
* turn off the merging of key bindings of layout and configuration files for now. In certain situations the keybindings would be overwritten. Fix #923
2021-12-02fix(compatibility): do not duplicate bracketed paste in chunked stdin input ↵Aram Drevekenin
(#917) * debug message * fix attempt * oops * remove log message * rustfmt * style(clippy): make clippy happy * style(clippy): make clippy happy again!
2021-11-30fix(theme): add gray to theme (#914)a-kenji
fix #912 * Add `gray` to theme
2021-11-30Fix: missing theme in config (#913)Tw
Signed-off-by: Tw <wei.tan@intel.com>
2021-11-27fix(style): remove unused importsBrooks J Rady
2021-11-25This adds a UI for multiple users in panes (behind a feature flag) (#897)Aram Drevekenin
* feat(ui): multiple users in panes * style(fmt): make rustfmt happy * style(fmt): make clippy happy
2021-11-15First attempt to provide an overlay prompt (#871)a-kenji
2021-11-15fix(typo): fix setup --check (#869)a-kenji
2021-11-14feature(layout): add layout config (#866)a-kenji
feature(layout): add layout config (#866) * It is now possible to configure zellij through a layout: The config file and the layout file will be merged, on conflicting options the order is as follows: 1. config options `zellij options` 2. layout 3. config Example: ``` --- template: direction: Horizontal parts: - direction: Vertical body: true - direction: Vertical borderless: true split_size: Fixed: 1 run: plugin: location: "zellij:tab-bar" default_shell: fish ```
2021-11-11fix(options): handling and overwriting cli opts (#859)a-kenji
* fix(options): handling ond verwriting cli opts * previously it was only possible to turn off certain features with a command line option, now it is possible to also overwrite this behavior in a sane way, for that some breaking changes happened: following options got renamed and inverted: ``` disable_mouse_mode -> mouse_mode no_pane_frames -> pane_frames ``` following cli options got added: ``` mouse-mode [bool] pane-frames [bool] simplified-ui [bool] ``` the following cli flag got removed: ``` simplified-ui ``` They can be specified in the following way: ``` zellij options --mouse-mode true ``` in order to enable the mouse mode, even if it is turned off in the config file: ``` mouse_mode: false ``` The order is now as follows: 1. corresponding flag (`disable-mouse-mode`) 2. corresponding option (`mouse-mode`) 3. corresponding config option (`mouse_mode`) * add: options and flags for the same value conflict * example: ``` zellij options --mouse-mode true --disable-mouse-mode` ``` ``` $ error: The argument '--mouse-mode <mouse-mode>' cannot be used with '--disable-mouse-mode' ```
2021-11-10add(feature): toggle boolean options with cli flag (#855)a-kenji
add the ability to toggle boolean options with a cli flag: example: if the pane frames are turned off in the config file, then passing in the `--no-pane-frames` flag will toggle the pane frames on
2021-11-10fix(envs): Unify operation of Zellij environment variables (#842)Ken Matsui
2021-11-08feat: add initial session name to layout template (#789)Jae-Heon Ji
* feat: add session configuration to layout template WIP: prototyping for issue #611 * test(layout): add session name * feat(layout): add cond flow to check session name * feat(layout): update session * feat: add function to attach a session * fix(layout): update feedback * attach option only works when layout template exists. * feat(layout): add conditional for session-layout * update default attach value
2021-11-08feat(scrolling): half-page scroll actions (#813)oromate
* Half-page scroll actions #794 * fix(performance): do not hang when resizing large line wraps (#814) * fix(performance): do not hang when resizing large line wraps * style(fmt): make rustfmt happy * style(clippy): make clippy happy * docs(changelog): scroll fix * fix(compatibility): home and end key fix (#815) * fix(compatibility): handle home/end keys properly from terminfo * style(fmt): make rustfmt happy * style(fmt): remove unused import * docs(changelog): home end key fix * docs(changelog): fix link * fix(typo): Correct typo from `occured` to `occurred` (#821) * docs(changelog): fix a typo * fix(docs): fix wrong arguments for `cargo make run` given in CONTRIBUTING.md (#819) * docs(changelog): update `cargo-make` for `v0.35.3` * fix(warning): Fix an unused import warning of std::fs on macos (#820) * docs(changelog): fix unused import on darwin * add: `WriteChars` action (#825) * Behaves like the `Write` action, but one can specify strings themselves instead of their bytecodes. Usage: WriteChars: "cargo make test", * docs(changelog): Add `WriteChars` action * fix(docs): Fix a typo and some grammatical errors in bug_report.md (#826) * docs(changelog): fix typo bug_report template * add: `rust-version` (msrv) field to `Cargo.toml` (#828) * specifies the minimum version the package can be compiled with, may be ignored with `--ignore-rust-version` option ref: https://doc.rust-lang.org/nightly/cargo/reference/manifest.html#the-rust-version-field * docs(changelog): add `rust-version` to `Cargo.toml` * fix(unix): forkpty => openpty (#830) * fix(unix): forkpty => openpty * style(fmt): make rustfmt happy * docs(changelog): forkpty => openpty * Fix: move `colors_transform` to `colorsys` (#832) * `colors_transform` is deprecated and superceded by `colorsys` ref: https://crates.io/crates/colors-transform * docs(changelog): `colors_transform` to `colorsys` * feat(ui): add right-click support to plugins * chore(docs): update changelog * chore(warnings): remove unused imports (#833) * rename var sroll_rows and review snapshots * style(fmt): make rustfmt happy Co-authored-by: Aram Drevekenin <aram@poor.dev> Co-authored-by: Ken Matsui <26405363+ken-matsui@users.noreply.github.com> Co-authored-by: a-kenji <aks.kenji@protonmail.com> Co-authored-by: Tw <tw19881113@gmail.com> Co-authored-by: Brooks Rady <b.j.rady@gmail.com>
2021-11-05Merge branch ↵a-kenji
'support-first-option-in-attach-subcommand-to-attach-the-first-session' of https://github.com/ken-matsui/zellij into ken-matsui-support-first-option-in-attach-subcommand-to-attach-the-first-session
2021-11-06feat(attach): Support `--index` option to choose specific session by ↵Ken Matsui
provided number in active sessions ordered by creation date, resolve #823 feat(attach): Support `--first` option for `attach` sub-command to let zellij choose the alphabetically first session; resolve #823 fix(attach-first): Fix `--first` option to choose the first created session in the existent sessions feat(attach): Support `--index` option to choose the session indexed by provided number like -t option of tmux feat(attach): Support listing active sessions with index when a provided number is not found in the active sessions feat(attach): Support listing active sessions with index when a provided number is not found in the active sessions feat: Add anyhow to uniformly treat error types and avoid panics
2021-11-05fix(errors): Introduce thiserror to make error types simpler (#836)Ken Matsui
2021-11-05fix(errors): Add colored crate to replace primitive color formatting (#837)Ken Matsui
2021-11-05feature(resize): Non directional resize (#520)Henil Dedania
* feature(resize): Non directional resize * Implement special cases * fix resizing for panes that have `+` cross section * fix resizing for panes that have `T` cross section * fix panics * Add Nondirection resize keys to plugin * fix formatting * fix: clippy warnings * fix the last edge case * implemented some of the suggested changes * Remove helper function and elevate comment to top of function * Use `=` to keep it consistent with Normal mode mapping as its easier to use * Remove extra reference borrowing * fix an edge case * add test for nondirectional resize increase/decrease * fix(controls): add + to resize * refactor(resize): simplify methods * fix(resize): properly resize opposite corner pane Co-authored-by: Aram Drevekenin <aram@poor.dev>
2021-11-03add: `try_from` for `ConfigFromYaml` -> `Config` (#835)a-kenji
2021-11-02feat(ui): add right-click support to pluginsTw
2021-11-02Fix: move `colors_transform` to `colorsys` (#832)a-kenji
* `colors_transform` is deprecated and superceded by `colorsys` ref: https://crates.io/crates/colors-transform
2021-11-01add: `WriteChars` action (#825)a-kenji
* Behaves like the `Write` action, but one can specify strings themselves instead of their bytecodes. Usage: WriteChars: "cargo make test",
2021-10-31fix(typo): Correct typo from `occured` to `occurred` (#821)Ken Matsui
2021-10-29fix(compatibility): home and end key fix (#815)Aram Drevekenin
* fix(compatibility): handle home/end keys properly from terminfo * style(fmt): make rustfmt happy * style(fmt): remove unused import
2021-10-26Feature: Rotate Pane locations (#802)Kunal Mohan
fix #165
2021-10-25add(setup): change the links to be hyperlinks (#768)a-kenji
- change the links in the setup command to be viable hyperlinks according to: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
2021-10-19Feature: Move panes directionally (#762)Kunal Mohan
* Feature: Move panes directionally * change keybinds * Fix active pane after move * Add a separate 'Move' mode * Add tests * Add more tests * Send resize message to pty * wrap set_terminal_size_using_fd() in macro * change keybind for Move mode * cargo fmt * fix test * move render functions from tab.rs to screen.rs * undo wrong keybinds
2021-10-18logging: remove unused log functions, change log file const to new file (#779)Thomas Linford
2021-10-12Preserve current umask (#777)Thomas Linford
* preserve umask when starting server * make sure log files are created with explicit permissions