I was recently contacted by a colleague asking me about Debian.

First, excellent choice of operating system - I’m a huge fan of Debian. A complete guide to my configuration suggestions might be beyond the scope of this email. At one point I started to write up a blog post of the various tools, but it became too much of a mammoth task to finish and the blog post remains largely incomplete. This email has provided me some incentive to update that post and my dotfiles, so will look at that in the coming weeks. From the dotfiles, you can probably get some ideas from my basic postinstall setup

It’s probably worth mentioning that my recommendations, particularly for personal use, are highly opinionated and probably are things that are worthwhile you exploring. Nevertheless, let’s get into it:

General Install Notes

  • Installation is pretty straightforward, main thing to note is that Debian uses the root (super user) + local user combination. Most distros now have just one user which can be elevated with sudo. If you want this out of the box, simply don’t enter a root password when prompted at install page and your user account will default to having sudo access.
  • After install, I’d suggest moving to Debian testing (don’t use stable unless intended for server usage). To do this, edit the /etc/source/list.d file and change all instances of stable to testing.

Desktop Environment / Personal Use

Terminal/Development Environment

  • Guake - dropdown terminal emulator. I usually bind to ctrl-alt-`
  • Terminator as your default terminal emulator for heavy usage

  • Visual studio Code - as your main editor

  • Essential: oh-my-zsh should be your main interpreter (not bash) - I’d also suggest enabling the debian plugin

  • If you are using SSH regularly, I’d suggest learning tmux - a terminal multiplexer allowing you to attach persistent SSH sessions with multiple panes. This is the best config I’ve found.

  • It’s worthwhile learning some of the basic commands in terminal, e.g. ctrl - R for backwards search. Some of the basics emacs commands for editing commands.

  • Install patched powerline fonts https://github.com/powerline/fonts.git and use these for all editing (or Fira Code)

  • If you regularly need to work over SSH, Emacs/Vim are a must (my preference is spacemacs)

  • Some basics for building packages and general utilities

    sudo apt install build-essential automake autoconf gnu-standards\
    sudo apt install git zsh curl wget vim\
    sudo apt-get -y install apt install linux-headers-$(uname -r | sed 's/[^-}*-[^-]*-//')\
    sudo apt install r-base python3 python3-pip\
    sudo apt install htop # for interactive process sessions