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-setupwith 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