* 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]`
* 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.
* 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
Previously, a config file was loaded within `start()`, and if the config
file is invalid, Zellij was supposed to show a user what's wrong with
it. However, since `start()` starts setting up its terminal with an
alternative screen buffer, neither standard output nor standard error
could display such an error.
This change intends to address this issue by making Zellij load a config
file before `start()`.
In addition, the patch also includes some refactorings:
* Redefine `from_cli_config` with `TryFrom`, which was introduced in
Rust 1.34
* Remove conditional declaration `cfg(not(test))` because `start()` now
receive a `Config` as the third argument
* Introduce [`tempfile`](https://crates.io/crates/tempfile) in order to
run tests with actual files
* Typo?: "Deserialisation" -> "Deserialization"
* Configuration is now handled in this order:
--config flag
ZELLIJ_CONFIG_FILE env
get_default_config_dir() (directories-next)
HOME/.config/zellij (for mac convenience)
SYSTEM_DEFAULT_CONFIG_DIR (for distributions to specify sensible
defaults ontop of zellij)
from assets
* Fix default.yaml file
* Move default.yaml file to assets directory