Remix.run Logo
imoverclocked a day ago

Did anyone here use Genera on an original lisp machine? It had a pseudo-graphical interface and a directory listing provided clickable results. It would be really neat if we could use escaping to confer more information to the terminal about what a particular piece of text means.

Feature-request: bring back clickable ls results!

Bonus points for defining a new term type and standard for this.

rphln 21 hours ago | parent | next [-]

There's already `ls --hyperlink` for clickable results, but that depends on your terminal supporting the URL escape sequence.

db48x 20 hours ago | parent | next [-]

This is nice, but a poor substitute for what Genera was doing.

You see, Genera knows the actual type of everything that is clickable. When a program needs an input, objects of the wrong type _lose their interactivity_ for the duration. So if you list the files in some directory, the names of those files are indeed links that you can click on. Clicking on one would bring up a context menu of relevant actions (view, edit, print, delete, etc). If a program asks for a filename as input then clicking on a file instead supplies the file object to the program. Clicking on objects of other types does nothing.

petesergeant 2 hours ago | parent | next [-]

> Genera knows the actual type of everything

I have this side-project fantasy of a very simple terminal pipe-types project. The basic idea is a set of very basic standardized types, demarcated using escape sequences. Dates, filenames, URLs, numbers, possibly one or two number units as well (time periods, file sizes only).

Tools that already produce columnar data (ls) get a flag that lets them output this format, and tools that work with piped data (cut, sort, uniq) get equivalents or modes that let them easily work with this.

Essentially, simple typed tables held in text, with enhancements for existing tooling to know how to deal with it. Would make my day-to-day on the command line much easier.

db48x an hour ago | parent | next [-]

Could be fun :)

But note that on the Lisp Machine/Genera, every type has a presentation and can be “printed” to the REPL. This includes any new classes that you create as part of your own programs. It’s not just a small list of standard types, but every type.

The standard tutorial for the system is to implement Conway’s Game of Life. It has you create a class to hold the game board and then guides you through the process of defining a presentation for it so that the it can be displayed easily.

ramses0 24 minutes ago | parent | prev [-]

https://kellyjonbrazil.github.io/jc/docs/parsers/ls.html

...glom on to this: "+JSONSchema" with some sort of UNIX-ish taxonomy. Everything from `man test`, add in `man du`, `date`, `... ago` (relative time) as you'd mentioned.

`jc ls | add_schema...` => `jq ...`

...or `jc ls --with-schema | jq ...`

(it appears as though `jc` already supports schema's, so perhaps it'd be `jc ls --with-types` or something, but there's your starting point!)

Rendello 19 hours ago | parent | prev [-]

That's one aspect I prefer in playing with TempleOS over Linux. The rest of the command line is a bit of a pain, with no history, C-as-a-shell, etc.

westurner 21 hours ago | parent | prev [-]

  $ man ls | grep '\--hyperlink' -A 1
  --hyperlink[=WHEN]
         hyperlink file names WHEN
dotancohen 21 hours ago | parent | prev | next [-]

  > Feature-request: bring back clickable ls results!
Doesn't your desktop (or distro) have a graphical file manager? On KDE it's Dolphin, which ex-Windows users absolutely love. I don't know what it would be on Gnome or other desktops.
mbivert 20 hours ago | parent | prev | next [-]

Maybe some aspects of the Plan9 UI? (rio/9term, plumber; acme as well).

You should be able to get this to work on Unix with plan9port.

yjftsjthsd-h 21 hours ago | parent | prev [-]

It's not really that, but have you tried ranger?