Archivio

Posts Tagged ‘window manager’

jwm arandr cambiare la risoluzione dello schermo in modo permanente

jwm joewing.net | JWM (Joe’s Window Manager)  è un window manager leggero per X11 window system.  Utilizzato fra l’altro anche nella distribuzione linux Puppy.   La gestione della risoluzione video è demandata a programmi come xrandr, aranrd o lxrandr …. Questi applicativi consentono agevolemente di impostare la risoluzione dello schermo desiderata. L’efficace GUI Aranrd è presente in molte distro. In ubuntu ad esempio le impostazioni definite con vengono in un file .sh nella directory .screenlayout.

arandr jwm

arandr change jwm screen resolution

Di seguito un esempio del file .sh generato da arandr

#!/bin/sh
xrandr --output VGA-0 --off --output DVI-0 --off --output HDMI-0 --mode 1280x1024 --pos 0x0 --rotate normal

lo scripts avviato xrandr che imposta così l’output:
– VGA off
– DVI off
– HDMI modalità 1280×1024.

Avviando il file .sh da terminale oppure utilizzano un file manager la risoluzione dello schermo viene impostata come indicato.

se il file viene salvato come sr-default.sh da terminale può essere eseguito con

~/.screenlayout/sr-default.sh &

Rendere permanente la risoluzione in Jwm

Per rendere permanente la risoluzione dello schermo in jwm
si può intervenire sul file di configurazione di jwm presente in /etc/jwm/system.jwmrc.
Inserire i tags   <StartupCommand>   ….     </StartupCommand>  all’interno dei tags  <JWM>  ….  </JWM>  . La sintassi a tag ricorda html.

Quindi riportando il comando per impostare la risoluzione dello schermo come nell’esempio seguente.

<JWM>

    ...
    ...
    <StartupCommand>
         xrandr --output VGA-0 --off --output DVI-0 --off --output \
HDMI-0 --mode 1280x1024 --pos 0x0 --rotate normal &

         netsurf &

    </StartupCommand>

</JWM>

All’interno dei tag si possono inserire eventuali ulteriori applicazioni che si intendono avviare in fase di startup in questo caso netsurf.

Elencare le risoluzioni disponibili xrandr

Per conoscere le risoluzioni disponibili si può utilizzare anche semplicemente da console il comando xrandr

Digitando da console semplicemente xrandr

 
$ xrandr 
Screen 0: minimum 320 x 200, current 800 x 600, maximum 16384 x 16384
VGA-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected 800x600+0+0 (normal left inverted right x axis y axis) 673mm x$
   2560x1080      60.0 +
   1920x1200      60.0
   1920x1080      60.0
   1600x1200      60.0
   1680x1050      59.9
   1280x1024      75.0     60.0
   1440x900       75.0     59.9
   1280x720       60.0
   1024x768       75.1     60.0
   800x600        75.0*    60.3
   640x480        75.0     72.8     66.7     60.0
   720x400        70.1
DVI-0 disconnected (normal left inverted right x axis y axis)

versione jwm

 
jwm --version
JWM vsvn-579 by Joe Wingbermuehle
compiled options: confirm fribidi icons png shape xft xinerama xpm xrender 
system configuration: /etc/jwm/system.jwmrc
usage: jwm [ options ]

Risorse:

Annunci

Awesome layout a 3 colonne – windows manager linux

Aw_64    Obiettivo: rendere disponibile in awesome v 3.4.14 un layout a 3 colonne .

awesome 3 columns layout

awesome 3 columns layout

Awesome è un window manager in lua pulito, essenziale e molto veloce.  E’ indirizzato a utenti non proprio alle prime armi spesso etichettati  Power user.  Consente una efficace organizzazione dello spazio video. Tra i suoi pregi c’è sicuramente l’alta configurabilità  che consente un elevato controllo dell’ambiente grafico. In un sistema a doppio monitor mette a disposizone di dase default 9+9  tags (“workspaces”) indipendenti.
Se si utilizzano schermi wide ad esempio 2056×1090 (21:9) può essere opportuno disporre di un layout che organizzi le finestre su tre colonne.

Awesome dispone di base dei seguenti layouts

awful.layout.suit.floating,
awful.layout.suit.tile,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
awful.layout.suit.fair,
awful.layout.suit.fair.horizontal,
awful.layout.suit.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier

