The statuscolors patch for 3.4.3 allows the user to configure colors for the bottom status line; these colors vary as the HP and Pw change and status indicators appear and disappear. This patch is modeled after the menucolors patch, which allows the user to configure colors for menu items. Both patches only operate in the tty interface. The user must put STATUSCOLOR lines into their nethackrc, or the statuscolors patch does nothing.
Comparison to HPmon
Statuscolors patch does the same as HPmon, and more; HPmon only colors the HP display. However, the fact that statuscolors does nothing without configuration from the nethackrc might be viewed as a regression. The Statuscolors patch is used on nethack.alt.org, while an expanded version of HPmon exists in GruntHack.
The HPmon patch only overwrites the HP display with a colorised version, occasionally neglecting to do this (in which case the display is not colorised) or writing the numbers at the wrong position. The statuscolors patch actually modifies the code in botl.c that generates the status line, thus inserting color. However, this brings the statuscolors patch into conflict with the dumplog patch, which tries to modify the same code to support the provision of a string to the end-of-game character dump. NetHack brass players can use the brass interface patch which provides one possible resolution to this conflict.
To enable statuscolors:
To specify statuscolor options, write:
Numeric options have the format <field>%<max-percent>:<color-option>. For example:
Text options have the format <text>:<color-option>. Text is case-insensitive. For example:
On NAO, you can also specify exact values:
A color option is a <color> followed by an optional sequence of &<attr>. Color and attribute names are case insensitive. Valid colors are: black, blue, brown, cyan, gray, green, lightblue, lightcyan, lightgreen, lightmagenta, magenta, none, orange, red, white, yellow.
Valid attributes are: blink, bold, dim, inverse, none, underline.
A reasonable set of defaults might be:
# HP STATUSCOLOR=hp%100=green,hp%66=yellow,hp%50=orange STATUSCOLOR=hp%33=red&bold,hp%15:red&inverse,hp%0:red&inverse&blink # Pw STATUSCOLOR=pw%100=green,pw%66=yellow,pw%50:orange,pw%33=red&bold # Carry STATUSCOLOR=burdened:yellow,stressed:orange,strained:red&bold STATUSCOLOR=overtaxed:red&inverse,overloaded:red&inverse&blink # Hunger STATUSCOLOR=satiated:yellow,hungry:orange,weak:red&bold STATUSCOLOR=fainting:red&inverse,fainted:red&inverse&blink # Mental STATUSCOLOR=hallu:yellow,conf:orange,stun:red&bold # Health STATUSCOLOR=ill:red&inverse,foodpois:red&inverse,slime:red&inverse # Other STATUSCOLOR=held:red&inverse,blind:red&inverse