Embeddable TUI files tree
Find a file
Awiteb 2b954bdb2e
chore: Bump the MSRV to 1.79.0
Signed-off-by: Awiteb <a@4rs.nl>
2024-12-25 20:27:06 +00:00
src feat: Support entry renaming 2024-12-25 12:14:55 +00:00
tests/test_dirs chore: First commit 2024-12-22 20:10:53 +00:00
.gitignore chore: First commit 2024-12-22 20:10:53 +00:00
Cargo.lock chore: First commit 2024-12-22 20:10:53 +00:00
Cargo.toml chore: Bump the MSRV to 1.79.0 2024-12-25 20:27:06 +00:00
Justfile fix: Add double curly brackets to test variable name 2024-12-22 21:29:02 +00:00
LICENSE chore: Add the license 2024-12-22 20:09:52 +00:00
README.md chore: First commit 2024-12-22 20:10:53 +00:00
taplo.toml chore: Add taplo.toml 2024-12-22 20:10:45 +00:00
twilight-tree.toml feat: A configuration to hide the header 2024-12-23 00:33:34 +03:00

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

  1. load values from $XDG_CONFIG_HOME/twilight-tree.toml
  2. else load values from $HOME/.config/twilight-tree/twilight-tree.toml
  3. fill missing values with app defaults
  4. 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 instead
  • editor: move the cursor until it hits the top/bottom boundaries set by the debug.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

  1. $XDG_CONFIG_HOME/tc.log if XDG_CONFIG_HOME is defined
  2. 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.