Get some superpowers with your terminal

2019-12-31 Last modified on 2021-05-24

This article is the written version of a small talk I gave in multiple conferences (Devoxx France, Voxxed Days Luxembourg, Jug Summer Camp, Voxxed Days Ticino).

Linux

At home I use Linux. I used to play with Ubuntu but I switched to Arch Linux about 5 years ago. It is a rolling-release model (no huge migration to upgrade, always up-to-date). I like to live dangerously :smile:.

It works well and I have never broke my system. I also used the same at work previously.

Arch Linux comes with a default package manager: pacman. I also use yay to reach AUR (the Arch User Repository) with tons of community packages.

Window manager

I use i3, a tiling window manager.

It is pretty cool to move windows around and organize them in workspaces.

I am using a friend's configuration file.

About the status bar, "it depends". I often use the standard i3 bar, and I also playing with polybar, even if I did not make the switch yet.

I use rofi as an application launcher.

Terminal

I spent some years with urxvt, but I am now using kitty.

Shell

I spent a lot of time with the good old bash, then switched to zsh, and was quite unhappy with it. I needed to add plugins and stuff, and it was slow.

I found happiness with fish, which is not compatible with bash but has tons of default things that just work. If needed, there is a package manager: fisher.

Directories & files

ranger is great! It allows to browse my system, copy/move files around, preview them. I use a lot the shortcut S, to open a shell in the folder I am currently viewing.

I also use z a lot to jump around.

Images

feh is what you want!

It is very lightweight and super effective to display static images (no gif!).

I also use feh to setup my wallpaper, with feh --bg-fill ~/wallpaper.jpg

Documents

zathura is a simple and effective document viewer.

You can browse your docs with the holy keys: j, k for scrolling; J, K for page jumps, and h, l for left/right.

The theme can be customized.

Music

ALSA and the alsamixer tool for sound and volume management.

I use mpd, a daemon to play music, with the ncmpcpp frontend.

Other nice tools: cmus, moc (music on console).

Development

When working with git, I love tig and I also use some extra functions from git-extras.

Other nice tools:

  • jq, a json processor.
  • httpie, curl made easy!

Videos and animated images

mpv is my favorite video player! It can play everything, and has a --loop to display animated gifs :smile:.

ffmpeg is also a great tool to work with videos.

Mails and contacts

abook is a contact manager app. Its file format is plain text and it would be easy to write tools to generate is to import all your contacts.

I use neomutt and I configured everything with mutt-wizard

Passwords

I stopped using LastPass when they were bought by another company.

I use pass and the Arch Linux wiki page about it is great.

(neo)vim or emacs?

None! kakoune FTW!

Exception: not in the terminal

My browser is qutebrowser, a browser using QtWebEngine inspired by vim.

The best thing for the end

thefuck, to fix our typos when we type a command.