AwesomeWM

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Grafische Oberflächen ‹ AwesomeWM


Debianpackage.png awesome ist ein für „Power User“ konzipierter Windowmanager. AwesomeWM wird mittels LUA in der Datei ~/.config/awesome/rc.lua konfiguriert.

Ein Kernelement von Awesome ist der „tag“: sozusagen ein virtueller Bildschirm. Für jeden Tag kann ein anderes Regelwerk festgelegt werden, anhand dessen die Fenster in diesem Tag angeordnet werden (Floating, Maximiert, Tiling, Spiral, ...).

Im Folgenden möchte ich beschreiben, wie ich Awesome Tags auf einem Laptop eingerichtet habe, der abwechselnd mit einem oder 2 angeschlossenen Bildschirmen betrieben wird.

Grundgedanken

Ich möchte für bestimmte Aufgaben separate tags nutzen. Bei mir wären das:

main
Mein Hauptfenster, enthält typischerweise Terminalfenster; Layout: Spiral
comm
Kommunikation (mail, chat, ...); auch hier Terminalfenster (für mutt, profanity, ...); Layout ebenfalls Spiral
www
Firefox; Layout: Maximized
office
LibreOffice, PDF- und PostScript-Viewer; Layout Maximized
misc
Verschiedenes; Layout Floating

Je nachdem, ob ein 2. Monitor angeschlossen ist, sollen die www und office Tags auf dem 2. Monitor angezeigt werden.

Konfiguration

Für das Anlegen dieser Tags habe ich in der Datei ~/.config/awesome/rc.lua innerhalb der Funktion die mittels connect_for_each_screen registriert wird, die folgenden Einstellungen vorgenommen:

local l = awful.layout.suit --
-- Each screen has its own tag table.
if screen:count() == 1 then
    awful.tag.add('main', {
            layout = l.spiral,
            screen = s,
            selected = true } ) 
    awful.tag.add( 'comm', {
            layout = l.spiral,
            screen = s } )  
    awful.tag.add( 'www', { 
            layout = l.max,
            screen = s } )  
    awful.tag.add( 'office', {
            layout = l.max,
            screen = s } ) 
    awful.tag.add( 'misc', {
            layout = l.floating,
            screen = s } )  
else       
    if s.index == 1 then
        awful.tag.add( 'main', {
                layout = l.spiral,
                screen = s,
                selected = true
        })  
        awful.tag.add( 'comm', {
                layout = l.spiral,
                screen = s } )
        awful.tag.add( 'misc', {
                layout = l.floating,
                screen = s } )
    else           
        awful.tag.add( 'www', {
                layout = l.max,
                screen = s,
                selected = true } )
        awful.tag.add( 'office', {
                layout = l.max,
                screen = s } )
    end            
end


Außerdem habe ich am Ende der rc.lua-Datei noch Regeln festgelegt, die dafür sorgen, dass bestimmte Fenster in bestimmten Tags angezeigt werden:

if screen:count() == 1 then
    table.insert( awful.rules.rules, {
        rule = { instance = "Navigator" },
        properties = { tag = "www", screen = 1 } } ) 
    table.insert( awful.rules.rules, {
        rule = { instance = "libreoffice" },
        properties = { tag = "office", screen = 1 } } ) 
    table.insert( awful.rules.rules, {
        rule = { instance = "gv" },
        properties = { tag = "office", screen = 1 } } ) 
else
    table.insert( awful.rules.rules, {
        rule = { instance = "Navigator" },
        properties = { tag = "www", screen = 2 } } ) 
    table.insert( awful.rules.rules, {
        rule = { instance = "libreoffice" },
        properties = { tag = "office", screen = 2 } } ) 
    table.insert( awful.rules.rules, {
        rule = { instance = "gv" },
        properties = { tag = "office", screen = 2 } } ) 
end