After re-installing Ubuntu on my laptop for the umteenth time and figuring out I didn't remember any of my configuration settings, I realized it might be helpful to put them all somewhere easy to reference. So I created my config GitHub repository. But for future reference I also decided to add some comments here to help anyone (including myself) trying to understand what I was thinking.
Install
Everywhere
This is a list of all the programs that I install and a short reason why. Most of these are merely better versions of what already exists out of the box. I try not to rely on too many crazy additions because it makes you too dependent on your setup.
Program | Reason |
---|---|
screen | For running detached commands |
htop | Better top |
autojump | Much better than cd |
ipython | Better python interpreter with magic commands |
python-pip | Install python modules from command line |
python-dev | Install python modules from command line |
build-essential | For g++ |
emacs24 | Text editor |
ack-grep | Better grep |
zsh | Slightly better than Bash |
oh-my-zsh | Customize zsh |
dropbox | File sharing |
solarized theme | Better looking terminal |
Ubuntu
All of the programs above I install no matter what OS I'm running. If I'm running the Ubuntu Desktop I also do a couple more things. I disable tap to click on the touch pad since I find that when I'm typing it doesn't disable properly. Finally I change the way alt-tab works since I don't like how it cycles through different windows of the same program before other windows.
Server
Finally if I'm using Ubuntu Server (or any other linux server) I install tmux so that I can have multiple terminal windows without multiple ssh connections.
Install Script
I also made a script that will install all of these programs and move the dotfiles to the home folder to make emacs config and zsh config work properly. It will prompt you before installing anything but I would still recommend looking at the script before you run it. To install just run:
git clone https://github.com/yknot/config.git cd config ./install.sh