Personal dotfiles for Ubuntu-based systems featuring i3wm, Polybar, and an eye-friendly development environment.
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh- i3wm - Tiling window manager configuration
- Polybar - Status bar with custom modules (VPN, audio, network, etc.)
- Rofi - Application launcher and menu system
- Dunst - Notification daemon
- Flameshot - Screenshot tool
- Zsh - Shell configuration with Oh My Zsh and Powerlevel10k
- Vim - Text editor configuration
- Git - Version control configuration
- Xresources - X11 color scheme and settings
A carefully curated configuration designed to reduce eye strain during extended coding sessions.
- GitHub Light - System-wide theme (IDE, browser, terminal, desktop)
- Well-balanced contrast for comfortable reading
- Clear syntax highlighting colors
- Easy on the eyes in any lighting condition
- Full color palette documentation: COLORS.md
- JetBrains Mono Nerd Font
- Size: 14pt
- Line height: 1.5
- Ligatures: enabled
- Specifically designed to reduce eye fatigue
- Excellent character distinction (0/O, l/I/1, etc.)
- Inter
- Polybar: Inter SemiBold 10pt
- GTK/LXAppearance: Inter Regular 12pt
- Rofi: Inter Medium 10-11pt
- Modern sans-serif optimized for UI readability at any size
This setup prioritizes eye comfort while maintaining a professional, cohesive aesthetic:
- GitHub Light: Provides excellent contrast without harsh whites, reducing eye strain
- JetBrains Mono: Monospaced font engineered for prolonged code reading with clear character shapes
- Inter: Clean interface font that remains legible at small sizes without fatigue
- 20-20-20 Rule: Every 20 minutes, look at something 20 feet (6m) away for 20 seconds
- Screen Brightness: Adjust to match ambient lighting (use Redshift for automatic adjustment)
- Blue Light: Consider blue light filtering in the evening (included: Redshift integration)
- Breaks: Take regular breaks and use
i3lockto step away from the screen
- Ubuntu-based Linux distribution (Ubuntu, Pop!_OS, Linux Mint, etc.)
- Git installed
- Sudo privileges
Install everything (packages, configs, fonts, shell):
./install.sh# Install only config files (skip packages and fonts)
./install.sh --config-only
# Skip specific components
./install.sh --skip-packages # Skip apt package installation
./install.sh --skip-fonts # Skip font installation
# Create backups of existing files
./install.sh --backup
# Force overwrite without prompts
./install.sh -f
# Verbose output for debugging
./install.sh -vIf you prefer to install components manually:
# 1. Link home directory files
ln -s ~/dotfiles/home/.zshrc ~/.zshrc
ln -s ~/dotfiles/home/.vimrc ~/.vimrc
ln -s ~/dotfiles/home/.gitconfig ~/.gitconfig
ln -s ~/dotfiles/home/.Xresources ~/.Xresources
ln -s ~/dotfiles/home/.p10k.zsh ~/.p10k.zsh
# 2. Link config directories
ln -s ~/dotfiles/config/i3 ~/.config/i3
ln -s ~/dotfiles/config/polybar ~/.config/polybar
ln -s ~/dotfiles/config/rofi ~/.config/rofi
ln -s ~/dotfiles/config/dunst ~/.config/dunst
ln -s ~/dotfiles/config/flameshot ~/.config/flameshot
# 3. Copy fonts
cp ~/dotfiles/fonts/* ~/.local/share/fonts/
fc-cache -f ~/.local/share/fonts
# 4. Link scripts
ln -s ~/dotfiles/scripts/base.sh ~/bin/base.sh
# 5. Load Xresources
xrdb -merge ~/.Xresources# Ubuntu/Debian
sudo apt install fonts-jetbrains-mono
# For Nerd Font version with icons:
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/JetBrainsMono.zip
unzip JetBrainsMono.zip -d ~/.local/share/fonts/
fc-cache -f ~/.local/share/fonts/# Ubuntu/Debian
sudo apt install fonts-inter
# Arch/Manjaro
sudo pacman -S inter-fontMod + Enter- Open terminalMod + d- Rofi launcherMod + Shift + q- Close windowMod + Shift + e- Exit i3Mod + Shift + r- Restart i3Mod + Shift + c- Reload i3 configMod + h/j/k/l- Navigate windows (vim-style)Mod + 1-9- Switch to workspaceMod + Shift + 1-9- Move window to workspace
Sample wallpapers are included in the wallpapers/ directory. To use them:
# Copy wallpapers to your Pictures directory
cp ~/dotfiles/wallpapers/*.png ~/Pictures/Wallpapers/
# Or edit ~/.config/i3/config to point directly to dotfiles:
exec_always --no-startup-id feh --bg-center "$HOME/dotfiles/wallpapers/Northenware Light 3840x2400.png"Available options for wallpaper positioning:
--bg-center- Center without scaling (recommended, no distortion)--bg-fill- Fill screen keeping ratio (may crop)--bg-max- Maximum size without cropping (may show bars)--bg-scale- Stretch to fill (may distort)
Edit module files in ~/.config/polybar/modules/:
~/.config/polybar/modules/
├── audio.ini # Volume control
├── battery.ini # Battery status
├── bluetooth.ini # Bluetooth status
├── network.ini # Network info
├── vpn.ini # VPN status (NordVPN)
└── ...# Edit colors
vim ~/.config/rofi/colors/nord-light.rasi
# Change launcher type
vim ~/.config/rofi/launchers/type-1/launcher.shdotfiles/
├── install.sh # Installation script
├── README.md # This file
├── COLORS.md # Color palette documentation
├── SCRIPTING_GUIDELINES.md # Bash scripting standards
├── config/ # Configuration files (~/.config/)
│ ├── i3/ # i3wm configuration
│ │ ├── config # Main config file
│ │ ├── modules/ # Modular config includes
│ │ └── scripts/ # Helper scripts
│ ├── polybar/ # Status bar configuration
│ │ ├── config.ini # Main config
│ │ ├── modules/ # Module configurations
│ │ └── scripts/ # Status scripts
│ ├── rofi/ # Application launcher
│ ├── dunst/ # Notifications
│ └── flameshot/ # Screenshots
├── home/ # Home directory files (~/)
│ ├── .zshrc # Zsh configuration
│ ├── .p10k.zsh # Powerlevel10k theme
│ ├── .vimrc # Vim configuration
│ ├── .gitconfig # Git configuration
│ └── .Xresources # X11 resources (colors, fonts)
├── scripts/ # Utility scripts (~/bin/)
│ ├── base.sh # Common functions library
│ └── bin/ # Executable scripts
├── fonts/ # Custom fonts
└── wallpapers/ # Sample wallpapers
├── Northenware Light 3840x2400.png
└── Northenware Dark 3840x2400.png
All Bash scripts in this repository follow standardized conventions documented in SCRIPTING_GUIDELINES.md.
Key principles:
- Source
scripts/base.shfor common functionality - Self-documenting help via header comments
- Consistent logging (info, success, warning, error, debug)
- Proper error handling and argument parsing
- Verbose and quiet modes
See SCRIPTING_GUIDELINES.md for complete documentation and templates.
To sync your dotfiles with the latest changes:
cd ~/dotfiles
git pull
./install.sh -f # Force re-link configsThe installation script can create backups before overwriting:
./install.sh --backupBackups are saved to ~/.dotfiles_backup_<timestamp>/
# Rebuild font cache
fc-cache -f ~/.local/share/fonts/
# Verify fonts are installed
fc-list | grep -i "jetbrains\|inter"# Check i3 config syntax
i3 -C -c ~/.config/i3/config
# View i3 logs
cat ~/.local/share/i3/i3log# Kill existing instances
killall polybar
# Launch manually to see errors
~/.config/polybar/main.sh# Reload Xresources
xrdb -merge ~/.Xresources
# Verify colors loaded
xrdb -query | grep nordMIT License - see individual files for specific licenses.
- Base configurations inspired by various dotfiles repositories
- Nord color scheme (adapted for light theme)
- Font choices based on eye health research and developer preferences
Feel free to fork and customize for your own use. If you find bugs or improvements, pull requests are welcome!