Interfaces of the future - Psychology, Philosophy, and Licenses
Users browsing this thread: 5 Guest(s)
|
|||
I dream of writing a GUI interface made up of individual programs glued together via pipes just like a TUI is made up of several cli programs glued together via pipes.
For example, suppose I'm writing a file manager. The text input for path writing would be done by dmenu or a program like it, just like the Surf window manager uses dmenu for URL writing. So the file manager calls dmenu, the user types something and dmenu outputs what the user has typed for the file manager to use. Item selection with the mouse would be outsourced to a program like xrectsel or slop embedded in the file manager's window. The file manager calls xrectsel, the user graphically select the files he wants with the mouse, and xrectsel returns to the file manager the selected area on its window. Right-click context menu would be done by a program like xmenu. The file manager calls xmenu with all the options it supports (or with the options specified in a text file), the user selects the option he wants, and xmenu returns to the file manager the option the user selected. Menu bar would be done by a program that mirrors MacOS' menu bar. It would be run at the top of the screen and show a menu for the focused window. When the user select a menu, it will pipe to the file manager the option he selected. Key binding would be done by a program that listens to Ctrl+Key presses and send to the file manager the corresponding command. This way, the file manager need not to implement key bindings, as it is outsourced by another program, and the user can keep all his keybindings for separate programs in a single configuration file. Status bar would be done by a program the file manager pipes a line to. And so on. All components of the graphic interface of the would be a separate generic program that can be glued together to form a single interface. And the file manager itself could be a generic program: it could be a “GUI lister” that just shows graphically with icons the entries it gets from another program and send the selected item to a third program. • So combining this “GUI lister” with ls and a file opener script, for example, you create a file manager. • Combining it with a list of songs and with a cli program that play music files you create a music navigator program. • Combine it with a list of torrents and transmission and you create a torrent client. • Combine it with a list of your mailbox content and a text editor and you get a MUA. |
|||