Commit Graph

1246 Commits

Author SHA1 Message Date
a-kenji
0ab00e2c6c
Merge pull request #600 from a-kenji/layout-command
Add commands to layout
2021-07-09 16:58:29 +02:00
a-kenji
261e691f9f Add commands to layout
Add the ability to run commands on loading a layout:
```
  - direction: Horizontal
    split_size:
      Percent: 50
    run:
      command: {cmd: htop}
```
or respectively:
```
  - direction: Horizontal
    split_size:
      Percent: 50
    run:
      command: {cmd: htop, args: ["-C"]}
```

In order to specify the difference of commands and
plugins now the plugins need to be under the `run` section:
```
  - direction: Vertical
    split_size:
      Fixed: 2
    run:
      plugin: status-bar
```
This also means that this is a breaking change for people
that already have a custom layout.

Example layouts:
```
---
direction: Vertical
parts:
  - direction: Horizontal
    split_size:
      Percent: 50
    parts:
      - direction: Vertical
        split_size:
          Percent: 50
      - direction: Vertical
        split_size:
          Percent: 50
        run:
          command: {cmd: htop}
  - direction: Horizontal
    split_size:
      Percent: 50
    run:
      command: {cmd: htop}
```
and:
```
---
direction: Horizontal
parts:
  - direction: Vertical
    split_size:
      Fixed: 1
    run:
      plugin: tab-bar
  - direction: Vertical
    parts:
    - direction: Vertical
      parts:
      - direction: Vertical
        split_size:
          Percent: 50
        run:
          command: {cmd: htop}
      - direction: Vertical
        split_size:
          Percent: 50
        run:
          command: {cmd: htop, args: ["-C"]}
  - direction: Vertical
    split_size:
      Fixed: 5
  - direction: Vertical
    split_size:
      Fixed: 2
    run:
      plugin: status-bar
```

closes #551, closes #284
2021-07-09 16:43:44 +02:00
a-kenji
8363705939 Add serde-alias for on_force_close
* It doesn't deserialize from the configuration otherwise,
  if specified in lower-case.

