Home

Awesome

twilight-commander

Build Status

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.

Screenshot

Build and install

Instructions for Debian 10 or Ubuntu 18.04/20.04

stepdescription
1.install rusthttps://www.rust-lang.org/tools/install
2.clone the repositorygit clone https://github.com/golmman/twilight-commander.git
3.change to the newly created directorycd twilight-commander
4.build the projectcargo build --release
5.run the executable./target/release/twilight-commander

Implemented features

Configuration

The configuration is loaded as follows

  1. load values from $XDG_CONFIG_HOME/twilight-commander.toml
  2. else load values from $HOME/.config/twilight-commander/twilight-commander.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-commander.toml. The command line options are derived from the values defined inside the twilight-commander.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 keydefault configurationaction
up arrow--keybinding.entry_up=upmove an entry up
down arrow--keybinding.entry_down=downmove an entry down
left arrow--keybinding.collapse_dir=leftcollapse an entry directory or jump to parent if not collapsable
right arrow--keybinding.expand_dir=leftexpand an entry directory
r--keybinding.reload=rcollapse all directories and reload root directory
return--keybinding.file_action=returnperform configured file action
q--keybinding.quit=qquit

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-commander process created with

twilight-commander "--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.:

--behavior.file_action defaults to true, which does (almost) nothing.

Scrolling modes

Specified with the option --behaviour.scrolling (default = center)

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-commander/tc.log

Usage with tmux and vim

Screenshot

The tcide_vim and tcide_neovim scripts open a new tmux session with 3 panes: (neo)vim, twilight-commander and terminal. Hitting the file_action key (default: return) on a file entry opens it in a new tab.

tcide requirements

When using vim you need to build it with the clientserver option:

git clone https://github.com/vim/vim.git
cd vim/src
make distclean
./configure +clientserver
make
sudo make install

Ideas for improvements