|
||
---|---|---|
src | ||
tests/test_dirs | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
Justfile | ||
LICENSE | ||
README.md | ||
taplo.toml | ||
twilight-tree.toml |
This is a fork of twilight-commander
twilight-tree
A simple console tree file explorer for linux, similiar to NERDTree but independent of vim. Developed and tested on Ubuntu 18.04 with xterm derivatives.
Build and install
git clone https://git.4rs.nl/awiteb/twilight-tree
cd twilight-tree
cargo install --path . # this will install the binary in $HOME/.cargo/bin
Implemented features
Configuration
The configuration is loaded as follows
- load values from
$XDG_CONFIG_HOME/twilight-tree.toml
- else load values from
$HOME/.config/twilight-tree/twilight-tree.toml
- fill missing values with app defaults
- overwrite values with defines from the command line options
For a config file with the default values, see twilight-tree.toml. The command line options are derived from the values defined inside the twilight-tree.toml . E.g.
[debug]
enabled = true
is set with the option --debug.enabled=true
.
Configurable key bindings
The key bindings are configurable. For the set of configurable keys and key combinations consult the event.rs.
default key | default configuration | action |
---|---|---|
up arrow | --keybinding.entry_up=up |
move an entry up |
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 |
right arrow | --keybinding.expand_dir=left |
expand an entry directory |
r | --keybinding.reload=r |
collapse all directories and reload root directory |
return | --keybinding.file_action=return |
perform configured file action |
q | --keybinding.quit=q |
quit |
Directory entry management
File Action
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.
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'"
then
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, which does
(almost) nothing.
Scrolling modes
Specified with the option --behaviour.scrolling
(default = center
)
center
: move the cursor until it is in the center, then move the text insteadeditor
: move the cursor until it hits the top/bottom boundaries set by thedebug.paddin_top/bot
limits
Utf-8 support
In case your terminal does not support utf-8 you can disable it with --composition.use_utf8=false
.
Logs
Logs are written to
$XDG_CONFIG_HOME/tc.log
if XDG_CONFIG_HOME is defined- else they are placed in
$HOME/.config/twilight-tree/tc.log
License
This project is licensed under the MIT License - see the LICENSE file for details.