These are my personal dotfiles for deploying and configuring environments on various Linux distributions.
- 🔧 Uses a dotfiles manager: Dotter.
- 📦 The project includes binaries
./dotterand./dotter.arm, which allow running commands without installing Dotter. - 🎨 Final files are generated using the Handlebars templating engine.
- 📝 Scripts are written in the Rhai language.
- 🌐 Multi-OS Support: Automatic post-installation scripts for different operating systems (Arch, Manjaro, Ubuntu).
- 📋 Package Management: Automated package installation and configuration for various distributions.
Deploy dotfiles to your system:
./dotter deploy --forceRemove deployed dotfiles:
./dotter undeploy--force flag overwrites existing files. Use with caution.
The project supports OS-specific post-installation scripts that run automatically after package installation:
Directory Structure:
{package}/
├── {os}/ # OS-specific scripts
│ ├── post-install.sh # Runs after package installation
│ └── post-uninstall.sh # Runs before package removal
├── post-install.sh # Fallback script for unknown OS
└── post-uninstall.sh # Fallback scriptSupported Operating Systems:
- 🏛️ Arch Linux: Uses
arch/directory - 🟢 Manjaro: Uses
arch/directory (same as Arch) - 🟠 Ubuntu: Uses
ubuntu/directory - 🔄 Other: Uses fallback scripts in root directory
Example (openssh package):
- 🏛️ Arch/Manjaro: Configures
ssh-agent.service - 🟠 Ubuntu: Configures
ssh-agent@$USER.service - 🔄 Generic: Attempts both configurations automatically
The OS is automatically detected through configuration variables defined in include files (.dotter/includes/{os}.toml).
The project includes two DevContainer configurations for testing the installation and setup of packages and dotfiles:
-
🖥️
arch-kde: A configuration with a pre-installed graphical environment for testing packages and dotfiles that depend on GUI components. 🌐 Access: The graphical environment is streamed to your browser viakasmvncon ports3000and3001. -
⚫
arch: A minimal configuration without a graphical environment, designed for testing setups where the GUI is installed later. 🌐 Access: The terminal is streamed to your browser viakasmvncon ports3000and3001. You can later configure your graphical environment using this setup.
Each configuration is located in its respective folder under .devcontainer:
- 🖥️
arch-kde: Contains files for the graphical environment configuration. - ⚫
arch: Contains files for the minimal configuration.
- 📖 More about Dotter: Dotter Wiki.
Follow these steps to open the development container in VSCode:
-
📋 Install Prerequisites:
- 🐳 Install Docker.
- 🔌 Install the VSCode Dev Containers extension.
-
📥 Clone the Repository:
git clone git@github.com:zyrakq/dotfiles.git cd dotfiles -
📂 Open the Project in VSCode:
- 📁 Open the repository folder in VSCode.
- 🔄 When prompted, click "Reopen in Container".
-
⏳ Wait for the Container to Build:
- 🔨 The container will be built and configured automatically.
- 📦 This includes installing required packages and cloning the repository inside the container.
-
🎉 Start Working:
- ✅ Once the container is ready, you can start working on your project.
For more details on DevContainers, refer to the VSCode Dev Containers documentation.