HackerTrans
TopNewTrendsCommentsPastAskShowJobs

Textual Paint – MS Paint in your terminal(github.com)

216 points·by samwillis·vor 3 Jahren·34 comments
github.com
Textual Paint – MS Paint in your terminal

https://github.com/1j01/textual-paint

34 comments

smusamashah·vor 3 Jahren
This is by the same person who made jspaint. https://github.com/1j01/jspaint Some of the other projects by the author are also very interesting https://github.com/1j01?tab=repositories&q=&type=&language=&...

There is this pipes screen saver for example https://1j01.github.io/pipes/

EDIT: Website of the author listing some of these projects https://isaiahodhner.io/apps
smusamashah·vor 3 Jahren
I already knew about https://yourworldoftext.com

Going through his projects (https://github.com/1j01/diverge) I have discovered https://ourworldoftext.com/ which offers more features like public and private areas on the canvas and a lot more.

In there I discovered https://ourworldofpixels.com/ which is the same except it gives you a virtually infinite public canvas of pixels. There is a lot activity on it.

There are some incredible worlds on it

https://ourworldofpixels.com/countrysim

https://ourworldofpixels.com/planetsim

https://ourworldofpixels.com/jpdld
samwillis·vor 3 Jahren
This is both an excellent demo of what you can build with Textual, and just a brilliantly ridiculous project, it's exciting to see.

I'm looking forward to seeing some commercial products adopt Textual, I hope we see some soon!
pseufaux·vor 3 Jahren
My first thought with Textual and most TUIs is always, "but why?" But then I actually look at what they are building, and I realize, "Oh, because it's really cool!"
teh_klev·vor 3 Jahren
Very early in my career I wrote a ton of code in Clipper (a dBase clone and compiler).

In some ways I kinda miss doing @SAY, @GET, the TBrowse class etc and their TUI.
davepdotorg·vor 3 Jahren
I spent most of the 90s writing Clipper code, used to hang out in comp.lang.clipper lots too. Do still sort of miss it.

https://harbour.github.io/ does exist, although it’s a long while since I last played with that.
teh_klev·vor 3 Jahren
Clipper, BLINKER and the Brief editor FTW!
davepdotorg·vor 3 Jahren
I was more of a qedit fan myself (later TSE), but yeah they were good days.

If you want a real blast from that past, there's even still an archived version of The Oasis kicking about: https://harbour.github.io/the-oasis/docs/
arc9693·vor 3 Jahren
My thought was exactly same, “but why?”. It is indeed very cool. But ‘cool’ not enough to drive such an effort for me i guess. I realize the importance, as it can be used over SSH too. A TUI can be very helpful for graphic less servers, say.
pseufaux·vor 3 Jahren
Absolutely, I can't wait to get my MS Paint on over ssh. But more seriously, you're absolutely right. There is clearly a large degree of utility in utilizing the terminal as a visual interface/platform. A project such as Textual, which makes development for that platform simpler, is something I can stand behind.
thumbuddy·vor 3 Jahren
Yes this is downright great. Kudos to the author what a fun throwback/revitalization
boomskats·vor 3 Jahren
This is getting outright ridiculous now. Will & his lot at Textualize are absolutely killing it. Hats off.

I've even almost forgiven him for not calling it Textualise (obviously the correct spelling).
wintorez·vor 3 Jahren
One of those things that seeing it in action is a lot more impressive than what you may imagine.
NovemberWhiskey·vor 3 Jahren
This had me reminiscing about BBS days and drawing banners with TheDraw ref. https://en.wikipedia.org/wiki/TheDraw
jasonjmcghee·vor 3 Jahren
Reminds me of REXPaint, which is a pretty cool project. https://www.gridsagegames.com/rexpaint/index.html
jortr0n·vor 3 Jahren
For me it brings memory of DOS applications TheDraw and ACiD Draw from the 90's BBS era. Magical times.
jonwest·vor 3 Jahren
I would love to see something like Monodraw, that could generate centered text boxes and simple diagrams for use in READMEs. Monodraw is great, but I don’t think it’s in development anymore.
rafabulsing·vor 3 Jahren
Oh man, I've long had the idea for a plain text diagram creator, great to see that someone has gone there before.
mahrz·vor 3 Jahren
I started a library for this a while ago (using rich):

https://github.com/mahrz24/netext

Recently I tried to adopt it to textual as well: https://twitter.com/mahrz24/status/1679816272509386753?s=46&...
rafabulsing·vor 3 Jahren
Cool, will check it out!
kristofferg·vor 3 Jahren
Fantastic project! Would have loved this on DOS back in the days.
mseepgood·vor 3 Jahren
DOS didn't have these nice emoji icons, but we had TheDraw back then.
kristofferg·vor 3 Jahren
Looks cool - Unfortunately this is the first time I hear about it!
anta40·vor 3 Jahren
On my MacBook Air 2017, it chokes when loading a 1280x800 JPG (around 192 KB). At least so far works OK when creating new images.
AnonymouX47·vor 3 Jahren
Performance should improve soon.
luciusdomitius·vor 3 Jahren
Reminds me of AutoCAD 2.6 LOL
ilaksh·vor 3 Jahren
Someone could probably make an AutoCAD clone similar to this using Textual and maybe a library like https://github.com/sinclairzx81/zero
wiz21c·vor 3 Jahren
I expect, at the minimum:

- a rust port

- an emacs port

:-)
mbork_pl·vor 3 Jahren
Well, Emacs has had a poor man's "Paint" for over two decades:

  ;;; artist.el --- draw ascii graphics with your mouse -*- lexical-binding: t -*-

  ;; Copyright (C) 2000-2023 Free Software Foundation, Inc.
It is not as nice and colorful, but it has a spray tool (yay!). Also, it is actually useful once in a while [0].

[0] https://mbork.pl/2023-07-15_Drawing_ASCII_art_charts_in_Emac...
tripflag·vor 3 Jahren
How about bash? :p

r() { read -n1 -r c; [ "$c" = "$1" ]; }; b=2; stty -echo -icanon; printf '\033[H\033[0m\033[J\033[?1003h'; while true; do r $'\033' || { printf '%s\n' "$c" | grep -qE '[0-7]' && b=$c; continue; }; r \[ || continue; r "M" || continue; r "@" && d=y || d=; read z x y z < <(head -c 2 | hexdump -C); [ $d ] || continue; printf '\033[%d;%dH\033[1;4%dm \033[0m\033[D' $((0x${y}-32)) $((0x${x}-32)) $b; done

(you can change colour with digits 1..7 btw!)
balou23·vor 3 Jahren
Ok, so I was a bit bored...

- no external grep anymore

- smaller (303 instead of 400 bytes)

- cleanup of mouse mode on exit

  p(){ for i;do printf "\e[$i";done;};r(){ read -rn1 c;[[ $c = $1 ]];};stty -echo cbreak;p H m J ?1003h;trap 'p ?1003l' 0;while d=;do r $'\e'||{ [[ $c =~ [0-7] ]]&&b=$c;continue;};r \[||continue;r M||continue;r @&&d=y;read _ x y _< <(head -c2|od -tu1);[ $d ]&&p "$((y-32));$((x-32))H" "4${b-2}m " m D;done
balou23·vor 3 Jahren
is there a name/page/nonobfuscated version/git repo for that script?
tripflag·vor 3 Jahren
it's not intentionally obfuscated, it just happened like that :-) The only place I've posted it until now is on my oneliners collection, https://ocv.me/doc/unix/oneliners/#c58b5be6
testtestabcdef·vor 3 Jahren
It needs vim-motions tho