This is a collection of links to cool linux-related stuff. It's mainly software and blogs that follow the kind of minimalism that I enjoy (suckless philosophy, avoiding GUIs when they're not necessary, optimizing everything for keyboard usage, etc...). I will add more stuff as I discover and remember it. Index ------------------------------------------------------------------- /p01 Misc sites: services, blogs, tutorials, writeups, etc... /p02 Misc Software /p03 Terminal Emulators /p04 Window Managers /p05 Drivers /p06 Coding /p07 Web Development /p08 Fonts /p09 Misc Themes /p10 Distros ------------------------------------------------------------------- Misc sites: services, blogs, tutorials, writeups, etc ------------------------------------------------------------------- gopher://sdf.org/ http://sdf.org/ A long-running server where you can create free shell accounts and access and ton of utilities, with the option to upgrade to even more powerful tools by donating. This is what I use to host my gopher space. The free shell account comes with gopher preinstalled and setting up a gopher space is as easy as mkgopher setup quit cd gopher edit gophermap # make your gophermaps and subdirectiories and your gopherspace will be reachable at gopher://sdf.org/1/users/yourusername ------------------------------------------------------------------- gopher://uninformativ.de/ https://www.uninformativ.de/ https://github.com/vain Tons of cool minimalistic software, utilities, writeups. Embraces suckless philosophy. There's also a gallery of linux desktop screenshots dating back to 2003 that can inspire you for your own linux desktop setups. ------------------------------------------------------------------- http://suckless.org/ Home of dwm, dmenu and other quality software with a focus on simplicity, clarity, and frugality. ------------------------------------------------------------------- http://betteros.org/ Interesting articles about low level programming, such as building programs without the C standard library on linux, or writing to the framebuffer device directly. Contains a nice reference for AMD64 linux syscalls that I use when I write non-libc programs. ------------------------------------------------------------------- Misc Software ------------------------------------------------------------------- https://sourceforge.net/projects/unclutter/ A small utility that hides the cursor when inactive. Extremely useful with tiling window managers. ------------------------------------------------------------------- http://parcellite.sourceforge.net/ Clipboard manager. Absolutely essential if you want your clipboard to persist after you close the application that wrote to it. ------------------------------------------------------------------- http://tools.suckless.org/dmenu/ A simple fuzzy find window to search and launch software by name. I use it daily to launch everything. Font is customizable, but has already great defaults. ------------------------------------------------------------------- https://github.com/muennich/sxiv Extremely lightweight image viewer that supports browsing through thumbnails in a directory. Has keyboard shortcuts for everything. Can easily replace graphical file managers, which I only use to browse image thumbnails. ------------------------------------------------------------------- https://rg3.github.io/youtube-dl/download.html Command line tool to download videos from almost any streaming site such as youtube. I use this to back-up my youtube favorites and download anything that isn't available with direct downloads that I want to keep. ------------------------------------------------------------------- http://docs.livestreamer.io/install.html Extracts livestreams from almost any service to let you watch them without a browser on your favorite media player. I use this to watch twitch streams all the time. If a service is missing, writing a plugin to support it is trivial. This combined with mpv and youtube-dl cut off all the resource hog that you normally get by watching streaming videos and livestreams in the browser. ------------------------------------------------------------------- https://mpv.io/ Highly customizable video player. Uses ffmpeg and supports pretty much any popular video format, as well as subtitles. With the vapoursynth extension it's possible to apply filters in real-time such as 60fps interpolation, improving upscale quality, etc. Can take screenshots. Can seek frame by frame. Has youtube-dl integration so you can mpv youtube urls, or anything supported by youtube-dl and play it. Also has livestreamer integration. Keyboard bindings for every control. Controls and behaviour highly customizable from the config files. ------------------------------------------------------------------- https://www.mplayerhq.hu/design7/news.html Ancestor of mpv. Even more lightweight. Also supports outputting to the tty framebuffer, so this would definitely be the player of choice when working from the tty. ------------------------------------------------------------------- http://w3m.sourceforge.net/ Text-based browser that can display images inline in the terminal. Only works with xterm, urxvt and a few others. Has vim-like customizable keybindings. Use this ~/.w3m/config to display images in the terminal by default imgdisplay w3mimgdisplay ext_image_viewer 0 This can also double as a pager and file browser. I personally prefer using sxiv to view images, but I find w3m great to dump pages as plain text (not html) using -dump. It supposedly also works in TTY with images, which would make it the ideal browser for TTY. ------------------------------------------------------------------- https://justgetflux.com/linux.html xflux is a daemon that will filter blue light off your screen as the sun settles. Not only this makes the screen easier on your eyes but it also looks better in low lighting (since indoor lights tend to be red-ish). Just put something like: xflux -l 12.34 -g 12.34 -k 3400 -r & in your ~/.xinitrc where -l is your latitude, -g is your longitude and 3400 is the color temperature. ------------------------------------------------------------------- https://www.imagemagick.org/script/index.php An amazing set of command-line tools to manipulate images. I use it for pretty much every batch image operation: stitching images together, creating a gif from a list of images, resizing images, converting images to other formats, and so on. It also comes with "display", a lightweight image viewer that supports piping of the file from stdin. display also has a minimal UI that allows you to quickly edit an image and apply some basic filters. I use it to view images when I browse gopher space and crop/resize them before saving. I also force display to run in floating mode in i3, since I usually don't want to be looking at other windows anyways while viewing an image and making it tile can mess up the scaling. ------------------------------------------------------------------- https://www.gimp.org/ For any image editing too complex for imagemagick, gimp is the way to go. I recommend single window mode, as I find the floating toolbars extremely annoying. ------------------------------------------------------------------- https://sourceforge.net/projects/pcmanfm/ Reliable file manager with thumbnailing. Probably the only graphical file manager that doesn't become buggy or slow down to a crawl after a few weeks of uptime. ------------------------------------------------------------------- https://krita.org/en/ Great photoshop replacement with very similar workflow. Unfortunately it pulls in a ton of KDE dependencies which I don't want, so I will probably keep using GIMP for anything that display and imagemagick can't do as easily. ------------------------------------------------------------------- https://github.com/google/mozc My favorite Japanese IME. I use it with ibus. It supports japanese emotes, emoji and a lot of stuff other IME's don't have. ------------------------------------------------------------------- https://github.com/brndnmtthws/conky My system monitor of choice. Highly customizable. Fits both modern looking desktops and oldschool minimalistic ones. ------------------------------------------------------------------- https://www.musl-libc.org/ Alternative C library, much smaller than the standard C library. Can reduce executable size massively. ------------------------------------------------------------------- https://busybox.net/about.html Lightweight alternative to coreutils and other GNU tools, all packaged in one executable. ------------------------------------------------------------------- https://telegram.org/ This is the only instant messaging application that I use and check regularly. Their desktop app is 100% native and uses a modified version of Qt. It's snappy and reliable even after weeks of uptime with thousands of messages. Has nice custom stickers, markdown syntax for messages, image and video previews, and a lot of features you see in discord, minus the slowness and bloat. The only downside is that it requires a phone number to create an account. I would much rather use a normal username + password to log in, since I almost never use my phone and I have to turn it on when I lose my session. ------------------------------------------------------------------- https://www.winehq.org/ Implementation of Win32API and other Windows libraries for Linux and mac. Allows you to run many Windows applications and games without a virtual machine with almost native performance. I run osu! with this and it runs at native performance. Even smoother than it would on windows actually, since windows drivers for my GPU suck. As long as your game is OpenGL, it should achieve native performance. For directx games, you might wanna enable gallium nine patches on AMD GPUs for better performance. ------------------------------------------------------------------- Terminal Emulators ------------------------------------------------------------------- http://invisible-island.net/xterm/ My terminal emulator of choice. Comes with Xorg. It does one thing and it does it well. Supports unicode just fine with the right fonts. Perfect for tiled window managers where a terminal with tabs and other bloat would just get in the way. ------------------------------------------------------------------- https://www.enlightenment.org/about-terminology A terminal emulator that can display inline images through custom escape codes. Can be useful to write command line applications with some graphical features without having to have a full blown GUI. Also has a ton of fancy stuff like playing videos, animations, cool animations for switching tabs, animated cursor, and so on. ------------------------------------------------------------------- Window Managers ------------------------------------------------------------------- https://i3wm.org/ The window manager I'm currently using. It's tiling and comes with a great default config that barely needs any tweaking. The thing I like the most about it is the directional navigation (shift + hjkl to select windows to the left, down, up, right). It makes navigation so much quicker and intuitive on multiple monitors The lack of decorations makes it a great option for a minimalistic look, with just flat colors and bitmap fonts. ------------------------------------------------------------------- https://joewing.net/projects/jwm/ Stacking/floating window manager, very similar to fluxbox but less buggy with multiple monitors. It was my window manager of choice for about a year. Great if you don't want to learn a tiling window manager or don't like that style. ------------------------------------------------------------------- http://fluxbox.org/screenshots/ Oldschool stacking window manager. Highly customizable, very lightweight, "just works". It's the default window manager for gparted live. Can get buggy with multiple monitors. It was my window manager of choice for a couple months before I discovered JWM. ------------------------------------------------------------------- Drivers ------------------------------------------------------------------- https://github.com/DIGImend/digimend-kernel-drivers Drivers that make your graphics tablet just work. I use this for my Huion H420 (hid_uclogic). Supports generic graphics tablets such as ones designed and sold by Huion, KYE, UC-Logic and Waltop, rebranded and sold by Aiptek, Genius, Monoprice, Princeton, Trust, and many others. ------------------------------------------------------------------- Coding ------------------------------------------------------------------- http://www.vim.org/ Terminal-based advanced text editor. This is my editor of choice for ANYTHING, even plain text. Customization is almost unlimited - there's a plethora of plugins that can do even advanced tasks. It works very differently than conventional text editors and is based on the notion that we're editing text more often than we write new text and therefore text insertion mode isn't the default. I might write an article about it some day, but for now you should check out vimtutor to see what vim is all about. It's extremely powerful and speeds up your workflow once you get used to it. I particularly like the movement key bindings (hjkl by default, which I remapped to jkl; to be consistent with i3) that minimize hand movement. It's needless to say that this editor is entirely keyboard-based and saves you the pain of reaching for your mouse. ------------------------------------------------------------------- https://golang.org/ I personally still prefer C for most things, but if you want a higher level language without the unnecessary complexity of classes, templates and all that stuff, Go is the way to go. Has a very rich standard library that comes with full support for HTTP servers and requests. The toolchain you get out of the box is all you need to acquire and install packages off github and other sites. Builds as a completely static binary that just works (although executable size is massive and still growing, which is horrible for low-end machines). Cross compiles to every supported platform out of the box. Great for server backends, performance is closer to C compared to stuff like node. ------------------------------------------------------------------- Web Development ------------------------------------------------------------------- http://werc.cat-v.org/ Database-free web framework managed using files and directories. No need to write HTML, use markdown or any other format. Powers suckless.org. ------------------------------------------------------------------- Fonts ------------------------------------------------------------------- https://en.wikipedia.org/wiki/Fixed_(typeface) My font of choice for both my terminals and my GTK theme. It comes with Xorg. I recommend 6x12 size for ascii and non-wide encodings and *-fixed-medium-*-*-18-* for japanese and other wide languages. I have a special alias for xterm that starts with with the bigger font when I want to work with japanese characters. ------------------------------------------------------------------- https://github.com/lucy/tewi-font A beautiful bitmap font. Doesn't have much unicode support, but it looks better than 6x12. The only issue I have with it is that the dash isn't perfectly centered vertically and it makes ascii art look bad in some cases. ------------------------------------------------------------------- Misc Themes ------------------------------------------------------------------- http://r5d.deviantart.com/art/dark-minimal-GTK-172571104 Minimal dark GTK theme. Fits very well with bitmap fonts. It's my current theme of choice, except I replaced the purple highlight color with a tamer violet (sed -i 's/d7005f/826ea9/g' dmnml/gtk-2.0/gtkrc). ------------------------------------------------------------------- gopher://sdf.org/1/users/loli/linux/configs/.Xresources My .Xresources files with a violet dark theme for xterm that I ripped from here: https://github.com/deflex/dotfiles/blob/master/Xresources It should be the color scheme that appears in the screenshots on tewi-font's github. To reload your Xresources, run xrdb ~/.Xresources and restart xterm. ------------------------------------------------------------------- Distros ------------------------------------------------------------------- http://damnsmalllinux.org/ Extremely stripped down distro that comes with a pre-configured set of desktop applications. Looks nice and old-school. Very good for those who want a minimal system without having to learn and configure it from scratch. ------------------------------------------------------------------- https://www.gentoo.org/ My distro of choice. Source-based (everything is compiled from source). I would only recommend this on a fast multi-core cpu, as compile times can get quite long with large software. Customization is as high as it gets (unless, of course, you make your own distro). Some of the most useful features that make me pick this over other distros: - Customize compilation flags to optimize software for your hardware. This can be done system-wide or for specific packages. - Downgrade software to a specific version or unmask cutting-edge versions. This is extremely useful when you have packages that depend on older versions of libraries / software. Also useful in case of regressions (which happen often in stuff like wine). - Apply your own patches to the source code of a package. - Easily create your own portage overlay with custom software or patches and let the package manager handle them. - Toggle features to build in packages with use flags (for example, you can disable the qt4 qt5 use flags system-wide to prevent software from building the qt version of their UI). - Configure and compile the kernel manually, remove features you don't need, build modules or firmware into the kernel, etc... - You're not forced to used systemd if you don't like it. ------------------------------------------------------------------- https://www.archlinux.org/ About as customizable as gentoo, except it's binary based so there's no need to wait for stuff to compile, but you also lose some of the source patching and use flag customization. ------------------------------------------------------------------- http://linuxfromscratch.org/ Great way to learn how a linux system works behind the scenes. Ultimate customization. I'm currently making a fully statically built linux system linked against musl-libc based on this guide. ------------------------------------------------------------------- https://github.com/sabotage-linux/sabotage A musl-libc based distro. Not statically linked. Lighter and faster than arch or gentoo since libc is quite large and can slow down response times as well as increasing binary size. ------------------------------------------------------------------- https://alpinelinux.org/ Musl + busybox based distro that strips off most GNU tools for less bloated alternatives. Might be even more lightweight than sabotage. ------------------------------------------------------------------- https://www.linuxmint.com/ Not very lightweight, but comes with a nice desktop environment that isn't as bloated and slow as Ubuntu's Unity. It's my favorite "just works" distro. It's what Ubuntu never managed to achieve. Would recommend to anyone who isn't crazy about customization and just wants a working system immediately without spending a day setting up stuff. I personally hate the default look and even if you turn off all font antialiasing and change fonts to bitmap fonts, the menu is tricky to permanently skin and keeps reverting to its defaults. -------------------------------------------------------------------