Text-based user interface: Difference between revisions

Content deleted Content added
Tag: Reverted
m Oberon: cn removed, linked to MPW subtopic "look and feel"
Tags: Mobile edit Mobile app edit Android app edit App section source
 
(32 intermediate revisions by 20 users not shown)
Line 5:
[[File:Vim-%28logiciel%29-console.png|thumb|300px|[[Vim (text editor)|Vim]] is a very widely used TUI text editor]]
 
In [[computing]], '''text-based user interfaces''' ('''TUI''') (alternately '''terminal user interfaces''', to reflect a dependence upon the properties of [[computer terminal]]s and not just text), is a [[retronym]] describing a type of [[user interface]] (UI) common as an early form of [[human–computer interaction]], before the advent of bitmapped displays and modern conventional [[graphical user interface]]s (GUIs). Like modern GUIs, they maycan use the entire [[Electronic visual display|screen]] area and may accept [[computer mouse (computing)|mouse]] and other inputs. They may also use color and often structure the display using special graphical [[Characterbox-drawing (computing)|character]]s such as ┌ and ╣, referred to in [[Unicode]] as the "box drawing" set. The modern context of use is usually a [[terminal emulator]].
<!-- [[VisiCalc]] and the [[Emacs]] and [[Vi (text editor)|vi]] [[visual editor]]s are the earliest examples of TUIs. -->
 
