Rieccoci con un nuovo episodio del nostro tutorial su BE::Shell, l’alternativa a plasma per il desktop KDE.
Oggetto di questa parte è la configurazione dell’applet GlobalMenu, uno strumento versatile utile a costruire menu e lanciatori personalizzati, oltre a fornire un accesso alla barra degli strumenti delle applicazioni in Qt direttamente dai pannelli.
Per esportare la barra dei menu delle finestre è necessario usare un engine che supporti XBar – il plasmoide mutuato da BE::Shell – ovvero Bespin o Qtcurve.

Per aggiungere il GlobalMenu a BE::Shell editiamo la nostra configurazione aggiungendolo alla voce applets per il pannello prescelto, es:
[TopPanel]
Applets=Start,GlobalMenu,NowPlaying,Clock
Nota: Le voci contenute nelle parentesi graffe riferite a pannelli o applets possono sfruttare ID, scorciatoia utile quando si utilizzano più applet dello stesso tipo, la configurazione si occupa di riconoscere l’oggetto alla riga “Type= “, dove l’utente deve dichiarare il tipo standard. Nell’esempio di qui sopra la lista “Applets= ” del pannello richiama alcuni ID specificati per i diversi oggetti.

Oppure, orientato verticalmente:

[CentralLeftPanel]
Applets=VGlobalMenu

Per generare dei menu creiamo un file di testo chiamato “MainMenu.xml” in ~/.kde/share/apps/be.shell/ ed apriamolo col nostro editor di testi preferito. La struttura del file è molto semplice, riporto qui un breve esempio dal wiki:

<menubar>
<menu menu=”MainMenu/kate”/>
<menu label=”Desktop”> <action label=”XTerm” exec=”xterm”/>
 <action label=”Toggle FX” dbus=”session;org.kde.kwin;/KWin;org.kde.KWin;toggleCompositing”/>
 <separator/>
<action label=”Run Conky” exec=”conky -c $HOME/.conky/mytop.conf”/>
 <action label=”Quit Conky” exec=”killall conky”/>
 </menu>
<action label=”Edit Menu” exec=”kwrite $HOME/.kde/share/apps/be.shell/MainMenu.xml”/>
</menubar>

Ogni menu inizia con <menubar> e si chiude con </menubar>. La seconda riga riporta il nome del file di configurazione che GlobalMenu leggerà. Le voci che seguono sono istruzioni per creare menu a comparsa o eseguire azioni. Es.
<menu label=”Accessori”>
<action label=”konsole” icon=”konsole” exec=”konsole” />
<separator/>
<action label=”kate” icon=”kate” exec=”kate”/>
</menu>
Con queste voci inseriamo un menu chiamato “Accessori”, che contiene i testi cliccabili konsole e kate (che eseguono i rispettivi comandi), con un separatore tra i due. Le azioni o i separatori devono essere chiusi da uno slash “ / ”.
Da notare ancora icon= “ “, un link al tema icone in uso, che nel mio caso contiene i file konsole.png e kate.png, Specificare l’icona per un menu o un’azione è facoltativo, viceversa l’attributo label è obbligatorio per visualizzare il testo cliccabile.
All’ultima riga l’istruzione </menu> indica il termine del menu “Accessori”.
Semplice vero?
Passiamo ad un uso più avanzato:
<menubar>
<menu menu=”MainMenu/kate”/>
<menu menu=”windowlist”/>
<menu label=”Arch”>
<menu label=”Pacman”>
<action label=”Aggiorna pacchetti e mirror” exec=”konsole –hold -e sudo pacman -Syu”/>
<action label=”Refresh mirror” exec=”konsole -e sudo pacman -Syy”/>
</menu>
<separator/>
<menu label=”Risorse”>
<action label=”Arch-Wiki” exec=”firefox https://wiki.archlinux.org/index.php/Main_Page_(Italiano)”/>
<action label=”AUR” exec=”firefox http://aur.archlinux.org/”/>
</menu>
</menu>
<action label=”Root” icon=”folder-red” exec=”kdesu dolphin / “/>
<action label=”Configura menu” icon=”kate” exec=”kate $HOME/.kde/share/apps/be.shell/MainMenu.xml”/>
<menu menu=”BE::Config”/>
</menubar>
Questo esempio introduce delle funzionalità di GlobalMenu, alcune esclusive (non funzionano su XBar) come menu=”windowlist” o menu=”BE::Config”, entrambi comandi generati dalla shell e da concludere con uno “/”. Come è intuibile windowlist genera un menu che elenca le finestre attive negli spazi di lavoro, BE::Config invece è il menu a comparsa sul desktop.
Un’altra particolarità è la possibilità di aprire submenu all’interno di un menu (o submenu in submenu e così via..), come è visibile alla voce “Arch”, contenente i menu “Pacman” e “Risorse”.
Nota: Un altro sistema per generare submenu è linkare un altro file di configurazione xml, nella stessa directory, es. SubMenu.xml : <menu menu=”SubMenu”/> .
L’ennesimo modo per sfruttare i menu è tramite i bottoni o i  label specificandolo nella configurazione:
[Start]
Icon=/home/hombre/.kde4/share/icons/kAwOken/clear/128×128/start-here/start-here-arch1.png
Menu=submenu
Mode=0
Type=Button

Per chi usa Chakra si possono creare avviatori per i bundles con :
<action label=”Bundle” exec=”cinstall -b $HOME/.cinstall/repo/NomeBundle.cb”/>
Ricordandosi di editare il comando per ogni aggiornamento al bundle.
Per gli script può risultare più comodo spostarli prima in /usr/bin/ con privilegi di root:

sudo mv /percorsoalloscript/script /usr/bin/

e attribuirgli i permessi necessari:

chmod +x /usr/bin/script

Per poi inserirli come azione:
<action label=”script” exec=”script”/>
Per costruire menu per il plasmoide XBar invece, creare il file MainMenu.xml nella directory ~/.kde/share/apps/XBar/ (se manca la cartella, createla).
Infine, per chi desidera una base da cui cominciare a scrivere qui trova la mia configurazione, da salvare in ~/.kde/share/apps/be.shell/ o ~/.kde4/share/apps/be.shell/ a seconda della distro. Il tema di icone di riferimento è Rosa.
Articoli precedenti:
No more articles