Il layout spiral francamente non è tra i più utili pertanto può far comodo modificarlo per disporre di un layout a 3 colonne appunto.
In Ubuntu 13.04 il codice che controlla il layout spiral è spiral.lua e si trova in

/usr/share/awesome/lib/awful/layout/suit/spiral/spiral.lua

1) Facciamo una copia del file originale
2) Aggiungiamo la funzione myspyral sotto la funzione spiral ricavata proprio dalla function spiral e riportata di seguito

-- maurizio add
local function myspiral(p, spiral)
    local wa = p.workarea
    local cls = p.clients
    local n = #cls

    for k, c in ipairs(cls) do
        if k  3  then
                wa.height = wa.height / 2
            elseif  k % 3== 1 then
                wa.width = wa.width / 3
            end
        end

	 if k % 4 == 0 and spiral then
            wa.x = wa.x - wa.width
        elseif k % 2 == 0 or k % 3 == 0 or
            (k % 4 == 3 and k < n and spiral) then
            wa.x = wa.x + wa.width
        end

        c:geometry(wa)
    end
end
--end add

3) commentiamo la chiamata alla funzione  spiral e la sostituiamo con una chiamata a myspiral

--- Spiral layout
name = "spiral"
function arrange(p)
    -- return spiral(p, true)
    return  myspiral(p, true)
end

Di seguito il codice risultante finale


---------------------------------------------------------------------------
-- @author Uli Schlachter <psychon@znc.in>
-- @copyright 2009 Uli Schlachter
-- @copyright 2008 Julien Danjou
-- @release v3.4.14
---------------------------------------------------------------------------

-- Grab environment we need
local ipairs = ipairs

module("awful.layout.suit.spiral")

local function spiral(p, spiral)
    local wa = p.workarea
    local cls = p.clients
    local n = #cls

    for k, c in ipairs(cls) do        
        if k < n then
            if k % 2 == 0 then
                wa.height = wa.height / 2
            else
                wa.width = wa.width / 2
            end
        end

        if k % 4 == 0 and spiral then
            wa.x = wa.x - wa.width
        elseif k % 2 == 0 or
            (k % 4 == 3 and k < n and spiral) then
            wa.x = wa.x + wa.width
        end

        if k % 4 == 1 and k ~= 1 and spiral then
            wa.y = wa.y - wa.height
        elseif k % 2 == 1 and k ~= 1 or
            (k % 4 == 0 and k < n and spiral) then
            wa.y = wa.y + wa.height
        end

        c:geometry(wa)
    end
end

-- maurizio add
local function myspiral(p, spiral)
    local wa = p.workarea
    local cls = p.clients
    local n = #cls

    for k, c in ipairs(cls) do
        if k  3  then
                wa.height = wa.height / 2
            elseif  k % 3== 1 then
                wa.width = wa.width / 3
            end
        end

	 if k % 4 == 0 and spiral then
            wa.x = wa.x - wa.width
        elseif k % 2 == 0 or k % 3 == 0 or
            (k % 4 == 3 and k < n and spiral) then
            wa.x = wa.x + wa.width
        end

        c:geometry(wa)
    end
end
-- end add

--- Dwindle layout
dwindle = {}
dwindle.name = "dwindle"
function dwindle.arrange(p)
    return spiral(p, false)
end

--- Spiral layout
name = "spiral"
function arrange(p)
    -- return spiral(p, true)
    return  myspiral(p, true)
end

-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80

Risorse:

Window Manager per linux ubuntu debian

ottobre 17, 2012 1 commento

Una delle componenti software inevitabilmente più utilizzata da un utente di sistemi linux è il window manager o gestore di finestra. Questo fondamentale componente dell’interfaccia grafica gestisce il posizionamento e l’aspetto delle finestre nel desktop manger. Nel mondo linux sono veramente molti circa 200 i window managers disponibili alcuni hanno caratteristiche tali che, pur non raggiungendo il livello di un desktop manager, sicuramente possono rappresentare degli adeguati ambienti desktop.
Ovviamente ogni Desktop Manager ha una proprio window manager ad esempio metacity è utilizzato Gnome, kwin in KDE, openbox in LXDE, xfwm in Xfce.

Determinare il Window Manager in uso

Qualora il window manager sia compatibile con le specifice EWMH o NetWM, X window standard per Window Manager, un modo efficace per determinare il window manager in uso è utilizzare il comando wmctrl.

wmctrl -m

per installare wmctrl

