FFF(1)

πŸ“¦ version 2.2, in nixos 26.05, nixpkgs unstable

πŸ’– FFF(1) β€” the fff girlie's field guide πŸ’–

okay so. this is the manual page for fff, and yes bestie, it lives in section 1 of the manual (that's the (1) β€” user commands, we love her). she's a file manager. she's written in bash. she's iconic. let's get into it ✨


🌸 NAME

fff β€” πŸ“ a simple file manager written in bash 🫢

⭐ SYNOPSIS

fff

that's it. that's the whole thing. no flags, no arguments, just vibes πŸ’…

πŸ¦‹ DESCRIPTION

a simple file manager written in bash. that's the official line and honestly? she ate. πŸŽ€


πŸ’« Usage

okay so here's your whole keymap, bestie. screenshot this, tattoo it, whatever πŸ”₯

  • 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. (the way she remembers where you came from 😭 nostalgic queen)
  • 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

πŸ“ Making stuff

  • f β€” new file
  • n β€” new dir
  • r β€” rename
  • X β€” toggle executable

🧚 Marking stuff

  • y β€” mark copy
  • m β€” mark move
  • d β€” mark trash (~/.local/share/fff/trash/)
  • s β€” mark symbolic link
  • b β€” mark bulk rename

πŸ‘‘ Marking ALL the stuff

  • 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

πŸ’… Doing the thing

  • p β€” paste/move/delete/bulk_rename
  • c β€” clear file selections

🌈 Faves

  • [1-9] β€” favourites/bookmarks (see customization, she's down there πŸ‘‡)

πŸ’€ Leaving

  • q β€” exit with cd (if enabled).
  • Ctrl+C β€” exit without cd.

✨ Customization ✨

bestie this is the fun part. set these however you want, no cap πŸŽ€

# 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*"

πŸŽ€ Keybindings πŸŽ€

for the full tea, go look here:

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="."

🌈 Disabling keybindings

okay so important psa, listen up πŸ”ˆ β€” you can't unset keybindings by making their value ''. nope. that does not work, don't come for me, it's just not how she works 😭

what you actually do is change their value to off. periodt.

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"

πŸ’€ Dealing with conflicting keybindings

when you're rebinding a key in fff, make sure you don't have two bindings with the same value. that's a conflict, bestie, and it's giving chaos 🚩 you can dodge it by setting the other conflicting key-binding to something else, or by changing its value to off. easy. slay.


ngl, save yourself the headache and check your bindings twice before you blame the file manager πŸ’…

and that's the whole page 🫢 she's from January 2019, this is the FFF(1) page, part of User Commands, and she's serving the exact same energy she always has. mwah πŸ’‹ go manage some files, bestie πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from