Built for integration with kakoune, but with a little bit of configuration, it can be used with most TUIs, or even as a minimal terminal file manager in its own right.
Currently in early alpha stage, PRs are welcome!
Since sidetree is published on crates.io,
any system with cargo
installed can simply get sidetree by running. Notice however that sidetree
requires the rust toolchain nightly.
sh
cargo install sidetree
Very simple integration with kakoune in tmux:
kak
map -docstring 'file explorer' global normal <c-e> ':connect panel sidetree --select %val{buffile}<ret>'
This also requires kcr
Commands can be placed in ~/.config/sidetree/sidetreerc
:
```
set showhidden false
set quitonopen false
set opencmd 'kcr open "${sidetree_entry}"'
set fileicons true set iconstyle darkgray set dirnamestyle lightblue+b set filenamestyle reset set highlightstyle +r set linkstyle cyan+b ```
For more examples, see the provided sidetreerc
file.
Commands can be executed by pressing :
to get the command prompt, or placed in
the config file as described above.
quit
Quit sidetree
open [path]
Open the given path or the currently selected one. See the open_cmd
option
below for configuration.
set <option> <value>
Set a config option. See options below
echo [args...]
Echo something to the status line. All arguments will be joined by spaces and echoed.
shell [command...]
Execute command
in a shell. Without quotes, all arguments are joined by spaces and
executed.
cd [path]
Change root directory to the given path, or the currently selected folder.
map <key> <command> [args...]
Map a key to another sidetree command. Example: map H cd ..
Keys are formatted as one of the following:
- A character, or one of return
, ret
, semicolon
, gt
, lt
, percent
, space
,
tab
.
- Any of the above with modifiers ctrl
or alt
, formatted as
<[mods-...][key]>
, for example <c-j>
, <a-j>
, <c-a-space>
etc.
- One of the special named keys that do not support modifiers: esc
, backtab
,
backspace
, del
, home
, end
, up
, down
, left
, right
, insert
,
pageup
, pagedown
.
sidetree_entry
Path to selected entry.
sidetree_dir
Path to selected directory.
Options are set using the set [option] [value]
command
show_hidden: bool
Whether to show hidden files (file names starting with .
)
open_cmd: String
The shell command to run to open a file, i.e. on the :open
command, or when pressing <return>
on a file.
Example: set open_cmd 'xdg-open "$sidetree_entry"'
.
quit_on_open: bool
Whether to quit sidetree after :open
(or pressing <return>
on a file)
file_icons: bool
Whether to enable file icons by extension. May or may not be supported by your fonts.
Style options have the following format:
[<fg>][,<bg>][+<add_attr>][-<sub_attr>]
<fg>
and <bg>
are colors, which can either be the name of a color, a
rgb:XXXXXX
string, where XXXXXX
is the hex color value, or colorX
, where
X
is the index of the terminal color. Valid color names are:
reset
, black
, red
, green
, yellow
, blue
, magenta
, cyan
, gray
,
darkgray
, lightred
, lightgreen
, lightyellow
, lightblue
, lightmagenta
,
lightcyan
, white
<add_attr>
are attributes to add, and sub_attr
are attributes to remove.
These are a series of characters, that each correspond to the following
attributes:
b → bold
d → dim
i → italic
u → underlined
B → blink
r → reversed
Example styles: blue,black+bu-i
, ,red
, reset,reset+r
, -B
icon_style: Style
: Style of the file/folder icondir_name_style: Style
: Style of directory namesfile_name_style: Style
: Style of non-directory nameshighlight_style: Style
: Style of the highlighted entrylink_style
: Style of symlink namesThis style is applied on top of the existing styles, so +r
could be a good
option, or alternatively blue,reset+r
.
map
command