These are my dotfiles that I use on my i3wm setup, with rofi and polybar.
The central point of this setup is to always open certain applications in specific workspaces. For now, I use this division:
- Workspace 1: Chrome Browser
- Workspace 2: Development IDEs
- Workspace 3: Terminals
- Workspace 4: Secondary Terminals (currently no bindings to this workspace)
- Workspace 5: File Browsers (Ranger and Dolphin)
- Workspace 6: Virtualbox
- Workspace 8: Spotify
- Workspace 9: Slack
You need to have these dependencies installed before using this config. The dependencies are organized by category for easier installation.
i3-wm
polybar
picom
rofi
dunst
feh
stow
alacritty
terminator
zsh
nm-applet
NetworkManager
blueman
blueman-applet
light
xrandr
arandr
setxkbmap
numlockx
xdotool
yad
redshift
pavucontrol
amixer
playerctl
i3-lock-fancy
betterlockscreen
maim
xclip
ranger
dolphin
neovim
vim
google-chrome
firefox
code
spotify
slack
discord
kwallet
ksshaskpass
kwalletmanager
ssh-agent
notification-daemon
atuin
i3-battery-popup
solaar
qalculate-gtk
zenity
kdialog
curl
jetbrains-toolbox
insomnia
virtualenv
kubectx
aws-cli
nvm
tldr
There is a deps.sh
script that installs many of these dependencies via pacman and yay.
Edit the Makefile
file to match your config path, and then run make stow
to create the symlinks.
Note: stow
will fail if the destination folders and files already exist. Make sure to copy or delete them before running make stow
.
After setting up the dotfiles, you can run personal workflow automation setup:
./setup_personal.sh
- Sets up personal automation like cron jobs for daily workflows
You might need these fonts to proper render some icons in the polybar:
The .vimrc
config file needs to have the vim-plug installed.
So far, this config relies only on NetworkManager service. Make sure to install its package, enable and start its service via:
sudo systemctl enable NetworkManager.service
sudo systemctl start NetworkManager.service
Some apps, such as Slack and Spotify, can crash if a desktop notification server is not running.
- Install notification-daemon
- Install dunst
You can test if everything is ok by running in a shell notify-send 'Hello world!' 'This is an example notification.' --icon=dialog-information
.
To open Ranger in its workspace via rofi, we need to run it inside a terminator
window named "ranger". Edit your /usr/share/applications/ranger.desktop
Exec entry to terminator -T "ranger" -e "ranger"
instead of only ranger
.
In nvidia-settings
-> X Server Display Configuration, set either Force Composition Pipeline or Force Full Composition Pipeline to true.
The script .config/i3/scripts/configure_monitors
is run at every i3wm startup. It will set the monitors with a desired configuration by using xrandr
. See the limitations of this script before using it.
- Create a file
~/.monitor-setup
with these contents, and adjust accordingly.
MONITOR_1_NAME=DP-0
MONITOR_1_RATE=144
MONITOR_2_NAME=HDMI-0
MONITOR_2_RIGHT_OF=DP-0
MONITOR_3_NAME=unset
MONITOR_3_LEFT_OF=unset