fff - :file_folder: A simple file manager written in bash
A simple file manager written in bash.
j: scroll down
k: scroll up
h: go to parent dir
l: go to child dir
enter: go to child dir
backspace: go to parent dir
-: Go to previous dir.
g: go to top
G: go to bottom
:: go to a directory by typing.
/: search
t: go to trash
~: go to home
e: refresh current dir
!: open shell in current dir
x: view file/dir attributes
i: display image with w3m-img
down: scroll down
up: scroll up
left: go to parent dir
right: go to child dir
f: new file
n: new dir
r: rename
X: toggle executable
y: mark copy
m: mark move
d: mark trash (~/.local/share/fff/trash/)
s: mark symbolic link
b: mark bulk rename
Y: mark all for copy
M: mark all for move
D: mark all for trash (~/.local/share/fff/trash/)
S: mark all for symbolic link
B: mark all for bulk rename
p: paste/move/delete/bulk_rename
c: clear file selections
[1-9]: favourites/bookmarks (see customization)
q: exit with 'cd' (if enabled).
Ctrl+C: exit without 'cd'.
# Use LS_COLORS to color fff.
# (On by default if available)
# (Ignores FFF_COL1)
export FFF_LS_COLORS=1
# Show/Hide hidden files on open.
# (On by default)
export FFF_HIDDEN=0
# Directory color [0-9]
export FFF_COL1=2
# Status background color [0-9]
export FFF_COL2=7
# Selection color [0-9] (copied/moved files)
export FFF_COL3=6
# Cursor color [0-9]
export FFF_COL4=1
# Status foreground color [0-9]
export FFF_COL5=0
# Text Editor
export EDITOR="vim"
# File Opener
export FFF_OPENER="xdg-open"
# File Attributes Command
export FFF_STAT_CMD="stat"
# Enable or disable CD on exit.
# Default: '1'
export FFF_CD_ON_EXIT=1
# CD on exit helper file
# Default: '${XDG_CACHE_HOME}/fff/fff.d'
# If not using XDG, '${HOME}/.cache/fff/fff.d' is used.
export FFF_CD_FILE=~/.fff_d
# Trash Directory
# Default: '${XDG_DATA_HOME}/fff/trash'
# If not using XDG, '${XDG_DATA_HOME}/fff/trash' is used.
export FFF_TRASH=~/.local/share/fff/trash
# Trash Command
# Default: 'mv'
# Define a custom program to use to trash files.
# The program will be passed the list of selected files
# and directories.
export FFF_TRASH_CMD="mv"
# Favourites (Bookmarks) (keys 1-9) (dir or file)
export FFF_FAV1=~/projects
export FFF_FAV2=~/.bashrc
export FFF_FAV3=~/Pictures/Wallpapers/
export FFF_FAV4=/usr/share
export FFF_FAV5=/
export FFF_FAV6=
export FFF_FAV7=
export FFF_FAV8=
export FFF_FAV9=
# w3m-img offsets.
export FFF_W3M_XOFFSET=0
export FFF_W3M_YOFFSET=0
# File format.
# Customize the item string.
# Format ('%f' is the current file): "str%fstr"
# Example (Add a tab before files): FFF_FILE_FORMAT="%f"
export FFF_FILE_FORMAT="%f"
# Mark format.
# Customize the marked item string.
# Format ('%f' is the current file): "str%fstr"
# Example (Add a ' >' before files): FFF_MARK_FORMAT="> %f"
export FFF_MARK_FORMAT=" %f*"
For more information see:
https://github.com/dylanaraps/fff#customizing-the-keybindings
### Moving around.
# Go to child directory.
export FFF_KEY_CHILD1="l"
export FFF_KEY_CHILD2=$'\[C' # Right Arrow
export FFF_KEY_CHILD3="" # Enter / Return
# Go to parent directory.
export FFF_KEY_PARENT1="h"
export FFF_KEY_PARENT2=$'\[D' # Left Arrow
export FFF_KEY_PARENT3=$'177' # Backspace
export FFF_KEY_PARENT4=$'\b' # Backspace (Older terminals)
# Go to previous directory.
export FFF_KEY_PREVIOUS="-"
# Search.
export FFF_KEY_SEARCH="/"
# Spawn a shell.
export FFF_KEY_SHELL="!"
# Scroll down.
export FFF_KEY_SCROLL_DOWN1="j"
export FFF_KEY_SCROLL_DOWN2=$'\[B' # Down Arrow
# Scroll up.
export FFF_KEY_SCROLL_UP1="k"
export FFF_KEY_SCROLL_UP2=$'\[A' # Up Arrow
# Go to top and bottom.
export FFF_KEY_TO_TOP="g"
export FFF_KEY_TO_BOTTOM="G"
# Go to dirs.
export FFF_KEY_GO_DIR=":"
export FFF_KEY_GO_HOME="~"
export FFF_KEY_GO_TRASH="t"
### File operations.
export FFF_KEY_YANK="y"
export FFF_KEY_MOVE="m"
export FFF_KEY_TRASH="d"
export FFF_KEY_LINK="s"
export FFF_KEY_BULK_RENAME="b"
export FFF_KEY_YANK_ALL="Y"
export FFF_KEY_MOVE_ALL="M"
export FFF_KEY_TRASH_ALL="D"
export FFF_KEY_LINK_ALL="S"
export FFF_KEY_BULK_RENAME_ALL="B"
export FFF_KEY_PASTE="p"
export FFF_KEY_CLEAR="c"
export FFF_KEY_RENAME="r"
export FFF_KEY_MKDIR="n"
export FFF_KEY_MKFILE="f"
### Miscellaneous
# Show file attributes.
export FFF_KEY_ATTRIBUTES="x"
# Toggle executable flag.
export FFF_KEY_EXECUTABLE="X"
# Toggle hidden files.
export FFF_KEY_HIDDEN="."
You can't unset keybindings by making their value `''`.
What you need to do is change their value to `off`.
Example:
# KEY_GO_TRASH was bound to 't', now its unset.
export FFF_KEY_GO_TRASH="off"
# KEY_MKFILE is now set to 't' and its original
# keybinding is also unset 'f'.
export FFF_KEY_MKFILE="t"
When rebinding a key in `fff` make sure you don't have two bindings
with the same value. You can avoid this by setting the other
conflicting key-binding to something else or by changing its value to `off`.