Commit graph

182 commits

Author SHA1 Message Date
a-kenji
485339c584 Merge branch 'main' of https://github.com/zellij-org/zellij into tab-layout 2021-07-23 17:24:45 +02:00
a-kenji
5ede25dc37 Add tabs to layouts
fixes #603, fixes #349

* The layout has now a unique `tabs` section,
  that can be used, like the `parts` section,
  everything that is not inside the tabs section
  is assumed to be present on every single tab
  that is opened.

  This is a BREAKING CHANGE for people that use
  custom `layouts` already, since the `tabs` section
  is not optional - for clarity and intentionality reasons.

  The functionality to specify multiple tabs is already there,
  but is still gated behind a panic, until #621 is fixed.
  So for now one tab can be specified to load on startup.

* The `NewTab` action can optionally be bound to open
  a layout that is assumed to be in the new `tabs` section

  This is a BREAKING CHANGE for people that have the
  `NewTab` action already bound in the config file:

```
- action: [NewTab, ]
  key: [F: 5,]
```
must now be specified as:
```
- action: [NewTab: ,]
  key: [F: 5,]
```
  Optionally a layout that should be opened on the new tab can be
  specified:
```
- action: [NewTab: {
  direction: Vertical,
  parts: [ {direction: Horizontal, split_size: {Percent: 50}}, {direction: Horizontal, run: {command: {cmd: "htop"}}},],
  key: [F: 6,]
```
or:
```
- action: [NewTab: {direction: Vertical, run: {command: {cmd: "htop"} }},]
  key: [F: 7,]
```
or
```
- action: [NewTab: {
  direction: Vertical,
  parts: [ {direction: Vertical, split_size: {Percent: 25},run: {plugin: "strider" }}, {direction: Horizontal}],}, MoveFocus: Left,]
  key: [F: 8,]

```
2021-07-23 17:13:35 +02:00
a-kenji
903cb68a40 Add cmd to dump layout to stdout
Adds the ability to dump the default layouts to
stdout, similar to the `zellij setup --dump-config`,
but now it needs the name of a currently existing
layout:

- default
- strider
- disable-status

`zellij setup --dump-layout [LAYOUT]`
2021-07-22 16:40:36 +02:00
Paweł Palenica
27634423d9 Minor fixes 2021-07-17 23:50:24 -07:00
Paweł Palenica
b15cfba6e1 Apply code review suggestions. Rename decorating_pipe to logging_pipe. Add plugin_id to plugin log. Move logger init from file to in-code initialization and change logging file to zellij directory. Change format of timestamp. 2021-07-13 23:29:04 -07:00
qepasa
45d2992a3f
Merge branch 'main' into unified-logging 2021-07-08 22:55:50 -07:00
a-kenji
6bcd84f6d5 Add layout-dir to setup --check subcommand 2021-07-04 14:23:52 +02:00
Paweł Palenica
0c570a52f5 feat: Add logger to Zellij
We add log4rs create for logging across Zellij. Additionally, we capture
`stderr` output from plugins and log it the same log file as other
Zellij logs.
2021-06-29 23:46:00 -07:00
a-kenji
a9088264eb Change layout directory from data to config
* default layouts won't be installed by anymore,
  instead they will be directly loaded

* `layout-dir` is now a subdirectory of the
  `config-dir` by default, instead of the `data-dir`

  POSSIBLE BREAKING CHANGE:
  In case of having custom layouts in the previous
  `layout-dir` one can switch either the layouts to
  the new dir, or set the `layout-dir` to be the current
  `layout-dir`

* it is possible to change the location of the `layout-dir`:
  - `zellij options --layout-dir [LAYOUR_DIR]`
  - `layout_dir: [LAYOUT_DIR]`
2021-06-16 17:09:05 +02:00
a-kenji
cafcca0c57 Move layout.rs from server to utils
* give feedback on most errors in the layout-file
2021-06-14 21:55:17 +02:00
a-kenji
70d9d2cf4f Add default_mode to attach
* Attaching a new session now also respects the
  default_mode setting of the client
