Skip to content

bryanmramsamy/dotfiles

Repository files navigation

Northenware Dotfiles

Personal dotfiles for Ubuntu-based systems featuring i3wm, Polybar, and an eye-friendly development environment.

Quick Start

git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh

What's Included

  • 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

Eye-Friendly Development Setup

A carefully curated configuration designed to reduce eye strain during extended coding sessions.

Theme

  • 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

Fonts

Code (IDE/Terminal)

  • 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.)

System Interface

  • 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

Why This Combination?

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

Additional Eye Health Tips

  • 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 i3lock to step away from the screen

Installation

Prerequisites

  • Ubuntu-based Linux distribution (Ubuntu, Pop!_OS, Linux Mint, etc.)
  • Git installed
  • Sudo privileges

Full Installation

Install everything (packages, configs, fonts, shell):

./install.sh

Partial Installation

# 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 -v

Manual Installation

If 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

Font Installation

JetBrains Mono Nerd Font

# 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/

Inter Font

# Ubuntu/Debian
sudo apt install fonts-inter

# Arch/Manjaro
sudo pacman -S inter-font

Configuration

i3wm Keybindings

  • Mod + Enter - Open terminal
  • Mod + d - Rofi launcher
  • Mod + Shift + q - Close window
  • Mod + Shift + e - Exit i3
  • Mod + Shift + r - Restart i3
  • Mod + Shift + c - Reload i3 config
  • Mod + h/j/k/l - Navigate windows (vim-style)
  • Mod + 1-9 - Switch to workspace
  • Mod + Shift + 1-9 - Move window to workspace

Customization

Change Wallpaper

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)

Modify Polybar Modules

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)
└── ...

Rofi Theme

# Edit colors
vim ~/.config/rofi/colors/nord-light.rasi

# Change launcher type
vim ~/.config/rofi/launchers/type-1/launcher.sh

Project Structure

dotfiles/
├── 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

Scripting Guidelines

All Bash scripts in this repository follow standardized conventions documented in SCRIPTING_GUIDELINES.md.

Key principles:

  • Source scripts/base.sh for 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.

Updating

To sync your dotfiles with the latest changes:

cd ~/dotfiles
git pull
./install.sh -f  # Force re-link configs

Backup

The installation script can create backups before overwriting:

./install.sh --backup

Backups are saved to ~/.dotfiles_backup_<timestamp>/

Troubleshooting

Fonts not displaying correctly

# Rebuild font cache
fc-cache -f ~/.local/share/fonts/

# Verify fonts are installed
fc-list | grep -i "jetbrains\|inter"

i3 won't start

# Check i3 config syntax
i3 -C -c ~/.config/i3/config

# View i3 logs
cat ~/.local/share/i3/i3log

Polybar not showing

# Kill existing instances
killall polybar

# Launch manually to see errors
~/.config/polybar/main.sh

Colors not loading

# Reload Xresources
xrdb -merge ~/.Xresources

# Verify colors loaded
xrdb -query | grep nord

License

MIT License - see individual files for specific licenses.

Credits

  • Base configurations inspired by various dotfiles repositories
  • Nord color scheme (adapted for light theme)
  • Font choices based on eye health research and developer preferences

Contributing

Feel free to fork and customize for your own use. If you find bugs or improvements, pull requests are welcome!

About

**Custom configurations** - Dotfiles and installation procedures for Ubuntu 20.04 LTS Focal

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors