| Crates.io | lazyjj |
| lib.rs | lazyjj |
| version | 0.5.0 |
| created_at | 2024-05-21 19:58:31.065538+00 |
| updated_at | 2025-02-18 21:52:59.600916+00 |
| description | TUI for Jujutsu/jj |
| homepage | |
| repository | https://github.com/Cretezy/lazyjj |
| max_upload_size | |
| id | 1247164 |
| size | 274,029 |
TUI for Jujutsu/jj. Built in Rust with Ratatui. Interacts with jj CLI.
https://github.com/Cretezy/lazyjj/assets/2672503/b5e6b4f1-ebdb-448f-af9e-361e86f0c148
nedaprbf/psEnterwac, rename with r, delete with d, forget with ft, untrack bookmarks with T:h/?Make sure you have jj installed first.
cargo binstall: cargo binstall lazyjjcargo install: cargo install lazyjj (may take a few moments to compile)pacman -S lazyjjTo build and install a pre-release version: cargo install --git https://github.com/Cretezy/lazyjj.git --locked
You can optionally configure the following options through your jj config:
lazyjj.highlight-color: Changes the highlight color. Can use named colors. Defaults to #323264lazyjj.diff-format: Change the default diff format. Can be color-words or git. Defaults to color_words
lazyjj.diff-format is not set but ui.diff.format is, the latter will be usedlazyjj.bookmark-prefix: Change the bookmark name prefix for generated bookmark names. Defaults to push-
lazyjj.bookmark-prefix is not set but git.push-bookmark-prefix is, the latter will be usedlazyjj.layout: Changes the layout of the main and details panel. Can be horizontal (default) or verticallazyjj.layout-percent: Changes the layout split of the main page. Should be number between 0 and 100. Defaults to 50Example: jj config set --user lazyjj.diff-format "color-words" (for storing in user config file, repo config is also supported)
To start lazyjj for the repository in the current directory: lazyjj
To use a different repository: lazyjj --path ~/path/to/repo
To start with a different default revset: lazyjj -r '::@'
See all key mappings for the current tab with h or ?.
q1/2/3j/k or down/up arrowJ/K or down/up arrowCtrl+e/Ctrl+yCtrl+d/Ctrl+uCtrl+f/Ctrl+b: (jj prefix not required, e.g. write new main instead of jj new main)@Enterr (jj log -r)wWn (jj new)
N (jj new -m)e (jj edit)a (jj abandon)d (jj describe)
Ctrl+sEscb (jj bookmark set)
j/kcgsf (jj git fetch)
F (jj git fetch --all-remotes)p (jj git push)
P (jj git push --all)Ctrl+p or Ctrl+P to include pushing new bookmarks (--allow-new)@wWa (jj bookmark list --all)c (jj bookmark create)r (jj bookmark rename)d (jj bookmark delete)f (jj bookmark forget)t (only works for bookmarks with remotes) (jj bookmark track)T (only works for bookmarks with remotes) (jj bookmark untrack)wWn (jj new)
N (jj new -m)@Wcargo runcargo build --release (output in target/release)--path: cargo run -- --path ~/other-repolazyjj has 2 debugging tools:
LAZYJJ_LOG=1 when running. Produces a lazyjj.log log fileLAZYJJ_TRACE=1 when running. Produces trace-*.json Chrome trace file, for chrome://tracing or ui.perfetto.dev