Skip to content

sfeedbackx/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Dotfiles

Welcome to my dotfiles repository! This repo contains my personal configuration files for various applications and tools I use daily. By using GNU Stow, I keep these configurations organized and easily manageable across different machines.

πŸ—‚ What is GNU Stow?

GNU Stow is a symlink manager that allows you to manage your dotfiles (configuration files) across multiple applications from a single directory. It creates symbolic links (symlinks) from the directory where you store your dotfiles (e.g., ~/dotfiles) to their respective locations in your home directory.

This approach keeps your home directory clean, organized, and version-controlled, allowing for easy backups and synchronization between different machines.

How Does Stow Work?

  1. Directory Structure: You place your dotfiles in appropriately named subdirectories (e.g., i3, zsh) within your main dotfiles directory.
  2. Create Symlinks: Stow creates symlinks from these subdirectories to your home directory or any other target directory.
  3. Manage Configurations: You can easily add, remove, or update configurations by simply running Stow commands.

πŸ“‹ Features

  • ZSH Shell Configuration:
    • Custom .zshrc with Oh My Zsh, Powerlevel10k theme, and essential plugins
    • Aliases, functions, and personalized prompt settings
    • NVM and FZF integration
  • i3 Window Manager:
    • Complete i3 configuration with custom keybindings and layouts
    • Multi-monitor support and workspace management
    • Integration with polybar, rofi, and other tools
  • Polybar Status Bar:
    • Custom status bar with system monitoring
    • Workspace indicators, audio controls, and system info
  • Kitty Terminal:
    • Terminal emulator with Catppuccin theme
    • Custom font and transparency settings
  • Neovim:
    • Modern Neovim configuration with Lazy.nvim plugin manager
    • Custom plugins and settings
  • Tmux:
    • Terminal multiplexer with Catppuccin theme
    • Session management and navigation plugins
  • VSCode Profiles:
    • Multiple code profiles for different development environments
    • Custom settings and extensions
  • Picom Compositor:
    • Window effects and transparency configuration
  • Rofi Application Launcher:
    • Custom menus for applications, windows, and power management
  • Xresources & Xsettingsd:
    • X11 resource configuration for consistent theming
  • Font Configuration:
    • Nerd Fonts and custom font setup
  • Gogeta Wallpapers:
    • Custom wallpaper collection

πŸš€ Installation

To set up these dotfiles on your system, follow these steps:

1. Clone the Repository

First, clone this repository to your home directory:

git clone https://github.com/subomega1/dotfiles.git
cd dotfiles

2. Quick Setup (Recommended)

For a complete setup with all dependencies, run the automated setup script:

./setup.sh

This script will:

  • Install all required system packages
  • Set up ZSH with Oh My Zsh and Powerlevel10k
  • Install Nerd Fonts
  • Configure Neovim plugins
  • Set up Tmux plugins
  • Install additional tools (Spicetify, FZF, etc.)

3. Manual Installation

If you prefer manual installation, follow these steps:

Install GNU Stow

Ensure that GNU Stow is installed on your system:

  • Debian/Ubuntu:

    sudo apt install stow
  • Arch Linux:

    sudo pacman -S stow
  • macOS (Homebrew):

    brew install stow

Install Core Dependencies

Install the required system packages:

# Debian/Ubuntu
sudo apt install git curl wget stow xrandr feh i3lock kitty thunar rofi maim xdotool xclip pulseaudio-utils brightnessctl picom polybar tmux neovim zsh lxappearance arandr xautolock betterlockscreen network-manager network-manager-gnome policykit-1-gnome python3 python3-pip nodejs npm java cmake build-essential

# Arch Linux
sudo pacman -S git curl wget stow xorg-xrandr feh i3lock kitty thunar rofi maim xdotool xclip pulseaudio brightnessctl picom polybar tmux neovim zsh lxappearance arandr xautolock betterlockscreen networkmanager network-manager-applet polkit-gnome python nodejs npm jdk-openjdk cmake base-devel

Install Fonts

Install the required Nerd Fonts:

# Create fonts directory
mkdir -p ~/.local/share/fonts

# Download MesloLGS NF fonts
wget -O ~/.local/share/fonts/MesloLGS\ NF\ Regular.ttf "https://github.com/romkatv/powerlevel10k/raw/master/font/MesloLGS%20NF%20Regular.ttf"
wget -O ~/.local/share/fonts/MesloLGS\ NF\ Bold.ttf "https://github.com/romkatv/powerlevel10k/raw/master/font/MesloLGS%20NF%20Bold.ttf"
wget -O ~/.local/share/fonts/MesloLGS\ NF\ Italic.ttf "https://github.com/romkatv/powerlevel10k/raw/master/font/MesloLGS%20NF%20Italic.ttf"
wget -O ~/.local/share/fonts/MesloLGS\ NF\ Bold\ Italic.ttf "https://github.com/romkatv/powerlevel10k/raw/master/font/MesloLGS%20NF%20Bold%20Italic.ttf"

