Textual Paint – MS Paint in your terminal(github.com)
github.com
Textual Paint – MS Paint in your terminal
https://github.com/1j01/textual-paint
34 comments
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
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
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!
I'm looking forward to seeing some commercial products adopt Textual, I hope we see some soon!
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!"
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.
In some ways I kinda miss doing @SAY, @GET, the TBrowse class etc and their TUI.
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.
https://harbour.github.io/ does exist, although it’s a long while since I last played with that.
Clipper, BLINKER and the Brief editor FTW!
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/
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/
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.
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.
Yes this is downright great. Kudos to the author what a fun throwback/revitalization
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).
I've even almost forgiven him for not calling it Textualise (obviously the correct spelling).
One of those things that seeing it in action is a lot more impressive than what you may imagine.
This had me reminiscing about BBS days and drawing banners with TheDraw ref. https://en.wikipedia.org/wiki/TheDraw
Reminds me of REXPaint, which is a pretty cool project. https://www.gridsagegames.com/rexpaint/index.html
For me it brings memory of DOS applications TheDraw and ACiD Draw from the 90's BBS era. Magical times.
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.
Oh man, I've long had the idea for a plain text diagram creator, great to see that someone has gone there before.
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&...
https://github.com/mahrz24/netext
Recently I tried to adopt it to textual as well: https://twitter.com/mahrz24/status/1679816272509386753?s=46&...
Cool, will check it out!
Fantastic project! Would have loved this on DOS back in the days.
DOS didn't have these nice emoji icons, but we had TheDraw back then.
Looks cool - Unfortunately this is the first time I hear about it!
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.
Performance should improve soon.
Reminds me of AutoCAD 2.6 LOL
Someone could probably make an AutoCAD clone similar to this using Textual and maybe a library like https://github.com/sinclairzx81/zero
I expect, at the minimum:
- a rust port
- an emacs port
:-)
- a rust port
- an emacs port
:-)
Well, Emacs has had a poor man's "Paint" for over two decades:
[0] https://mbork.pl/2023-07-15_Drawing_ASCII_art_charts_in_Emac...
;;; 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...
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!)
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!)
Ok, so I was a bit bored...
- no external grep anymore
- smaller (303 instead of 400 bytes)
- cleanup of mouse mode on exit
- 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;doneis there a name/page/nonobfuscated version/git repo for that script?
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
It needs vim-motions tho
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