Skip to content

🏠 Personal dotfiles with Dotter, DevContainers & multi-OS support

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

zyrakq/dotfiles

Repository files navigation

🏠 dotfiles

These are my personal dotfiles for deploying and configuring environments on various Linux distributions.

✨ Key Features

  • πŸ”§ 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.

πŸš€ Usage

⚑ Basic Commands

Deploy dotfiles to your system:

./dotter deploy --force

Remove deployed dotfiles:

./dotter undeploy

⚠️ Note: The --force flag overwrites existing files. Use with caution.

πŸ”„ Post-Installation Scripts

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).

🐳 DevContainer Configurations

The project includes two DevContainer configurations for testing the installation and setup of packages and dotfiles:

  1. πŸ–₯️ 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 via kasmvnc on ports 3000 and 3001.

  2. ⚫ 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 via kasmvnc on ports 3000 and 3001. 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.

πŸ“š Documentation

πŸš€ Opening the DevContainer for the First Time

Follow these steps to open the development container in VSCode:

  1. πŸ“‹ Install Prerequisites:

  2. πŸ“₯ Clone the Repository:

    git clone git@github.com:zeritiq/dotfiles.git
    cd dotfiles
  3. βš™οΈ 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.

  4. πŸ“‚ Open the Project in VSCode:

    • πŸ“ Open the repository folder in VSCode.
    • πŸ”„ When prompted, click "Reopen in Container".
  5. ⏳ 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.
  6. πŸŽ‰ 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.

About

🏠 Personal dotfiles with Dotter, DevContainers & multi-OS support

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks