Je zult de terminal driver code moeten laten weten dat je een andere standaard wilt. Er bestaat geen standaard manier waarop je dit kunt doen, maar onder Linux heb je het setterm programma.
"setterm" gebruikt de informatie in de terminal database om de kenmerken in te stellen. Selecties maak je bijvoorbeeld als volgt
setterm -foreground black -background white -store
waar "-store" naast de feitelijke wijzigingen ervoor zorgt dat het ook de standaard wordt voor de huidige console. Dit vereist dat de huidige terminal (TERM omgevingsvariabele) "goed genoeg" is beschreven in de termcap database. Als setterm om wat voor reden dan ook niet werkt, zijn hier een aantal alternatieven:
Eén van deze xterms zou beschikbaar moeten zijn en tenminste één daarvan ondersteunt kleur.
xterm -fg white -bg blue4
color_xterm -fg white -bg blue4
color-xterm -fg white -bg blue4
nxterm -fg white -bg blue4
waar 'color_xterm' de kleurenversie van 'ls' ondersteund. Deze bepaalde keuze lijkt op de kleuren die op een SGI worden gebruikt.
Je kunt de kernel voor eens en voor altijd wijzigen, als ook in een runtime standaard voorzien voor de virtuele consoles met een escape sequence. Ik raad je de kernelpatch aan als je je eigen kernel hebt gecompileerd.
Het kernel bronbestand is /usr/src/linux/drivers/char/console.c
zo ongeveer bij regel 1940 zou je het volgende moeten wijzigen
def_color = 0x07; /* white */
ulcolor = 0x0f; /* bold white */
halfcolor = 0x08; /* grey */
Ik gebruik wit op blauw met
def_color = 0x17; /* white */
ulcolor = 0x1f; /* bold white */
halfcolor = 0x18; /* grey */
De nummers zijn de attribuutcodes die door de videokaart in hexadecimaal worden gebruikt: het meest significante cijfer (de "1" in de voorbeeldkleuren hierboven) is de achtergrond; het minst significant de voorgrond. 0 = black, 1 = blue, 2 = green, 3 = cyan, 4 = red, 5 = purple, 6 = bruin/geel, 7 = wit. Voeg 8 toe om "heldere" kleuren te krijgen. Merk op dat in de meeste gevallen een heldere achtergrond == knipperende tekens, matte achtergrond. (Van sjlam1@mda023.cc.monash.edu.au).
Je kunt ook een nieuwe run-time standaard voor een virtueel console aanvullen, op een per-display basis met de niet-standaard ANSI sequence (gevonden door het bladeren door de kernelbronnen)
ESC [ 8 ]
waarmee de standaardwaarden op de huidige voor- en achtergrondkleuren wordt ingesteld. Vervolgens selecteert de Reset Attribuut string (ESC [ m) deze kleuren in plaats van wit op zwart.
Je zult in feite, iedere keer dat je reboot, deze string naar de console moeten echoën. Afhankelijk van waar je je Linux box voor gebruikt, kunnen verscheidene plaatsen hier geschikt voor zijn:
Dit is waar "Welcome to Linux xx.yy" onder Slackware wordt getoond, en het is een goede keuze voor een stand-alone uitrusting. (en waarschijnlijk verderfelijk voor gebruikers die met telnet inloggen) Dit bestand wordt tijdens het booten aangemaakt (Slackware in /etc/rc.d/rc.S; Redhat in /etc/rc.d/rc.local), en je zou de regels moeten wijzigen waarin zoiets staat als
echo ""> /etc/issue
echo Welcome to Linux `/bin/uname -a | /bin/cut -d\ -f3`. >> /etc/issue
in
ESCAPE="<vervang dit door een enkel escape-teken>"
echo "${ESCAPE}[H${ESCAPE}[37;44m${ESCAPE}[8]${ESCAPE}[2J"> /etc/issue
echo Welcome to Linux `/bin/uname -a | /bin/cut -d\ -f3`. >> /etc/issue
Deze code zal de cursor linksboven op het scherm plaatsen,
de kleur instellen (hier wit op blauw),
deze selectie opslaan en de rest van het scherm wissen. De wijziging
heeft na de volgende opstart effect. Denk eraan de _literal_
escape-teken in het bestand in te voegen met C-q in emacs of
control-v in vi, aangezien sh, die voor het uitvoeren
van het script wordt gebruikt, de /033
syntax blijkbaar niet begrijpt.
if [ "$TERM" = "console" ]; then
echo "\033[37;44m\033[8]" #
# of gebruik setterm.
setterm -foreground white -background blue -store
fi
if ( "$TERM" == "console" ) then
echo "\033[37;44m\033[8]"
# of gebruik setterm.
setterm -foreground white -background blue -store
endif
Je zou het programma setterm zoals hierboven moeten kunnen gebruiken. Nogmaals, dit vereist dat de remote machine genoeg bekend is met je terminal, en dat de terminal-emulator die in de login voorziet kleuren ondersteunt.
In mijn ervaring zijn de beste vt100 emulaties die op dit moment voor andere platformen beschikbaar zijn:
Zie http://www.columbia.edu/kermit/ voor details over Kermit.