Wie platziere ich eine Anwendung mit awesome-wm auf dem zweiten Monitor?

8

Ich habe kürzlich einen zweiten Monitor bei der Arbeit und möchte alle mit meinem Fenstermanager konfigurieren: Super. Ich habe ein Problem beim Platzieren einiger Anwendungen auf einem Tag auf einem Bildschirm. Zum Beispiel habe ich eine Regel für urxvt, um es auf dem ersten Bildschirm in Tag eins zu setzen:

              { rule = { class = "URxvt" },
                                     properties = { tag = tags[1][1] }
              }

Das funktioniert gut, solange sich mein Mauszeiger auf dem ersten Monitor befindet. Wenn ich den Cursor auf den zweiten Bildschirm bewege und eine Instanz von urxvt starte, wird sie in das eigentliche Tag auf dem zweiten Monitor eingefügt. Das Gleiche gilt, wenn ich die App für ein Tag auf dem zweiten Bildschirm konfiguriere und wenn es nicht funktioniert, wenn sich mein Mauszeiger auf dem ersten Bildschirm befindet.

Wie kann ich das beheben?

Mnementh
quelle

Antworten:

7

Es gibt eine wirklich einfache Möglichkeit, dies mit dem awfulErweiterungspaket zu tun . Einige Distributionen bündeln dies automatisch, andere haben es als Unterpaket. Sobald Sie es haben, können Sie einfach das eingebaute verwenden awful.client.movetoscreen. Zum Beispiel habe ich eine Bindung, die so aussieht:

awful.key({modkey}, "o", awful.client.movetoscreen)

Dies bedeutet, dass ich mit einem Tastendruck ein Fenster an das aktuell aktive Tag auf dem Bildschirm senden kann, auf dem es sich gerade NICHT befindet. Wenn Sie nur zwei Bildschirme haben, werden diese umgeschaltet, oder wenn Sie mehr haben, werden sie durchlaufen.

Caleb
quelle
4

Dies hängt von der Version von awesome ab, die Sie verwenden:

genial 1.x.

Legen Sie die screenVariable in der Regel fest:

{ rule =
    { class = "URxvt" },
    properties = { tag = tags[1][1] },
    screen = 1
}

genial 2.x.

Legen Sie die screenEigenschaft auf dem Client in der hook_manageFunktion fest:

if c.class == "URxvt" then
    awful.client.movetotag(tags[1][1], c)
    c.screen = 1
end

Aus Ihrem Codebeispiel geht hervor, dass Sie awesome 1.x verwenden. Als Nebenbemerkung ist 1.x jetzt wirklich alt, daher sollten Sie ein Upgrade auf 2.x in Betracht ziehen, bei dem Lua anstelle eines benutzerdefinierten Konfigurationsformats verwendet wird

Michael Mrozek
quelle
Ich benutze awesome 3.4.5, dieses Snippet stammt aus der Lua-Konfigurationsdatei rc.lua. Die Konfigurationsdatei, die ich erstellt habe, ist eine Kopie der Standarddatei, die von Ubuntu in /etc/xdg/awesome/rc.lua installiert wurde. Die Beispielregeln werden dort wie hier angegeben definiert. Aber ich nehme an, Sie können es auf wirklich unterschiedliche Weise definieren, da Lua eine vollwertige Programmiersprache ist. Ich werde die Option morgen wieder bei der Arbeit ausprobieren.
Mnementh
@Mne Oh, das ist aus der Standarddatei; es ähnelt sehr stark dem alten Konfigurationsformat. Als ich awesome verwendet habe, habe ich die Standardkonfiguration gelöscht und sie einfach neu geschrieben. Wenn dies nicht funktioniert, lassen Sie es mich wissen, damit ich die Antwort löschen kann. Ich bin nicht sicher, ob es wird
Michael Mrozek
Ja, ich werde es mir morgen ansehen. Zu Hause habe ich nur einen Monitor, daher kann ich ihn noch nicht testen.
Mnementh
Versucht, aber es funktioniert nicht. :-(
Mnementh
@mne Lame. Leider habe ich keine fantastischen mehr installiert, so dass ich mich nicht wirklich damit anlegen kann. Viel Glück; Ich werde heute später in der Dokumentation stöbern, um zu sehen, ob ich etwas finden kann
Michael Mrozek
0

Nicht gerade eine Antwort, sondern ein Follow-up.

Dies muss ein großartiger Fehler gewesen sein. Damit awesome-3.4.10funktioniert es wie du es wolltest. Verwenden Sie Folgendes , um eine Anwendung für ein vordefiniertes Tag auf dem aktuellen Bildschirm zu öffnen :

{ rule = { instance = "urxb" },
  callback = function(c)
          c.screen = mouse.screen
          c:tags({tags[c.screen][3]})
  end }
rozcietrzewiacz
quelle