sfm

simple file manager
git clone https://git.afify.dev/sfm.git
Log | Files | Refs | README | LICENSE

README.md (2417B)


      1 <img src="https://afify.dev/img/sfm.png" alt="sfm logo"/>
      2 
      3 **simple file manager**
      4 
      5 [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/afify/sfm.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/afify/sfm/context:cpp)
      6 [![Build status](https://ci.appveyor.com/api/projects/status/goq88ahjyvtjrui2?svg=true)](https://ci.appveyor.com/project/afify/sfm)
      7 [![code-inspector](https://www.code-inspector.com/project/19656/score/svg)](https://frontend.code-inspector.com/public/project/19656/sfm/dashboard)
      8 [![code-inspector](https://www.code-inspector.com/project/19656/status/svg)](https://frontend.code-inspector.com/public/project/19656/sfm/dashboard)
      9 
     10 Description
     11 ------------
     12 sfm is a simple file manager for unix-like systems.
     13 * pthreads(7) to read events, no timers.
     14 * BSD kqueue(2) - kernel event notification mechanism.
     15 * Linux inotify(7) - monitoring filesystem events.
     16 * dual pane.
     17 * bookmarks.
     18 * open files by extension.
     19 * bottom statusbar.
     20 * vim-like key bindings.
     21 * filter.
     22 * no dependencies.
     23 * c99 static linking.
     24 * based on [termbox](https://github.com/nsf/termbox).
     25 * Inspired by [vifm](https://vifm.info/) and [noice](https://git.2f30.org/noice/).
     26 * Follows the suckless [philosophy](https://suckless.org/philosophy/).
     27 
     28 Patches
     29 -------
     30 [sfm-patches](https://github.com/afify/sfm-patches)
     31 
     32 Performance
     33 ------------
     34 ```sh
     35 $ perf stat -r 10 sfm
     36 ```
     37 
     38 Options
     39 -------
     40 ```sh
     41 $ sfm [-v]
     42 $ man sfm
     43 ```
     44 <img src="https://afify.dev/img/sfm_sc.png" alt="sfm screenshot" width="800"/>
     45 
     46 Installation
     47 ------------
     48 <a href="https://repology.org/project/sfm-afify/versions">
     49     <img src="https://repology.org/badge/vertical-allrepos/sfm-afify.svg" alt="Packaging status">
     50 </a>
     51 
     52 **current**
     53 ```sh
     54 git clone git://git.afify.dev/sfm
     55 cd sfm/
     56 make
     57 make install
     58 ```
     59 **latest release**
     60 ```sh
     61 [ "$(uname)" = "Linux" ] && shacmd="sha256sum" grepf="--color=never"|| shacmd="sha256"
     62 latest=$(curl -s https://git.afify.dev/sfm/tags.xml | grep $grepf -m 1 -o "\[v.*\]" | tr -d '[]')
     63 tgz="https://git.afify.dev/sfm/releases/sfm-${latest}.tar.gz"
     64 sha="${tgz}.sha256"
     65 wget "${tgz}"
     66 wget "${sha}"
     67 ${shacmd} -c "sfm-${latest}.tar.gz.sha256" && \
     68 tar -xzf "sfm-${latest}.tar.gz" && cd "sfm-${latest}" && \
     69 make
     70 make install
     71 ```
     72 
     73 Run
     74 ---
     75 ```sh
     76 $ sfm
     77 ```
     78 
     79 Configuration
     80 -------------
     81 The configuration of sfm is done by creating a custom config.h
     82 and (re)compiling the source code. This keeps it fast, secure and simple.