terminal user interface to jujutsu. Focused on speed and clarity
9
fork

Configure Feed

Select the types of activity you want to include in your feed.

static working too

+7 -202
+7 -1
README.md
··· 1 1 # Jujutsu TUI 2 + A WIP TUI for the new version control system Jujutsu 2 3 4 + Press `h` to show the help. 5 + 6 + Please provide any suggestions. I'm new to jujutsu so I'm sure people have workflows I couldn't even dream of. 3 7 # Dev 4 - Currently this requires installing my custom version of Notty `cd notty && opam install .` 8 + Can be built with nix `nix build .#jj_tui` or open a nix shell with `nix develop` 9 + For non-nix the project can be buit with dune or opam. 10 + I've used opam-monorepo as an experiment, that can be built using `opam monorepo pull && dune build jj_tui`
-38
bup/flake.nix
··· 1 - { 2 - description = "Ocaml project using `ocaml-flake` and `flake-parts`"; 3 - 4 - inputs = { 5 - nixpkgs.url = "nixpkgs-unstable"; 6 - ocaml-flake.url = "github:9glenda/ocaml-flake"; 7 - }; 8 - 9 - outputs = inputs @ { 10 - flake-parts, 11 - ocaml-flake, 12 - ... 13 - }: 14 - flake-parts.lib.mkFlake {inherit inputs;} { 15 - imports = [ 16 - ocaml-flake.flakeModule 17 - ]; 18 - systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin"]; 19 - perSystem = _: { 20 - ocaml = { 21 - duneProjects = { 22 - default = { 23 - name = "jj_tui"; 24 - src = ./.; 25 - }; 26 - eio-process = { 27 - name = "eio-process"; 28 - src = ./forks/.; 29 - }; 30 - notty = { 31 - name = "notty"; 32 - src = ./forks/.; 33 - }; 34 - }; 35 - }; 36 - }; 37 - }; 38 - }
-24
dockerfile
··· 1 - 2 - FROM alpine:3.14 3 - 4 - RUN apk add \ 5 - bash\ 6 - bubblewrap\ 7 - coreutils\ 8 - gcc\ 9 - git\ 10 - m4\ 11 - make\ 12 - musl-dev\ 13 - opam 14 - 15 - RUN opam init\ 16 - --disable-sandboxing\ 17 - --auto-setup\ 18 - --compiler ocaml-base-compiler.4.13.1 19 - 20 - WORKDIR /build 21 - ADD Makefile /build/ 22 - ADD throttle-fstrim.opam /build/ 23 - 24 - RUN make deps
-95
onix/flake.lock
··· 1 - { 2 - "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1710146030, 9 - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 - "flake-utils_2": { 22 - "locked": { 23 - "lastModified": 1652776076, 24 - "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", 25 - "owner": "numtide", 26 - "repo": "flake-utils", 27 - "rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8", 28 - "type": "github" 29 - }, 30 - "original": { 31 - "owner": "numtide", 32 - "repo": "flake-utils", 33 - "type": "github" 34 - } 35 - }, 36 - "nixpkgs": { 37 - "locked": { 38 - "lastModified": 1713537308, 39 - "narHash": "sha256-XtTSSIB2DA6tOv+l0FhvfDMiyCmhoRbNB+0SeInZkbk=", 40 - "path": "/nix/store/v4pcs3nzx54m5bmxd39win0rgl2d2hbx-source", 41 - "rev": "5c24cf2f0a12ad855f444c30b2421d044120c66f", 42 - "type": "path" 43 - }, 44 - "original": { 45 - "id": "nixpkgs-unstable", 46 - "type": "indirect" 47 - } 48 - }, 49 - "onix": { 50 - "inputs": { 51 - "flake-utils": "flake-utils_2", 52 - "nixpkgs": [ 53 - "nixpkgs" 54 - ] 55 - }, 56 - "locked": { 57 - "lastModified": 1714406411, 58 - "narHash": "sha256-66POWviEstFxnvArWFlg1EjZWI0pE3Fa1tutmzRDKx4=", 59 - "owner": "odis-labs", 60 - "repo": "onix", 61 - "rev": "0258eb99887c2b373fd8efe3d5c8c736f16c1b26", 62 - "type": "github" 63 - }, 64 - "original": { 65 - "owner": "odis-labs", 66 - "repo": "onix", 67 - "type": "github" 68 - } 69 - }, 70 - "root": { 71 - "inputs": { 72 - "flake-utils": "flake-utils", 73 - "nixpkgs": "nixpkgs", 74 - "onix": "onix" 75 - } 76 - }, 77 - "systems": { 78 - "locked": { 79 - "lastModified": 1681028828, 80 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 81 - "owner": "nix-systems", 82 - "repo": "default", 83 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 84 - "type": "github" 85 - }, 86 - "original": { 87 - "owner": "nix-systems", 88 - "repo": "default", 89 - "type": "github" 90 - } 91 - } 92 - }, 93 - "root": "root", 94 - "version": 7 95 - }
-44
onix/flake.nix
··· 1 - { 2 - inputs = { 3 - nixpkgs.url = "nixpkgs-unstable"; 4 - flake-utils.url = "github:numtide/flake-utils"; 5 - onix = { 6 - url = "github:odis-labs/onix"; 7 - inputs.nixpkgs.follows = "nixpkgs"; 8 - }; 9 - }; 10 - 11 - outputs = { self, nixpkgs, flake-utils, onix }: 12 - flake-utils.lib.eachDefaultSystem (system: 13 - let 14 - pkgs = import nixpkgs { inherit system; }; 15 - 16 - onix' = (builtins.trace 17 - "${builtins.toJSON (builtins.attrNames onix.packages)}" 18 - onix.packages.${system}.latest); 19 - 20 - env = onix'.env { 21 - # The path where opam files are looked up. 22 - path = ./.; 23 - 24 - # Optional: dependency variables to be used during lock generation. 25 - vars = { 26 - "with-test" = true; 27 - "with-doc" = true; 28 - "with-dev-setup" = true; 29 - }; 30 - 31 - # Optional: specify the compiler version for the build environment. 32 - deps = { 33 - "ocaml-system" = "5.1.1"; 34 - "notty" = "./forks/notty/notty.opam"; 35 - "eio-process" = "./forks/eio-process/eio-process.opam"; 36 - }; 37 - }; 38 - in { 39 - packages = { default = env.pkgs.jj_tui; }; 40 - devShells = { 41 - default = pkgs.mkShell { nativeBuildInputs = [ pkgs.hello onix' ]; }; 42 - }; 43 - }); 44 - }