Commit graph

129 commits

Author SHA1 Message Date
Thomas Linford
a62743afe3
fix(mouse): middle or right clicks creating selection (#1372) 2022-05-03 13:03:55 +02:00
Thomas Linford
bfa4942c5b
fix(mouse): mouse events not forwarded to plugin panes (#1369)
* fix mouse click and release events not forwarded to plugin panes
2022-05-02 22:06:47 +02:00
Thomas Linford
03ffd08ebb
fix(mouse): improve mouse event reporting (#1329)
* fix: do not rebroadcast mouse press events
* fix: do not send generated mouse hold events to applications
* begin selecting only if click is on terminal pane
2022-04-30 18:46:17 +02:00
raphCode
1f4e3d88c8
Fix crash on renaming a floating pane (#1323) (#1357)
* Fix crash on renaming a floating pane (#1323)

* Add rename tests for embedded and floating panes

* docs(changelog): fix floating pane rename
2022-04-29 16:16:53 +02:00
Aram Drevekenin
0dc136ec5f
fix(compatibility): respond to bg and fg color ansi queries (#1358)
* fix(compatibility): respond to background/foreground queries

* style(fmt): rustfmt

* style(clippy): make clippy happy

* style(fmt): rustfmt

* style(fmt): remove unused code
2022-04-28 17:26:44 +02:00
Thomas Linford
198625b055
feat(copy): add copy_on_select option (#1298)
* feat(copy): add copy_on_select option

with default value of true, keep current behavior of automatically
copying selection to clipboard when done selecting.
with copy_on_select = false, on mouse release the selection remains, and
can be copied with the `Copy` action.

* add example to default.yaml

* add copy action example to default.yaml, cleanup

* fix updated tab tests

* fix selection changing while scrolling after release

* fix clippy warnings
2022-04-16 09:04:06 +02:00
Aram Drevekenin
19adb29be5 feat(signals): support XTWINOPS 14 and 16 (and query the terminal for them on startup and SIGWINCH) (#1316)
* feat(signals): get pixel info from terminal emulator

* feat(signals): query for pixel info on sigwinch

* feat(signals): reply to csi 14t and csi 16t

* style(fmt): rustfmt

* style(comments): remove outdated
2022-04-12 18:07:32 +02:00
raphCode
bda37c3dd3
fix(tab): catch and report errors about tty I/O (#1051)
Quick and dirty bandaid fix to some server crashes which occur to me lately.
The underlying issue seems to be a race condition somewhere when the shell in the pane
exits and the tty file descriptor becomes invalid, but zellij wants to write/read it?

Bug trigger:
- open some panes
- exit the shells in the panes by spamming Ctrl-D

works best when the system only runs on a single CPU, run the following to disable all
cores but one:
echo 0 | sudo tee /sys/devices/system/cpu/cpu*/online

Co-authored-by: raphTec <git@raphtec.net>
2022-03-25 16:30:32 +01:00
Aram Drevekenin
f5a3d8f301
fix(tab): floating panes embed/fullscreen and frame color (#1267)
* fix(tab): floating panes embed/fullscreen and frame color

* style(fmt): rustfmt
2022-03-24 18:53:54 +01:00
Aram Drevekenin
509f236023
fix(tab): do not crash when only floating panes are left (#1266) 2022-03-24 17:19:09 +01:00
Brooks Rady
9bfafde123
feat(ui): round frame corners (#1227)
* 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
2022-03-22 14:58:16 +00:00
Aram Drevekenin
ab74b9974a
refactor(tab): move tiled panes to their own module (#1239)
* work

* tests passing

* simplify render state

* move more stuff to state

* moved tiled panes outside

* move files around

* style(fmt): rustfmt
2022-03-18 10:32:43 +01:00
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
7de77536ab
refactor(tab): simplify mouse hold and release (#1185) 2022-03-08 18:26:33 +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
Ken Matsui
21df45cf22
fix(style): replace sort_by with sort_by_key (#1089) 2022-02-24 11:03:03 +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
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
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
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
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
Aram Drevekenin
737787702e
style(format): remove debug message 2022-01-11 17:03:47 +01:00
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
Renamed from zellij-server/src/tab.rs (Browse further)