Commit Graph

256 Commits

Author SHA1 Message Date
Thomas Linford
9961a28cb5
feature(mouse): forward mouse events (#1191)
* handle sgr mouse mode enable by applications

* forward mouse events

* fix scroll events not forwarded to floating panes

* improve mouse hold/release with floating panes
2022-03-10 13:14:02 +01:00
Thomas Linford
7e008bb039
fix(compatibility): home and end in cursor keys mode (#1190) 2022-03-09 21:21:15 +01:00
Aram Drevekenin
95e512c36d
fix(compatibility): replace wide characters under cursor properly (#1196)
* fix(compatibility): replace wide characters under cursor properly

* style(fmt): rustfmt
2022-03-09 11:04:07 +01:00
Thomas Linford
7de77536ab
refactor(tab): simplify mouse hold and release (#1185) 2022-03-08 18:26:33 +01:00
Thomas Linford
8d3bd3c9b0
fix(floating-panes): update tooltip after hiding floating panes with mouse (#1186) 2022-03-07 11:45:01 +01:00
Jae-Heon Ji
5a56aa0603
Improve: more explicit detach instruction (#1161)
* feat: update detach and remove client

* chore: apply clippy warning

* fix(tests): update snapshot
2022-03-07 19:20:13 +09:00
Thomas Linford
c5eea7bd91
refactor(tab): simplify logic for scrolling active pane (#1184) 2022-03-06 19:50:33 +01:00
Kerfuffle
e2081f2649
fix: Allow terminal title passthrough even when not drawing pane frames. (#1113)
* 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-28 17:54:41 +01:00
Thomas Linford
efd2fa412f
fix(compatibilty): do not use current cursor style in csi erase display (#1142) 2022-02-27 21:15:03 +01:00
Orhun Parmaksız
4d64742fd0
refactor: fix unused code warnings (#1087) 2022-02-27 13:23:59 +01:00
Aram Drevekenin
3bbae77921
fix(compatibility): properly clear pane before switching to alternate screen (#1120) 2022-02-25 15:01:08 +01:00
Ken Matsui
31def4102f
fix(style0: simplify find(..).is_some() to any(..) and use += instead (#1081) 2022-02-24 11:29:56 +01:00
tfgast
cef3f1e408
fix(terminal): ensure Title doesn't overrun (#1094)
The set title escape code needs to be terminated with a bell character. See https://tldp.org/HOWTO/Xterm-Title-3.html
2022-02-24 11:22:24 +01:00
Ken Matsui
3346238a6b
fix(style): remove unnecessary borrow operators (#1084) 2022-02-24 11:08:05 +01:00
Ken Matsui
e73ce08ddf
fix(style): remove redundant .clone() calls (#1085) 2022-02-24 11:07:09 +01:00
Ken Matsui
21df45cf22
fix(style): replace sort_by with sort_by_key (#1089) 2022-02-24 11:03:03 +01:00
Ken Matsui
346e093414
fix(cleanup): simplify loop (#1077) 2022-02-24 08:08:23 +01:00
Ken Matsui
f1f5ac01af
fix(lint): simplify unnecessary return statements (#1080) 2022-02-23 20:37:01 +01:00
Ken Matsui
28c2046890
fix(lint): replace unnecessary assert_eq! with assert! (#1079) 2022-02-23 20:35:52 +01:00
Jae-Heon Ji
a489194b55
fix: invalid assignment of client_id (#1052)
* feat: sync socket connection in

* chore: apply clippy

* chore: change message name
2022-02-23 23:50:49 +09:00
Aram Drevekenin
39eddd8b1c chore(version): bump development version 2022-02-22 13:36:39 +01:00
Aram Drevekenin
256671aecc
fix(ui): restore get active at (#1076)
* don't crash if misusing the plugin pane api

* restore get active at

* rustfmt
2022-02-21 20:13:32 +01:00
Aram Drevekenin
9fa94970cc
fix(ui): floating panes UI (#1074)
* basic ui

* update plugins

* rustfmt
2022-02-21 18:01:35 +01:00
Thomas Linford
a3e69fe6da
fix(copy): rejoin wrapped lines (#1069)
When copying wrapped lines do not treat them as separate lines.
2022-02-21 17:58:54 +01:00
Aram Drevekenin
a0a0a7e5c4
feat(ux): tmux mode (#1073)
* work

* basic tmux move and functionality

* tmux mode ui

* rustfmt
2022-02-21 15:52:42 +01:00
Aram Drevekenin
821e7cbc5a
feat(ui): add floating panes (#1066)
* 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-18 21:10:06 +01:00
Thomas Linford
10a22c479f
fix(compatibility): resolve fzf crash (#1056)
* grid: add fzf test case
* revert alternate viewport creation to contain an empty row
2022-02-12 12:51:10 +01:00
Thomas Linford
18709acde9
feat(copy): allow osc52 copy destination configuration (#1022)
add copy_cliboard  option to allow configuring copy destination to primary selection instead of default clipboard
2022-02-02 15:22:34 +01:00
Thomas Linford
143bbfb0bb
fix(compatibility): do not set scroll buffer in alternate screen (#1032)
avoid moving lines to lines_above when in alternate screen.
adjust resizing when in alternate screen:
* remove extra lines instead of sending to lines_above
* truncate excess characters
2022-02-02 12:56:21 +01:00
Jae-Heon Ji
1d2e303926
feat: add focus attribute in layout (#958)
* 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-02-01 02:19:21 +09:00
Thomas Linford
cf22e1f50e
fix(compatibility): handle csi erase param 3 (#1026) 2022-01-26 18:50:29 +01:00
Thomas Linford
a576b3150f
fix(scroll): scroll page up/down by actual amount of rows (#1025)
use pane content_rows to take account of frame enabled/disabled
2022-01-26 18:19:38 +01:00
Jae-Heon Ji
8d224cb84a
feat: accept only printable unicode char (#1016)
* feat: accept only printable unicode char

* chore: revert comments
2022-01-25 22:11:31 +09:00
Christophe Verbinnen
9cc2645db0
Add a copy command option (#996)
Usage: zellij options --copy-command "xclip -sel clip"

Co-authored-by: Christophe Verbinnen <christophev@knowbe4.com>
2022-01-15 12:38:45 +01:00
Jae-Heon Ji
65a12c0f5e
feat: change dependency for process_cwd (#1001)
* feat: change dependency for process_cwd

* test: add unittest for get_cwd

* chore: apply clippy

* test: change tty to openpty

* test(e2e): update case
2022-01-13 20:41:13 +09:00
Aram Drevekenin
f6c56f6ea3
style(comment): remove outdated 2022-01-12 09:38:04 +01:00
Aram Drevekenin
737787702e
style(format): remove debug message 2022-01-11 17:03:47 +01:00
Jae-Heon Ji
d2cfcb3bab
fix: add condition for existence of current_dir (#995) 2022-01-09 18:18:03 +09:00
Aram Drevekenin
e06300f7db chore(version): bump development version 2022-01-05 11:14:15 +01:00
Kunal Mohan
e23d06b70d
Feature: Configurable scroll buffer (#936)
* Configurable scroll buffer

* Fix unit test failures

* Add scroll_buffer_size description in the default config file

* Fix config file
2022-01-04 23:24:05 +05:30
Aram Drevekenin
0d0064afff
fix(panes): do not crash when closing fixed pane (#987) 2022-01-04 11:43:34 +01:00
Aram Drevekenin
d5fe53ef57
fix(tabs): dont panic when tab history is empty and closing tab (#990) 2022-01-04 11:07:09 +01:00
Kunal Mohan
4496c4d4dc
Pass active terminal title through to terminal emulator (#980) 2022-01-03 22:18:22 +05:30
Aram Drevekenin
153ed175af
fix(plugins): send events to plugins properly in a multiuser env (#986) 2022-01-03 16:55:21 +01:00
Aram Drevekenin
7dad61e529
refactor(tab): separate concerns (namely move pane positioning actions out of tab) (#985)
* refactor: move resizing methods to pane resizer

* refactor: move focus and close methods to pane grid

* refactor(tab): move move methods positioning to pane grid

* refactor(tab): separate pane resizer from pane grid

* style(fmt): make rustfmt happy

* style(fmt): make clippy happy
2022-01-03 15:56:41 +01:00
Jae-Heon Ji
5dd3fce4a1
fix(plugins): register correct client id (#984) 2022-01-03 15:54:41 +01:00
auronandace
00e923cfdc
Implement passing the bell signal to the terminal (#981)
* implement passing the bell signal to the terminal

* Add files via upload

add fixture to test against
2022-01-03 15:50:00 +01:00
dswij
8f5325e4ed
fix(ui): left click on tabs when pane is on fullscreen mode (#977)
* Fix left click on tabs when pane is on fullscreen mode

* run fmt
2022-01-03 14:58:15 +01:00
Jae-Heon Ji
e1997f6e7d
fix: update switch to tab bug in multiple users (#959)
* fix: update switch to tab for multiple user

* chore: remove unnecessary comments
2021-12-29 16:32:38 +01:00
danieleades
a62a23a1c7
fix(clippy): ensure clippy runs on all targets (#972)
* ensure clippy runs on all targets

* use 'AtomicBool' instead of 'Mutex<bool>'

* remove unused import

* remove 'mem::drop' no-ops

* remove loop that never loops
2021-12-29 09:16:54 +01:00