chore: Update README.md

Signed-off-by: Awiteb <a@4rs.nl>
This commit is contained in:
Awiteb 2024-12-25 20:46:55 +00:00
parent 626d2e464b
commit f73800a3a5
Signed by: awiteb
GPG key ID: 3F6B55640AA6682F

View file

@ -13,73 +13,101 @@ cd twilight-tree
cargo install --path . # this will install the binary in $HOME/.cargo/bin cargo install --path . # this will install the binary in $HOME/.cargo/bin
``` ```
## `twilight-tree` vs `twilight-commander`
- With `twilight-tree` you can hide the header (Which is the current working
directory) with `--setup.with_cwd_header=false`
- You can rename a file/directory using the `r` keybinding. To move a
file/directory, specify the new path along with the new name. For example,
`../new_name.rs` will move the file to the parent directory and rename it to
`new_name.rs`.
<!-- - You can create a new file with `n+f` keybinding
- You can create a new directory with `n+d` keybinding
- You can delete a file/directory with `d` keybinding -->
## Implemented features ## Implemented features
### Configuration ### Configuration
The configuration is loaded as follows The configuration is loaded as follows
1. load values from `$XDG_CONFIG_HOME/twilight-tree.toml` 1. load values from `$XDG_CONFIG_HOME/twilight-tree.toml`
2. else load values from `$HOME/.config/twilight-tree/twilight-tree.toml` 2. else load values from `$HOME/.config/twilight-tree/twilight-tree.toml`
2. fill missing values with app defaults 3. fill missing values with app defaults
3. overwrite values with defines from the command line options 4. overwrite values with defines from the command line options
For a config file with the default values, see [twilight-tree.toml](./twilight-tree.toml). For a config file with the default values, see [twilight-tree.toml](./twilight-tree.toml).
The command line options are derived from the values defined inside the twilight-tree.toml . The command line options are derived from the values defined inside the twilight-tree.toml .
E.g. E.g.
``` ```
[debug] [debug]
enabled = true enabled = true
``` ```
is set with the option `--debug.enabled=true`. is set with the option `--debug.enabled=true`.
### Configurable key bindings ### Configurable key bindings
The key bindings are configurable. For the set of configurable keys and key combinations consult the [event.rs](./src/model/event.rs). The key bindings are configurable. For the set of configurable keys and key combinations consult the [event.rs](./src/model/event.rs).
|default key|default configuration|action| | default key | default configuration | action |
|---|---|---| | ------------- | --------------------------------- | ---------------------------------------------------------------- |
|up arrow|`--keybinding.entry_up=up`|move an entry up| | `up arrow` | `--keybinding.entry_up=up` | move an entry up |
|down arrow|`--keybinding.entry_down=down`|move an entry down| | `down arrow` | `--keybinding.entry_down=down` | move an entry down |
|left arrow|`--keybinding.collapse_dir=left`|collapse an entry directory or jump to parent if not collapsable| | `left arrow` | `--keybinding.collapse_dir=left` | collapse an entry directory or jump to parent if not collapsable |
|right arrow|`--keybinding.expand_dir=left`|expand an entry directory| | `right arrow` | `--keybinding.expand_dir=left` | expand an entry directory |
|r|`--keybinding.reload=r`|collapse all directories and reload root directory| | `r` | `--keybinding.rename_mode=r` | Enter rename mode (To exit rename mode press `quit` keybinding) |
|return|`--keybinding.file_action=return`|perform configured file action| | `ctrl+r` | `--keybinding.reload=r` | collapse all directories and reload root directory |
|q|`--keybinding.quit=q`|quit| | `return` | `--keybinding.file_action=return` | perform configured file action |
| `ctrl+q` | `--keybinding.quit=q` | quit |
### Directory entry management ### Directory entry management
#### File Action #### File Action
The command line option / config value `--behavior.file_action` defines the action taken when the return key is pressed The command line option / config value `--behavior.file_action` defines the action taken when the return key is pressed
on a file. The action is interpreted by `bash` and any occurence of `%s` will be replaced by the selected filename. on a file. The action is interpreted by `bash` and any occurence of `%s` will be replaced by the selected filename.
E.g. when enter is pressed on the file `.bashrc` in a twilight-tree process created with E.g. when enter is pressed on the file `.bashrc` in a twilight-tree process created with
``` ```
twilight-tree "--behavior.file_action=xterm -e 'cat %s; echo opened file: %s; bash'" twilight-tree "--behavior.file_action=xterm -e 'cat %s; echo opened file: %s; bash'"
``` ```
then then
``` ```
bash -c "xterm -e 'cat /home/user/.bashrc; echo opened file: /home/user/.bashrc; bash'" bash -c "xterm -e 'cat /home/user/.bashrc; echo opened file: /home/user/.bashrc; bash'"
``` ```
is executed, i.e.:
* a new xterm window is opened
* where the selected file (`.bashrc`) is printed to stdout
* then `opened file: ~/.bashrc` is printed
* `bash` prevents the window from closing.
`--behavior.file_action` defaults to [true](https://en.wikipedia.org/wiki/True_and_false_(commands)), which does is executed, i.e.:
- a new xterm window is opened
- where the selected file (`.bashrc`) is printed to stdout
- then `opened file: ~/.bashrc` is printed
- `bash` prevents the window from closing.
`--behavior.file_action` defaults to [true](<https://en.wikipedia.org/wiki/True_and_false_(commands)>), which does
(almost) nothing. (almost) nothing.
### Scrolling modes ### Scrolling modes
Specified with the option `--behaviour.scrolling` (default = `center`) Specified with the option `--behaviour.scrolling` (default = `center`)
* `center`: move the cursor until it is in the center, then move the text instead - `center`: move the cursor until it is in the center, then move the text instead
* `editor`: move the cursor until it hits the top/bottom boundaries set by the `debug.paddin_top/bot` limits - `editor`: move the cursor until it hits the top/bottom boundaries set by the `debug.paddin_top/bot` limits
### Utf-8 support ### Utf-8 support
In case your terminal does not support utf-8 you can disable it with `--composition.use_utf8=false`. In case your terminal does not support utf-8 you can disable it with `--composition.use_utf8=false`.
### Logs ### Logs
Logs are written to Logs are written to
1. `$XDG_CONFIG_HOME/tc.log` if XDG_CONFIG_HOME is defined 1. `$XDG_CONFIG_HOME/tc.log` if XDG_CONFIG_HOME is defined
2. else they are placed in `$HOME/.config/twilight-tree/tc.log` 2. else they are placed in `$HOME/.config/twilight-tree/tc.log`
## License ## License
This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details. This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.