Obarvení konzole

Nebaví Vás už usplash či máte raději přehlednější start systému? Tento návod vám přetvoří nudný upslash a černobílou konzoli v elegantní start systému a krásný barevný textový režim.

Vypnutí usplash

Usplash znamená takový ten „teploměr“, který se zobrazuje při startu systému. Nyní ho vypnete, aby byl vidět textový režim, který potom budete dále zkrášlovat.

Vytvořte zálohu nastavení GRUBu příkazem:

sudo cp /etc/default/grub /etc/default/grub_zaloha

Otevřete toto nastavení Vámi oblíbeným editorem s právy roota

sudo vim /etc/default/grub

Najděte řádek s:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

A upravte ho na toto:

GRUB_CMDLINE_LINUX_DEFAULT=""

Doporučení: nastavte si také Vyšší rozlišení na konzoli.

Pokud chcete vyvolat GRUB menu při startu, tak zakomentujte řádek na:

#GRUB_HIDDEN_TIMEOUT=0

Jestliže si ale rádi spuštíte GUI sami, tak místo prázdného řetezce vložte

GRUB_CMDLINE_LINUX_DEFAULT="text"

Změny utvrdíte aktualizací grubu:

sudo update-grub

Nyní jste deaktivovali usplash.

Obarvení textových výpisů (modrá/zelená/červená)

Místo uslash se teď tedy objevuje černobílý textový výpis startu systému. Nyní si ho můžete upravit.

Nejdřív zazálohujte nastavení:

sudo cp /etc/lsb-base-logging.sh /etc/lsb-base-logging.sh_zaloha

Poté si stáhněte z Ubuntuforums.org soubor. lsb-base-logging.sh

Rozbalte a nahraďte stávající:

sudo tar xvfj lsb-base-logging.sh.tar.bz2
sudo chown root:root lsb-base-logging.sh
sudo cp lsb-base-logging.sh /etc/lsb-base-logging.sh

Obarvení Promptu ( skeletonix@Kosmik-1:~$ )

Opět nejprve zazálohujte nastavení:

cp ~/.bashrc ~/.bashrc_zaloha

A editujte nastavení:

gedit ~/.bashrc

Najděte tuta čast:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

Bash čte PS1 proměnou jako primární prompt, PS2 jako sekundarní prompt (používá se při psaní multi-line příkazů). Část mezi if a else se provádí, pokud je barevný prompt aktivován, část mezi else a fi pokud je barevný prompt neaktivní. Jak vidíte, barevný kód vypadá složitěji neboť je v něm něco jako \[\033[01;32m\]. Jedná se o ANSI kód barvy (konkrétně zelené). Naštěstí si můžeme definovat vlastní proměnné na barvy. Okopírujte kód níže a umístěte ho před if

# ANSI color codes
RS="\[\033[0m\]"    # reset
HC="\[\033[1m\]"    # hicolor
UL="\[\033[4m\]"    # underline
INV="\[\033[7m\]"   # inverse background and foreground
FBLK="\[\033[30m\]" # foreground black
FRED="\[\033[31m\]" # foreground red
FGRN="\[\033[32m\]" # foreground green
FYEL="\[\033[33m\]" # foreground yellow
FBLE="\[\033[34m\]" # foreground blue
FMAG="\[\033[35m\]" # foreground magenta
FCYN="\[\033[36m\]" # foreground cyan
FWHT="\[\033[37m\]" # foreground white
BBLK="\[\033[40m\]" # background black
BRED="\[\033[41m\]" # background red
BGRN="\[\033[42m\]" # background green
BYEL="\[\033[43m\]" # background yellow
BBLE="\[\033[44m\]" # background blue
BMAG="\[\033[45m\]" # background magenta
BCYN="\[\033[46m\]" # background cyan
BWHT="\[\033[47m\]" # background white

nyní nemusíme psát ANSI kódy barev, ale pouze proměné ($FGRN pro zelenou atd.).

Nastavení promptu, zatím bez barev

Tak jak jsem již psal, prompt nebarevný je mezi else a fi. Zakomentujte původní definici (před text dejte #) a napište:

PS1="[ ${debian_chroot:+($debian_chroot)}\u: \w ]\\$ "
PS2="> "

Sekundární prompt je jen znak >. Avšak primární je trošku složitější, obsahuje několik specialních znaků, které zastupují informace o aktualní relaci (jméno počítače, uživatele, …). Hlavní pro jistotu uvedu:

\h
    Název počítače (od začátku k první tečce).
\H
    Celý název počítače.
\j
    Počet procesů na pozadí daného shellu.
\n
    Odřádkování.
\t
    Čas ve formátu HH:MM:SS.
\A
    Čas ve formátu HH:MM.
\u
    Uživatelské jméno.
\v a \V
    Verze Bashe (4.1 a 4.1.2).
\w
    Aktuální pracovní adresář. Název domovského adresáře (např. /home/dave) je zkrácen na tildu (~).
\W
    Vrchní adresář aktuálního pracovního adresáře (jste-li v /tmp/x/y, zobrazí y).
\$
    Je-li efektivní UID rovné 0, vloží znak „#“, jinak vloží znak „$“.
\\
    Zpětné lomítko.

uplné info dostanete příkazem

man bash

jak tedy bude vypadat náš primární prompt? Nejspíš nějak takto [ zerog: ~ ]$ (v domovském adresáři) Nebádejte co znamená „${debian_chroot:+($debian_chroot)}„ není to důležité, prostě to vložte vždy před “/u“.

Nastavení promptu, konečně už barevného :-)

První věc co musíte udělat, je najít řádek #force_color_prompt=yes a odkomentovat ho (smažte #). Nyní je preferovaná větev if - else. Opět zakomentujte původní řádek (před PS1 dejte znak #) a zkopírujte následující:

PS1="$HC$FYEL[ $FBLE${debian_chroot:+($debian_chroot)}\u$FYEL: $FBLE\w $FYEL]\\$ $RS"
PS2="$HC$FYEL> $RS"

Nyní bude prompt stejný jako předtím, ale krásně barevný. Použili jsme předdefinováné barvy, takže zápis není tak složitý. Primární prompt bude vypadat tedy takto : (žlutá)[(modrá) zerog(žlutá):(modrá) ~(žlutá) ]$(reset)

A nebo poněkud tradičnější řešení uspořádání obarveného promptu nabízí script:

PS1="$HC$FYEL$FBLE${debian_chroot:+($debian_chroot)}\u$FRED@$FYEL\h$FRED:$FBLE\w $FYEL\\$ $RS"
PS2="$HC$FYEL> $RS"

Pokud chcete vidět, jak se Váš barevný prompt rýsuje, prostě jen otevřete nový bash. Pokud chcete videt sekundární prompt, napište \ na konec řádku.

Navrácení změn do původního stavu

Spusťte tyto příkazy, které obnoví zálohy:

sudo cp /etc/default/grub_zaloha /etc/default/grub
sudo cp /etc/lsb-base-logging.sh_zaloha /etc/lsb-base-logging.sh
cp ~/.bashrc_zaloha ~/.bashrc

Odkazy

Grafická úprava: Tento návod potřebuje důležité grafické a stylistické úpravy. Více...

  • Poslední úprava: 2019/02/25 18:21
  • (upraveno mimo DokuWiki)