···11# Jujutsu TUI
22[](https://github.com/faldor20/jj_tui/actions/workflows/build-nix.yml)
33-A TUI for the new version control system Jujutsu
33+A TUI for the Jujutsu version control system
445566
···1111`Space` to select/deselect revisions (multi-select in graph view)
1212`Enter` to widen the diff and scroll through it
13131414+## Key features
1515+1616+### Normal jj operations
1717+- `c`ommiting
1818+- `r`ebasing
1919+- `g`it pushing and pulling
2020+- Adding, moving and deleting `b`ookmarks
2121+- `s`quashing and `s`plitting commits
2222+- `space` can be used to select multiple commits for copying, rebasing etc, starting a `n`ew commit on top of etc
2323+2424+### Creating commits from the file view:
2525+- `space` can be used to select files to `c`ommit seperately or `m`ove to different commit
2626+- Files and be sent to `N`ext or `P`revious commits
2727+2828+### filtering by revsets
2929+- `f`ilter by any revest you like
3030+1431List of graph commands:
15321633
17341818-Please provide any suggestions. I'm new to jujutsu so I'm sure people have workflows I couldn't even dream of.
1935## Installing
2036`linux`: Grab the latest release. It's statically linked and should work on any linux machine.
2137`mac`: Grab a prebuild. Let me know if you have any issues as I can't test on a mac.
···3248You can make a `config.yaml` config file in the following directories to customize key inputs
3349`linux`: $XDG_CONFIG_HOME/jj_tui/
3450`macos`: ~/Library/preferences/jj_tui/
3535-see `./jj_tui/lib/key_map.ml` for a spec for the keymap and `./jj_tui/lib/config.ml` for the config
5151+See `./jj_tui/lib/key_map.ml` for a spec for the keymap and `./jj_tui/lib/config.ml` for the config
3652The keymap config lets you fully customize all the commands and their sub menus as well as remap the arrow keys.
5353+5454+Eg:
3755``` yaml
3856key_map:
3957 remap:
···5270 s: "squash_into_parent"
5371# If the terminal is smaller than this width, the UI will change to a single pane view
5472single_pane_width_threshold: 110
7373+# Sets the limit to how many commits are ever rendered in jj_tui. Usefull for not slowing down too much when viewing 'all()' revest.
7474+max_commits: 100
5575```
5676For a full list of commands ids see [`jj_tui/bin/graph_commands.ml`](jj_tui/bin/graph_commands.ml) and [`jj_tui/bin/file_commands.ml`](jj_tui/bin/file_commands.ml)
57775878# logs:
5979`linux`: $XDG_STATE_HOME/jj_tui/
6080`macos`: ~/Library/logs/jj_tui/
6161-62816382# Dev
6483Can be built with nix `nix build` or open a nix shell with `nix develop`