4.7 KiB
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
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 tonew_name.rs
. - You can delete a file/directory with
ctrl+d
keybinding - You can create a new file with
n+f
keybinding - You can create a new directory with
n+d
keybinding
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.rename_mode=r |
Enter rename mode (To exit rename mode press quit keybinding) |
n |
--keybinding.new_entry=n |
Enter create mode (To exit rename mode press quit keybinding) |
ctrl+r |
--keybinding.reload=r |
collapse all directories and reload root directory |
ctrl+d |
--keybinding.remove=ctrl+d |
remove a file/directory |
return |
--keybinding.file_action=return |
perform configured file action |
esc |
--keybinding.quit=esc |
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.