Commit graph

637 commits

Author SHA1 Message Date
Aram Drevekenin
86535f1612
fix(layout-applier): logical index pane sorting (#3893)
* initial draft

* working with floating panes as well

* use the same method for applying an initial layout to tiled panes

* some refactoring

* all code paths working with logical positioning fallback!

* get tests to compile

* get e2e tests to pass

* fix e2e remote runner

* breadth-first layout sorting

* fix some bugs

* style(fmt): rustfmt

* style(fmt): remove comments
2024-12-25 20:26:27 +01:00
Aram Drevekenin
dd291e2a1f
feat(ux): pin floating panes (#3876)
* working

* ui indication

* add keybinding

* add to plugin panes

* fix with multiple cursors

* toggle with the mouse

* fix e2e tests and add new one

* some cleanups

* add to layouts

* make mouse click more lenient

* allow setting a new floating pane as pinned

* make toggle work throughthe command line

* add to plugin api

* get tests to pass

* style(fmt): rustfmt
2024-12-16 16:03:20 +01:00
Aram Drevekenin
9332714e9d
fix(multiuser): properly clear fake cursors (#3845) 2024-12-06 17:32:26 +01:00
Aram Drevekenin
1f1070fdc8
fix(screen): off by 1 error when focusing layout tab (#3844) 2024-12-06 14:54:21 +01:00
Aram Drevekenin
5a7a4d4592
fix(plugins): properly focus plugin after it was hidden (#3841) 2024-12-06 11:56:53 +01:00
Aram Drevekenin
a489b2166c
fix(plugins): do not detach if using a slash in a session name (#3839) 2024-12-06 09:37:57 +01:00
Aram Drevekenin
0c21eae664
feat(plugins): allow changing the plugin's /host folder (under a new permission) (#3827)
* working without notifying plugins

* permissions and events

* cleanups and formatting

* style(fmt): rustfmt
2024-12-01 11:06:44 +01:00
Aram Drevekenin
971fd4a4f7
fix(plugins): properly pad UI elements when they have a background (#3806)
* fix(plugins): mark selected background up until component width

* style(fmt): rustfmt
2024-11-24 16:46:13 +01:00
Aram Drevekenin
7ef4e82d70
fix(plugins): properly focus pane after tab was closed (#3797)
* fix(plugins): properly focus pane after tab was closed

* style(fmt): rustfmt
2024-11-21 16:26:11 +01:00
Aram Drevekenin
9230733079
feat(plugins): add /cache folder (#3787)
* feat(plugins): add /cache folder

* style(fmt): rustfmt
2024-11-18 11:23:26 +01:00
Aram Drevekenin
c0c59e484d
fix(screen): send PaneClosed event to plugins also when closing the whole tab (#3781) 2024-11-15 17:49:54 +01:00
Aram Drevekenin
f16ee0840d
fix(panes): handle various invalid state situations (#3776) 2024-11-15 14:34:50 +01:00
Aram Drevekenin
cce600fa24
fix(statup): slow startup on some occasions (#3767)
* add debug logs

* add log messages

* some more logs and possible fix?

* remove logs

* style(fmt): rustfmt

* remove comment
2024-11-13 09:30:43 +01:00
Aram Drevekenin
a994bd49dc
fix(terminal): reset kitty keyboard support when resetting terminal state (#3760) 2024-11-11 18:06:10 +01:00
Aram Drevekenin
942b435a67
fix(tabs): maintain event order for MoveTab (#3758)
* fix(tabs): maintain event order for MoveTab

* style(fmt): rustfmt
2024-11-11 16:30:03 +01:00
Aram Drevekenin
23d2555543
fix(output-buffer): truncate grid height when not rendering it fully (#3750)
* fix(output-buffer): truncate grid height when not rendering it fully

* also fix for cases where the changed lines are not contiguous
2024-11-08 20:28:32 +01:00
Aram Drevekenin
452effab8f
fix(plugins): cwd and usability fixes (#3749)
* fix(plugins): maintain cwd between plugin reloads

* fix(plugin-manager): default to loading plugins in the foreground and allow sending space in configuration
2024-11-08 16:27:15 +01:00
Aram Drevekenin
72f6b502d1
fix(ux): forward keys to pane in locked mode and base mode rather than hard-coded normal mode (#3715)
* fix(keybindings): only forward clear keys in locked mode and default mode

* style(fmt): rustfmt
2024-10-31 16:49:48 +01:00
Vasileios Manolopoulos
9a2f90936b
fix: (tabs) move to next tab if moving to next pane from fullscreen pane (#3498)
Co-authored-by: Vasilis Manolopoulos <vmanolop@gmail.comh>
2024-10-25 15:18:29 +02:00
Aram Drevekenin
2248080de9
style(fmt): various cleanups (#3698)
* fix(configuration): rounding error in ui

* style(fmt): remove warnings

* style(fmt): rustfmt
2024-10-24 18:23:14 +02:00
Daniel Jankowski
0cd6d5f4e5
feat(plugins): add configurable black background for ui components (#3681)
* feat(plugins): add transparent background for text and nested_list

* chore: fix formatting issue

* feat: invert flag behaviour

* feat: implement bg_black handling for table cells

* fix: order of selected and bg_black in protocol

* chore: rename from bg_black to opaque

* fix: explicit selected, if opaque and selected for text

* chore: fix formatting issues

* feat: opaque tab-bar

* feat: opaque session-manager bars

* feat: opaque ribbon in plugin manager

* feat: opaque one-line ui

* feat: opaque tab-bar in configuration plugin
2024-10-24 18:21:44 +02:00
Aram Drevekenin
bb781eafed
fix(terminal): recover from partial line drop (#3695) 2024-10-24 09:42:15 +02:00
Aram Drevekenin
53215e6228
fix(plugins): make sure to always render on first resize (#3693)
* fix(plugins): make sure to always render on first resize

* style(fmt): rustfmt

* fix tests
2024-10-24 08:46:16 +02:00
Aram Drevekenin
b71be135c2
fix(plugins): rebind insert (#3692)
* fix(tab): recover from closing a pane outside the viewport

* remap insert in plugin manager

* fix(plugins): remap insert key

* style(fmt): rustfmt
2024-10-23 17:34:41 +02:00
Aram Drevekenin
d671ab650e
feat(plugins): add API to list clients, their focused panes and running commands/plugins (#3687)
* fix(list-clients): properly show client info after a tab was closed

* feat(plugins): add API to list clients, their focused panes and running commands/plugins

* style(fmt): rustfmt
2024-10-22 15:27:40 +02:00
Manuel de Prada Corral
f968736a4e
fix(client): repeat retry screen instruction (#3570) 2024-10-16 09:00:41 +02:00
Aram Drevekenin
0c9d72c51e
feat(plugins): rebind keys api (#3680)
* feat(plugins): add API to explicitly unbind/rebind specific keys in specific modes

* style(fmt): rustfmt
2024-10-15 17:27:44 +02:00
Aram Drevekenin
618e0f7a34
fix(plugins): allow switching to a new session with cwd without specifying a layout (#3676) 2024-10-14 16:44:28 +02:00
Aram Drevekenin
cc04ec6ba4
fix(plugins): do not allow attaching to the same session (#3674) 2024-10-14 14:48:49 +02:00
Aram Drevekenin
d84cdec730
fix(resurrection): plugin alias resurrection (#3673)
* fix(resurrection): make sure plugin aliases are serialized properly

* style(fmt): rustfmt
2024-10-14 13:13:52 +02:00
Aram Drevekenin
2bd0f2a535
fix(plugins): various plugin api and other fixes (#3665)
* fix(plugins): do not allow focusing an unselectable pane

* fix(folders): make sure config and cache folders exist on app start
2024-10-11 18:04:18 +02:00
Aram Drevekenin
63208879da
fix(plugins): handle concurrent http downloads (#3664) 2024-10-11 15:26:05 +02:00
Aram Drevekenin
e3aeac63d3
fix(tab): recover from crash when resizing panes (#3659) 2024-10-10 15:04:38 +02:00
Aram Drevekenin
825ee60692
fix(ui): set background color for UI components according to theme (#3658) 2024-10-10 14:27:09 +02:00
Aram Drevekenin
8a8ffb37be
fix(ux): only damage the relevant swap layout layer when resizing panes (#3654) 2024-10-09 12:21:06 +02:00
Aram Drevekenin
8de5947771
fix(ui): various pane name fixes (#3653) 2024-10-09 10:44:43 +02:00
Aram Drevekenin
06a98fd971
fix(plugins): handle race when setting plugin selectable (#3651) 2024-10-09 08:08:29 +02:00
Aram Drevekenin
203fbf7a49
feat(cli): make --layout idempotent(-ish) (#3650)
* feat(cli): if inside a session, apply --layout to the session

* fix(screen): some focusing races when switching tab focus

* style(fmt): rustfmt
2024-10-08 16:57:54 +02:00
Aram Drevekenin
ba2772e31c
fix(http): web requests (#3643) 2024-10-04 18:09:06 +02:00
Aram Drevekenin
9f1e38f9fa
feat(ui): built-in plugin manager (#3633)
* add plugin list to session info

* feat(plugins): new_plugin and reload_plugin API commands

* feat(plugins): built-in plugin manager

* style(fmt): rustfmt

* update plugins
2024-09-30 18:04:40 +02:00
Aram Drevekenin
ce8e3995df
feat(config): allow loading background plugins on startup (#3616)
* remove old partial implementation

* feat(plugins): allow loading background plugins on startup

* add e2e test

* update config

* udpate config merging

* style(fmt): rustfmt
2024-09-20 15:38:20 +02:00
Aram Drevekenin
d78f3586dd
feat(plugins): APIs to break multiple panes into a new tab or an existing tab (#3610)
* feat(plugins): break multiple panes to a new tab

* fix(layouts): properly ignore run instructions when breaking panes

* feat(plugins): break multiple panes to existing tab

* feat(apis): allow these methods to also specify whether they want focus changed to the tab

* various fixes

* allow specifying name for the new tab when breaking out panes

* style(fmt): rustfmt
2024-09-16 21:02:04 +02:00
Aram Drevekenin
1776d240da
feat(plugins): add plugin APIs to affect other panes (#3576)
* resize_pane_with_id and close_pane_with_id

* focus_pane_with_id and edit_scrollback_for_pane_with_id

* write_to_pane_id and write_chars_to_pane_id

* lots more commands

* style(fmt): rustfmt
2024-08-29 17:35:21 +02:00
Aram Drevekenin
820ff85231
feat(ux): reload config options at runtime (#3564)
* change simplified_ui at runtime

* change default_shell at runtime

* change pane_frames (from config) at runtime

* all other options

* some refactoring

* style(fmt): rustfmt
2024-08-23 15:41:48 +02:00
Aram Drevekenin
08b6072a69
feat(plugins): API to temporarily bind keys to send a message to a specific plugin id (#3561) 2024-08-21 16:46:01 +02:00
Aram Drevekenin
e96491a3cf
feat(ux): change themes at runtime (#3559) 2024-08-20 16:10:27 +02:00
Aram Drevekenin
cfbc0ff490
feat(ux): reload config at runtime (#3558)
* feat(ux): reload config at runtime

* style(fmt): rustfmt
2024-08-19 19:02:52 +02:00
Aram Drevekenin
056537d3ee
feat(ux): first run setup-wizard (#3556)
* separate saved/runtime structure, kind of working

* serializing config

* work

* work

* save config through the configuration screen

* work

* startup wizard

* style(code): cleanups

* fix(session): reload config from disk when switching sessions

* style(fmt): rustfmt

* fix(config): propagate cli config options to screen

* style(fmt): rustfmt
2024-08-16 14:00:01 +02:00
Aram Drevekenin
a3ad621dc7
feat(plugins): command pane re-run event (#3553) 2024-08-14 16:47:46 +02:00
Aram Drevekenin
d44950a5bd
feat(plugins): rerun_command_pane API (#3546)
* feat(plugins): rerun_command_pane API

* fix tests
2024-08-07 19:20:41 +02:00