[IPython-dev] Please read: IPython Notebook UI goes modal

Brian Granger ellisonbg at gmail.com
Fri Jan 10 20:26:17 EST 2014


Hello everyone. We wanted to let you know about a significant change
that just got merged into IPython master. This change will immediately
affect all users who are running off master and all IPython users upon
the IPython 2.0 release.

The changes are significant and can't be ignored, so if you are
running off IPython master please read this!

As of Friday afternoon, the user interface of the IPython Notebook is
**modal**. In a modal user interface, there are different modes of
keyboard input. The IPython Notebook has two modes:

* Edit mode: for typing into a cell
* Command mode: for performing notebook and cell actions

The keyboard shortcuts in these two modes are completely different.
Most importantly if you try to type into a cell while in command mode,
lots of unexpected things will happen. You don't want to do that.

To help everyone learn about the modal UI we have created a new
example notebook here:

http://nbviewer.ipython.org/github/ipython/ipython/blob/master/examples/notebooks/User%20Interface.ipynb

Please have a look at this notebook and give this new UI a try.

The reason we have moved to a modal UI is rather subtle. Previously,
in the Notebook UI, the browser would unexpectedly scroll when you
clicked on various things. This led to a very disorienting and jumpy
experience. These jumps were caused by our calling .focus() on various
DOM elements to manage focus for the user. In order to stop making
those .focus() calls, we had to put the user in control of focus. That
explicit focus management led to the modal UI. This change was also
needed to pave the way for the widget architecture that will be in
IPython 2.0 (more DOM elements that need careful focus management).

The good news is that the disorienting and jumpy scroll problems are
gone. The new modal UI also provides a very efficient way of working
at the keyboard. We have been working on this for over 6 months and
are very excited about the results. We think you will like it, but
there are bound to be issues that come up. As usual, please hop on
GitHub or HipChat and let us know what you think.

Cheers,

Brian

[For those of you paying attention, you might be thinking "hey this
sounds a lot like vim." Yep, modal as in vim modal. Depending on your
feelings about vim this is either really good or really bad news.
Please don't worry, we think we have managed to walk a very fine line
that provides the benefits of modal editors, without the frustration.]

-- 
Brian E. Granger
Cal Poly State University, San Luis Obispo
bgranger at calpoly.edu and ellisonbg at gmail.com



More information about the IPython-dev mailing list