Personal system configuration files.
Keep it simple, even if it means duplicating code. Modular where it makes sense, pragmatic everywhere else. Designed for easy maintenance and clear understanding over clever abstractions.
git clone --recursive https://github.com/slavafyi/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
make installmake install # Full system setup
make install PROFILE=minimal-server # Run a named profile
make update # Update system and packages
make fmt # Format code filesProfiles let you reuse the underlying install modules for different targets:
fullโ complete workstation setup (default)minimal-serverโ base system and user essentials (system_base,user_core)
Usage examples:
make install PROFILE=minimal-server
./install.sh profile minimal-server
./install.sh list-profilesYou can still run individual modules and sub-modules when needed:
./install.sh dev_tools
./install.sh setup_bins
./install.sh update_systemHelper steps use setup_* names across OSes when they represent the same task. update_system remains the manual update entrypoint.
configs/ Configuration files (managed by stow)
scripts/ Installation scripts
misc/ Additional files (packages, dconf dumps, etc)
- Arch Linux
- macOS
- Fedora
- Debian/Ubuntu
MIT License - see LICENSE for details.