Aram Drevekenin
58d52d40e8
fix(compatibility): adjust saved cursor position on resize ( #1362 )
...
* fix(compatibility): adjust saved cursor position on resize
* style(fmt): rustfmt
2022-04-29 11:21:46 +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
188febfc05
fix(stability): avoid link handler panic on bad index ( #1356 )
...
root cause needs investigating, but for now fix the crash.
2022-04-28 11:45:21 +02:00
Aram Drevekenin
22b68c0654
fix(compatibility): fix crash and don't allow cursor beyond row width ( #1349 )
...
* fix(compatibility): fix crash and don't allow cursor beyond row width
* style(fmt): rustfmt
2022-04-26 22:38:54 +02:00
Aram Drevekenin
cd99d3a547
fix(compatibility): various ansi fixes ( #1324 )
...
* fix(compatibility): rotate scroll region up properly
* fix(compatibility): rotate scroll region down properly
* style(fmt): rustfmt
2022-04-14 11:52:37 +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
Amir Arad
f9278a9ab8
refactor(tab): tiled_pane_grid ( #1299 )
...
* use `try_` methods when applicable
* fix bug
* extract commonresize check logic
* clean unused import
2022-04-12 10:48:10 +02:00
Aram Drevekenin
c08145ef5a
fix(compatibility): single line scroll and other edge cases ( #1307 )
2022-04-09 13:34:32 +02:00
Aram Drevekenin
bd39891f78
fix(compatibility): keep colors when scrolling ( #1305 )
2022-04-09 00:00:02 +02:00
Aram Drevekenin
b4e113c6a4
fix(compatibility): don't crash on invalid state when padding line ( #1285 )
2022-03-30 09:48:41 +02:00
Thomas Linford
e537ba9b9d
Revert "fix(compatibilty): do not use current cursor style in csi erase display ( #1142 )" ( #1283 )
...
This reverts commit efd2fa412f .
2022-03-29 19:14:15 +02:00
Thomas Linford
303123f9c6
fix(selection): rendering of characters with unset background ( #1250 )
...
create cursor with RESET_STYLES instead of empty styles
2022-03-28 20:36:51 +02:00
Aram Drevekenin
6443a727ea
fix(compatibility): ansi scroll down ( #1279 )
...
* fix(compatibility): ansi scroll down
* style(fmt): rustfmt
2022-03-28 12:39:54 +02: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
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
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
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
Aram Drevekenin
3bbae77921
fix(compatibility): properly clear pane before switching to alternate screen ( #1120 )
2022-02-25 15:01:08 +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
f1f5ac01af
fix(lint): simplify unnecessary return statements ( #1080 )
2022-02-23 20:37:01 +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
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
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
Thomas Linford
cf22e1f50e
fix(compatibility): handle csi erase param 3 ( #1026 )
2022-01-26 18:50:29 +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
153ed175af
fix(plugins): send events to plugins properly in a multiuser env ( #986 )
2022-01-03 16:55:21 +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
Aram Drevekenin
ec4649c7c9
fix(compatibility): handle deleting chars in lines with widechars ( #965 )
...
* fix(compatibility): handle deleting chars in lines with widechars
* style(fmt): make rustfmt happy
2021-12-22 17:57:59 +01:00
Aram Drevekenin
52977a761f
fix(compatibility): handle inserting characters after wide character ( #964 )
...
* fix(compatibility): handle inserting characters in the middle of a line after a wide character
* style(fmt): make rustfmt happy
2021-12-22 14:34:28 +01:00
Kunal Mohan
c75bcbd937
Feature: Add pane names ( #928 )
...
* 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-09 23:30:40 +05:30
Aram Drevekenin
92bddf1b79
fix(plugins): support multiple users ( #930 )
...
* fix(plugins): support multiple clients
* fix(style): make clippy happy
2021-12-08 18:41:41 +01:00
Marcin Puc
56e85f87d6
fix(style): various internal refactorings
2021-12-07 10:24:42 +00:00
Aram Drevekenin
cbe0d5405e
fix(compatibility): do not duplicate bracketed paste in chunked stdin input ( #917 )
...
* debug message
* fix attempt
* oops
* remove log message
* rustfmt
* style(clippy): make clippy happy
* style(clippy): make clippy happy again!
2021-12-02 18:35:55 +01:00
Aram Drevekenin
464cb6beec
fix(compatibility): full screen scroll region ( #915 )
...
* fix(compatibility): properly handle scrolling when scroll region is full screen
* style(fmt): make clippy and rustfmt happy
2021-12-01 13:01:22 +01:00
Aram Drevekenin
6c6a4393f4
This adds a UI for multiple users in panes (behind a feature flag) ( #897 )
...
* feat(ui): multiple users in panes
* style(fmt): make rustfmt happy
* style(fmt): make clippy happy
2021-11-25 16:21:59 +01:00
Thomas Linford
a96b9d8769
feat(compatibility): add support for osc 8 escape code ( #822 )
...
Resolve #645
* add support for osc 8 escape code
* refactor, add links to CharacterStyles
* cleanup
* refactor, add minimal tests
2021-11-22 18:54:49 +01:00
Thomas Linford
707fedd1df
fix(performance): keep track of scrollback buffer size ( #881 )
...
Fix #877 . Avoid calculating scrollback buffer size on each render, since the calculation becomes slower proportionally to the amount of lines buffered, and to the width of each line.
* wip: keep track of scrollback buffer size
* account for lines dropped by bounded_push
* fix: use saturating sub
* fix: account for 0 width lines
* remove log messages
2021-11-22 18:34:45 +01:00
Thomas Linford
0ba8e2f7b4
Simplify terminal character style diff ( #839 )
...
* optimize EMPTY_TERMINAL_CHARACTER diff
return a diff for EMPTY_TERMINAL_CHARACTER only when necessary (when new_styles different than current), so to avoid
emitting a ansi reset code every time.
* simply character styles diffing logic
2021-11-15 08:31:53 +01:00
Thomas Linford
8a4161ee5b
fix(compatibility): CSI cursor next line fix ( #863 )
...
Move cursor to beginning of line after moving it down.
fixes #860 .
2021-11-11 21:24:59 +01:00
Tw
9ea3dc0dbe
feat(ui): add right-click support to plugins
2021-11-02 18:49:10 +00:00
Aram Drevekenin
42b66644ae
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
2021-10-29 12:22:30 +02:00