another cli filebrowser made just for myself with the following ideas:
- async loading of directories and previews that you can cancel
- more vim movement keybinds
- handling of opening and previewing files done by external scripts for easy configuration
- more respect for
LS_COLORS
- no fancy file edit operations, at most drop to shell
- no fancy in depth configuration besides the scripts
- minimize hanging due to unneeded disk io
- correctly detect cli programs, dont wait for spawned programs unless needed
j
,k
,l
,h
,H
,M
,L
,G
,gg
,/
,n
,N
,q
,^u
,^d
,^f
,^b
,^y
,^e
,zz
,zb
,zt
,^l
s
: sort (+a
/A
alphabetical, +s
/S
size based, +t
/T
time based)
r
: reload
o
: open file with program, wait/cli
O
: open file with program, don't wait/non cli, shouldnt need this with working X11
t
: open shell in current directory, selected file in $FUFSEL
, exit it to return to fuf
ENTER
: open file with open script, don't wait/non cli, shouldnt need this with working X11
current bugs, features and enhancements in the works are kept track of in issues, refer to this to see what's happening at the moment. PRs are always welcome, but make an issue first to discuss any new features or bugs.
sudo make install
* ncurses, pthreads and a linux** system are required to compile fuf
** only ever tested on arch
sudo make uninstall
mkdir ~/.config/fuf && cp /usr/lib/fuf/* ~/.config/fuf
grab the default scripts and move them to local copies, you can also choose symlink xdg-open or other open managers to ~/.config/fuf/open at this point. the fuf preview and open executables/scripts fully handle opening and previewing files, this means you can customize the way this is handled completely within these scripts. also see the minimal open script I use personally.
- it deps X11??? but its a cli file browser?????
look detecting cli/non cli programs wasnt as straight forward as expected, just dont think about it and stop using wayland. if you hate things working, compile withmake XHACKS=no
- preview showing
no preview configured
you are lacking a program used to generate previews, change it in the script or install them - image previews not working
w3mimgdisplay is used to display the (generated) images, make sure your terminal supports this. even then its hacky at best - image previews misaligning
due to the nature of w3mimgdisplay this will differ ever so slightly per terminal/font, offsetsoffset_h
andoffset_w
are available in the preview script to fix this - some file is not opening with fuf
either the open script isn't setup to open this filetype or you dont have any of the programs associated with the filetype installed. install the programs or edit/replace the open handler - the directory sizes are wrong
this is done on purpose, sizes are displayed as they are given by stat, calculating size of directory contents is too costly - no colors anywhere
set yourLS_COLORS
, ls defaults back to an unfindable default, fuf only reads theLS_COLORS
variable - it only seems to support 8 colors of my colorscheme or ignore the other 8
ncurses only supports 8 colors, to some extend, by default. I use an 8 color colorscheme anyway and cannot be bothered to work around this. - no mouse support
this will never be added, it annoys me - problems with programs hanging fuf after opening
by default everything spawned by the open handler is treated as cli, open withENTER
instead ofl
- issues related to scripts remain after update that should fix them
since fuf allows you use your own versions of the scripts in ~/.config/fuf its up to yourself to keep up with patching these with the latest changes from the /usr/lib/fuf supplied ones. - doesn't compile/work under some architecture/distro/os/terminal emulator
fuf was 100% made for and on urxvt in arch, if it works elsewhere neat but that was never a goal
- ranger: the cli fm that annoyed me to the point of writing my own
- cfiles: C cli fm that made me appreciate the idea of async loading
you might notice the syntax and style is slightly 'unique' in places of this source. this has several reasons:
- most if not all of this was created late at night under influence
- it's primarily a small personal project with realistically myself maintaining 99%
- I do this shit for fun