2021-05-29 19:08:36 +02:00
Kunal Mohan
0bd05cbcb4 Make session-name option in attach command
If only one session is running, attach to it.
Otherwise list the active sessions (if any)
2021-05-29 00:32:06 +05:30
Kunal Mohan
cb3072066d hotfix(publish): Move install module and asset_map to main zellij package. publish should hopefully work now. 2021-05-27 15:30:14 +05:30
Kunal Mohan
cba7c07cd6 rename list_sessions file to sessions 2021-05-22 22:34:00 +05:30
Kunal Mohan
0621ba8f34 Allow user to specify session name 2021-05-22 22:21:26 +05:30
Kunal Mohan
1162d40ea0 check if session exists before attaching 2021-05-22 22:19:50 +05:30
Kunal Mohan
fa0a7e05c3 Add ability to attach to sessions 2021-05-22 22:19:50 +05:30
Kunal Mohan
61aa104576 Add ability to detach a session 2021-05-22 22:19:50 +05:30
Kunal Mohan
2487256664 Mark current session in the output of list-sessions 2021-05-22 22:19:50 +05:30
Kunal Mohan
d231d28d7c Implement the minimal list-sessions command 2021-05-22 22:19:50 +05:30
Kunal Mohan
d6fc7b04d1 add attach and list sessions subcommand to CliArgs 2021-05-22 22:19:50 +05:30
Kunal Mohan
b20ac47d68
Merge pull request #522 from zellij-org/re-export-dependencies
Re-export common dependencies from zellij-utils
2021-05-19 11:21:33 +05:30
Kunal Mohan
040d10df0f Re-export common dependencies from zellij-utils 2021-05-19 01:35:53 +05:30
a-kenji
79e7c414b7 Fix clean flag
* The setup subcommand was exiting the programm no matter what
  even if the `clean` flag was provided.
  Now it returns to the
  main function on encountering the clean flag.
2021-05-18 11:12:57 +02:00
Kunal Mohan
2038947a14 Big refactor: separate crates for client, server and utilities 2021-05-16 21:41:56 +05:30
Thomas Linford
28212f5430
handle error on termios initialization (#511) 2021-05-16 17:00:22 +01:00
Kunal Mohan
050d846b5e clean and exit on window close 2021-05-15 22:18:29 +05:30
Kunal Mohan
378dd90f8f Do not pass config_options while spawning server process 2021-05-15 22:14:35 +05:30
Kunal Mohan
41212dc0e8 Fix after rebase 2021-05-15 22:14:34 +05:30
Kunal Mohan
e203f96d78 fix testing 2021-05-15 22:14:34 +05:30
Kunal Mohan
0d792e26f2 Switch to multiprocess model: Not looking good 2021-05-15 22:14:34 +05:30
a-kenji
d667e5ed81 Add check flag to the setup subcommand
* The check option communicates default and config options to the user
  as well as optional compile time features

* Move generate-completion from a subcommand to a flag in the setup
  subcommand
2021-05-14 11:45:19 +02:00
a-kenji
776a2c5151 Fix Simplified Ui
Propagate the config now, in all the places, as opposed to
fallback to a default.
2021-05-12 15:27:28 +02:00
a-kenji
0abb165aec Fix exit code on dump-default-config 2021-05-10 17:14:00 +02:00
Kyle Sutherland-Cash
9a3e8bcb84 First round of merging against server-client and color stuff 2021-05-08 04:32:31 -07:00
Kunal Mohan
585b225290 Use ZELLIJ_SOCKET_DIR env variable and make user specific tmp dir 2021-05-04 20:48:18 +05:30
Kunal Mohan
d33106431d Fix after rebase 2021-05-04 20:48:17 +05:30
Kunal Mohan
9110e444b8 remove Split, OpenFile and MoveFocus from CliArgs 2021-05-04 20:48:16 +05:30
Kunal Mohan
b7aa3fc21a Use interprocess crate for IPC 2021-05-04 20:48:16 +05:30
Kunal Mohan
fedb588330 Fix after rebase 2021-05-04 20:48:15 +05:30
Kunal Mohan
223ee743e1 Move screen and plugins to client side.
Remove AppInstruction enum
spawn pty thread, screen thread and plugin thread on demand
2021-05-04 20:48:15 +05:30
Kunal Mohan
4f088e8185 split start into start_server and start_client 2021-05-04 20:48:14 +05:30
Kunal Mohan
813547483f Rename notify_server to connect_to_server 2021-05-04 20:47:52 +05:30
Kunal Mohan
e30ec5745e Add router thread on server side as well 2021-05-04 20:47:52 +05:30
Kunal Mohan
965cc71918 Hide IpcChannel entirely behind OsApi 2021-05-04 20:47:52 +05:30
Kunal Mohan
bc2345c413 Hide server-side Ipc channels creation behind OsApis and some documentation fixes 2021-05-04 20:47:52 +05:30
Kunal Mohan
2ab18244f7 fix tests 2021-05-04 20:47:51 +05:30
Kunal Mohan
0d814ebcde Divide OsApi into ClientOsApi and ServerOsApi and move calls to os thread 2021-05-04 20:47:51 +05:30
Kunal Mohan
ef1c902be6 Introduce DoneCLosingPane message to ensure atomicity in state change 2021-05-04 20:47:50 +05:30
Kunal Mohan
77682d9ab5 Use ipmpsc crate for IPC 2021-05-04 20:47:49 +05:30