https://github.com/d4rkb4sh8/dotfiles_debian
A collection of my dotfiles used to manage my Debian Linux environment. Only 2 bash script files need to be run: bootstrap.sh and settings_backup.sh once you are happy with your current setup.
https://github.com/d4rkb4sh8/dotfiles_debian
debian debian-linux dotfiles dotfiles-linux fastfetch ghostty kanata keyboard lazyvim linux
Last synced: 7 months ago
JSON representation
A collection of my dotfiles used to manage my Debian Linux environment. Only 2 bash script files need to be run: bootstrap.sh and settings_backup.sh once you are happy with your current setup.
- Host: GitHub
- URL: https://github.com/d4rkb4sh8/dotfiles_debian
- Owner: d4rkb4sh8
- Created: 2024-10-30T11:16:51.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-04-06T04:09:33.000Z (7 months ago)
- Last Synced: 2025-04-06T05:18:49.326Z (7 months ago)
- Topics: debian, debian-linux, dotfiles, dotfiles-linux, fastfetch, ghostty, kanata, keyboard, lazyvim, linux
- Language: JavaScript
- Homepage:
- Size: 85.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Debian Bootstrap and Backup Scripts
These scripts automate the setup and restoration of a customized Debian system, ensuring a reproducible environment across installations. They handle package management, configurations, theming, security, and more.
## Features
- **System Setup**: Installs essential tools (Git, curl, etc.), removes bloatware, and configures repositories.
- **Dotfiles Management**: Clones and symlinks dotfiles using `stow`.
- **Package Installation**: Installs APT, Flatpak, Snap, Homebrew, and Cargo packages from predefined lists.
- **Customization**: Applies themes (GRUB, icons), shell enhancements (`ble.sh`, Starship), and fonts.
- **Security**: Configures UFW firewall, AppArmor profiles, and kernel mitigations.
- **Backup & Restore**: Captures installed packages and GNOME settings for future replication.---
## `bootstrap.sh` Overview
Automates the entire system setup process. Key sections:
```bash
# Initial Setup
sudo apt install -y git gh curl gawk cmake
sudo sed -i '/^deb / s/$/ contrib non-free/' /etc/apt/sources.list# Remove Bloatware
sudo apt purge -y audacity gimp gnome-games libreoffice*# Dotfiles and Git Projects
git clone https://github.com/d4rkb4sh8/dotfiles.git $HOME/dotfiles
stow --adopt . && git restore .# Package Installation (APT, Flatpak, Snap, Homebrew)
sudo apt install $(cat $HOME/dotfiles/backups/apt_list.bak)
flatpak install $(cat $HOME/dotfiles/backups/flatpaks_list.bak)
brew install $(cat $HOME/dotfiles/backups/brew_list.bak)# Shell Customization
echo 'source ~/.local/share/blesh/ble.sh' >>~/.bashrc
curl -sS https://starship.rs/install.sh | sh# Security and Kernel
sudo ufw enable
sudo sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=2/' /etc/default/grub# Final Steps
dconf load / <$HOME/dotfiles/backups/gnome_settings.bak
sudo reboot
```---
## `settings_backup.sh` Overview
Captures current system settings and installed packages for reproducibility:
```bash
# Backups include:
dconf dump / > gnome_settings.bak # GNOME configurations
apt list --installed > apt_list.bak # APT packages
flatpak list --app > flatpaks_list.bak # Flatpak apps
brew list -1 > brew_list.bak # Homebrew packages
snap list > snap_list.bak # Snap packages
```---
## Reproducibility Workflow
1. **Backup**: Run `settings_backup.sh` to save the current system state to `dotfiles/backups/`.
2. **Version Control**: Commit the updated backups to your dotfiles repository.
3. **Restore**: On a fresh Debian install, run `bootstrap.sh` to:
- Install all packages from the backups.
- Apply configurations, themes, and security settings.
- Replicate the original environment.> **Note**: Ensure the `dotfiles` repo contains the required backup files (`apt_list.bak`, `gnome_settings.bak`, etc.). Some commands may require `sudo` privileges.