<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 30 June 2018 at 11:40, Vladimir Sedach <span dir="ltr"><<a href="mailto:vsedach@gmail.com" target="_blank">vsedach@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">> I'm currently working on a project where I am bringing Maxima to CLIM (I've<br>
> had some pretty good progress)<br>
<br>
</span>Very cool!<br></blockquote><div><br></div><div>Thank you. The source repository is here: <a href="https://github.com/lokedhs/maxima-client">https://github.com/lokedhs/maxima-client</a></div><div>and I made a couple of videos showing what it looks like. Here is a playlist:</div><div><a href="https://www.youtube.com/watch?v=AvC82EjoPYU&list=PL6AQVVynH5Dg3Wwpk3zNT962GntKfssje">https://www.youtube.com/watch?v=AvC82EjoPYU&list=PL6AQVVynH5Dg3Wwpk3zNT962GntKfssje</a><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">> but one thing that has frustrated me is<br>
> that CLIM does not have a consistent concept of keyboard control.<br>
> I believe this comes from Genera. I wonder if it was designed at a time<br>
> where it was thought that mouse control would be the primary mechanism of<br>
> interaction.<br>
<br>
</span>I have not looked at Genera sources. I have poked around TI Explorer<br>
source code, and it looks to me like there was no convention for<br>
handling keyboard input as commands in the MIT derived Lisp Machines.<br>
This is a hard problem that went without an obviously satisfactory<br>
solution for a very long time. I believe the keymap and keymap<br>
inheritance and nesting mechanisms in GNU Emacs is the best model<br>
available today. One of the neat things in GNU Emacs is which-key mode<br>
(<a href="https://github.com/justbur/emacs-which-key" rel="noreferrer" target="_blank">https://github.com/justbur/<wbr>emacs-which-key</a>), which is like the<br>
modeline help for mouse commands in Genera, for keyboard shortcuts.</blockquote><div><br></div><div>CLIM does have a concept of keyboard shortcuts. You can bind keys to commands</div><div>in a way that is somewhat similar to Emacs. Also, the default editor widget, Drei,</div><div>is modelled on Emacs, and uses keybindings in a very similar way.</div><div><br></div><div>Thus, it's definitely possible to build a keyboard-driven application in CLIM, but you</div><div>have to do everything yourself. In CLIM, you work a lot with graphical representation</div><div>of objects, and clicking on an object (for example, a form in the REPL, or a</div><div>subexpression in an equation in my Maxima client) will invoke various operations</div><div>based on the current input context of the application.</div><div><br></div><div>Unfortunately CLIM has no provisions at all for keyboard navigation here. If I want</div><div>to be able to select something using the keyboard, I have to build it all myself.</div><div>What's even more surprising is that there isn't even a keybinding to navigate</div><div>multiple text fields. You'd expect to be able to press Tab, but that will just invoke</div><div>whatever that key is bound to in Drei.</div><div><br></div><div>People must have had one hand on the mouse more or less constantly while</div><div>working in Genera.</div><div><br></div><div>Regards,</div><div>Elias</div></div></div></div>