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>
                               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
-------------------------------------------------------------------

                                                             <p01>
     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.
-------------------------------------------------------------------

                                                             <p02>
                          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.
-------------------------------------------------------------------

                                                             <p03>
                       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.
-------------------------------------------------------------------

                                                             <p04>
                         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.
-------------------------------------------------------------------

                                                             <p05>
                             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.
-------------------------------------------------------------------

                                                             <p06>
                             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.
-------------------------------------------------------------------

                                                             <p07>
                         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.
-------------------------------------------------------------------

                                                             <p08>
                              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.
-------------------------------------------------------------------


                                                             <p09>
                           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.
-------------------------------------------------------------------

                                                             <p10>
                             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.
-------------------------------------------------------------------