# Update font cache
fc-cache -fv

4. Stow the Configurations

Run the following commands to create symlinks for your desired configurations:

# Install all configurations
stow zsh i3 polybar kitty nvim tmux vscode picom rofi xresources xsettingsd font

# Or install individually
stow zsh
stow i3
stow polybar
# ... etc

5. Post-Installation Setup

After stowing the configurations, complete the setup:

# Configure Powerlevel10k theme
p10k configure

# Install Tmux plugins
tmux source ~/.tmux.conf

# Install Neovim plugins
nvim --headless -c "Lazy! sync" -c "qa"

πŸ› οΈ Usage

After setting up, use the following commands to manage your dotfiles:

  • To apply a new configuration:

    stow <directory-name>
  • To remove a configuration:

    stow -D <directory-name>

For example, to remove the i3 configuration:

stow -D i3

πŸ“ Available Configurations

This repository includes configurations for:

  • zsh/ - ZSH shell with Oh My Zsh and Powerlevel10k
  • i3/ - i3 window manager with custom keybindings
  • polybar/ - Status bar with system monitoring
  • kitty/ - Terminal emulator with Catppuccin theme
  • nvim/ - Neovim editor with Lazy.nvim plugin manager
  • tmux/ - Terminal multiplexer with Catppuccin theme
  • vscode/ - VSCode profiles for different environments
  • picom/ - Compositor for window effects
  • rofi/ - Application launcher and menus
  • xresources/ - X11 resource configuration
  • xsettingsd/ - X11 settings daemon
  • font/ - Nerd Fonts configuration
  • gogeta/ - Custom wallpaper collection

πŸ“¦ Dependencies

System Requirements

  • Linux Distribution: Ubuntu/Debian, Arch Linux, or similar
  • Display Server: X11 (Xorg)
  • Window Manager: i3-gaps or i3-wm
  • Shell: ZSH

Core Dependencies

System Packages

  • git, curl, wget - Basic utilities
  • stow - Symlink manager for dotfiles
  • xrandr, arandr - Display management
  • feh - Image viewer and wallpaper setter
  • i3lock, betterlockscreen - Screen locking
  • kitty - Terminal emulator
  • thunar - File manager
  • rofi - Application launcher
  • maim, xdotool, xclip - Screenshot and clipboard tools
  • pulseaudio-utils, playerctl - Audio controls
  • brightnessctl - Brightness control
  • picom - Compositor
  • polybar - Status bar
  • tmux - Terminal multiplexer
  • neovim - Text editor
  • zsh - Shell
  • lxappearance - GTK theme manager
  • xautolock - Auto-lock screen
  • network-manager, network-manager-gnome - Network management
  • policykit-1-gnome - Authentication agent
  • python3, nodejs, npm - Development tools
  • java, cmake, build-essential - Build tools

Fonts

  • MesloLGS NF - Nerd Font for Powerlevel10k and icons

ZSH Dependencies

  • Oh My Zsh - ZSH framework
  • Powerlevel10k - ZSH theme
  • zsh-autosuggestions - Command suggestions
  • zsh-syntax-highlighting - Syntax highlighting
  • fast-syntax-highlighting - Fast syntax highlighting
  • zsh-autocomplete - Command completion
  • NVM - Node Version Manager
  • FZF - Fuzzy finder

Neovim Dependencies

  • Lazy.nvim - Plugin manager
  • Various plugins - See nvim/.config/nvim/lua/plugins/ for full list

Tmux Dependencies

  • TPM - Tmux Plugin Manager
  • vim-tmux-navigator - Seamless navigation
  • tmux-sessionx - Session management
  • catppuccin/tmux - Theme
  • tmux-online-status - Online status indicator
  • tmux-battery - Battery indicator

i3 Dependencies

  • autotiling - Automatic tiling
  • Custom scripts - Lock/unlock, power management, media controls

Polybar Dependencies

  • Custom modules - Workspace indicators, audio controls, system monitoring

Rofi Dependencies

  • Custom scripts - WiFi menu, power menu, window switching

πŸ”§ Troubleshooting

Common Issues

  1. Fonts not displaying correctly:

    fc-cache -fv
  2. Polybar not starting:

    # Check if polybar is installed
    which polybar
    # Check configuration
    polybar --config=~/.config/polybar/config.ini --log=trace toph
  3. i3 not loading:

    # Check i3 config syntax
    i3-config-wizard
  4. ZSH plugins not working:

    # Reinstall Oh My Zsh
    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  5. Neovim plugins not loading:

    # Sync plugins
    nvim --headless -c "Lazy! sync" -c "qa"

Getting Help

  • Check the configuration files for comments and documentation
  • Review the setup scripts for installation steps
  • Ensure all dependencies are properly installed
  • Check system logs for error messages

🀝 Contributing

If you have suggestions or improvements, feel free to open an issue or create a pull request. Contributions are welcome!

πŸ™ Thank You for Visiting!

I hope you find these dotfiles helpful! Feel free to explore, use, and customize them to fit your needs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published