https://github.com/chenxing-dev/dotfiles
a dotfiles repository for Arch Linux using Stow, with archinstall configuration, an automated setup script, and a few rofi scripts..
https://github.com/chenxing-dev/dotfiles
arch-linux archinstall dotfiles dunst picom qtile rofi wezterm yazi
Last synced: about 1 month ago
JSON representation
a dotfiles repository for Arch Linux using Stow, with archinstall configuration, an automated setup script, and a few rofi scripts..
- Host: GitHub
- URL: https://github.com/chenxing-dev/dotfiles
- Owner: chenxing-dev
- Created: 2025-05-12T15:13:10.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-08-01T13:31:34.000Z (2 months ago)
- Last Synced: 2025-08-01T15:36:56.984Z (2 months ago)
- Topics: arch-linux, archinstall, dotfiles, dunst, picom, qtile, rofi, wezterm, yazi
- Language: Shell
- Homepage: https://chenxing-dev.github.io/dotfiles/
- Size: 619 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

## Overview
a dotfiles repository for Arch Linux using GNU Stow, with an automated setup script and `archinstall` configuration.
- 🖥️ **Archinstall configuration**
- 🧩 **Modular organization** with GNU Stow
- ⚡ **One-command deployment** for all or selected packages
- 🔄 **Safe backups** before making changes## Repository Structure
```bash
dotfiles/
├── packages/ # GNU Stow-compatible directories
│ ├── qtile/.config/qtile/ # Qtile window manager config
│ ├── picom/.config/picom/ # Picom compositor config
│ ├── wezterm/.config/wezterm/ # Wezterm terminal config
│ └── ... # Add your own configs here
├── scripts/
│ └── setup.sh # Dotfiles deployment script
├── config.json # archinstall configuration
└── README.md # This documentation
```## Installation
### Arch Linux Installation
1. **Prepare installation media**:
Download Arch ISO from [archlinux.org](https://archlinux.org/download/)2. **Boot into live environment**
3. **Run archinstall with [preset config](https://chenxing-dev.github.io/dotfiles/config.json)**:
```bash
archinstall --config https://chenxing-dev.github.io/dotfiles/config.json
```### Dotfiles setup
4. **Clone the repository (including submodules)**:
```bash
git clone --recurse-submodules https://github.com/chenxing-dev/dotfiles.git ~/dotfiles
```5. **Run the setup script**:
```bash
cd ~/dotfiles
./scripts/setup.sh --all
```
Reboot.## Usage
### Deployment Options
```bash
# Deploy all configurations
./scripts/setup.sh --all# Deploy specific packages
./scripts/setup.sh qtile wezterm yazi
```### Adding New Configurations
1. Create a new package structure:
```bash
mkdir -p packages/newtool/.config/newtool
```2. Add your configuration files:
```bash
cp ~/.config/newtool/config.toml packages/newtool/.config/newtool/
```3. Deploy:
```bash
./scripts/setup.sh newtool
```### **Backup restoration**:
```bash
# View available backups
ls ~/dotfiles_backup
# Restore a package
cp -r ~/dotfiles_backup/qtile_20240611_1420/* ~/
```## Troubleshooting
### Ensure ~/.local/bin is in PATH
For bash users:
```bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
```### Updating Submodules
To update submodules to their latest commits:
```bash
git submodule update --remote --recursive
```## Contributing
Contributions are welcome! Please follow these steps:
1. Fork the repository
2. Create a feature branch (`git checkout -b new-feature`)
3. Commit your changes
4. Push to the branch
5. Open a pull request## Credits
- Firefox Theme: [Monochrome Neubrutalism by Kaskapa](https://github.com/Kaskapa/Monochrome-Neubrutalism-Firefox-Theme)## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.