Skip to content

afify/sfm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sfm logo

simple file manager

Build status CodeQL Cross platform build

Description

sfm is a simple file manager for unix-like systems.

  • BSD kqueue(2) - kernel event notification mechanism.
  • Linux inotify(7) - monitoring filesystem events.
  • pthreads(7) to read events, no timers.
  • dual pane.
  • bookmarks.
  • open files by extension.
  • bottom statusbar.
  • vim-like key bindings.
  • no dependencies.
  • search.
  • Inspired by vifm and noice.
  • Follows the suckless philosophy.

Patches

sfm-patches

Performance

$ perf stat -r 10 sfm

Options

$ sfm [-v]
$ man sfm

sfm screenshot

Installation

Packaging status

current

git clone https://github.com/afify/sfm
cd sfm/
make
make install

latest release

latest=$(curl -s https://api.github.com/repos/afify/sfm/releases/latest | grep -o '"tag_name": "[^"]*' | cut -d'"' -f4)
tgz="https://github.com/afify/sfm/archive/refs/tags/${latest}.tar.gz"
curl -L -o "sfm-${latest}.tar.gz" "${tgz}"
tar -xzf "sfm-${latest}.tar.gz"
cd "sfm-${latest#v}" && \
make && make install || echo "Build failed!"

Run

$ sfm

Configuration

The configuration of sfm is done by creating a custom config.h and (re)compiling the source code. This keeps it fast, secure and simple.