With this commit, the following can be done:
- Define layout constraints based on screen size and relative panel
size.
- Define borders.
- Define panel style.
- Define panel title and title style.
Any layouts will default to `Nothing` which resembles blank screen.
However, they will be overwritten when there is a more specific layout
available either in the super config or in the sub config.
Now, users can change the UI layout via the `SwitchLayout{Builtin|Custom}`
message, or by using key `ctrl-w`.
There are 3 default layout options -
- default
- no_help
- no_selection
- no_help_no_selection
Also, the initial mode and the initial layout can be specified in the
config.
Closes: https://github.com/sayanarijit/xplr/issues/107
From this version, xplr won't annoy the users to visit the upgrade guide
when there is no need.
Also, users will only get upgrade related notification when it is
there is one.
- Rename `custom` field for node metadata to `meta`.
- Move `icon` to `meta.icon`.
- Rename `normal_ui` to `default_ui`.
- Rename `filetypes` to `node_types`.
- Split `modes` into `modes.builtin` and `modes.custom`.
- Add the missing `create file` mode.
- Rename `focused_ui` to `focus_ui`.
- Make `general.table.header` non-nullable.
- Add support for incremental configuration updates.
Ref: https://github.com/sayanarijit/xplr/issues/45
Example:
```yaml
filetypes:
directory:
custom:
foo: bar
...
```
Where `foo` and `bar` can be anything string.
It can be accessed with the `{{{custom.foo}}}` variable.