explaingit

narukoshin/dotlab

Analysis updated 2026-07-26

1RustAudience · ops devopsComplexity · 4/5LicenseSetup · hard

TLDR

A Rust tool for Arch Linux users to safely try different Hyprland desktop setups and roll back if something breaks, using file swapping or isolated boot environments.

Mindmap

mindmap
  root((repo))
    What it does
      Swaps desktop configs
      Rolls back changes
      Isolated boot testing
    How it works
      Profile mode
      Metal slot mode
      JSON and TOML state
    Requirements
      Arch Linux
      Btrfs and LUKS
      GRUB and UKI kernel
    Use cases
      Try dotfiles safely
      Test invasive themes
      Revert broken setups
    License
      MIT License

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Safely try out a new Hyprland desktop theme and revert to your previous setup if you don't like it.

USE CASE 2

Test an invasive desktop installer that changes system files in an isolated boot environment you can discard.

USE CASE 3

Preview configuration file changes with a dry run before applying them to your home directory.

USE CASE 4

Manage multiple Hyprland dotfile repositories and switch between them on demand.

What is it built with?

RustArch LinuxHyprlandBtrfsGRUBsystemd

How does it compare?

narukoshin/dotlababc3dz/mixxxabyo-software/ferro-stash
Stars111
LanguageRustRustRust
Setup difficultyhardmoderatemoderate
Complexity4/52/54/5
Audienceops devopsgeneralops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Metal slot mode requires a specific Btrfs subvolume layout with LUKS encryption, GRUB 2.x, UKI kernel, and Secure Boot disabled, profile mode works on any Arch home filesystem.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

Dotlab is an experimental tool built in Rust that lets Arch Linux users try out different Hyprland desktop configurations, known as dotfiles, and roll back to their previous setup if things go wrong. It was developed with help from ChatGPT and carries an "experimental" label, meaning it comes with no warranty. The README is clear about the risks: the tool can modify home configuration files, system packages, Btrfs snapshots, GRUB boot entries, and UKI kernel files. A bug or interrupted operation could leave a machine unbootable or cause data loss. The tool offers two distinct modes. The first, called a "profile," swaps configuration files from a repository into your home directory without running that repository's installer script. This is the safer, everyday path. The second mode, called a "metal slot," is for cases where a desktop theme comes with an invasive installer that changes system files, installs packages, or enables services. Metal slots take Btrfs snapshots of your root and home directories, add guarded GRUB boot entries, and let you test an installer in an isolated boot environment before deciding whether to keep or discard it. Metal slots have strict system requirements. Your disk must use a specific Btrfs subvolume layout, LUKS encryption, GRUB 2.x, and a UKI kernel loaded by systemd-stub, with Secure Boot disabled. If your system does not match this layout, the tool refuses to proceed with metal mode. The profile mode, by contrast, works on any normal Arch home filesystem. Installation is done by extracting a release archive and running a provided shell script as a normal user, not with elevated privileges. The installer verifies the binary, places it in the system path, runs a diagnostic check, and optionally initializes a protected minimal profile. Profiles and rollback state are stored as ordinary JSON and TOML files, with no background daemon or database involved. The README includes detailed command examples for adding repositories, previewing changes with a dry run, and declaring custom file mappings for repositories with non-standard layouts. The project targets Arch Linux with Hyprland 0.56 and is released under the MIT license. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
I want to try a Hyprland dotfiles repo from GitHub without running its installer. Using Dotlab, walk me through adding the repo, doing a dry run, and applying the profile mode swap.
Prompt 2
I have a Hyprland theme with an invasive installer that changes system packages and GRUB. Using Dotlab metal slot mode, explain how to take Btrfs snapshots, create a guarded boot entry, and test the installer safely.
Prompt 3
A dotfiles repo I added with Dotlab has non-standard file locations. Help me write a custom file mapping so Dotlab knows which files go where in my home directory.
Prompt 4
I used Dotlab to apply a profile and now my Hyprland desktop is broken. Walk me through the rollback process to restore my previous configuration.
Prompt 5
Help me verify my Arch Linux system meets Dotlab's metal slot requirements: Btrfs subvolume layout, LUKS encryption, GRUB 2.x, UKI kernel with systemd-stub, and Secure Boot disabled.

Frequently asked questions

What is dotlab?

A Rust tool for Arch Linux users to safely try different Hyprland desktop setups and roll back if something breaks, using file swapping or isolated boot environments.

What language is dotlab written in?

Mainly Rust. The stack also includes Rust, Arch Linux, Hyprland.

What license does dotlab use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is dotlab to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is dotlab for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.