Computer Setup

This is my reference for how to setup new computers. One day I'll probably turn it into an Ansible script instead.

Table of Contents

Fedora

First install RPM Fusion to get access to more packages:

su -c 'dnf install --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'
sudo dnf update -y

Then install nonfree codecs:

sudo dnf install gstreamer-plugins-ugly gstreamer-plugins-bad gstreamer-ffmpeg xine-lib-extras-freeworld

Install Microsoft Core Fonts then fix font rendering:

sudo dnf install freetype-freeworld gnome-tweak-tool

Then install these repos for nVidia drivers, Steam, Adobe Flash, and Skype:

Then open Gnome Tweak Tool and set hinting to "Slight" and antialiasing to "Rgba" and log out and back in.

Now get a bunch of applications including the Fedora equivalent of build-essential:

sudo dnf install autoconf automake cmake direnv firefox git libtool ninja-build pidgin scons thunderbird valgrind
sudo dnf groupinstall "Development Tools"

Then follow the general Linux instructions

Ubuntu

Fix the hidden scrollbars:

sudo apt-get remove overlay-scrollbar liboverlay-scrollbar

Install Gnome:

sudo apt-get install gnome-shell

Remove Unity:

sudo apt-get remove unity* libunity*

Install some useful programs:

sudo apt-get install build-essential direnv git

VirtualBox

This will make the screen scalable and make clipboard sharing work:

sudo apt-get install virtualbox-guest-x11

Then follow the general Linux instructions

General Linux

Follow instructions for Fedora or Ubuntu first.

direnv

This should already be installed from the package manager. Add this as the last thing in ~/.bashrc:

eval "$(direnv hook bash)"

Instant Messengers

User binary path

So we can easily access programs that aren't installed globally:

mkdir ~/bin
echo "export PATH=~/bin:$PATH" >> ~/.bashrc

Messenger for Desktop (Facebook)

Download Messenger for Desktop and make sure to get the beta version since it handles high DPI screens correctly and doesn't crash as often.

YakYak (Google Hangouts)

Download YakYak and setup a desktop entry:

cd ~/workspace
git clone https://github.com/yakyak/yakyak.git
cd yakyak
npm install # You can ignore the error messages. They are for optional deps
npm run deploy:linux-x64 # or linux-ia32

# Install desktop entry and icon
mkdir -p ~/.local/share/{applications,icons/hicolor/256x256/apps}
ln -s $PWD/dist/yakyak-linux-x64/yakyak ~/bin/yakyak
ln -s $PWD/app/icons/icon@16.png ~/.local/share/icons/hicolor/256x256/apps/yakyak.png
printf "%s\n" \
  "[Desktop Entry]" \
  "Name=YakYak\nExec=yakyak" \
  "Icon=yakyak" \
  "Type=Application" \
  "Categories=Network;InstantMessaging" \
  > ~/.local/share/applications/yakyak.desktop

# Update icon cache
touch ~/.local/share/icons/hicolor
sudo gtk-update-icon-cache

GPG

Based on instructions from here.

In ~/.gnupg/gpg.conf change the key server to use HKPS and a better set of key servers:

keyserver hkps://hkps.pool.sks-keyservers.net
keyserver-options ca-cert-file=/home/blong/.gnupg/sks-keyservers.netCA.pem

And make sure to get the CA cert:

cd ~/.gnupg
wget https://sks-keyservers.net/sks-keyservers.netCA.pem

PulseAudio

PulseAudio uses flat volumes by default (setting application volume to 100% sets system volume to 100%). Since this is terrible and makes no sense, I disable it too.

Open /etc/pulse/daemon.conf, add this line:

flat-volumes = no

(Or find the commented-out line and change it)

Either restart your computer or run this:

pulseaudio -k
pulseaudio --start

Mac

Get Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Install a bunch of graphical programs:

brew cask install atom cyberduck "Docker for Mac" firefox google-chrome \
    java messenger-for-desktop slack spectacle sqlpro-for-mssql swinsian \
    yakyak
# TODO: Create a cask for Wunderlist

Install a bunch of CLI programs:

brew install ag direnv git python3

External Mouse

If using an external mouse, install SteerMouse and change the scroll settings from accelerated to linear.

General

Background

Download Terraform-blue.jpg.