Appunti su Gentoo Linux. Vivere senza l'interfaccia grafica

Mouse e tastiera

Il layout della tastiera viene specificato in /etc/conf.d/keymaps assegnando alla variabile keymap il nome del layout desiderato. La lista dei layout si trova in /usr/share/keymaps/i386/qwerty/... Per la tastiera italiana si consiglia keymap="it". Ne esistono altre due versioni, it2 e it-ibm, ma meglio lasciarle perdere.

Il mouse può essere usato da console tramite gpm:

emerge gpm
/etc/init.d/gpm start
rc-update add gpm default

Console grafica

Per poter vedere video, immagini e quant'altro direttamente dalla console, senza avviare il server grafico X, si ha bisogno di un framebuffer virtuale. In pratica bisogna compilare un modulo del kernel che permette di creare uno "strato" che si frappone tra le applicazioni utente e la scheda grafica.

KMS (Kernel ModeSetting) è una specifica che permette al kernel del SO di modificare la risoluzione e la profondità di colore in kernel space. Inoltre questa specifica descrive un framebuffer virtuale. Nel kernel Linux KMS è ovviamente presente. Per avere il KMS è sufficiente quindi avere un driver per la vostra scheda video che lo supporti e compilare il KMS nel kernel.

Device Drivers ->
  Graphics support ->
    [*] Support for frame buffer devices  --->
        [*] Enable firmware EDID
        Console display driver support ->
            [*] Video mode handling helpers
        Frame buffer hardware drivers
        [ ] Userspace VESA VGA graphics support
        [ ] VESA VGA graphics support
        [ ] SiS/XGI display support
        ... 

Purtroppo i driver ufficiali nvidia ancora non supportano KMS. Quelli ATI e Intel sì. Se usate quindi i driver ufficiali nvidia si consiglia di usare i framebuffer generici uvesafb (Userspace VESA VGA graphics support) o vesa (VESA VGA graphics support).

fbui è un gestore di finestre per console che necessita del framebuffer. In pratica, senza il server grafico X, si ha comunque a disposizione un gestore di finestre, seppur molto semplice.

Screensaver, screenlocker e risparmio energetico per la console

Non conosco una soluzione completa che si occupa di questi tre aspetti per la console. La console ha già integrato lo screensaver e il risparmio energetico. Non c'è nulla invece che riguardi il lock dello schermo.

Come è noto il comando universale per cambiare i parametri della consolo a runtime è setterm. Ecco tutte le opzioni disponibili in setterm per regolare lo screensaver e il risparmio energetico.

[ -blank [0-60|force|poke] ]
[ -powersave [on|vsync|hsync|powerdown|off] ]
[ -powerdown [0-60] ]

Le impostazioni di default sono ...

Supponendo di voler far entrare in funzione lo screensaver dopo 3 minuti e spegnere completamente il monitor dopo 10 minuti dobbiamo usare i comandi

setterm -blank 3
...

Se vogliamo che queste impostazioni vengano applicate per ogni console ogni volta che ci logghiamo, bisogna metterle nel file...

Esistono anche dei programmi esterni come screensaver per la console. Alcuni molto belli. Il problema è che non sono ben supportati da altri programmi. Per esempio supponete di voler vedere un film in framebuffer. Il programma che usate per vedere il film probabilmente sarà capace di disabilitare solamente lo screensaver della console ma non altri.

Per quanto riguarda lo screenlocker esiste il programma vlock. Non so però come lanciarlo automaticamente dopo un certo periodo di inattività. vlock può essere usato anche in un terminale x o in una connessione ssh ecc...

Altro

Montare pennette, cd ecc... udisks. Come fare l'automount? Ascoltare musica: ? Video con framebuffer: ? Editor di testo: ?

Bash-completion

Abilitare la use flag bash-completion. Ricompilare tutto (emerge -pDvNu world). Poi installare l'ebuild bash-completion

emerge -pDvNu world
emerge -pDv bash-completion

Poi mettere la seguente riga nel file bashrc, prima degli alias

source /etc/profile.d/bash-completion.sh

Infine abilitare globalmente (o localmente se si vuole) la bash-completion per le cose più importanti:

eselect bashcomp enable --global base
eselect bashcomp enable --global gentoo

Per regolare le impostazioni dei pacchetti che supportano il bash-completion usare eselect

eselect bashcomp enable programma