Tips en Truuks

Een (voorlopig) volkomen willekeurige verzameling tips, veelal zelf ontdekt omdat ik iets wilde of nodig had etc. Motto: als je iets wil, kan het in Linux altijd.

Netscape tips

Snellere Netscape

Netscape wordt in SuSE gestart met een "wrapper script" dat allerlei veiligheden biedt. Als je distributie en libraries echter gewoon netjes up-to-date zijn, is veel hiervan overbodig. Voor puur browsen heb je ook niet de mail- en news interface nodig.

Download de nieuwste Navigator (zo je wilt zonder mail en news functies) van ftp://download.xs4all.nl/pub/mirror/netscape/communicator/english. Installeer die, na eerst met

rpm -e netscape

de oude Netscape van je systeem te hebben verwijderd, in /opt (SuSE) of in /usr/local/. Het installatie programmaatje biedt die mogelijkheid. Maak dan een simpel start-scriptje met als naam /usr/local/bin/netscape:

#!/bin/sh
export MOZILLA_HOME=/opt/netscape
exec /opt/netscape/netscape "$@";

Zet MOZILLA_HOME naar de goede directory. (Weet dat Netscape wordt gespeld als `N-e-t-s-c-a-p-e' maar uitgesproken als `Mozilla'!) Maak dit script executable met:

chmod a+x /usr/local/bin/netscape

Voilą! Door een simpeler startmethode en het weglaten van mail en news functies is Netscape een heel stuk lichter en start sneller op.

Je eigen mail programma vanuit Netscape gebruiken

Je hebt een versie van Netscape zonder mail en news of je wilt je eigen mail programma gebruiken in plaats van Netscape Messenger, wanneer je op een mailto: url klikt?

Download netscape-altmail-0.1.tar.gz (via FTP Search) en pak het uit in je homedirectory (bij voorkeur in een subdirectory src/):

tar zxvf ../netscape-altmail-0.1.tar.gz
cd netsc  (en druk op TAB)

Je ziet nu allerlei kleine C broncode programmaatjes. Kies er een uit voor de door jouw gewenste mailer (pine, mutt, elm etc.), open die in je favoriete editor en stel de variabelen goed in in de C broncode, zoals dit voorbeeldje voor altmail_pine.c:

#define XTERM "/usr/local/bin/rxvt"
#define MAILER "/usr/bin/pine"

Kies in de Makefile het gewenste operating system. Type daarna:

make

Lees voor verdere informatie de README. Je kunt, met een beetje gevoel voor C, de broncode bewerken voor iedere gewenste mailer. Plaats de gewenste shared-object (.so) files tenslotte bijvoorbeeld in de plugins directory van je Netscape installatie.

Stel in je ~/.netscape/preferences.js de gewenste mailer in, volgens de aanwijzingen in de C broncode van de desbetreffende email plugin, bijvoorbeeld:

user_pref("mail.use_altmail", true);
user_pref("mail.altmail_dll", "/opt/netscape/plugins/altmail_pine.so");

Succes!

Grotere letters in Netscape

Ik ben heel tevreden met al mijn fonts in X, maar de lettertjes in Netscape zijn niet te lezen! Je kan natuurlijk in /etc/XF86Config in je FontPath de 100dpi fonts vooraan zetten, maar dan worden alle fonts zo groot, in alle programma's.

Er is echter een manier om dat speciaal voor Netscape te regelen. Zet de volgende regels in je ~/.Xdefaults file:

Netscape*documentFonts.xResolution*iso-8859-1:  100
Netscape*documentFonts.yResolution*iso-8859-1:  100

Log opnieuw in in X óf geef nu het commando:

xrdb -merge ~/.Xdefaults

en start Netscape opnieuw. Voilą! Supertip: bekijk de application-defaults file Netscape.ad die bij je Netscape distributie zit.

X Tips

DPMS (Energy Star) gebruiken in X

DPMS (Display Power Management System (?)) betekent dat als je een tijdje niets doet, je monitor vanzelf standby gaat. Schakel dit in door het commando

xset +dpms

te geven. Dit commando kan je in je ~/.xinitrc of .xsession bestand zetten. Het wordt dan altijd uitgevoerd als je inlogt.

Laat je je computer echter lang staan zonder ingelogd te zijn, dan wil je het wellicht in XDM regelen. Zet het commando dan in het het opstartbestand van XDM: /usr/lib/X11/xdm/Xsetup_0. Gebruik je KDM of GDM, zet dan de optie "power_saver" in de Device sectie van je /etc/XF86Config (XFree-3.3.x in elk geval, 4.0 nog niet getest, zie daarvoor man XF86Config), ongeveer zo:

Section "Device"
Identifier    "Primary-Card"
VendorName    "DIAMOND"
BoardName     "STEALTH 24"
VideoRam      1024
Option        "accel"
Option        "power_saver"
EndSection

Let op: de andere opties niet overnemen, het is maar dat je een idee hebt. Zie verder: man xset en man XF86Config.

Een tweede X sessie starten

Iemand is al ingelogd en heeft zijn scherm beveiligd, maar jij wil even iets doen op je Linux bak onder X. Dat is geen probleem:

Log in op een van de (vrije) tekst consoles onder Ctrl+Alt+F1 t/m F6 (soms F4) en typ daar:

startx -- :1 &

De :1 wil zeggen dat X op display 1 wordt gestart. Als X gestart is, kun je eventueel naar de console terug switchen waar je inlogde en daar weer uitloggen met Ctrl+D.

Je nieuwe X sessie draait op de eerste vrije terminal; meestal is dat die onder Ctrl+Alt+F8 (soms F6, afhankelijk van het aantal tekst consoles). Met Ctrl+Alt+F7 ga je weer terug naar de oude X sessie.

NEdit starten vanaf de commandoregel en de prompt direct terug krijgen

Zet:

nc.autoStart:  true

in je ~/.Xdefaults file. Log opnieuw in of doe: xrdb -merge ~/.Xdefaults.

Start dan NEdit niet met nedit maar met nc <filenaam>. Je kan ook meerdere filenamen geven, en als je later nog een nc-commando geeft, wordt die file door het reeds lopend NEdit proces geopend. Via het Windows menu van NEdit kun je snel wisselen tussen de openstaande bestanden.

Dit is de Server Mode van NEdit. Lees meer in de online help van NEdit, te vinden onder het `Help' menu. Homepage van NEdit: http://www.nedit.org/.

Piep uitzetten

In X:

Dat is heel simpel! Met het commando

xset -b

wordt de computer een stuk rustiger (handig 's nachts!). Tip: neem dit commando op in uw .xinitrc (zie hier). De syntax van xset b is:

xset b <volume(0-100)> [toonhoogte(Hz)] [tijdsduur(ms)]

Zie (wederom) man xset voor de vele andere mogelijkheden van xset.

Op de tekstconsole:

setterm -blength 0

Kan opgenomen worden in .bashrc. Zie man setterm.

Het piepen van SuSE6.3 en 6.4 bij afsluiten uitzetten:

In het bestand /sbin/init.d/halt staat aan het eind dit:

# Make reboot noise and wait a few seconds to give harddisks the chance
# to really flush their buffers before power goes down.
echo -en "\x07"
sleep 2
echo $message
echo -en "\x07"
exec $command -d -f

De beide echo -en commando's zijn de boosdoener. Het is bij een serversysteem wel prettig om door het waarschuwingssignaal te weten dat je hem uit kan zetten, maar thuis, wanneer je geliefde al in slaap dreigt te vallen, is het geen prettige feature. Schakel de beide commando's uit door er een # voor te zetten:

# Make reboot noise and wait a few seconds to give harddisks the chance
# to really flush their buffers before power goes down.
#echo -en "\x07"
sleep 2
echo $message
#echo -en "\x07"
exec $command -d -f

Slaap lekker!

Gebruik het nice-commando!

Met het nice-commando kun je applicaties met een lagere of hogere (alleen root) prioriteit starten. Dit is buitengewoon handig voor zware processen die gedaan moeten worden naast het gewone interactieve gebruik van de computer.

Een programma met een lage prioriteit loopt gewoon op volle snelheid, totdat een andere applicatie tijd vraagt. Je merkt dus niets van bijvoorbeeld het compileren van de kernel of het uitpakken van een honderden megabytes groot archief als je het met een lage prioriteit doet. Met:

nice -n 19 make all | mail wilbert -s 'uitvoer van make' &

kun je een groot compileer proces met de allerlaagste prioriteit starten, en een mail krijgen als het klaar is. De prioriteit is standaard 0 en loopt van -20 (zeer hoog) tot 19 (laagste prioriteit). In plaats van nice -n 19 kan je ook gewoon doen: nice -19 (en dit is dus niet -19 maar prioriteit 19).

Een programma als xstarfish, dat prachtige achtergrond plaatjes berekent is ook een goede kandidaat om met nice gestart te worden.

Doe meer met less!

Doe eens:

less willekeurig-pakketje-1.2.3-1.i386.rpm

Wellicht toont less netjes een beschrijving en filelist van het RPM pakket! Hoe kan dat, en, als dat niet werkt, hoe krijg ik dat voor elkaar?

Wel, less (een krachtiger versie van more) kijkt naar de omgevingsvariabele LESSOPEN. Hierin kan de naam van een script staan dat moet draaien om de input die aan less gegeven wordt voor te bewerken.

In mijn (SuSE-6.4) systeem zijn betreffende less de volgende omgevingsvariabelen gedefiniėerd:

wilbert@nutnix:~ > env|grep LESS
LESSKEY=/etc/lesskey.bin
LESSOPEN=|lesspipe.sh %s
LESS=-M -S -I
LESSCHARSET=latin1
wilbert@nutnix:~ >

We zien dat LESSOPEN de waarde "|lesspipe.sh" heeft. Bekijken we dat programmaatje (/usr/bin/lesspipe.sh):

#!/bin/sh
# Preprocessor for 'less'.
# Use with environment variable:  LESSOPEN="|lesspipe.sh %s"

lesspipe() {
  case "$1" in
    *.tar) tar tvvf $1 2>/dev/null ;;
    *.t[ag]z|*.tar.gz|*.tar.[zZ]) tar tzvvf $1 2>/dev/null ;;
    *.tar.bz2) tar tIvvf $1 2>/dev/null ;;
    *.bz2) bzip2 -dc $1 2>/dev/null ;;
    *.zip) unzip -l $1 2>/dev/null ;;
    *.[1-9n]|*.man) [ "$(file -L $1|cut -d ' ' -f 2)" = "troff" ] && \
        groff -s -p -t -e -Tascii -mandoc $1 ;;
    *.[1-9n].gz|*.man.gz)
        [ "$(gzip -dc $1 2>/dev/null|file -|tr -s ' '|cut -d ' ' -f 3)" \
        = "troff" ] && \
        gzip -dc $1 2>/dev/null|groff -s -p -t -e -Tascii -mandoc - ;;
    *.gz|*.[zZ]) gzip -dc $1 2>/dev/null ;;
    *.[rs]pm) rpm -qilp $1 2>/dev/null ;;
    *.ms) groff -Tascii -ms $1 2>/dev/null ;;
  esac;
}

lesspipe $1
# end of shell-script lesspipe.sh

dan zien we dat hier voor allerlei bestandsformaten (beter: extensies) kan worden aangegeven welke programma's die voor less moeten openen. We zien dat:

less pakje.rpm

gelijk staat aan:

rpm -qilp pakje.rpm | less

Willen we nu ook HTML files met less kunnen lezen zonder de tags erin kunnen we in de case-lus de volgende definitie toevoegen (in /usr/bin/lesspipe.sh dus):

    *.html|*.htm) lynx -dump $1 2>/dev/null ;;

De constructie 2>/dev/null zorgt ervoor dat foutmeldingen niet zichtbaar worden. Willen we nu toch de HTML code van een document bekijken, dan doen we gewoon:

less < webpagina.html

Less weet nu niet wat voor bestand hij krijgt, en laat gewoon de inhoud zien. De omgevingsvariabele LESSOPEN kun je system-wide zetten in je /etc/profile:

LESSOPEN="|lesspipe.sh %s"
export LESSOPEN

Zie verder man less!

© 2002 Wilbert Berendsen. Deze tekst is beschikbaar onder de GNU Free Documentation License.
Eerste versie: sep 2000 - mei 2001
Laatste update: wo mei 8 09:05:58 CEST 2002