This page is aimed at answering the following questions from edream on the mailing list:

Can I change the look and feel of pida? Could I change the screen organization? If so, how? Could I add a minibuffer to pida? If so, how?

Can I change the look and feel of pida? Could I change the screen organization? If so, how? Could I add a minibuffer to pida? If so, how? AA:

You can add panes to any one of PIDA's pane holders situated at N, E, S and W in the interface.

EKR: Excellent! Even I can understand this. In other words, when you describe a key feature, you should use terms that newbies can understand. This is short, clear, and contains no references to undefined terms. The sentence above should be your model for all initial description of pida features.

There is a View creation interface, and views can be created by one of:

  1. Glade,
  2. Pure python + pygtk,
  3. Pure python + other toolkit + XEmbed,
  4. Any UI + Xembed,
  5. Non embedded external view.

EKR: Not terrible, but not excellent either. The words "View creation interface" tell me only that (somehow) users (or plugins or something) can modify the look of the pida main window. But the word "interface" is basically meaningless because it could mean lots of things. I *only* get from the above that there are many ways to modify the visual appearance of the pida main window, but I am completely clueless about what the "View creation interface is". My guess, and it is only a guess, is that somehow it is possible to write python code to change the look of pida.

EKR: I'm being terribly picky here because it is so easy for you, the experts, not to notice that your woulds will be almost useless to newbies.

EKR: Let me say a few more words about the words above. I said earlier that introductory writing is the hardest of all documentation to write. The example above illustrates the temptations and perils involved. On the one hand, we all want to brag about all the nifty things our product can do, but there is a danger of losing people who aren't interested in all the details so much as they are desperately trying to get some understanding :-) So I might rewrite the words above as follows:

Pida provides a way for Glade, pygtk, XEmbed or other gui toolkits to draw parts of the pida main window.

I said "a way" because I don't know what the way is :-) So you would fill in the blank. My words emphasize the power of pida without dragging in extra details. Naturally, you would want a link nearby that takes people to a page that gives more details.

I am not entirely sure what a minibuffer is, but it sounds like a pane that would be placed in the S holder, and which could have keypresses bound to it to perform actions such as showing, and hiding, as well as navigation within it.

EKR: The minibuffer is an Emacs term. Leo uses the same terminology. The minibuffer refers to the area near the bottom of the Emacs window that holds characters you type after you type <alt-x>. That is, the minibuffer accumulates command names and optional arguments. Sometimes Emacs also prints informational messages to the minibuffer.

There are several reasons why the minibuffer is so complex to implement:

1. Many key bindings act differently in the minibuffer.

2. Tab completion and filename completion are essential aspects of the minibuffer. In Emacs, potential completions are shown in a completion buffer. In Leo, potential completions are shown in a separate tab in the log pane. In either case, there is a complex interaction between key state and potential completions, and the potential completions must be shown clearly and quickly.

3. Many commands interact with the minibuffer: find commands get one argument, replace commands get two arguments, incremental search commands alter their behavior with every key typed in the minibuffer, and some keys have special meanings for individual commands.

In short, a lot is going on in the minibuffer that is almost unnoticed by the casual user.