-
Notifications
You must be signed in to change notification settings - Fork 9
CLIM-like (presentation based) user interface #10
Comments
Thanks. Yes, I think that's a great idea. I had already started working on it a while back. I already have a curses backend and a Lisp-only curses-like backend. Unfortunately the Lisp backend needs work to speed it up, even though it's already used by default in the shell, and seems nearly fast enough on sbcl. In the terminal directory of yew (required for lish), I have a set of terminal abstractions which I think can be used for presentations. A rough sketch of my plan:
It's probably not too much work to make a proof of concept with this. Unfortunately to make it work nicely with the shell, it has to be able to handle mixed output from Lisp commands/functions and external processes. So probably these further steps are likely needed:
I've made a terminal emulator before, so I'm familiar with the issues involved. I haven't worked on this recently since there are many other fundamental problems with the shell which seem more pressing. Not entirely necessary for presentations, but something I would like to also have, since it could allow graphical as well as textual presentations, is a terminal subclass that is a terminal renderer. I already have one that works with CLX. I would prefer if it used a more portable graphics library. But CLX was easy for me. It also needs some work to handle scrolling. But I have already used it to run the shell and other Lisp commands that use my terminal library. Anyway, thanks for your interest and asking such a good question! If you're interested in hacking on it, I'd be glad to help. I should probably put this text in a Roadmap/TODO document or something. |
Mmontone, you beat me to this request. I second the request and my preference would be to just use your pure Lisp-only curses-like back end. There is no need to tie the project down to something like Ncurses because no regular user will switch away from their default shell. This project has the enthusiasm of the Lisp community behind it and therefore has the time to grow into it's own ecosystem. Something basic would be more than fine as a start. If a LISH + McClim interface existed then we would auto magically get access to LEM as well, at which point a good number of people could run StumpWM + LISH + LEM and as a pure lisp shell. As a side point, if your ncurses lisp back end was a library, perhaps Lem could be ported to that as well. I appreciate the work that went into this project Nibbula, it has bean fun fiddling with it as a sysadmin. |
Thanks. I've been making progress on the terminal emulation, so that we can have presentations mixed with normal output in the shell. I did start work on a LEM back end using my Lisp-only terminal stuff, but I got distracted before finishing. I think making a McCLIM terminal adapter would be quite possible, and would allow the shell and command line programs to run in a CLIM window or gadget. But a CLIM and the shell are a little bit at odds, so it might be better to write a CLIM shell which uses CLIM streams, perhaps using some of the pieces I've developed. I've considered the idea of putting together a StumpWM + Lish + LEM (+ maybe Nyxt) comprehensive environment, but I haven't attempted it yet. Unfortunately there's still some work to make just the shell good enough to fully replace a normal shell. |
Oh wow. You even starting working on a LEM back end? You have obviously put in a lot of thought into this, my apologies. Of all of the Lisp shell projects that I have tried, Lish is the only one that really gets it right. Being able to mix lisp and shell code is all kinds of amazing. I could easily see me writing my shell scripts mostly in Lisp with a sprinkle of shell here and there for the bits and pieces that either already exist or are not worth rebuilding. Your approach is the only one that I have seen that makes a Lisp shell a plausible way to interact with the system from the perspective of a sysadmin. Thank you for the follow up, there is a lot more cool here than anticipated. |
Hello, this is a wonderful project!
I was thinking that it could be great to try to implement some of CLIM interface (presentations).
Like, let's say I list files using
ls
. The results are clickable, and when running another command, I can click on one of the shown files to use as argument of the command.Have you considered that idea?
I guess it may require an ncurses backend ..
Cheers,
The text was updated successfully, but these errors were encountered: