These are my personal dotfiles for deploying and configuring environments on various Linux distributions.
- π§ Uses a dotfiles manager: Dotter.
- π¦ The project includes binaries
./dotter
and./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 --force
Remove 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 script
Supported 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 viakasmvnc
on ports3000
and3001
. -
β«
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 viakasmvnc
on ports3000
and3001
. 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:zeritiq/dotfiles.git cd dotfiles
-
βοΈ Set Up Environment Variables:
-
π Copy the example
.env
file from the desired configuration folder:cp .devcontainer/arch-kde/.env.example .devcontainer/.env
or
cp .devcontainer/arch/.env.example .devcontainer/.env
-
βοΈ Modify the
.env
file if necessary.
-
-
π 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.