Doplňkové nastavení GDM

Tato stránka se zabývá doplňkovým nastavením GDM pro multiseat. Nevíte, co multiseat je? Tyto doplňková nastavení nejsou pro běh multiseatu nezbytně nutné, ale mohou zpříjemnit jeho používání. Takže, najdete zde:

Odstranění položky ‚Vypnout‘

Protože v GNOME menu je položka Vypnout počítač velmi blízko položky Odhlásit se, tak je velmi vhodné zcela položku Vypnout (a Restartovat) zcela z menu odstranit (občas se stávalo, že se někdo „překliknul“ a místo odhlášení – k velké radosti uživatele na druhém místě – počítač vypnul). Toho se docílí jednak editací registrů GNOME, ale především vypnutím přímo v GDM:

[daemon]
HaltCommand=
SuspendCommand=

(když příkazy pro vypnutí neexistují, těžko pomocí nich počítač vypneme).

Nicméně, je vhodné nějak vypnutí umožnit. Z tohoto důvodu stačí přidat vypnutí jako vlastní akci. Také jsem přidal akce pro přepínání mezi single a dualseatem (popř. můžete doplnit podrobnější popisky pomocí voleb CustomCommandTooltip a CustomCommandText):

[customcommand]
CustomCommandLabel0=Power off
CustomCommand0=/sbin/poweroff

CustomCommandLabel1=Runlevel 3
CustomCommand1=/sbin/telinit 3

CustomCommandLabel2=Single-seat
CustomCommand2=/usr/local/sbin/mseat-switcher single

CustomCommandLabel3=Multi-seat
CustomCommand3=/usr/local/sbin/mseat-switcher multi

Přepínání mezi multi- a single-seatem

Ačkoliv cílem bylo umožnit sdílet počítač více lidem, občas nastane situace, kdy je lepší nechat počítač jen pro jednoho (náročné aplikace nebo potřebujeme rozšířenou pracovní plochu přes více monitorů). Ruční zásahy do konfiguračních souborů ale vždy zavání určitým nebezpečím, takže jsem napsal velmi jednoduchý skript, který příslušně změní nastavení GDM, aby se současným nastavením stal single/multi seat.

Jediné, co je potřeba udělat, je nad každý řádek, který budeme chtít měnit (změna = za/od-komentování) vložit zakomentovaný identifikátor, který pak předáme skriptu jako parametr.

Upozornění: skript využívá GNU rozšíření sedu pro editaci souboru na místě (parametr -i).

Část z /etc/gdm/custom­.conf:

[servers]
...

#mseat:single
#0=Single

#mseat:multi
0=Std
#mseat:multi
1=Seat0
#mseat:multi
2=Seat1

Skript /usr/local/sbin/mse­at-switcher:

#!/bin/sh

# script to switch between single seat (normal setup) and
# multiseat setup
# usage: $0 single|multi
#


config="/etc/gdm/custom.conf"
postcmd="/usr/sbin/gdm-safe-restart"

mode="$1";

[ "$mode" != "single" ] && [ "$mode" != "multi" ] && exit 1;




[ -w "$config" ] || exit 2;

if [ "$mode" = "single" ]; then
    sed -e '/^#mseat:multi[ \t]*$/{N;s/\n\([^#]\)/\n#\1/}' -e '/^#mseat:single[ \t]*$/{N;s/\n[ \t]*#[#]*/\n/}' -i "$config";
fi
if [ "$mode" = "multi" ]; then
    sed -e '/^#mseat:single[ \t]*$/{N;s/\n\([^#]\)/\n#\1/}' -e '/^#mseat:multi[ \t]*$/{N;s/\n[ \t]*#[#]*/\n/}' -i "$config";
fi

$postcmd

exit 0

Šetřič obrazovky a obrázek na pozadí

Protože nechci, aby obrazovka GDM byla statická, rozhodl jsem se přidat spuštění šetřiče. Bohužel, přineslo to další problém – pokud totiž v GDM běží program na pozadí (tím nemusí být jen šetřič, ale třeba i Conky), tak nelze použít klasická témata pro GDM a lze pouze vybrat barevné schema. To je ale dost nudné, takže jsem napsal skript, který nejdříve nastaví obrázek na pozadí a teprve poté spustí šetřič.

Do /etc/gdm/custom­.conf je nutné přidat:

[greeter]
BackgroundType=0
BackgroundColor=#b1b1b1
PositionY=100
PositionX=100
BackgroundProgram=/var/gdm/greeter.sh
BackgroundProgramInitialDelay=0
BackgroundProgramRestartDelay=0
RestartBackgroundProgram=true
SetPosition=true

Tohle pochopitelně není nic zvláštního – jediný drobný problém je s vlastním spuštěním šetřiče, protože běží pod uživatelem gdm a musí být pro něj nakonfigurován. K tomu je ale nutné nejdříve vůbec přihlašování uživatele gdm povolit. Po nastavení doporučuji možnost přihlášení jako gdm opět vypnout.

Skript navíc rozpozná, na které obrazovce běží a podle toho zobrazí obrázek na pozadí: díky tomu mohu použít dva navazující obrázky (původně širokoúhlé fotografie).

#!/bin/sh

case $DISPLAY in
    :1) bg="/pub/images/bgleft.jpg";;
    :2) bg="/pub/images/bgright.jpg";;
    *) bg="/pub/images/bg.jpg";;
esac
hsetroot -center "$bg" &

/usr/bin/xscreensaver

Stránka byla naposledy změněna 27. dubna 2008 v 19.49

Vytvořil Vojtěch HorkýXHTML & CSS platné •