Skip to content

abiencourt/lazychezmoi

Repository files navigation

Lazychezmoi

Lazychezmoi is a Ratatui app to manage your chezmoi dotfiles.

Heavily inspired by lazygit.

Warning

This project is in early development. Development is exclusively done on Linux. Features and designs decisions are still being made. See the Roadmap.

Presentation screenshot

Table of contents

Features

Coloured diff and file states

  • chezmoi status with colour-coded file states
  • Coloured diff view

Interactive file management

  • Select/deselect files using
  • Add/Re-add selected files to chezmoi source directory
  • View detailed diff for each single file

Integrated chezmoi commands

  • Shortcut to open chezmoi source directory (i.e. chezmoi edit)
  • Shortcut to edit a file in the chezmoi source (i.e. chezmoi edit <file>)

Usage

Keybindings

  • ↑/k: Navigate up
  • ↓/j: Navigate down
  • Space: Toggle file selection
  • e: Edit highlighted file in source
  • a: Add/re-add selected files
  • A: Apply selected files
  • S: Open chezmoi source directory
  • q/Esc: Quit application

Installation

Requirements

Manual installation

git clone https://github.com/abiencourt/lazychezmoi.git
cd lazychezmoi
cargo run

Roadmap

Design ideas

  • Implement 2 additional panes to see files selected "to re-add" and "to apply"
    • Right now, if you select a mix of "re-add" and "apply" file, it might cause unwanted behaviour

Feature ideas

  • Add a "discard" keymapping that will present "local" and/or "source" changes option to discard
  • Integration with lazygit to see source
  • Add chezmoi git commands

CICD

  • Deploy to cargo registry
  • Deploy to brew.sh
  • Deploy to AUR
  • Add automated testing
  • Test on Windows and MacOS