README.md (2417B)
1 <img src="https://afify.dev/img/sfm.png" alt="sfm logo"/> 2 3 **simple file manager** 4 5 [](https://lgtm.com/projects/g/afify/sfm/context:cpp) 6 [](https://ci.appveyor.com/project/afify/sfm) 7 [](https://frontend.code-inspector.com/public/project/19656/sfm/dashboard) 8 [](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.