== Types of text terminals ==
Line 17:
Under [[Linux kernel|Linux]] and other [[Unix-like]] systems, a program easily [[graceful degradation|accommodates]] to any of the three cases because the same interface (namely, [[standard streams]]) controls the display and keyboard. See [[#Windows|below]] for comparison to Windows.
 
Many [[#See also|TUI programming libraries]] are available to help developers build [[Console Applicationapplication|TUI applications]].
 
== On ANSI-compatible terminals ==
Line 33:
Most often those programs used a blue background for the main screen, with white or yellow characters, although commonly they had also user color customization. They often used [[box-drawing character]]s in IBM's [[code page 437]]. Later, the interface became deeply influenced by [[graphical user interface]]s (GUI), adding [[pull-down menu]]s, overlapping [[window (computing)|windows]], [[dialog box]]es and [[GUI widget]]s operated by [[mnemonics (keyboard)|mnemonics]] or [[keyboard shortcut]]s. Soon [[computer mouse|mouse]] input was added&nbsp;– either at text resolution as a simple colored box or at graphical resolution thanks to the ability of the [[Enhanced Graphics Adapter]] (EGA) and [[Video Graphics Array]] (VGA) display adapters to [[VGA-compatible text mode#Fonts|redefine the text character shapes by software]]&nbsp;– providing additional functions.
 
Some notable programs of this kind were [[Microsoft Word]], [[DOS Shell]], [[WordPerfect]], [[Norton Commander]], [[Turbo Vision]] based [[Borland]] [[Turbo Pascal]] and [[Borland Turbo C|Turbo C]] (the latter included the [[conio.h|conio]] [[library (computer science)|library]]), [[Lotus 1-2-3]] and many others. Some of these interfaces survived even during the [[Microsoft]] [[Windows 3.1x]] period in the early 1990s. For example, the [[Microsoft C]] 6.0 compiler, used to write true GUI programs under [[16-bit]] Windows, still has its own TUI.
 
Since its start, [[Microsoft Windows]] includes a console to display DOS software. Later versions added the [[Windows console]] as a native interface for [[command-line interface]] and TUI programs. The console usually opens in window mode, but it can be switched to full, true text mode screen and vice versa by pressing the [[Alt key|Alt]] and [[Enter key|Enter]] keys together. Full-screen mode is not available in Windows Vista and later, but may be used with some workarounds.<ref>[http://social.technet.microsoft.com/Forums/en/w7itprohardware/thread/3cc6994e-cbc2-4844-b040-a3c8385c69a5 cmd prompt full screen in Windows 7]. Social.technet.microsoft.com. Retrieved on 2013-06-15.</ref>
Line 40:
[[Windows Terminal]] is a [[Tabbed|multi-tabbed]] [[terminal emulator]] that [[Microsoft]] has developed for [[Windows 10]] and later<ref>{{cite web|url=https://www.theverge.com/2019/5/6/18527870/microsoft-windows-terminal-command-line-tool|title=Microsoft unveils Windows Terminal, a new command line app for Windows|first=Tom|last=Warren|date=May 6, 2019|website=The Verge}}</ref> as a replacement for [[Windows Console]].
 
The [[Windows Subsystem for Linux]] which was added to [[Windows]] by [[Microsoft]] in 2019, supports running [[Linux]] text-based apps on Windows, within [[Windows console]], [[Windows Terminal]], and other Windows-based terminals.
 
== Under Unix-like systems ==
[[File:XFdrake.png|thumb|300px|Snapshot of 'XFdrake', a TUI used in [[Mandriva Linux]] to configure the graphical system]]
[[File:Btop screenshot.png|thumb|300px|btop - task manager utility for Linux and other unix-like OS]]
In [[Unix-like]] operating systems, TUIs are often constructed using the terminal control [[library (computer science)|library]] ''[[curses (programming library)|curses]]'', or ''[[ncurses]]'' (a mostly compatible library), or
In [[Unix-like]] operating systems, TUIs are often constructed using the terminal control [[library (computer science)|library]] ''[[curses (programming library)|curses]]'', or ''[[ncurses]]'' (a mostly compatible library), or the alternative ''[[S-Lang]]'' library. The advent of the ''curses'' library with [[BSDBerkeley Software Distribution|Berkeley Unix]] created a portable and stable API for which to write TUIs. The ability to talk to various [[text terminal]] types using the same [[application programming interfaceAPI|interfaces]] led to more widespread use of "visual" Unix programs, which occupied the entire terminal screen instead of using a simple line interface. This can be seen in [[text editor]]s such as [[Vi (text editor)|vi]], [[E-mailEmail client|mail clients]] such as [[pine (e-mailemail client)|pine]] or [[mutt (e-mailemail client)|mutt]], system management tools such as [[IBMSystem AIXManagement SMITInterface Tool|SMIT]], [[SAM (HP-UX)|SAM]], [[FreeBSD]]'s [[Sysinstall]] and [[web browser]]s such as [[lynx (web browser)|lynx]]. Some applications, such as [[w3m]], and older versions of pine and [[pineVi (e-mailtext clienteditor)|pine]] and [[vi]] use the less-able [[termcap]] library, performing many of the functions associated with [[curses (programming library)|curses]] within the application. Custom TUI applications based on ''widgets'' can be easily developed using the [[Dialog (software)|dialog]] program (based on [[ncurses]]), or the [[Newt (programming library)|Whiptail]] program (based on [[S-Lang]]).
the alternative ''[[S-Lang]]'' library.
The advent of the ''curses'' library with [[BSD|Berkeley Unix]] created a portable and stable API for which to write TUIs. The ability to talk to various [[text terminal]] types using the same [[application programming interface|interfaces]] led to more widespread use of "visual" Unix programs, which occupied the entire terminal screen instead of using a simple line interface. This can be seen in [[text editor]]s such as [[vi]], [[E-mail client|mail clients]] such as [[pine (e-mail client)|pine]] or [[mutt (e-mail client)|mutt]], system management tools such as [[IBM AIX SMIT|SMIT]], [[SAM (HP-UX)|SAM]], [[FreeBSD]]'s [[Sysinstall]] and [[web browser]]s such as [[lynx (web browser)|lynx]]. Some applications, such as [[w3m]], and older versions of [[pine (e-mail client)|pine]] and [[vi]] use the less-able [[termcap]] library, performing many of the functions associated with [[curses (programming library)|curses]] within the application. Custom TUI applications based on ''widgets'' can be easily developed using the [[Dialog (software)|dialog]] program (based on [[ncurses]]), or the [[Newt (programming library)|Whiptail]] program (based on [[S-Lang]]).
 
In addition, the rise in popularity of [[Linux]] brought many former DOS users to a Unix-like platform, which has fostered a DOS influence in many TUIs. The program [[minicom]], for example, is modeled after the popular DOS program [[Telix]]. Some other TUI programs, such as the [[Twin (windowing system)|Twin]] desktop, were [[ported]] over.
Line 61 ⟶ 60:
== Oberon ==
[[File:OberonScreen.PNG|thumb|300px|Screenshot of the desktop of an Oberon System showing an image and several text viewers]]
Another kind of TUI is the primary interface of the [[Oberon (operating system)|Oberon operating system]], first released in 1988 and still maintained. Unlike most other text-based user interfaces, Oberon does not use a text-mode console or terminal, but requires a large bit-mapped display, on which text is the primary target for mouse clicks. CommandsAnalogous to a [[Hyperlink|link]] in [[hypertext]], a command has the format <code>Module.Procedure ''parameters''&nbsp;~</code> canand beis activated with a mouse middle-click, like [[hyperlinks]]. Text displayed anywhere on the screen can be edited, and if formatted with the required command syntax, can be middle-clicked and executed. Any text file containing suitably-formatted commands can be used as a so-called '''tool text''', thus serving as a user-configurable menu. Even the output of a previous command can be edited and used as a new command. This approach is radically different from both conventional dialogue-oriented console menus or [[command -line interface]]s but bears some similarities to the worksheet interface of the [[Macintosh Programmer's Workshop#look and feel|Macintosh Programmer's Workshop]].
 
Since it does not use graphical [[WidgetGraphical (GUI)widget|widgets]], only plain text, but offers comparable functionality to a [[GUI]] with a [[tiling window manager]], it is referred to as a Text User Interface or TUI. For a short introduction, see the 2nd paragraph on page four of the first published ''Report on the Oberon System''.<ref>{{cite techreporttech report |author1-link=Niklaus Wirth |first1=Niklaus |last1=Wirth |first2=Jürg |last2=Gutknecht |date=1988 |title=The Oberon System |url=http://e-collection.library.ethz.ch/eserv/eth:3180/eth-3180-01.pdf |volume=88 |series=ETH Eidgenössische Technische Hochschule Zürich, Institut für Informatik |doi=10.3929/ethz-a-000487176 }}</ref>
 
Oberon's [[User Interface|UI]] influenced the design of the [[Acme (text editor)|Acme text editor and email client]] for the [[Plan 9 from Bell Labs]] operating system.
 
== In embedded systems ==
[[File:MicroVGA TUI demoapp.jpg|thumb|300px|Embedded system displaying menu on an LCD screen]]
 
Modern [[embedded system]]s are capable of displaying TUI on a monitor like personal computers. This functionality is usually implemented using specialized integrated circuits, modules, or using [[FPGA]].
 
Line 80:
 
== See also ==
* [[Command-line interface]] (CLI)
* [[Console application]]
* [[Natural -language user interface]]
* [[Text-based game]], a game using a TUI
* [[VGA text mode]]