A CLI and OCaml library for managing contacts
0
fork

Configure Feed

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

a bit more kgp

+5 -19
+1 -1
bin/dune
··· 1 1 (executable 2 2 (name sortal_cli) 3 3 (public_name sortal) 4 - (libraries eio eio_main sortal xdge cmdliner logs logs.cli logs.fmt fmt fmt.tty kgp kgp-cmd)) 4 + (libraries eio eio_main sortal xdge cmdliner logs logs.cli logs.fmt fmt fmt.tty kgp kgp.cli))
+2 -1
bin/sortal_cli.ml
··· 20 20 21 21 (* Main command *) 22 22 let () = 23 + Random.self_init (); 23 24 let info = Cmd.info "sortal" 24 25 ~version:"0.1.0" 25 26 ~doc:"Contact metadata management" ··· 32 33 ] 33 34 in 34 35 35 - let graphics_term = Kgp_cmdliner.graphics_term in 36 + let graphics_term = Kgp_cli.graphics_term in 36 37 37 38 let list_cmd_term = Term.(const Sortal.Cmd.list_cmd $ graphics_term) in 38 39 let list_cmd = run ~info:Sortal.Cmd.list_info list_cmd_term in
+2 -17
lib/sortal_cmd.ml
··· 6 6 let use_graphics mode = 7 7 Kgp.Terminal.supports_graphics mode 8 8 9 - (* Generate image IDs suitable for unicode placeholders. 10 - The ID must have non-zero bytes in positions for: 11 - - High byte (bits 24-31) - encoded as third diacritic 12 - - Middle bytes (bits 8-23) - encoded in foreground RGB color 13 - See kitty icat transmit.go for reference. *) 14 - let next_unicode_image_id () = 15 - (* Use Random to generate IDs with non-zero bytes in required positions *) 16 - let rec gen () = 17 - let id = Random.int32 Int32.max_int |> Int32.to_int in 18 - (* Ensure high byte and middle bytes are non-zero *) 19 - if id land 0xFF000000 = 0 || id land 0x00FFFF00 = 0 then gen () 20 - else id 21 - in 22 - gen () 23 - 24 9 let display_png_thumbnail path = 25 - let image_id = next_unicode_image_id () in 10 + let image_id = Kgp.Unicode_placeholder.next_image_id () in 26 11 let png_data = Eio.Path.load path in 27 12 let rows = 4 in 28 13 let cols = 8 in ··· 53 38 54 39 (* 1-row thumbnail for listings *) 55 40 let display_small_thumbnail path = 56 - let image_id = next_unicode_image_id () in 41 + let image_id = Kgp.Unicode_placeholder.next_image_id () in 57 42 let png_data = Eio.Path.load path in 58 43 let rows = 1 in 59 44 let cols = 2 in