These are my dotfiles. Instructions below are mostly for myself, but I've made this project public so that anyone can use it, but do so at your own risk. Some commands will overwrite files in your home directory, proceed with care. I recommend trying it in a VM first.
System: Ubuntu 24.04.
Install git.
sudo apt update && sudo apt install git
Download this dotfiles repository into your home folder.
WARNING: Only do this if you know what you're doing and you're sure this is what you want. This instruction is mostly for myself to easily copy-paste the commands. Other users may use this repo as a reference.
git clone https://github.com/simonfontana/dotfiles.git /tmp/dotfiles # answer yes if you get a prompt
shopt -s dotglob # turn on dot files
cp -r /tmp/dotfiles/* ~/
cd ~ && git submodule update --init --recursive
Before moving on with the installation of the environment, let's install some great programs, some of which may be useful moving forward.
sudo apt update && sudo apt dist-upgrade
sudo add-apt-repository universe # additional repository required to install FUSE
sudo apt install \
autojump `# faster way to navigate your filesystem` \
autorandr `# automatically switch displays` \
brightnessctl `# set screen brightness` \
colordiff `# colorize diff output` \
curl `# transfer url` \
docker.io `# run docker containers` \
libfuse2t64 `# run AppImages` \
pavucontrol `# volume control tool` \
playerctl `# required for i3-blocks mediaplayer and for mediakeys to work` \
python3-dev python3-pip python3-setuptools `# good to have python tools` \
python3-venv `# virtual environments for python` \
redshift-gtk `# adjust color temperature of your screen` \
thunar `# file manager` \
vim `# text editor` \
xclip `# copy-paste from nvim`
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # package manager
brew install lazygit # nice git tool
brew install ydiff # nice diff tool
brew install thefuck # correct errors in previous command
go install github.com/rhysd/notes-cli/cmd/notes@latest
go install github.com/charmbracelet/glow@latest
I prefer zsh over bash.
sudo apt install \
fonts-powerline `# font required by spaceship` \
zsh `# Z shell`
chsh -s $(which zsh) # set zsh as default shell
Lf is a neat little terminal file manager which is not available in Ubuntu repository. Below is an example on how to install version r26 on amd64 architecture. Hotkey after installation is CTRL+P in terminal.
wget https://github.com/gokcehan/lf/releases/download/r26/lf-linux-amd64.tar.gz
tar zxf lf-linux-*.tar.gz
sudo mv lf /usr/local/bin/lf
rm lf-linux-*.tar.gz
Note: It may be worth adding sur5r's Ubuntu repository to get the latest i3-wm version. Go HERE for instructions.
Execute the below command to install i3-wm and other dependencies required by the configuration:
sudo apt install \
feh `# background image` \
i3-wm `# i3 window manager` \
i3blocks `# status bar` \
i3lock `# lock screen` \
i3status `# status bar` \
rofi `# application launcher` \
scrot `# screen capturing`
Install Alacritty following the installation instructions: https://github.com/alacritty/alacritty/blob/master/INSTALL.md
curl https://sh.rustup.rs -sSf | sh # install rust
apt install cmake g++ pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3 # install dependencies
cargo install alacritty # install alacritty
To use the opacity configuration, I use picom as compisotor. To build and install picom, go to: https://github.com/yshui/picom
Start by installing Ubuntu NF fonts which is what I have configured for i3. Without it, icons will not show properly in i3-bar. Also install DroidSansM NF fonts which are used in alacritty.
mkdir -p ~/.fonts/Ubuntu-Nerd-Font/
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Ubuntu.zip
unzip -d ~/.fonts/Ubuntu-Nerd-Font/ Ubuntu.zip
rm Ubuntu.zip
mkdir -p ~/.fonts/DroidSansM-Nerd-Font/
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/DroidSansMono.zip
unzip -d ~/.fonts/DroidSansM-Nerd-Font/ DroidSansMono.zip
rm DroidSansMono.zip
List all programs used by your i3-blocks configuration.
cat ~/.config/i3/i3blocks.conf | grep -o '~/.config/i3/i3blocks-contrib/[-_a-Z]\+' | xargs -L1 -I 'PATH' echo PATH/README.md
Read the README.md files for each program and follow the instructions to install their dependencies.
Start by installing lxappearance.
sudo apt install lxappearance
Note: Lxappearance doesn't work in GNOME (it has it's own program to set themes). You can only use lxappearance in i3-wm.
Open lxappearance and see if you find a theme you like. There are more available at gnome-look.org. Install by extracting the archive into either ~/.themes/ or ~/.icons/ depending on if it's a GTK theme or an icon theme.
I use nvim. Follow installation guide.
Reboot and go to the login screen. Click the gear wheel and select i3 as your window manager.