My Tools

I like to write code, and so I spend a lot of time at the computer. I use Linux, and I prefer the command-line. Here is a list of the tools I use.

Productivity

  • Text Editor: vim Most of my choices for tools are directly consequence of the fact I started using vim a long time ago. I also use neovim some.
  • Window Manager: i3wm A tiling window manager that is easy to configure, modal, and fast.
  • Shell: zsh Like Bash, but better. I honestly can't even remember what features I use that are not in Bash. 99% of what I do is probably just Bash. The completion engine is pretty nice.
  • Terminal Emulator: kitty A lightweight terminal that is easy to configure and designed to be keyboard-centric. I used Terminology for a long time, but it's based on the Enlightenment Foundation Libraries, which I don't use, so it's "heavy" to install. kitty can be installed under your user's home directory, so its easy to install it on a new machine. Other than the maintainer answering most questions/feature requests with something along the lines of "Why would you need to do that? That is stupid. You must be an idiot.", its pretty good.
  • Web Browser: qutebrowser A lightweight browser written in Python that is designed for vim users and can be installed with pip. It's way better than using a Firefox or Chromium extension to add vim keybindings. It does use Qt though the PyQt bindings, which is what it is.
  • PDF Viewer: zathura I don't know how I stumbled upon this little gem, but it is a beauty. Lightweight and designed for vim users. It also supports auto-refreshing, so its a good viewer to launch when your writing LaTeX.
  • Image Viewer: feh Simple and fast.
  • File Synchronization: Unison A bi-directional file synchronization tool that has a command line interface (there is a GUI too) that does a good job of just working. I use this to keep several directories on my work desktop, work laptop, home desktop, and personal laptop synchronized, i.e. copy files to and from. I've tried several tools, and this one is the best. It turns out that many tools support bi-directional synchronization or remote synchronization, but not not both. Unison allows you to sit down at a computer, do a sync, and start working. When your done, you just do another sync, and now you can start working on another machine. The only downsides are that is written in OCaml, which I don't know, and it isn't actively maintained. I'm always looking for a replacement, but I haven't found one that works as well as Unison.

links

social