sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

index.md (20474B)


      1 Stuff that rocks
      2 ================
      3 Software on this page should have ideas similar to the suckless
      4 [philosophy](//suckless.org/philosophy/). The software must be FOSS licensed.
      5 
      6 Libraries
      7 ---------
      8 This section is for small, usable development libraries, which can be used for
      9 writing software that sucks less. These should preferably be under the MIT/X
     10 consortium or BSD licenses, WTFPL, or public domain, or alternatively LGPL,
     11 because it makes them legally compatible with other suckless projects.
     12 
     13 ### Libc Implementations
     14 
     15 * [musl](https://musl.libc.org/) - standard C library that attempts to be even smaller than uClibc.
     16   See also: [embedded libc comparison](https://www.etalabs.net/compare_libcs.html)
     17 * [uClibc](https://uclibc.org/) - strives to be a minimalist C library suitable for embedded computing.
     18 
     19 ### Compilers
     20 
     21 * [cproc](https://git.sr.ht/~mcf/cproc) - frontend for C11 for QBE.
     22 * [lacc](https://github.com/larmel/lacc) - A simple, self-hosting C compiler.
     23 * [qbe](https://c9x.me/compile/) - compiler backend targeting AMD64 (Linux and OSX), ARM64, and RISC-V64.
     24 * [scc](https://www.simple-cc.org/) - Simple C Compiler.
     25 * [tcc](https://bellard.org/tcc/) - Tiny C Compiler [git repo](https://repo.or.cz/w/tinycc.git)
     26 
     27 ### Compression
     28 
     29 * [liblzf](http://oldhome.schmorp.de/marc/liblzf.html) - very fast, legally unencumbered compression library.
     30 * [libz](https://sortix.org/libz/) - ABI and API compatible zlib fork with focus on correctness, proper portability, auditability, simplification and opportunities to optimize ([zlib license](https://zlib.net/zlib_license.html)).
     31 * [Lzip](https://lzip.nongnu.org) - Properly designed data compressor outperforming gzip and bzip2 (GPLv2+).
     32 * [miniz](https://github.com/richgel999/miniz) - single C-file reimplementation of zlib (MIT License).
     33 * [xz embedded](https://tukaani.org/xz/embedded.html) - lightweight decompressor for the xz LZMA compressor (public domain).
     34 * [zlib](https://zlib.net/) - the "standard" compression/decompression library, quite small, used in many applications ([zlib license](https://zlib.net/zlib_license.html)).
     35 
     36 ### GUI
     37 
     38 * [Nuklear](https://github.com/Immediate-Mode-UI/Nuklear) - A single-header ANSI C immediate mode cross-platform GUI library.
     39 
     40 ### Cryptography
     41 
     42 * [LibreSSL](https://www.libressl.org/) - LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014.
     43 * [Monocypher](https://monocypher.org/) - Small and freestanding cryptographic
     44   library with relatively good performance written in C99.
     45 
     46 ### Miscellaneous
     47 
     48 * [baresip](https://github.com/alfredh/baresip) - barebone SIP stack (BSD licence).
     49 * [ccv](http://libccv.org/) - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library.
     50 * [libev](http://software.schmorp.de/pkg/libev.html) - high performance event-loop modelled after libevent but much smaller (dual licensed under 2-clause BSD and GPL).
     51 * [mandoc](https://mandoc.bsd.lv/) - The mandoc UNIX manpage compiler toolset.
     52 * [nhkd](https://www.uninformativ.de/git/nhkd/file/README.html) - nano hot key daemon.
     53 * [pjsip](https://www.pjsip.org/) - open-source SIP stack (GPL).
     54 * [raycastlib](https://gitlab.com/drummyfish/raycastlib) - Single-header public domain C raycasting renderer with no dependencies, using only integer math.
     55 * [sdhcp](https://git.2f30.org/sdhcp/) - IPv4 DHCP client.
     56 * [small3dlib](https://gitlab.com/drummyfish/small3dlib) - Single-header public domain C software 3D renderer with no dependencies, using only integer math.
     57 * [stb](https://github.com/nothings/stb) - single-file public domain (or MIT licensed) libraries for C/C++: various image, font, audio loaders etc.
     58 * [sxhkd](https://github.com/baskerville/sxhkd) - Simple X hotkey daemon
     59 * [termbox](https://github.com/termbox/termbox) - simple ncurses-like library for creating TUIs.
     60 * [TinyGL](https://github.com/C-Chads/tinygl) - free software-only subset of OpenGL 1.1 implemented in C
     61 
     62 ### Distros
     63 
     64 * [morpheus](https://morpheus.2f30.org/) - A statically linked musl-based Linux distro. Unmaintained currently.
     65 * [oasis](https://github.com/oasislinux/oasis) - A statically linked small Linux system.
     66 * [sxmo](https://sxmo.org/): simple X Mobile, Sxmo is a minimalist environment
     67   for Linux mobile devices, such as the pinephone.
     68 
     69 
     70 Programs
     71 --------
     72 
     73 Some programs work well with dwm. Some general rule of thumb for judging if a
     74 program is usable are:
     75 
     76 * The program will accept any window size.
     77 * The program consists of a single window (there are no nested windows, such as in Xpdf).
     78 
     79 This covers most console-based programs and programs from
     80 [plan9port](https://9fans.github.io/plan9port/).
     81 
     82 ### Audio Players
     83 
     84 * [C\* Music Player](https://cmus.github.io/) - aka cmus, an ncurses music player that can be controlled with a UNIX socket.
     85 * [moc](https://moc.daper.net/) - console audio player for Linux/UNIX.
     86 * [mpd](https://www.musicpd.org/) - A client/server based music player with console and graphical front-ends.
     87 * [mpg123](https://www.mpg123.de/) - A console MPG player which doesn't use auto\*hell or extra libraries.
     88 * [mpg321](http://mpg321.sourceforge.net) - A command-line MP3 player.
     89 * [mus](https://sr.ht/~q3cpma/mus/) - Modular daemon/client CLI player consuming a plaintext album directory queue
     90 * [vorbis-tools](https://www.xiph.org/) (Ogg/FLAC) - Command-line tools to play Ogg and FLAC files.
     91 
     92 ### BitTorrent clients
     93 
     94 * [btpd](https://github.com/btpd/btpd) - The BitTorrent Protocol Daemon.
     95 
     96 ### Feed aggregators / newsreaders
     97 
     98 * [newsraft](https://codeberg.org/grisha/newsraft) - feed reader with ncurses user interface.
     99 * [sfeed](https://codemadness.org/sfeed.html) - RSS and Atom parser, CLI programs and [sfeed_curses UI](https://codemadness.org/sfeed_curses.html).
    100 * [snownews](https://github.com/kouya/snownews/) - Text mode RSS newsreader for Linux and Unix.
    101 * [zs](http://r-36.net/scm/zs/) - Zeitungsschau RSS to email converter.
    102 
    103 ### File managers
    104 
    105 * [lf](https://github.com/gokcehan/lf) - ranger-like file manager written in Go (WIP but usable).
    106 * [mc](https://midnight-commander.org/) - Midnight Commander is a free cross-platform orthodox file manager.
    107 * [nnn](https://github.com/jarun/nnn) - Nnn's Not Noice, a fork of noice with more features.
    108 * [noice](https://git.2f30.org/noice/) - Small and portable file browser.
    109 * [ranger](https://ranger.github.io/) - ranger is a file manager with vi key bindings written in python but with an interface that rocks.
    110 * [rover](https://lecram.github.io/p/rover/) - Simple file browser for the terminal.
    111 * [sfm](https://github.com/afify/sfm/) - sfm is a simple file manager for unix-like systems.
    112 
    113 ### Git
    114 
    115 * [stagit](https://git.codemadness.org/stagit/) - static git page generator (HTML).
    116 * [stagit-gopher](https://git.codemadness.org/stagit-gopher/) - static git page generator for gopher (geomyidae .gph pages).
    117 * [stagit-gemini](https://git.milotier.net/stagit-gemini/) - static git page generator for gemini (gemtext .gmi pages).
    118 
    119 ### Gopher clients
    120 
    121 * [Lynx](https://lynx.invisible-island.net/) - text-mode web browser, supports the Gopher protocol.
    122 * [sacc](gopher://bitreich.org/1/releases/sacc) - terminal gopher client by [quinq](//suckless.org/people/quinq/).
    123 
    124 ### IRC clients
    125 
    126 * [catgirl](https://git.causal.agency/catgirl) - is a TLS-only terminal IRC client.
    127 * [hii](https://github.com/nmeum/hii) - A file-based IRC client, inspired by ii, with a focus on easing [frontend development](https://github.com/nmeum/insomnia)
    128 * [ii](//tools.suckless.org/ii/) - A FIFO based IRC client which is part of the suckless.org project.
    129 * [irc.c from mpu](https://c9x.me/irc/) - A minimal curses IRC client.
    130 * [Irc](https://swtch.com/irc/) - IRC client for ACME.
    131 * [ircrc](http://plan9.bell-labs.com/sources/contrib/fgb/rc/ircrc) - An rc-based IRC client similar to ircc. Needs minor modification to run on UNIX.
    132 * [irssi](https://irssi.org/) - Text-mode IRC client.
    133 * [jj](https://github.com/aaronNGi/jj) - A rework of ii that offloads all the IRC protocol parsing to an awk script, permitting triggers.
    134 * [kirc](https://github.com/mcpcpc/kirc) - A tiny IRC client written in POSIX C99.
    135 * [quIRC](https://github.com/ec429/quIRC) - a lightweight console IRC client.
    136 * [sic](//tools.suckless.org/sic/) - Another suckless.org IRC client. Similar to ircc.
    137 
    138 ### Image viewers
    139 
    140 * [feh](https://feh.finalrewind.org/) - A highly customizable image viewer that can also set a desktop background image.
    141 * [imv](https://sr.ht/~exec64/imv/) - Simple X11/Wayland Image Viewer. Depends on SDL2 and FreeImage.
    142 * [jpg/gif/bmp/png](https://9fans.github.io/plan9port/) - Simple programs from Plan 9 to display images in no-frills windows. Included with [plan9port](https://9fans.github.io/plan9port/).
    143 * [lel](https://git.codemadness.org/lel/file/README.html) - Farbfeld image viewer.
    144 * [meh](https://www.johnhawthorn.com/meh/) - image viewer using raw XLib, libjpeg, libpng and libgif.
    145 * [page](https://9fans.github.io/plan9port/man/man1/page.html) - Plan 9's image/document viewer program. Included with [plan9port](https://9fans.github.io/plan9port/).
    146 * [qiv](https://spiegl.de/qiv/) - Quick Image Viewer.
    147 * [nsxiv](https://codeberg.org/nsxiv/nsxiv/) - Neo Simple X Image Viewer, a fork of now unmaintained sxiv. Depends on xlib and imlib2.
    148 * [xli](http://web.aanet.com.au/gwg/xli.html)
    149 * [xwallpaper](https://github.com/stoeckmann/xwallpaper) - Minimalistic wallpaper utility
    150 * [xzgv](http://sourceforge.net/projects/xzgv/)
    151 
    152 ### Instant-Messaging clients
    153 
    154 * [bitlbee](https://www.bitlbee.org/main.php/news.r.html) - A program to translate IM protocols to IRC.
    155 * [CenterIM](https://www.centerim.org/index.php/Main_Page) - A centericq fork.
    156 * [irssi-xmpp](http://cybione.org/~irssi-xmpp/) - An irssi plugin to connect to the Jabber network.
    157 * [mcabber](http://mcabber.com/) - A console jabber client.
    158 * [profanity](https://profanity-im.github.io/) - A console XMPP client written in C. OMEMO/GPG/OTR supported.
    159 * [ysm](http://ysmv7.sourceforge.net/) - A console-based ICQ client.
    160 
    161 ### Mail clients
    162 
    163 * [aerc](https://sr.ht/~rjarry/aerc) - email client for your terminal.
    164 * [fdm](https://github.com/nicm/fdm) - fetch and deliver mail.
    165 * [heirloom-mailx](http://heirloom.sourceforge.net/mailx.html) - A mail client based on the original Berkeley Mail 8.1 with many new features.
    166 * [isync](https://isync.sourceforge.net/) - MDA that can work better for IMAP, also known as mbsync.
    167 * [mblaze](https://github.com/chneukirchen/mblaze) - UNIX utilities to deal with Maildir.
    168 * [mmh](http://marmaro.de/prog/mmh/) - Meillo's mail handler (mmh), a fork of nmh.
    169 * [mpop](https://marlam.de/mpop/) - a POP3 mail client. It is much [faster and simpler than fetchmail](https://marlam.de/mpop/documentation).
    170 * [mutt](http://www.mutt.org/) - A ncurses mail client for fetching, reading and sending email.
    171 * [nmh](https://www.nongnu.org/nmh/) - Message Handling System.
    172 * [plan9port/Mail](https://9fans.github.io/usr/local/plan9/mail/) - A mail client for acme. Included with [plan9port](https://9fans.github.io/plan9port/).
    173 * [s-nail](https://www.sdaoden.eu/code.html) - An improved heirloom-mailx.
    174 
    175 ### Media players
    176 
    177 * [ffplay](https://www.ffmpeg.org/ffplay.html) - FFplay is a very simple and portable media player. It came with ffmpeg which depends on mplayer.
    178 * [mplayer](http://www.mplayerhq.hu/design7/news.html)
    179 * [mpv](https://mpv.io/) - a free, open-source and cross-platform media player.
    180 
    181 ### Notifications
    182 
    183 * [herbe](https://github.com/dudik/herbe) - Daemon-less notifications without D-Bus. Minimal, lightweight & written in C. You can use [tiramisu](https://github.com/Sweets/tiramisu) to call herbe.
    184 * [tiramisu](https://github.com/Sweets/tiramisu) - Tiramisu is a notification daemon based on dunst that outputs notifications to STDOUT in order to allow the user to process notifications any way they prefer, like in your dwm statusbar for example.
    185 
    186 ### Password managers
    187 
    188 * [oathtool](https://www.nongnu.org/oath-toolkit/oathtool.1.html) - Open AuTHentication (OATH) one-time password tool.
    189 * [pinentry-dmenu](https://github.com/ritze/pinentry-dmenu) - pinentry-dmenu is a pinentry program with the charm of dmenu. It is a nice interface to [pass](https://www.passwordstore.org/)
    190 * [pass](https://www.passwordstore.org/) - "The standard UNIX password manager".
    191 * [spm](https://github.com/BioBox/spm) - Simple password manager (actively maintained fork of nmeum's tpm).
    192 * [tpm](https://github.com/nmeum/tpm/) - Tiny password manager.
    193 
    194 ### PDF viewers
    195 
    196 * [mupdf](https://mupdf.com/) - a lightweight PDF viewer written in C. It supports PDF, XPS, EPUB, XHTML, CBZ, PNG, JPEG, GIF and TIFF.
    197 * [zathura](https://pwmt.org/projects/zathura/) - an extensible document viewer/shell which can support CBZ, DJVU, PS, EPUB (with mupdf) and PDF (with mupdf or poppler).
    198 
    199 ### Shells
    200 
    201 * [dash](http://gondor.apana.org.au/~herbert/dash/) - DASH is a POSIX-compliant implementation of /bin/sh that aims to be as small as possible.
    202 * [mksh](https://www.mirbsd.org/mksh.htm) - MirBSD Korn Shell, an actively developed free implementation of the Korn Shell programming language
    203   and a successor to the Public Domain Korn Shell (pdksh).
    204 * [oksh](https://github.com/ibara/oksh) - Portable OpenBSD ksh.
    205 * [yash](https://yash.osdn.jp) - Yet another shell, is intended to be the most POSIX-compliant shell in the world while supporting features for daily interactive and scripting use.
    206 
    207 ### Text editors
    208 
    209 * [acme](http://acme.cat-v.org) - Rob Pike's framing text editor for Plan 9. Included in [plan9port](https://9fans.github.io/plan9port/).
    210 * [ed](https://9fans.github.io/plan9port/man/man1/ed.html) - [ED IS THE STANDARD TEXT EDITOR!](https://www.gnu.org/fun/jokes/ed-msg.html)
    211 * [ired](http://www.radare.org/r/) - A minimalist hexadecimal editor and bindiffer for p9, w32 and \*nix.
    212 * [mg](https://homepage.boetes.org/software/mg/) - A portable version of mg maintained by the OpenBSD team.
    213 * [mle](https://github.com/adsr/mle) - A small, flexible console text editor.
    214 * [nano](https://www.nano-editor.org/) - A pico clone - this is small simple code and easy to use.
    215 * [neatvi](https://github.com/aligrudi/neatvi) - A minimal vi implementation supporting bidirectional UTF-8
    216 * [nextvi](https://github.com/kyx0r/nextvi) - A continuation of neatvi development with more features.
    217 * [nvi](https://sites.google.com/a/bostic.com/keithbostic/vi) - A small, multiple file vi-alike.
    218 * [micro](https://micro-editor.github.io/) - A terminal text editor, written in go with common key bindings like ctrl-c to copy and ctrl-v to paste.
    219 * [sam](http://sam.cat-v.org/) - An editor by Rob Pike with inspiration from ed.
    220 * [sim](https://sim.ssnf.xyz/) - The sim text editor. Based on vim and sam.
    221 * [traditional vi](http://ex-vi.sourceforge.net/) - A fixed version of the original vi.
    222 * [vim](https://www.vim.org) (With the GUI, use `:set go+=c` to kill popup dialogs). It can be compiled to be as minimal as possible (see vim-tiny in Debian repos).
    223 * [vis](https://github.com/martanne/vis) - A modern, legacy free, simple yet efficient vim-like editor.
    224 * [wily](http://www.cse.yorku.ca/~oz/wily/) - An acme clone for POSIX.
    225 
    226 ### Text processing
    227 
    228 * [csvquote](https://github.com/skeeto/scratch/tree/master/csvquote) - tool to
    229   encode troublesome CSV characters such that unix tools can correctly process
    230   them. SIMD optimized by default, portable C fallback can be enabled at build
    231   time.
    232 * [json2tsv](https://codemadness.org/json2tsv.html) - a JSON to TAB-Separated Value (TSV) converter and stand-alone JSON parser code.
    233 * [md4c](https://github.com/mity/md4c) - markdown to html converter.  Fast,
    234   [CommonMark](https://commonmark.org/) compliant, offers extensions which can
    235   be switched on/off via cli args.
    236 
    237 ### Utilities / miscellaneous
    238 
    239 * [abduco](https://www.brain-dump.org/projects/abduco/) - session {at,de}tach support.
    240 * [dvtm](https://www.brain-dump.org/projects/dvtm/) - dynamic virtual terminal manager.
    241 * [entr](https://eradman.com/entrproject/) - Run arbitrary commands when files change.
    242 * [mrandr](https://gitlab.com/mhdy/mrandr) - Simple and lightweight monitor (display) profile manager written in POSIX shell.
    243 * [mtm](https://github.com/deadpixi/mtm) - Micro Terminal Multiplexer.
    244 * [nq](https://github.com/chneukirchen/nq) - UNIX command line queue utility.
    245 * [pv](https://www.ivarch.com/programs/pv.shtml) - tool for monitoring the progress of data through a pipeline.
    246 * [piscou](https://github.com/lucas-mior/piscou) - Simple file previewer written in C.
    247 * [smenu](https://github.com/p-gen/smenu) - A powerful and versatile CLI selection tool for interactive or scripting use.
    248 * [snore](https://github.com/bitsmanent/snore) - Sleep with feedback.
    249 * [yt-dlp](https://github.com/yt-dlp/yt-dlp) - youtube-dl fork, download videos from youtube.com or other video platforms.
    250 * [zbar](http://zbar.sourceforge.net/) - software suite for reading bar codes from various sources, such as video streams, image files.
    251 
    252 ### Web browsers
    253 
    254 * [Abaco](http://lab-fgb.com/abaco/) - A graphical web browser for Plan 9 that supports most of HTML 4.01.
    255 * [Dillo](https://www.dillo.org/) - Blazingly fast graphical browser with basic CSS support.
    256 * [edbrowse](http://edbrowse.org/) - ed-alike webbrowser. Unfortunately it is not the standard web browser.
    257 * [ELinks](http://elinks.or.cz/) -  Feature-rich fork of Links, but without the graphical mode.
    258 * [Links](http://links.twibright.com/) - A text-based browser that also has a simple graphical mode.
    259 * [Lynx](http://lynx.invisible-island.net/) - text-mode web browser, supports the Gopher protocol.
    260 * [netsurf](http://www.netsurf-browser.org/) - Very fast graphical browser with custom engine that has near-perfect CSS support.
    261 * [surf](//surf.suckless.org/) - WebKit2 browser that can be embedded into other applications and uses dmenu as the address bar.
    262 * [Tridactyl](https://github.com/cmcaine/tridactyl) - A WebExtension that tries to make Firefox Vim like. Unlike many similar extensions it works with firefox 57+.
    263 * [uzbl](https://www.uzbl.org/) - Web interface tools which adhere to the UNIX philosophy.
    264 * [Vimperator](http://vimperator.org/) - An extension to make Firefox keyboard friendly and Vim-like. (Doesn't work with Firefox 57+).
    265 * [w3m](http://w3m.sourceforge.net/) - Text-based browser which can view images in the terminal (X11 hack).
    266 
    267 ### X11
    268 
    269 * [9menu](https://github.com/arnoldrobbins/9menu/) - A menu program based on the Blit-style menus so prevalent in Plan 9.
    270 * [dmenu](//tools.suckless.org/dmenu/) - dmenu is a dynamic menu for X.
    271 * [ffcast](https://github.com/lolilolicon/FFcast) - Simple screencasting.
    272 * [grabc](http://www.muquit.com/muquit/software/grabc/grabc.html) - Grab the color of some pixel in X11.
    273 * [keynav](http://www.semicomplete.com/projects/keynav/) - A new way for keyboard selection.
    274 * [wmutils](https://github.com/wmutils/core) - A set of utilities for managing windows. Can be used on their own or to augment a WM itself. Support for tiling present.
    275 * [wjt](https://github.com/ianremmler/wjt) - A slider widget for X.
    276 * [xbanish](https://github.com/jcs/xbanish) - Hide the cursor while typing.
    277 * [xclip](https://github.com/astrand/xclip) - A tool for controlling the X11 clipboard.
    278 * [xdotool](http://www.semicomplete.com/projects/xdotool/) - A tool for scripting X11 actions.
    279 * [xdo](https://github.com/baskerville/xdo) - Similar to xdotool but it's smaller and has a much cleaner codebase.
    280 * [xzoom](http://r-36.net/scm/xzoom/) - A simple zoom application.
    281 
    282 Daemons
    283 -------
    284 This section is dedicated to daemons that are related to the UNIX philosophy.
    285 
    286 ### Web Servers
    287 
    288 * [darkhttpd](https://unix4lyfe.org/darkhttpd/) - Darkhttpd is a simple, fast HTTP 1.1 web server for static content.
    289 * [merecat](https://github.com/troglobit/merecat/) - thttpd with vhost support.
    290 * [mini\_httpd](http://acme.com/software/mini_httpd/) - By the thttpd developers.  Even smaller subset of thttpd with support for .htpasswd, CGI, dirlisting, HTTP errors and SSL, nothing more or less than that.
    291 * [OpenBSD httpd](https://cvsweb.openbsd.org/src/usr.sbin/httpd/) - OpenBSD HTTP daemon. Concise configuration, sane defaults, secure.
    292 * [quark](//tools.suckless.org/quark/) - suckless simple static web server.
    293 * [thttpd](http://acme.com/software/thttpd/) - Outperforms many bigger httpds. Old, still works very well!
    294 
    295 ### Gopher servers
    296 
    297 * [geomyidae](http://r-36.net/scm/geomyidae/) - small gopher-daemon written by [20h](//suckless.org/people/20h/).
    298 
    299 ### Misc daemons
    300 
    301 * [scron](https://git.2f30.org/scron/) - simple crond.