Linux Customizations and Configurations

I frequently forget the various customizations I configure after setting up a distro installation, so this time around I’ve finally compiled a list.

Configuration Files


Use sensible.vim and add the following:

colorscheme peachpuff " desert, slate are nice too
set shiftwidth=4      " 4-space tabs (reindenting)
set tabstop=4         " 4-space tabs (viewing)
set softtabstop=4     " 4-space tabs (editing)
set expandtab         " tabs -> spaces
set number            " line numbers
set hlsearch          " highlight search matches
set smartcase         " being smart about cases during searching
set mouse=a           " click to place cursor

" Map register "+ to system secondary clipboard
" and set ctrl-c/ctrl-x as copy/cut
" N.B. Pasting will still require ctrl-shift-v
set clipboard=unnamedplus
vmap <C-C> "+y
vmap <C-X> "+d

" :W sudo saves the file
" (useful for handling the permission-denied error)
command! W execute 'w !sudo tee % > /dev/null' <bar> edit!

.bashrc, .zshrc

Add the following (optional):

# prepends execution of `cat` command with "meow" in yellow
cat() {
  NC='\033[0m' # no colour
  echo -e "${YELLOW}meow${NC}";
  command cat "$@"

# "gimme gimme gimme" if `man` after midnight (half past twelve)
man() {
  NC='\033[0m' # no colour
  if [ $(date +%H%M) -eq 0030 ]; then
    echo -e "${BLUE}gimme gimme gimme${NC}"
  command man "$@"


Change the following to set default applications:

export EDITOR=/usr/bin/vim
export BROWSER=/usr/bin/firefox-developer-edition


Change the following and use xrdb ~/.Xresources to reload:

! set the XTerm terminal font
XTerm*faceName:   Source Code Pro
XTerm*faceSize:   10
! set the URxvt terminal font
URxvt.font:xft:   Source Code Pro:size=10


Add the following (bash only):

set completion-ignore-case on # case-insensitive tab completion


Change and add the following ($mod+Shift+c to reload):

bindsym $mod+q kill                                                 # close window
# bindsym $mod+q split toggle                                       # I use $mod+h/+v anyway
bindsym $mod+F2 exec firefox-developer-edition                      # replace Pale Moon
bindsym $mod+Print --release exec --no-startup-id i3-scrot -s       # select area by default
bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -w # capture window on Shift
focus_follows_mouse no                                              # click to focus window

# audio settings
# use `pactl list sinks short` to list sinks
bindsym $mod+Ctrl+m exec pavucontrol
bindsym XF86AudioMute exec "pactl set-sink-mute 0 toggle"

# arrange monitors correctly on startup
# use `xrandr -q` to list monitors
# this should go in /etc/lightdm/lightdm.conf
# under `display-setup-script` as well
exec --no-startup-id xrandr --output HDMI-1 --primary --auto --left-of DVI-I-1

# start IBus and Nextcloud on startup
exec --no-startup-id ibus-daemon -drx
exec --no-startup-id nextcloud

# set natural scrolling
# use `xinput list` to list devices
exec --no-startup-id xinput --set-prop "Elan Touchpad" "libinput Natural Scrolling Enabled" 1

# open file manager in floating mode
for_window [class="Pcmanfm"] floating enable


Copy from /etc/i3status.conf. Refer to the man page and to strftime for time format strings. Use $mod+Shift+r to reload.


Uncomment out the following to start PulseAudio on boot:

autospawn = yes
daemon-binary = /usr/bin/pulseaudio
extra-arguments = --log-target=syslog


Use aplay -l to list devices and aplay -D plughw:c,d /usr/share/sounds/alsa/Noise.wav to test card c, device d. Add the following to enable playback through the given device.

load-module module-alsa-sink device=hw:c,d


The open-source version of Visual Studio Code uses a different extensions gallery. To restore it to the usual gallery, in this file, replace the extensionsGallery object:

"extensionsGallery": {
  "serviceUrl": "",
  "itemUrl": ""

Disabling Middle-Click Paste


  1. Install xsel, xbindkeys, xdotool

  2. In ~/.xbindkeysrc, insert

    "echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
    b:2 + Release
  3. In ~/.profile, insert xbindkeys

  4. source ~/.profile

Customizations for Xubuntu


  • GTK theme: Greybird-dark (Settings > Appearance > Style)
  • Xfwm theme: Numix (Settings > Window Manager > Style)
  • Icon theme: ePapirus (Settings > Appearance > Icons)
  • Greeter theme: Greybird-dark (Settings > LightDM GTK+ Greeter Settings > Theme)
  • Desktop background: /usr/share/xfce4/backdrops (Settings > Desktop)

Installed Programs


  • Vim, Git, GParted, Synaptic, Neofetch
  • Tilix (set as default terminal in Settings > Preferred Applications; tilix --preferences to open Preferences)
  • VSCode
  • Spacemacs
  • Firefox Developer Edition (sudo add-apt-repository ppa:ubuntu-mozilla-daily/firefox-aurora)
  • Inkscape (sudo add-apt-repository
  • Racket (sudo add-apt-repository ppa:plt/racket)
  • Minecraft
  • Source Code Pro (copy into /usr/local/share/fonts/ and run sudo fc-cache -fv)


(via “Complete removal” using Synaptic)

  • libreoffice*, libuno* (remove keyboard shortcuts in Settings > Keyboard > Application Shortcuts)
  • xfce4-terminal, xfce4-notes, xfburn
  • pidgin*, thunderbird
  • gnome-mines, gnome-sudoku, sgt-puzzles
  • simple-scan, mate-calc-common, gnome-font-viewer

Customizations for Manjaro i3

Installed Programs

  • firefox-developer-edition (removed palemoon-bin)
  • gvim (replaced vim), code (removed mousepad), racket
  • texlive-most (-core, -bibtexextra, -latexextra, -fontsextra, -science), tllocalmgr-git (AUR)
  • source-code-pro-fonts, ttf-fira-code, noto-fonts-cjk, noto-fonts-emoji
  • manjaro-printer, system-config-printer
  • ibus, ibus-libpinyin, ibus-table-others (AUR)
  • neofetch, lm_sensors, lightdm-settings, earlyoom, pulseaudio
  • minecraft-launcher (AUR), steam-manjaro