8000 GitHub - Nithin745/dotfiles: My Dotfile · GitHub 8000
[go: up one dir, main page]

Skip to content

Nithin745/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Personal configuration files for my Arch Linux development environment, managed with GNU Stow.

Overview

This repository contains configuration files for:

Window Managers & Compositors

  • Hyprland - Wayland compositor with animations
  • Sway - i3-compatible Wayland compositor
  • i3 - X11 window manager

Terminal & Shell

  • Bash - Shell configuration with aliases and keybinds
  • Alacritty - GPU-accelerated terminal emulator
  • Ghostty - Modern terminal emulator
  • Tmux - Terminal multiplexer
  • Zellij - Modern terminal workspace

Editors

  • Neovim - Highly customized Neovim setup with Lazy.nvim

Application Launchers & Menus

  • Rofi - Application launcher and menu system
    • Launcher, powermenu, emoji picker, clipboard manager
    • WiFi/Bluetooth managers, snippet manager

Status Bars & Notifications

  • Waybar - Wayland status bar
  • i3blocks - Status bar for i3
  • i3status - Lightweight status bar
  • Dunst - Notification daemon

System Tools

  • systemd - User service configurations
  • swhkd/sxhkd - Hotkey daemons
  • swaylock - Screen locker for Wayland
  • lazygit - Terminal UI for git

Custom Scripts

Located in .local/bin/:

  • Screenshot utilities (screenshot, rubyshot)
  • Screen recording scripts
  • Session management (lock-sys, tmux-sessionizer)
  • Power menu and WiFi menu
  • AUR helpers and system utilities

Prerequisites

Required Packages

sudo pacman -S stow git neovim tmux bash alacritty

Optional Packages (by category)

# Wayland
sudo pacman -S hyprland sway waybar swaylock

# X11
sudo pacman -S i3-wm i3blocks i3status

# Tools
sudo pacman -S rofi dunst lazygit zellij swhkd

# Terminal enhancement
sudo pacman -S fzf ripgrep fd

Installation

1. Clone the repository

git clone git@github.com:Nithin745/dotfiles.git ~/dotfiles
cd ~/dotfiles

2. Backup existing configurations

# Backup your current configs (optional but recommended)
mkdir -p ~/.config-backup
cp -r ~/.config/* ~/.config-backup/
cp ~/.bashrc ~/.bash_profile ~/.asoundrc ~/.config-backup/ 2>/dev/null || true

3. Install configurations with Stow

Install all configurations

stow .

Install specific configurations

# Example: Install only Neovim and Tmux configs
stow -t ~ --dir=. --stow .config/nvim .config/tmux

# Example: Install Bash configurations
stow -t ~ --dir=. --stow .bashrc .bash_profile

# Example: Install Hyprland setup
stow -t ~ --dir=. --stow .config/hypr .config/waybar .config/rofi

4. Install custom scripts

stow -t ~ --dir=. --stow .local/bin
chmod +x ~/.local/bin/*

Usage

Managing Configurations

Add new configuration

# Move existing config to dotfiles repo
mv ~/.config/newapp ~/dotfiles/.config/
cd ~/dotfiles
stow .

Update configuration

# Edit files in dotfiles repo
cd ~/dotfiles
# Make changes...
# Stow will automatically link changes

Remove configuration

cd ~/dotfiles
stow -D .

Restow (useful after adding new files)

cd ~/dotfiles
stow -R .

Configuration Highlights

Neovim

  • Modern Lua-based configuration
  • Managed with Lazy.nvim plugin manager
  • Custom keybindings and autocmds
  • Multiple backup configurations included

Hyprland

  • Custom scripts for monitor handling and screen locking
  • Hyprpaper integration for wallpapers
  • Custom keymaps and window rules
  • Environment variables configuration

Tmux

  • Modular configuration split into multiple files
  • Custom keybindings and hooks
  • Session management integration

Rofi

  • Multiple themes (mocha, onedark, violet)
  • Custom launchers for various functions
  • Bluetooth, WiFi, clipboard, and emoji pickers

Bash

  • Custom aliases and functions
  • Django completions
  • Custom keybindings

Structure

dotfiles/
├── .config/           # Application configurations
│   ├── nvim/         # Neovim configuration
│   ├── hypr/         # Hyprland configuration
│   ├── tmux/         # Tmux configuration
│   ├── rofi/         # Rofi themes and scripts
│   └── ...           # Other app configs
├── .local/
│   └── bin/          # Custom executable scripts
├── .bashrc           # Bash configuration
├── .bash_profile     # Bash profile
├── .asoundrc         # ALSA configuration
└── .gitignore        # Git ignore rules

Customization

  1. Personal Information: Update user-specific paths and settings in configurations

  2. Keybindings: Modify keybinds in respective config files:

    • Hyprland: .config/hypr/mappings.conf
    • Sway: .config/sway/config
    • i3: .config/i3/config
    • Tmux: .config/tmux/conf.d/bindings.conf
    • Bash: .config/bash/keybinds
  3. Themes: Color schemes are located in:

    • Rofi: .config/rofi/colors/
    • Alacritty: .config/alacritty/alacritty.toml

Troubleshooting

Stow conflicts

If stow reports conflicts:

# Remove or backup conflicting files
mv ~/.config/conflicting-file ~/.config/conflicting-file.bak

# Then restow
cd ~/dotfiles
stow .

Broken symlinks

# Find broken symlinks
find ~ -xtype l

# Remove broken symlinks in .config
find ~/.config -xtype l -delete

# Restow
cd ~/dotfiles
stow -R .

Script permissions

# Make all scripts executable
chmod +x ~/.local/bin/*

Contributing

This is a personal configuration repository, but feel free to:

  • Fork and adapt to your needs
  • Open issues for questions
  • Submit PRs for bug fixes

License

MIT License - Feel free to use and modify as needed.

Acknowledgments

  • Built for Arch Linux
  • Managed with GNU Stow
  • Inspired by the dotfiles community

Note: These configurations are tailored for my personal workflow. You may need to adjust paths, packages, and settings for your system.

About

My Dotfile

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

0