A macOS utility to track home-manager JJ repo status
1# HomeManagerStatus
2
3A macOS menu bar app that shows the [Jujutsu (jj)](https://github.com/jj-vcs/jj) status of your `~/.config/home-manager` repository.
4
5## What it does
6
7- Displays ahead/behind status relative to `trunk()` in the menu bar
8- Shows if the working copy has uncommitted changes
9- Polls every 5 minutes with manual refresh available
10- Quick action to open the repo in Ghostty terminal
11
12## Target Audience
13
14This app is for users who:
15
16- Manage their dotfiles with [home-manager](https://github.com/nix-community/home-manager)
17- Use Jujutsu (jj) for version control
18- Run macOS 13+ (Ventura or later)
19
20## Installation
21
22### With home-manager (recommended)
23
24Add the flake input to your `flake.nix`:
25
26```nix
27inputs.jj-home-manager-status = {
28 url = "git+https://tangled.org/nolith.tngl.sh/JJHomeManagerStatus.app";
29 inputs.nixpkgs.follows = "nixpkgs";
30};
31```
32
33Then enable the module in your home-manager configuration:
34
35```nix
36{ pkgs, jj-home-manager-status, ... }:
37{
38 imports = [ jj-home-manager-status.homeManagerModules.default ];
39
40 programs.jj-home-manager-status = {
41 enable = true;
42 package = jj-home-manager-status.packages.${pkgs.system}.default;
43 };
44}
45```
46
47This configures a launchd user agent that starts the app at login and keeps it running.
48
49### Manual build
50
51```bash
52# With Nix
53nix build
54
55# With Swift (for development)
56swift build -c release
57```
58
59## Configuration Options
60
61| Option | Type | Default | Description |
62| --------- | ------- | -------------------------- | ---------------------------------- |
63| `enable` | bool | `false` | Whether to enable the menu bar app |
64| `package` | package | `pkgs.home-manager-status` | The package to use |
65
66## Requirements
67
68- macOS 13.0 or later
69- Jujutsu (`jj`) installed and available in PATH
70- A jj-managed repository at `~/.config/home-manager`