Desktop ibrido, Gnome + Awesome

Per tutti coloro che “ma perche' dovrei fare una cosa simile?” la risposta e'… non devi. I tiled window manager mi picciono molto, sono molto vicino a come utilizzo il desktop, le finestre sovrapposte mi hanno sempre infastidito. I tiled window manager spesso sono molto minimali e certe comodita', complice la vecchiaia, sono difficili da dismettere.

In un video di MorroLinux aka Moreno Rizzoli, esponeva come integrare KDE Plasma e i3, quindi una commistione tra desktop enviroment e window manager, molto interessante. Ahime' Plasma e' troppo per la mia macchine e poi sono affezionato a Gnome. Quindi tra le ricerche e i tentativi alla fine sono giunto alla combinazione Gnome + Awesome. Awesome e' il mio tiled window manager preferito e oramai ho tutti key bindings nella testa e quindi, sempre a causa dell’eta' e della pigrizia, non mi va di cambiare, per ora. Vediamo cosa ho utilizzato e configurato.

Hardware e Distro utilizzati:

  • MacBookPro mid 2010, 4Gb RAM, CPU i5 2.4Ghz, GPU GeForce GT 330M
  • Archlinux x8664, Kernel Linux 5.9.10-arch1-1

Pacchetti essenziali

Attraverso pacman per le ditribuzioni basate su ArchLinux scaricate questi pacchetti base.

> sudo pacman -S gnome gnome-session awesome

Setup

Prima di iniziare col setup che sara' piuttosto semplice sappiate che c’e' chi ha sciptato per rendervi la vista piu' semplice ma non e' detto che faccia al caso di tutti. Nel mio ho comunque dovuto fare piccole modifiche. Come login manager inizialmente utilizzavo Slim (pacchetto slim e slim-themes) che legge il contenuto della directory usr/share/xsessions ma poi unitilizza il vostro ~/.xinitrc per l’avvio del window manager. Nel caso abbiate la stessa conf. qui di seguito la parte di .xinitrc che ho modificato:

DEFAULTSESSION=gnome-session-awesome

case "$1" in
    openbox) exec openbox-session ;;
    awesome) exec awesome ;;
    gnome-session-awesome) exec awesome-gnome ;;
    *) exec $DEFAULTSESSION ;;
esac

In pratica alla scelta della sessione desktop da utilizzare tramite xinitrc viene eseguita la sessione awesome-gnome, per la quale troverete file corrispondente all’interno di usr/share/xsessions, quindi il file awesome-gnome.desktop che a sua volta lancera' /usr/bin/awesome-gnome:

#!/bin/bash

# Register with gnome-session
test -n "$DESKTOP_AUTOSTART_ID" && {
    dbus-send --print-reply --session --dest=org.gnome.SessionManager "/org/gnome/SessionManager" org.gnome.SessionManager.RegisterClient "string:awesome-gnome" "string:$DESKTOP_AUTOSTART_ID"
}

procs=("/usr/libexec/gsd-xsettings" "gnome-flashback" "gnome-keyring-daemon -f")
procslength=${#procs[@]}

for (( i=0; i<${procslength}; i++ )); do
    ${procs[$i]} &
    pids[$i]=$!
done

sleep 3
awesome

for pid in ${pids[*]}; do
    kill $pid
done

# Logout process.
test -n "$DESKTOP_AUTOSTART_ID" && {
	dbus-send --print-reply --session --dest=org.gnome.SessionManager "/org/gnome/SessionManager" org.gnome.SessionManager.Logout "uint32:1"
}

Se invece usate gdm come login manager allora .xinitrc non verra' letto ma solo quanto presente in /usr/share/xsessions. Qui di seguito il mio file /user/share/xsessions/awesome-gnome-desktop:

[Desktop Entry]
Name=awesome GNOME
Comment=This session logs you into GNOME with awesome as the window manager
Exec=awesome-gnome
TryExec=awesome-gnome
Type=Application
DesktopNames=GNOME
X-Ubuntu-Gettext-Domain=gnome-session-3.0

Risultato

Sicuramente un ambiente di lavoro piu' comodo ma un pochino meno nerd… Non ho notato un calo delle performance, l’aspetto esteriore e' praticamente invariato ma il desktop acquisisce le utility di Gnome, per gestione dei dispositivi bluethooth, sfondi, temi, wifi, network, e tutto cio' che vi appare cliccando il tasto dx del mouse.

img

Script

-Awesomewm-Gnome

Screenshot

img