Alternative: use a rename.
2021-07-09 15:05:47 +02:00
a-kenji
cf8d5a7a4d Use lowercase for options 2021-07-09 13:11:02 +02:00
a-kenji
89f84ecd3f Simplify merging of options 2021-07-09 13:09:05 +02:00
a-kenji
6299660d5c Add doc-comment for mouse-mode 2021-07-09 11:57:52 +02:00
a-kenji
337674b073 Improve clarity of precedence in options 2021-07-09 11:56:49 +02:00
Kunal Mohan
0e6e581356
Merge pull request #609 from zellij-org/force-close
Add on_force_close config option
2021-07-09 12:50:04 +05:30
qepasa
a38c176646
Update Cargo.toml 2021-07-09 07:56:54 +02:00
qepasa
383446d025
Update Cargo.toml 2021-07-09 07:56:20 +02:00
qepasa
45d2992a3f
Merge branch 'main' into unified-logging 2021-07-08 22:55:50 -07:00
Paweł Palenica
3b78d7d0a4 More cleanup, remove serde from zellij-server 2021-07-08 22:01:03 -07:00
Paweł Palenica
8d864e1fbf remove one more crate from zellij-server 2021-07-08 21:53:22 -07:00
Paweł Palenica
a076d9ef14 Cleanup 2021-07-08 21:49:56 -07:00
Paweł Palenica
13b5d1e58f Add padding to logger 2021-07-08 21:43:19 -07:00
Kunal Mohan
56af1d8640 Add doc comment for the on_force_close option 2021-07-09 00:42:06 +05:30
Kunal Mohan
67ee63548a Add on_force_close config option 2021-07-09 00:36:47 +05:30
Lovecraftian Horror
4fcf558156 Display session name within session 2021-07-08 14:16:25 -04:00
Paweł Palenica
ba21b86435 Cleanup log config file a bit, make format verbose so everyone can understand it without looking into log4rs docs 2021-07-07 23:27:07 -07:00
Paweł Palenica
21b88281ce Add test case for malformed input and detect too long messages 2021-07-07 23:14:50 -07:00
Paweł Palenica
46cac59d4c Add unit tests for decorating pipe and clean it up a bit 2021-07-07 22:54:38 -07:00
a-kenji
50d049a0ed docs(changelog): Change Run binding #602
Change
```
Run: {command: <path>, args: [ARGS], direction: <direction> }
```
into
```
Run: {cmd: <path>, args: [ARGS], direction: <direction> }
```
2021-07-07 11:09:26 +02:00
a-kenji
c1f57535e7
Merge pull request #602 from a-kenji/run-command-rename
Change name of `Run` binding for actions
2021-07-07 11:08:19 +02:00
Paweł Palenica
13dd445574 Some progress on decorating pipe. Add some logic to handle endl in plugin messages. Basic logging from plugins works now. 2021-07-06 23:41:37 -07:00
a-kenji
af86edcf99 Change name of Run binding for actions
* Change
```
Run: {command: <path>, args: [ARGS], direction:<direction> }
```
into
```
Run: {cmd: <path>, args: [ARGS], direction:<direction> }
```
2021-07-06 23:42:05 +02:00
Kunal Mohan
eb7f0773c5
Merge pull request #598 from zellij-org/rm-feat-test
Remove test feature and hacks
2021-07-06 21:51:28 +05:30
Kunal Mohan
e2949509a2 Add custom function for unit test in zellij-utils 2021-07-06 21:32:44 +05:30
Kunal Mohan
82288c6a3d Remove test feature and hacks 2021-07-06 21:32:43 +05:30
Aram Drevekenin
79c30e9d59
docs(changelog): kill children properly 2021-07-05 18:52:15 +02:00
Aram Drevekenin
47206866b6
fix(os): attempt to stop children with SIGTERM before SIGKILL (#601)
* fix(os): attempt to stop children with SIGTERM before SIGKILL

* style(fmt): make rustfmt happy
2021-07-05 18:51:14 +02:00
Aram Drevekenin
9c419a0a4f
docs(changelog): fix version number again :) 2021-07-05 11:08:58 +02:00
Aram Drevekenin
50a580f6bd
docs(changelog): fix version number 2021-07-05 11:08:26 +02:00
Aram Drevekenin
7fe87f59a3 chore(version): bump development version 2021-07-05 11:04:51 +02:00
Aram Drevekenin
2e0e22cdb4 chore(release): v0.14.0 2021-07-05 10:13:46 +02:00
a-kenji
579701a2bb docs(changelog): Add layout-dir to setup --check #599 2021-07-04 17:34:55 +02:00
a-kenji
50d445722f
Merge pull request #599 from a-kenji/layout-check
Add `layout-dir` to `setup --check` subcommand
2021-07-04 17:33:28 +02:00
a-kenji
6bcd84f6d5 Add layout-dir to setup --check subcommand 2021-07-04 14:23:52 +02:00
Aram Drevekenin
51c826b991
docs(changelog): initial mouse support 2021-07-02 16:41:27 +02:00
Thomas Linford
f93308f211
feat(ui): initial mouse support (#448)
* Initial mouse support

* enable mouse support (termion MouseTerminal)
* handle scroll up and down events

* Allow enabling/disabling of mouse reporting

Store the mouse terminal on OsInputOutput

* WIP: switch pane focus with mouse

* testing to get mouse character selection

* wip mouse selection

* wip: mouse selection

- initial handling of mouse events for
  text selection within a pane
- wide characters currently problematic
- selection is not highlighted

* highlight currently selected text

* improve get currently selected text from TerminalPane

* copy selection to clipboard (wayland only for now)

* Add missing set_should_render on selection update

* Improve text selection

- Strip whitespace from end of lines
- Insert newlines when selection spans multiple lines

* Simplify selection logic

- Remove Range struct
- Selection is not an Option anymore, it's empty when start == end

* copy selection to clipboard with OSC-52 sequence

* Improve text selection with multiple panes

- Constrain mouse hold and release events to currently active pane
- Fix calculation of columns with side by side panes

* fix for PositionAndSize changes

* Fix mouse selection with full screen pane.

- Transform mouse event positions to relative when passing to pane.

* Move selection to grid, rework highlighting.

- Mark selected lines for update in grid output buffer, for now in the
  simplest way possible, but can be made more efficient by calculating
  changed lines only.
- Clear selection on pane resize.
- Re-add logic to forward mouse hold and release events only to
  currently active pane.

* Tidy up selection

- add method to get selection line range
- add method to sort the current selection

* Grid: move current selection up/down when scrolling

- Make the selection work with lines in lines_above and lines_below
- Todo: update selection end when scrolling with mouse button being held
- Todo: figure out how to move selection when new characters are added.

* Grid: move selection when new lines are added

* Keep track of selection being active

- Handle the selection growing/shrinking when scrolling with mouse
  button held down but not yet released.

* Improve selection end with multiple panes

* Tidying up

- remove logging statements, unused code

* Add some unit tests for selection, move position to zellij-utils

* Change Position::new to take i32 for line

* Grid: add unit tests for copy from selection

* add basic integration test for mouse pane focus

* Add basic integration test for mouse scroll

* Use color from palette for selection rendering

* Improve performance of selection render

- Try to minimize lines to update on selection start/update/end

* fixes for updated start method

* fix lines not in viewport being marked for rendering

- the previous optimization to grid selection rendering was always
adding the lines at the extremes of previous selection, causing problems
when scrolling up or down
- make sure to only add lines in viewport

* Disable mouse mode on exit

* use saturating_sub for usize subtractions

* copy selection to clipboard on mouse release

* disable mouse on exit after error

* remove left-over comments

* remove copy keybinding

* add default impl for selection methods in Pane

- remove the useless methods from Impl Pane in PluginPane

* move line diff between selections to selection

* add option to disable mouse mode

* Allow scrolling with mouse while selecting.

* move action repeater to os_input_output, change timeout to 10ms

- change repeater to take an action instead of a position with hardcoded
action

* replace mouse mode integration tests with e2e tests

* cleanup

* cleanup

* check if mouse mode is disabled from merged options

* fix missing changes in tests, cleanup
2021-07-02 16:40:50 +02:00
a-kenji
2a024db839 chore(changelog): Add run-command option #596 2021-07-02 14:08:14 +02:00
a-kenji
5c3759e155
Merge pull request #596 from a-kenji/run-command-action
Add running commands to an action
2021-07-02 14:06:36 +02:00
a-kenji
0bf78100dd Add running commands to an action
Add the ability to bind running commands to
an action.

Eg:
```
- action: [Run: {command: "htop",},]
  key: [F: 6,]
``

Optionally the direction and arguments can be
specified:

```
- action: [Run: {command: "htop", args: ["-C",]},]
  key: [F: 7,]
```
The directional splits are analogous to the `[NewPane]` splits.
```
- action: [Run: {command: "htop", args: ["-C",], direction: "Up"},]
  key: [F: 8,]
```
2021-07-02 13:39:02 +02:00
a-kenji
81941be134
Merge pull request #595 from a-kenji/load-default-shell
Improve loading of default shell slightly
2021-07-01 22:24:01 +02:00
a-kenji
06e19516f4 Improve loading of default shell slightly 2021-07-01 21:48:24 +02:00
a-kenji
04ad07d9e9 docs(changelog): Add option for default-shell 2021-07-01 20:28:00 +02:00
a-kenji
8524f52ff4
Merge pull request #594 from a-kenji/default-shell
Add an option to specify a default-shell
2021-07-01 20:25:14 +02:00
a-kenji
6f1c103e02 Add option to specify default-shell
* Adds an option to specify a default shell
  either by specifying `default_shell: [PATH]`
  in the config, or running zellij with
  `zellij options --default-shell [PATH]`
2021-07-01 20:02:08 +02:00
a-kenji
71f980a01d
Merge pull request #593 from a-kenji/modularize-spawn-terminal
Modularize spawn_terminal_function
2021-06-30 19:56:39 +02:00
a-kenji
8086765e50 fixup! Fix merged tests 2021-06-30 19:45:15 +02:00
a-kenji
242e41d67f Merge branch 'main' of https://github.com/zellij-org/zellij into modularize-spawn-terminal 2021-06-30 18:59:55 +02:00