Nothing Fancy File Manager
C Objective-C
Switch branches/tags
Nothing to show


NFFM - Nothing Fancy File Manager

I decided to write this little file manager because I wanted to learn some C and 
I thought a file manager would be a good learning tool.

Capabilities are limited at the moment.  You can nagivate through your 
filesystem, open, delete, rename, create files, filter files by extension 
or filter for file that begins with in the current directory.  
Folders can also be created and deleted.  It is also possible to archive+gzip
selected files.  So nothing fancy...

Compile & Installation
Use the Makefile or gcc -g  nffm.c -lncurses -o nffm 
Archlinux package in the AUR
There are two configuration files:
The files should be placed in $HOME/.config/nffm/.
If not, NFFM will attempt to use the files in /etc/nffm.

NFFM (Not a Fancy File Manager) is a mouseless ncurses file manager written in C.

The left pane lists the directories, the middle pane lists the files within 
the current directory and the right pane lists files marked for further action.

Navigation through the file manager is mainly done throught keys h, j, k, l and tab.
One can modify the config.h file and recompile the program to modify the key binding.
Eventually, there will be an rc file...

On the display, each file and directories are numbered.  On the current active 
pane (the pane in bold), typing n16 followed by Enter key will bring the cursor 
on the 16th entry.

While the directory pane, arrow right drill down the directories and list on 
the middle panes the files.
The left arrow key navigates to the parrent directory.

Key Binding
Here are some of the implemented keys.  More in config.h file

.   (period) show hidden directgory and files
h   Goto $HOME directory
/   Goto / directory
o   Open selected file
d   Deleted selected file
m   Mark selected file
D   Delete marked file
r   Rename selected file
S-U Page up
S-F Page down
q   Quit
f   Filter by file extension
^   Filter files by beginning of expression

To delete multiple files, use the m key to mark the files, then D to delete 
the selected files.

Hidden files and directories are not showed by default.  Use . (period) to 
show the hidden files and directories.

File Association

NFFM uses its own file association file which shall be stored in 
$HOME/.config/nffm/.  It is not perfect but so far so good.
Here is what the extension.conf file looks like:

c /usr/bin/urxvt -e vim
default /usr/bin/urxvt -e vim
conf /usr/bin/urxvt -e vim
cpp /usr/bin/urxvt -e vim
gif /usr/bin/feh
gz /usr/bin/xarchiver
h /usr/bin/urxvt -e vim
html /usr/bin/urxvt -e vim
jpeg /usr/bin/feh
jpg /usr/bin/feh
json /usr/bin/urxvt -e vim
pdf /usr/bin/zathura
png /usr/bin/feh
py /usr/bin/urxvt -e vim
sh /usr/bin/urxvt -e vim
txt /usr/bin/urxvt -e vim
vim /usr/bin/urxvt -e vim
xz /usr/bin/xarchiver
zip /usr/bin/xarchiver
gnumeric /usr/bin/gnumeric

Color listing for files names

Color listing is as per $LS_COLORS environment variable.
Color for folder listing is as per DIRCOLOR define in config.h

Archiving and compressing files
Must have tar and gzip installed.  Default command is 'm' to mark the files 
follow by 'z'.  In the message bar, enter the name of the archive.  Exemple give 
MyArchiveName will create MyArchiveName.tar.gz.  The tar.gz archive is created 
in the current folder.

Moving files
I assume default configuration keys.  Use 'm' to mark the files to move while 
the file pane is active.  Use tab key to activate folder pane.  Navigate to the 
destination folder.  The destination folder must be highlighted.  Then hit 'M' 
(capital M) to move the files.

Delete many files
I assume default configuration keys.  Use 'm' to mark the files to delete while 
the file pane is active. Use 'D' (capital D) to delete the marked files.  Files
are not going into a trash can.


File copying
Implement an rc file
Fix window resize
Other ideas.