sudo apt-get install wmctrl

wmctrl fa anche molto altro ecco solo un esempio: come spostarsi sul desktop con la finestra gnumeric
wmctrl -i -a $(wmctrl -l | grep gnumeric | awk ‘{ print $1 }‘)

Ogni distribuzione utilizza propri comandi per evidenziare il window manager ( WM ) o i WMs disponibili.
In debian/ubuntu si può usare update-alternative –list x-window-manager per elencare i window manager disponibili

update-alternatives --list x-window-manager 
/usr/bin/awesome
/usr/bin/enlightenment_start
/usr/bin/i3
/usr/bin/openbox
/usr/bin/startfluxbox

Conseguentemente per determinare il window manager in uso

 
pgrep -l $(update-alternatives --list x-window-manager | cut -d "/" -f 4 | tr '\n' '|'| sed 's/|$/\n/g')

Sempre per elencare i WMs installati

grep -l "section=.Window Managers." /usr/share/menu/*

per elencare non solo i WMs ma  le Xsessions installate e avviabili

grep "^Exec" /usr/share/xsessions/*

Cambiare default x-session-manager ( desktop manager )

Impostare un diverso x-session-manager /desktop manager )  usando alternatives

sudo update-alternatives --config x-session-manager

I window Manager possono essere classificati a seconda di come vengono generate le finestre in   stacking window manager,  compositing window manager , tiling window manager .

Al momento i miei WM preferiti sono

awesome dual monitor screenshoot

awesome dual monitor screenshot

awesome   (tiling) [ in C e Lua ]  un window manager per utenti non alle prima armi che in certi frangeti non fa rimpiangere assolutamente un desktop manager. Pulito ed essenziale con doppio monitor presenta di default 9 + 9 “schermi virtuali” indipendenti. Altamente configurabile è il massimo quando si devono gestire un numero elevato di finestre consentendo la loro organizzazione in modalità tile, libera …

openbox  (stacking) [ in C] il WM di LXDE pulito, essenziale,  stabile ed efficace.

enlightenment  (E17) più di un window manager di fatto usato come sostituto di un desktop manager. Indubbiamente elegante è adatto anche ai cellulari – il motto beauty at your fingertips

FVWM e IceWM  rappresentano  la storia dei WM in alcune situazioni possono risultare ancora utili la mia preferenza va al primo.

Lista dei principali window manager  che supportano completamente  o parzialmente Extended Window Manager Hints EWMH o NetWM:  X window standard per window manager.

Altri post 

Risorse:

Cambiare default Desktop Manager e cambiare Windows Managers di default

Come promemoria sintetizzo ed esemplifico i comandi per cambiare, da linea di comando, il desktop manager di default e il windows manager di default in linux ubuntu debian e distribuzioni derivate .

Cambiare Desktop Manager

Per modificare il Desktop Manager di default utilizzare il comando update-alternatives:

sudo update-alternatives --config x-session-manager
:~$ sudo update-alternatives --config x-session-manager
[sudo] password for maurizio: 
There are 4 choices for the alternative x-session-manager (providing /usr/bin/x-session-manager).

  Selection    Path                      Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gnome-session     50        auto mode
  1            /usr/bin/gnome-session     50        manual mode
  2            /usr/bin/lxsession         49        manual mode
  3            /usr/bin/openbox-session   40        manual mode
  4            /usr/bin/startlxde         50        manual mode

Press enter to keep the current choice[*], or type selection number: 4
update-alternatives: using /usr/bin/startlxde to provide /usr/bin/x-session-manager (x-session-manager) in manual mode.

Cambiare Window Manager

Per cambiare il windows manager di default da linea di comando utilizzare :

:~$ sudo update-alternatives --config x-window-manager
There are 3 choices for the alternative x-window-manager (providing /usr/bin/x-window-manager).

  Selection    Path               Priority   Status
------------------------------------------------------------
* 0            /usr/bin/openbox    90        auto mode
  1            /usr/bin/awesome    20        manual mode
  2            /usr/bin/metacity   60        manual mode
  3            /usr/bin/openbox    90        manual mode

Press enter to keep the current choice[*], or type selection number:

Visualizzare i desktop managers

Per visualizzare i desktop manager è possibile utilizzare diversi comandi in primis lo stesso update-alternatives con l’opzione –list

sudo update-alternatives --list x-session-manager
:~$ sudo update-alternatives --list x-session-manager
/usr/bin/gnome-session
/usr/bin/lxsession
/usr/bin/openbox-session
/usr/bin/startlxde

per elencare i window manager i disponibili per il sistema

grep "^Exec" /usr/share/xsessions/*

operativamente:

 grep "^Exec" /usr/share/xsessions/*
/usr/share/xsessions/awesome.desktop:Exec=awesome
/usr/share/xsessions/gnome.desktop:Exec=gnome-session --session=ubuntu
/usr/share/xsessions/gnome-shell.desktop:Exec=gnome-session --session=gnome
/usr/share/xsessions/LXDE.desktop:Exec=/usr/bin/startlxde
/usr/share/xsessions/openbox.desktop:Exec=/usr/bin/openbox-session
/usr/share/xsessions/openbox-gnome.desktop:Exec=/usr/bin/openbox-gnome-session
/usr/share/xsessions/openbox-kde.desktop:Exec=/usr/bin/openbox-kde-session
/usr/share/xsessions/ubuntu-2d.desktop:Exec=gnome-session --session=ubuntu-2d
/usr/share/xsessions/ubuntu.desktop:Exec=gnome-session --session=ubuntu
/usr/share/xsessions/xsession.desktop:Exec=default
/usr/share/xsessions/xterm.desktop:Exec=xterm

Visualizzare i window manager in ubuntu/debian

Per visualizzare i window manager disponibili è possibile utilizzare anche il questo caso lo stesso update-aternatives con l’opzione list

update-alternatives --list x-window-manager
:~$ sudo update-alternatives --list x-window-manager
/usr/bin/awesome
/usr/bin/metacity
/usr/bin/openbox

oppure

grep -l "section=.Window Managers." /usr/share/menu/*

Login Manager Grafico

I programmi per il login grafico più diffusi:
gdm per gnome
xdm per X desktop Manager
kdm per KDE desktop Manager
lightdm x LXDE …

Per impostare l’avvio del login manager grafico preferito utilizzare il comando

sudo sysv-rc-conf

selezionare i livelli 2,3,4,5
e disabiliare il precedente login manager attivo

Risorse nel blog:

Window manager Awesome layouts e tags

Aw_64   Awesome è un window manager in lua pulito ed essenziale. Organizza efficacemente lo spazio video ed è altamente configurabile.  Su doppio monitor mette a disposizone di base default 9+9 “workspaces”  indipendenti anche se il termine corretto è tags .  L’uso dei tags consente di porre i clients ( finestre ) su diversi tags e di visualizzare tags diversi allo stesso tempo.

Per personalizzare l’ambiente di lavoro può risultare opportuno assegnare all’avvio a ciscuno dei 9 tags “schermi virtuali” un layout predefinito.

Per fare questo si agisce sul file di configurazione di awesome  rc.lua. In ubuntu 12.xx il file si trova in

/etc/xdg/awesome/rc.lua

La versione base del file di configurazione genera 9 tags “schermi virtuali” e a ciascuno assegna il layout floating indice n.1. Grazie al seguente codice.

-- {{{ Tags
-- Define a tag table which hold all screen tags.
tags = {}
for s = 1, screen.count() do
     -- Each screen has its own tag table.
     tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])
end
-- }}}

Avvertenza Poichè awesome è molto sensibile agli errori, prima di riavviare awesome con la combinazione [Mod4]  + [R]  ( [Mod4]  è anche conosciuto con [Windows logo] ) conviene  fare un check del file rc.lua salvato con awesome -k.

Modificare nome dei tabs e assegnare layout

E’ possibile modificare sia il nome dei tags che il layout di ciascuno modificando le precedenti righe nel modo seguente

-- {{{ Tags
-- Define a tag table which hold all screen tags.
 tags = {
   names  = { "Aw",2, "EH", "www",  5, "Net", 7, "F", 9 },
   layout = { layouts[9], layouts[2], layouts[1], layouts[5], layouts[12],
              layouts[10], layouts[9], layouts[9], layouts[10]
 }}
 for s = 1, screen.count() do
     -- Each screen has its own tag table.
     tags[s] = awful.tag(tags.names, s, tags.layout)
 end
-- }}}

Grazie a names è possbile assegnare un nome  a ciscun tags mentre layout  consente di assegnare uno specifico layout a ciscun tags

Normalente è possibile modificare il layout di un tab cliccando in altro a destra sull’icona che evidenzia il tipo di  layout attivo oppure utilizzando i tasti  [Mod4] + [space] o [Mod4] + [barra spazio]  + [Shift] .

Awesome offre alcune combinazioni di tasti per agire sui tags e sui clients ( finestre)  ad esempio

  • Selezionare uno specifico dei 9 tags con  Mod4  + 1-9  (numero tag )
  • Spostare la finestra attiva in un tag specifico con  Mod 4  + Shift + 1-9 ( numero tag destinazione)
  • Riunire  le finestre presenti in tags diversi (banalizzando “workspaces”)   Mod4  + Control + 1-9.    è possibile selezionare e quindi  riunire  tutti i 9 screen

Combinazione di tasti per selezionare uno specifico layout

Nella confirazione di base manca una combinazione di tasti che consenta di applicare uno specifico layout al tag attivo. Del resto considerato che il mouse non risulta decisivo

Per risolvere questa esigenza si possono inserire nella sezione  Key bindings

— {{{ Key bindings

righe del tipo seguente  che assegnano alle combinazioni [Control] + [Mod1] + [1-9] ]  l’avviazione di uno specifico layout grazie alla funzione layout.set()   

awful.key({ "Control", "Mod1" }, "1", function () awful.layout.set(layouts[1]) end),
 awful.key({ "Control", "Mod1" }, "2", function () awful.layout.set(layouts[2]) end),
...
 awful.key({ "Control", "Mod1" }, "9", function () awful.layout.set(layouts[9]) end),

Screenshot del window manager awesome

awesome dual monitor screenshoot

awesome dual monitor screenshot

Awesome dispone di base dei seguenti layout

awful.layout.suit.floating,
awful.layout.suit.tile,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
awful.layout.suit.fair,
awful.layout.suit.fair.horizontal,
awful.layout.suit.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier

Risorse:

Determinare il window manager e il desktop manager in uso in ubuntu debian linux

Ogni distribuzione utilizza propri comandi per evidenziare il window manager ( WM ) in uso o i WMs disponibili.

Comunque se il window manager segue lo standard NetWM – EWMH (Extended Window Manager Hints), X window standard per window manager, è possibile utilizzare wmctrl un comando utilizzato per controllare finestre in EWMH. wmctrl può essere usato non solo per per ottenere informazioni sul WM usato ma per molte altre funzioni consente lo switch e il ridimesnionamento dei desktops, di passare la finestra a pieno schermo. E’ possibile attivare, chiudere, muovere e ridimensionare le finestre.

Per determinare il window manager in uso

wmctrl -m

installare wmctrl in ubuntu / debian

apt-get install wmctrl

a proposito di wmctrl è possibile elencare le finestre attive con

wmctrl -l

Per visualizzare i desktop managers e i window managers disponibili si può provare ad utilizzare il comando seguente

:~$ grep "^Exec" /usr/share/xsessions/*
/usr/share/xsessions/awesome.desktop:Exec=awesome
/usr/share/xsessions/enlightenment.desktop:Exec=/usr/bin/enlightenment_start
/usr/share/xsessions/fluxbox.desktop:Exec=/usr/bin/startfluxbox
/usr/share/xsessions/i3.desktop:Exec=i3
/usr/share/xsessions/Lubuntu.desktop:Exec=/usr/bin/startlubuntu
/usr/share/xsessions/Lubuntu-Netbook.desktop:Exec=/usr/bin/startlubuntu-netbook
/usr/share/xsessions/openbox.desktop:Exec=/usr/bin/openbox-session
/usr/share/xsessions/openbox-gnome.desktop:Exec=/usr/bin/openbox-gnome-session
/usr/share/xsessions/openbox-kde.desktop:Exec=/usr/bin/openbox-kde-session

per estrarre il solo elenco degli eseguibili

grep "^Exec" /usr/share/xsessions/* |  cut -d "=" -f 2 
awesome
/usr/bin/enlightenment_start
/usr/bin/startfluxbox
i3
/usr/bin/startlubuntu
/usr/bin/startlubuntu-netbook
/usr/bin/openbox-session
/usr/bin/openbox-gnome-session
/usr/bin/openbox-kde-session

In debian/ubuntu si può usare update-alternative –list x-window-manager per elencare il window manager in uso

 
pgrep -l $(update-alternatives --list x-window-manager | cut -d "/" -f 4 | tr '\n' '|'| sed 's/|$/\n/g')

Ogni distribuzione utilizza propri comandi per evidenziare il window manager ( WM ) o i WMs disponibili. In debian/ubuntu si può usare update-alternative –list x-window-manager per elencare i window manager disponibili

update-alternatives --list x-window-manager 
/usr/bin/awesome
/usr/bin/i3
/usr/bin/openbox

oppure

grep -l "section=.Window Managers." /usr/share/menu/*

Per determinare il window manager in uso si possono anche analizzare i processi attivi ricercando tra questi il possibile WM:

pgrep -l "compiz|metacity|mutter|kwin|sawfish|fluxbox|openbox|xmonad"

visualizzare le proprietà di una window

per visualizzare le proprietà di una finestra usare il comando xprop

xprop

e poi selezionare con il mouse la finestra. Una modalità di azione simile a xkill.
Di seguito il risultato a terminale.

:~$ xprop
_NET_WM_ICON_GEOMETRY(CARDINAL) = 2278, 30, 0, 3146195344
WM_STATE(WM_STATE):
		window state: Normal
		icon window: 0x0
_NET_WM_DESKTOP(CARDINAL) = 4294967295
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_MOVE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW, _OB_WM_ACTION_UNDECORATE
_KDE_NET_WM_FRAME_STRUT(CARDINAL) = 1, 1, 26, 4
_NET_FRAME_EXTENTS(CARDINAL) = 1, 1, 26, 4
_NET_WM_STATE(ATOM) = _NET_WM_STATE_ABOVE
_NET_WM_ICON(CARDINAL) = 	Icon (48 x 48):

	  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒  
	  ▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒  
	  ▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒  
	  ▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒  
	  ▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒  
	  ▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒  
	  ▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒  
	  ▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒  
	  ▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒  
	  ▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒  
	  ▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒  
	  ▒░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒  
	  ▒                                          ▒  
	  ░                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ▒                                          ▒  
	  ░                                          ▒  
	  ░                                          ▒  
	  ░                                          ░  
	  ░                                          ▒  
	  ▒                                          ▒  
	  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒  
	  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒  
	  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒  
	  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  
	     ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    

_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_TITLE(UTF8_STRING) = "xterm"
_OB_APP_CLASS(UTF8_STRING) = "XTerm"
_OB_APP_NAME(UTF8_STRING) = "xterm"
_OB_APP_ROLE(UTF8_STRING) = 
_NET_WM_VISIBLE_ICON_NAME(UTF8_STRING) = "maurizio@Lub12120: ~"
_NET_WM_VISIBLE_NAME(UTF8_STRING) = "maurizio@Lub12120: ~"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
_NET_WM_PID(CARDINAL) = 27244
WM_CLIENT_LEADER(WINDOW): window id # 0x2a00024
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "xterm", "XTerm"
WM_HINTS(WM_HINTS):
		Client accepts input or input focus: True
		Initial state is Normal State.
WM_NORMAL_HINTS(WM_SIZE_HINTS):
		program specified size: 484 by 316
		program specified minimum size: 10 by 17
		program specified resize increment: 6 by 13
		program specified base size: 4 by 4
		window gravity: NorthWest
WM_CLIENT_MACHINE(STRING) = "Lub12120"
WM_COMMAND(STRING) = { "xterm" }
WM_ICON_NAME(STRING) = "maurizio@Lub12120: ~"
WM_NAME(STRING) = "maurizio@Lub12120: ~"

Awesome modificare le combinazioni di tasti

Aw_64  Awesome è un windows manager per certi aspetti minimalista ma che consente di massimizzare lo spazio disponibilesullo schermo, permette di gestire un numero veramente elevato di finestre in modo efficace e e se si ha un po’ di pazienza offre grandi possibilità di personalizzazione. Tutte le finestre sono scontornate pertanto risulta decisivo disporre di combinazioni di tasti per avviare programmi e attività direttamente da tastiera.

awesome dual monitor screenshoot

awesome dual monitor screenshot

Per modificare le impostazioni di awesome si deve agire sul file di configurazione rc.lua.

In ubuntu 12.xx il file si trova in

/etc/xdg/awesome/rc.lua

Poichè awesome è molto sensibile agli errori conviene prima di riavviare con la combinazione( [Mod4] anche conosciuto con [Windows logo] + R ) fare un check del file rc.lua salvato con awesome -k
Nel file di confiurazione Mod4 è rappresentato dalla variabile modkey.

la sezione relativa ai key bindings combinazioni da tastiera inizia con queste righe

-- {{{ Mouse bindings
root.buttons(awful.util.table.join(
    awful.button({ }, 3, function () mymainmenu:toggle() end),
    awful.button({ }, 4, awful.tag.viewnext),
    awful.button({ }, 5, awful.tag.viewprev)
))
-- }}}

-- {{{ Key bindings
globalkeys = awful.util.table.join(
    awful.key({ modkey,           }, "Left",   awful.tag.viewprev       ),
    awful.key({ modkey,           }, "Right",  awful.tag.viewnext       ),
    ....

L’istruzione per richiamare premendo [winlogo]+[w] il menu

    awful.key({ modkey,           }, "w", function () mymainmenu:show({keygrabber=true}) end),

di seguito una combinazione di tasti personalizzata [Control]+[Escape] per richiamare il menu ma in maniera on/off

    awful.key({ "Control",    }, "Escape", function () mymainmenu:toggle() end),

Altro esempio
una combinazione di tasti [mod4]+[Shift]+s per realizzazione uno screenshot di tipo finestra con scrot e salvarlo nel file screenshot.png

    awful.key({ modkey, "Shift"  }, "s", function () awful.util.spawn("terminator" .. " " .. "--geometry=5x5  -x scrot -s screenshotawe.png"  ) end),

altra comnbinazione di tasti [mod4]+[mod1]+s per salvare uno scrrenshot e inviare l’immagine a imagemagick utilizzano uno script per visualizzarlo direttamente ed eventualmente modficarlo

    awful.key({ modkey, "Mod1" }, "s", function () awful.util.spawn("terminator" .. " --geometry=5x5  -e /home/maurizio/.scripts/screenshot.sh"  ) end),

Altro esempio combinazione di tasti per modificare il layout dello schermo

    awful.key({ "Control", "Mod1"  }, "1", function () awful.layout.inc(layouts, -9+1) end),

Di seguito le combinazione di default presenti in awesome

Window Manager Control

  • Restart awesome:   Mod4 + control + r
  • Quit awesome: Mod4 + shift + q
  • Apre menu principale:
    • Mod4  + w   ( :show menu)
    • Mouse tasto destro (:toggle cioè on/off )
  • Selezionare uno specifico tag 1-9 : Mod4  + 1-9  (numero tag io li definisco impropriamente screen )
  • Spostare la finestra attiva nel tag screen specificato dal numero:  Mod 4  + Shift + 1-9
  • Riunire  le finestre presenti nei tag o screens dei numeri specificati: Mod4  + Control + 1-9 
  •  è possibile selezionare e quindi  riunire  tutti i 9 screen
  • Finestre Attive:  mouse tasto destro su tag name
  • apre il terminale: Mod4 + Return
  • Run prompt:  Mod4 + r    (appare un piccolo prompt in alto a destra subito dopo i 9 tags )
  • run Lua code prompt: Mod4 + x

Clients

  • Redraw finestra con focus = Mod4 + shift + r
  • Massimizza client = Mod4 + m  ( on / off )
  • Minimizza client = Mod4 + n
  • Restore client = Mod4 + control + n
  • Pieno schermo client =  Mod4 + f   ( on / off )
  • Kill focused client = Mod4 + shift + c
  • Avanti  (on -top ) client = Mod4 + t
  • Ridimensionare finestre affiancate   Mod4 e tastro dx mouse e trascinare
  • Spostare e scambiare finestre Mod4 e tasto sx mouse

Navigation

  • Successivo client ( seleziona )  =   Mod4 + j
  • Precedente client ( seleziona )  = Mod4 + k
  • First urgent client (seleziona )  = Mod4 + u
  • Precente tag ( seleziona ) = Mod4 + freccia sn
  • Successivo tag ( seleziona ) = Mod4 + freccia dx
  • Passare ai tag 1-9 = Mod4 + 1-9
  • Successivo screen focus = Mod4 + control + j
  • Precedente screen focus = Mod4 + control + k
  • Precedente tag selezionato =  Mod4 + Escape

Modificazioni Layout

  • cambia Layout organizzazione dei tags delle windows = Mod4 + bar space e Mod4 + Shift + bar space
  • Switch client con client successivo = Mod4 + shift + j
  • Switch client con client precedente = Mod4 + shift + j
  • Send client
  • Toggle tag view = Mod4 + control + 1-9

Risorse: