Jujutsu TUI#
A TUI for the Jujutsu version control system
Press ? to show the help. (commands are different between graph and files view).
Arrows or hjkl to navigate windows/items
Space to select/deselect revisions (multi-select in graph view)
Enter to widen the diff and scroll through it
Key features#
Normal jj operations#
commitingrebasinggit pushing and pulling- Adding, moving and deleting
bookmarks squashing andsplitting commitsspacecan be used to select multiple commits for copying, rebasing etc, starting anew commit on top of etc
Creating commits from the file view:#
spacecan be used to select files tocommit seperately ormove to different commit- Files and be sent to
Next orPrevious commits
filtering by revsets#
filter by any revest you like
List of graph commands:
Installing#
linux: Grab the latest release. It's statically linked and should work on any linux machine.
mac: Grab a prebuild. Let me know if you have any issues as I can't test on a mac.
To open a shell with jj_tui on nix: nix shell github:faldor20/jj_tui
Dependencies#
The jujutsu CLI (minimum version 0.30.0) I haven't tested on windows or Mac. I believe it won't work outside Unix so Windows users will currently have to use wsl.
Config file:#
You can make a config.yaml config file in the following directories to customize key inputs
linux: $XDG_CONFIG_HOME/jj_tui/
macos: ~/Library/preferences/jj_tui/
See ./jj_tui/lib/key_map.ml for a spec for the keymap and ./jj_tui/lib/config.ml for the config
The keymap config lets you fully customize all the commands and their sub menus as well as remap the arrow keys.
Eg:
key_map:
remap:
h: "left"
j: "down"
k: "up"
l: "right"
graph:
#Simple mapping from key to command_id
p: prev
#Command sub menu
s:
title: "Squash"
sub:
# sub menu command
s: "squash_into_parent"
# If the terminal is smaller than this width, the UI will change to a single pane view
single_pane_width_threshold: 110
# Sets the limit to how many commits are ever rendered in jj_tui. Usefull for not slowing down too much when viewing 'all()' revest.
max_commits: 100
For a full list of commands ids see jj_tui/bin/graph_commands.ml and jj_tui/bin/file_commands.ml
logs:#
linux: $XDG_STATE_HOME/jj_tui/
macos: ~/Library/logs/jj_tui/
Dev#
Can be built with nix nix build or open a nix shell with nix develop
For non-nix the project is currently not setup to build with dune or opam. Sorry, I'll get there one day.