Difference between revisions of "Curses interface"
m (ZapM -> ZAPM. In this case I want the article to use the correct capitalization, not have a redirect. Fixes one redlink.) |
(formatting + copyedit pass) |
||
Line 1: | Line 1: | ||
[[File:Expanded-status.png|thumbnail|right|400px]] | [[File:Expanded-status.png|thumbnail|right|400px]] | ||
− | + | The '''curses interface''' is an alternate text-mode [[user interface]] for ''[[NetHack]]'' that uses high-level [[wikipedia:Curses (programming library)|curses]] routines to control the display. The curses interface has additional features compared to the traditional tty interface, such as dynamic window resizing, dynamic configurable placement of status and message windows, and mouse support. | |
− | The ''' | ||
− | |||
==Features== | ==Features== | ||
− | |||
Some features of this interface compared to the traditional tty interface include: | Some features of this interface compared to the traditional tty interface include: | ||
Line 19: | Line 16: | ||
==Public servers== | ==Public servers== | ||
− | + | The following public servers utilize the curses interface: | |
− | [[Hardfought]] offers the curses interface for almost every variant hosted, save for [[NetHack 1.3d]], [[Slash'EM]], [[SlashTHEM]] and [[ZAPM]]. | + | * [[nethack.alt.org]] currently hosts [[NetHack 3.6.7]], which has the curses interface enabled as an alternative to the standard [[ASCII]] interface. |
+ | * [[Hardfought]] offers the curses interface for almost every variant hosted, save for [[NetHack 1.3d]], [[Slash'EM]], [[SlashTHEM]], and [[ZAPM]]. | ||
+ | * [[DynaHack]] uses the curses interface by default. | ||
− | + | [[NetHack 4]] and its derivatives [[NetHack Fourk]] and [[FIQHack]] use a libuncursed interface, which appears similar to curses. | |
− | |||
− | [[NetHack 4]] and its derivatives [[NetHack Fourk]] and [[FIQHack]] use | ||
==Configuration options== | ==Configuration options== | ||
− | + | Some configuration [[option]]s that are specific to the curses windowport or otherwise relevant are shown below. | |
− | Some configuration [[option]]s that are specific | ||
{|class="prettytable striped" | {|class="prettytable striped" | ||
Line 78: | Line 74: | ||
==History== | ==History== | ||
− | + | Karl Garrison developed the curses interface as a patch for [[NetHack 3.4.3]], and both NAO and hardfought incorporated the curses interface patch in their servers. In [[NetHack 3.6.2]], the devteam incorporated the curses interface into the vanilla codebase. | |
− | Karl Garrison developed the curses interface as a patch for NetHack 3.4.3 | ||
===3.4.3 Options=== | ===3.4.3 Options=== | ||
− | + | For NetHack 3.4.3 and some derived variants, <tt>OPTIONS=classic_status</tt> is a boolean option. If FALSE, the status bar has 3 lines. If TRUE, the status display has 2 lines. The default value is TRUE. | |
− | <tt>OPTIONS=classic_status</tt> is a boolean option. If FALSE, the status bar has 3 lines. If TRUE, the status display has 2 lines. The default value is TRUE. | ||
===Historical Links=== | ===Historical Links=== | ||
+ | The following links are of historical value only: | ||
− | + | * [http://nethack-curses.wikia.com/ Curses interface homepage] | |
− | + | * [http://sourceforge.net/tracker/?group_id=317683&atid=1336046 Curses interface bug tracker] | |
− | *[http://nethack-curses.wikia.com/ Curses interface homepage] | ||
− | *[http://sourceforge.net/tracker/?group_id=317683&atid=1336046 Curses interface bug tracker] | ||
− | |||
{{nethack-367|offset=1}} | {{nethack-367|offset=1}} | ||
{{featured}} | {{featured}} | ||
[[Category:User interface]] | [[Category:User interface]] |
Latest revision as of 09:44, 21 June 2024
The curses interface is an alternate text-mode user interface for NetHack that uses high-level curses routines to control the display. The curses interface has additional features compared to the traditional tty interface, such as dynamic window resizing, dynamic configurable placement of status and message windows, and mouse support.
Contents
Features
Some features of this interface compared to the traditional tty interface include:
- Dynamic window resizing (e.g. maximizing a terminal window)
- Dynamic configurable placement of status and message windows, relative to the map
- Makes better use of larger and smaller terminal windows, such as a multi-line message window if there is space
- Optional mouse support (click to move player, etc)
- Menu text search/selection
- Fancier display (e.g. window borders, optional popup dialogs, splash screen, and better menus)
- Improved keyboard navigation of menus
- "symset:curses" option for fancier line-drawing characters for drawing the dungeon—this should work on most terminals and platforms
- Ability to have a permanent inventory sidebar by enabling perm_invent
Public servers
The following public servers utilize the curses interface:
- nethack.alt.org currently hosts NetHack 3.6.7, which has the curses interface enabled as an alternative to the standard ASCII interface.
- Hardfought offers the curses interface for almost every variant hosted, save for NetHack 1.3d, Slash'EM, SlashTHEM, and ZAPM.
- DynaHack uses the curses interface by default.
NetHack 4 and its derivatives NetHack Fourk and FIQHack use a libuncursed interface, which appears similar to curses.
Configuration options
Some configuration options that are specific to the curses windowport or otherwise relevant are shown below.
OPTIONS=windowtype:curses | Use this to enable curses interface, if the binary was compiled with multiple window interfaces, and curses is not the default. |
OPTIONS=symset:IBMgraphics | Set this for Windows systems, or for PDCurses for SDL on any system. The latter uses a cp437 font, which works with this option. For 3.4.3, use OPTIONS=IBMgraphics. |
OPTIONS=symset:curses | Set this if IBMgraphics above won't work for your system. Mutually exclusive with the above option, and should work on nearly any system. For 3.4.3, use OPTIONS=cursesgraphics. |
OPTIONS=align_message:bottom
OPTIONS=align_status:right |
Optionally specify the alignment of the message and status windows relative to the map window. If not specified, the code will default to the locations used in the tty interface: message window on top, and status window on bottom. Placing either of these on the right or left really only works well for wider terminal windows. |
OPTIONS=popup_dialog | Use a small popup "window" for short prompts, e.g. "Really save?".
If this is not set, the message window will be used for these as is done for the tty interface. |
OPTIONS=term_cols:110
OPTIONS=term_rows:32 |
Specify the initial window size for NetHack in units of characters.
This is supported on PDCurses for SDL as well as PDCurses for Windows. |
OPTIONS=windowborders:2 | Controls the usage of window borders for the main NetHack windows (message, map, and status windows).
A value of 0 forces the borders to be off, a value of 1 forces them to be drawn, and a value of 2 allows the code to decide if they should be drawn based on the size of the terminal window. |
OPTIONS=splash_screen | Whether or not to display a fancy ascii-graphics splash screen on startup. |
OPTIONS=petattr:u | This controls what text attributes are used to highlight any pets. Any combination of single letters representing each text attribute may be used. Not all attributes work on all terminals.
Attributes may be one or more of: Bold, Inverse, Underline, blinK, iTalic, Rightline, or Leftline. The default is underline. |
OPTIONS=guicolor | Controls whether color and attributes are used for menu headers, window borders, message text, etc. This is separate from the color option, which only controls the color of the map itself. |
OPTIONS=mouse_support | Use the mouse for moving around. This option defaults to false. |
OPTIONS=perm_invent | Show a permanent inventory window as a sidebar. |
History
Karl Garrison developed the curses interface as a patch for NetHack 3.4.3, and both NAO and hardfought incorporated the curses interface patch in their servers. In NetHack 3.6.2, the devteam incorporated the curses interface into the vanilla codebase.
3.4.3 Options
For NetHack 3.4.3 and some derived variants, OPTIONS=classic_status is a boolean option. If FALSE, the status bar has 3 lines. If TRUE, the status display has 2 lines. The default value is TRUE.
Historical Links
The following links are of historical value only: