Sitelet https://github.com/Chere3/dots
Skip to content
Chere3Public

About

πŸ”§ Personal dotfiles β€” Hyprland, Alacritty, eww and more

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌟 Arch Linux Dotfiles

A modern, reproducible, and elegant dotfiles configuration for Arch Linux using GNU Stow.

Arch Linux GNU Stow

✨ Features

  • 🎨 Clean and organized configuration structure
  • πŸ”§ Fully reproducible system configuration
  • πŸ“¦ Modular package management with GNU Stow
  • πŸš€ Easy installation and management
  • πŸ“ Well-documented setup process
  • 🎯 Optimized for daily use

πŸ› οΈ Technologies

System Configuration

  • OS: Arch Linux
  • Window Manager: Hyprland
  • Shell: Zsh with Starship prompt
  • Terminal: Kitty
  • File Manager: Thunar
  • Audio: Pipewire, PulseAudio

Included Packages

This dotfiles repository includes configurations for:

  • dconf - Desktop configuration
  • go - Go development environment
  • gtk-3-0 - GTK 3.0 theme configuration
  • hypr - Hyprland window manager
  • kitty - Kitty terminal emulator
  • pavucontrol - PulseAudio Volume Control
  • pipewire - Pipewire audio system
  • pulse - PulseAudio configuration
  • starship - Starship prompt configuration
  • systemd - Systemd user services
  • thunar - Thunar file manager
  • xfce4 - XFCE4 desktop environment
  • yay - Yay AUR helper configuration

Note: Browser profiles, cache directories, and sensitive data are excluded from this repository. Only actual configuration files are version controlled.

πŸ“₯ Quick Installation

Prerequisites

  • Arch Linux (or compatible distribution)
  • GNU Stow (will be installed automatically if missing)
  • Git (for cloning this repository)

Installation Steps

  1. Clone the repository:
git clone <your-repository-url> ~/.dotfiles
cd ~/.dotfiles
  1. Run the installation script:
./install.sh

The script will:

  • Check for GNU Stow and install it if missing
  • Backup your existing .config directory
  • Create symlinks for all packages using Stow
  1. Verify installation:
ls -la ~/.config

You should see your configuration directories linked to the dotfiles repository.

Dry Run

To see what would be installed without making changes:

./install.sh --dry-run

Custom Backup Directory

To specify a custom backup directory:

./install.sh --backup-dir ~/my-backup

πŸ”§ Usage

Installing Individual Packages

To install a specific package:

cd ~/.dotfiles
stow --target="$HOME" <package-name>

Example:

stow --target="$HOME" hypr

Uninstalling Packages

To remove a package (delete symlinks):

cd ~/.dotfiles
stow -D --target="$HOME" <package-name>

Example:

stow -D --target="$HOME" hypr

Restowing Packages

To update symlinks after making changes:

cd ~/.dotfiles
stow --restow --target="$HOME" <package-name>

Or restow all packages:

cd ~/.dotfiles
find . -maxdepth 1 -type d ! -path . ! -name ".*" | \
    xargs -I {} stow --restow --target="$HOME" {}

πŸ“ Structure

.dotfiles/
β”œβ”€β”€ .gitignore              # Git ignore rules
β”œβ”€β”€ .stowrc                 # Stow configuration
β”œβ”€β”€ install.sh              # Installation script
β”œβ”€β”€ README.md               # This file
β”œβ”€β”€ <package-name>/         # Individual package directories
β”‚   └── .config/
β”‚       └── <app-name>/     # Application configuration
└── ...

Each package follows the structure: package-name/.config/app-name/ which creates symlinks from ~/.config/app-name/ to the dotfiles repository.

🎨 Customization

Adding New Packages

  1. Create a new directory for your package:
mkdir -p ~/.dotfiles/my-app/.config/my-app
  1. Add your configuration files:
cp ~/.config/my-app/* ~/.dotfiles/my-app/.config/my-app/
  1. Install the package:
cd ~/.dotfiles
stow --target="$HOME" my-app

Modifying Existing Packages

  1. Edit files in the package directory:
nano ~/.dotfiles/hypr/.config/hypr/hyprland.conf
  1. Restow the package to update symlinks:
cd ~/.dotfiles
stow --restow --target="$HOME" hypr

πŸ”„ Backup and Restore

Backup

The installation script automatically creates a backup of your existing .config directory before installation. Backups are stored in ~/.config-backup-TIMESTAMP.

Restore from Backup

To restore your original configuration:

cp -r ~/.config-backup-TIMESTAMP ~/.config

Or restore a specific package:

cp -r ~/.config-backup-TIMESTAMP/<app-name> ~/.config/

πŸ› Troubleshooting

Symlinks Not Working

If symlinks are not being created:

  1. Check that GNU Stow is installed:
which stow
  1. Verify the package structure is correct:
ls -la ~/.dotfiles/<package-name>/.config/
  1. Try reinstalling the package:
cd ~/.dotfiles
stow -D --target="$HOME" <package-name>
stow --target="$HOME" <package-name>

Conflicts with Existing Files

If you have existing files that conflict with dotfiles:

  1. Backup the conflicting files:
mv ~/.config/<app-name> ~/.config/<app-name>.backup
  1. Install the package:
cd ~/.dotfiles
stow --target="$HOME" <package-name>
  1. Compare and merge configurations if needed

Permission Issues

If you encounter permission issues:

  1. Check file permissions:
ls -la ~/.dotfiles/<package-name>/
  1. Fix permissions if needed:
chmod -R u+rw ~/.dotfiles/<package-name>/

πŸ“ Notes

  • Always backup your configuration before installation
  • Only actual configuration files are included (browser profiles, cache, and sensitive data are excluded)
  • The .gitignore file excludes sensitive data and cache directories
  • Some packages may require additional system configuration
  • Browser configurations are intentionally excluded from version control

🀝 Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

When contributing:

  1. Follow the existing package structure
  2. Update this README if adding new packages
  3. Test your changes before submitting
  4. Ensure sensitive data is excluded via .gitignore

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Inspired by modern dotfiles management practices
  • Structure adapted from Chere3/dots-nixos
  • Uses GNU Stow for symlink management

Made with ❀️ using Arch Linux

About

πŸ”§ Personal dotfiles β€” Hyprland, Alacritty, eww and more

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages