tinytools-vty: a terminal based unicode diagram editing tool

[ bsd3, graphics, library, program, tinytools ] [ Propose Tags ]
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.0.3, 0.1.0.4, 0.1.0.7
Change log ChangeLog.md
Dependencies aeson, aeson-pretty, ansi-terminal, base (>=4.7 && <5), bimap, bytestring, clock, constraints-extras, containers, data-default, dependent-map, dependent-sum, directory, extra, file-embed, filepath, http-conduit, ilist, lens, mtl, optparse-applicative, primitive, ref-tf, reflex (>=0.8 && <1), reflex-potatoes (>=0.1), reflex-test-host (>=0.1.2.2), reflex-vty, relude, semialign, template-haskell (>=2.18), text, these, time, tinytools (>=0.1.0.3), tinytools-vty, vty [details]
License BSD-3-Clause
Copyright 2020 Peter Lu
Author minimapletinytools
Maintainer minimapletinytools@gmail.com
Revised Revision 1 made by minimaple at 2023-06-24T06:46:24Z
Category tinytools
Home page https://github.com/minimapletinytools/tinytools-vty#readme
Bug tracker https://github.com/minimapletinytools/tinytools-vty
Source repo head: git clone https://github.com/minimapletinytools/tinytools-vty
Uploaded by pdlla at 2023-05-21T03:29:38Z
Distributions
Executables write-term-width, tinytools
Downloads 163 total (12 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2023-05-21 [all 1 reports]

Readme for tinytools-vty-0.1.0.3

[back to package description]

tinytools-vty

tinytools-vty is a mono-space unicode diagram editor written in Haskell

This repository contains the reflex-vty based view/controller implementation built on top of the tinytools model.

running

To install tiny tools run cabal install exe:tinytools and then run tinytools

Or if you are building locally then cabal run tinytools

usage

When you first run tinytools a tutorial file will open which contains information on how to use tinytools-vty. This same tutorial is copied at the bottom of this README file.

tinytools-vty has a very intuitive interface and most operations should be clear.

hotkeys are supported, however sometimes they get captured by the OS or the terminal and never sent into the executable :(.

enabling unicode widechar support

NOT WORKING, WILL CRASH RANDOMLY IF YOU USE UNICODE WIDE CHARS 😨 (this is due to bugs in TextZipper module that I still need to fix)

Unicode character display width seems to vary by terminal so you will need to generate a unicode width table file in order to enable support for unicode wide characters. You can run tinytools-vty with the --widthtable arg to generate the table to your local config directory for the current terminal. Generating the table samples each unicode character inside the terminal and takes a few seconds to run. Please see the Graphics.Vty.UnicodeWidthTable module of the vty for more info.

tutorial

             ╔══════════════════════════════╗                                                                                                                 
             β•‘                              β•‘ β•”IMPORTANT#########################β•—                                                                            
   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ                      β•š>#to explore the canvas, click the  #                                                                            
   β–ˆTHIS IS TINYTOOLSβ–ˆβ•β•—                      #[(p)an] button or press p         #                                                                            
   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β•‘                      #                                  #                                                                            
                       v                      #then click and drag in the canvas #                                                                            
   <═══╗   ╔══════════════════════╗           #area to move your view            #                                                                            
       β•‘   β•‘the menu on the left  β•‘           #                                  #                                                                            
       β•šβ•β•β•β•‘has a lot of important║═══╗       #                                  #                                                                            
           β•‘operations            β•‘   β•‘       β•š##################################╝                                                                            
           β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•   β•‘                        ^                                                                                              
                      β•‘               β•‘                        β•‘                                                                                              
                      v               β•‘                        β•‘                                                                                              
        ╔═══════════════════════════╗ β•‘                        β•‘                                                                                              
        β•‘to draw a box, click the   β•‘ β•‘                        β•‘                                                                                              
        β•‘[(b)ox] button or press b  β•‘ β•‘                        β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•—                                                                         
        β•‘                           β•‘ β•‘                                             β•‘                                                                         
        β•‘then click and drag in the β•‘ β•‘                                             β•‘                                                                         
        β•‘canvas area                β•‘ β•‘                        *------------------* β•‘                                                                         
        β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β•‘                        |this area (to the | β•‘                                                                         
                             β•‘        β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•>|right) is called  |═╝                                                                         
                             β•‘                                 |the canvas        |                                                                           
                             v                                 |                  |                                                                           
            ╔═════════════════════════════════╗                |                  |                                                                           
            β•‘after creating a box, it will be β•‘                |                  |                                                                           
            β•‘selected, you can use the optionsβ•‘                *------------------*                                                                           
            β•‘in the bottom right to change itsβ•‘                                                                                                               
      ╔═════║style. you can also convert your β•‘                                                                                                               
  <═══╝     β•‘box into a text box or remove itsβ•‘     ╔═══════════════════════════════╗                                                                         
            β•‘border                           β•‘     β•‘of course there are many more  β•‘                                                                         
            β•‘                                 β•‘     β•‘features, play around!         β•‘                                                                         
            β•‘                                 β•‘     β•‘                               β•‘                                                                         
            β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•     β•‘                               β•‘                                                                         
                                                    β•‘                               β•‘                                                                         
                                                    β•‘                               β•‘                                                                         
                                                    β•‘                               β•‘                                                                         
                                                    β•‘                               β•‘                                                                         
                                                    β•‘                               β•‘                                                                         
                                                    β•‘                               β•‘                                                                         
                                                    β•‘                               β•‘                                                                         
                                                    β•‘                               β•‘                                                                         
                                                    β•‘                               β•‘                                                                         
                                                    β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•