A macOS utility to track home-manager JJ repo status
at main 70 lines 1.9 kB view raw view rendered
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`