Verwendung von guake am rechten Monitor in einer Umgebung mit zwei Bildschirmen


Antworten:


21

Ich benutze zwei Monitore und wollte, dass Guake auf dem rechten angezeigt wird (wobei es standardmäßig auf dem linken angezeigt wird).

Was ich getan habe, war meine /usr/bin/guake/Datei zu bearbeiten und die get_final_window_rectMethode durch folgende zu ersetzen :

def get_final_window_rect(self):
    """Gets the final size of the main window of guake. The height
    is the window_height property, width is window_width and the
    horizontal alignment is given by window_alignment.
    """
    screen = self.window.get_screen()
    height = self.client.get_int(KEY('/general/window_height'))
    width = 100
    halignment = self.client.get_int(KEY('/general/window_halignment'))

    # get the rectangle just from the first/default monitor in the
    # future we might create a field to select which monitor you
    # wanna use
    monitor = 1 # use the right most monitor
    window_rect = screen.get_monitor_geometry(monitor)
    # see if we don't have another screen, and if so, use the first one
    if window_rect.width == 0:
        monitor = 0
        window_rect = screen.get_monitor_geometry(monitor)
    total_width = window_rect.width
    window_rect.height = window_rect.height * height / 100
    window_rect.width = window_rect.width * width / 100

    if width < total_width:
        if halignment == ALIGN_CENTER:
            window_rect.x = (total_width - window_rect.width) / 2
            if monitor == 1:
                    right_window_rect = screen.get_monitor_geometry(0)
                    window_rect.x += right_window_rect.width
        elif halignment == ALIGN_LEFT:
            window_rect.x = 0
        elif halignment == ALIGN_RIGHT:
            window_rect.x = total_width - window_rect.width
    window_rect.y = 0
    return window_rect

Grundsätzlich dient es 1als Monitorindex und fügt später der Startpunktanzeige des Guake-Fensters die richtige Bildschirmbreite hinzu

hoffe das hilft!


Wie haben Sie diese Datei geöffnet, um sie zu bearbeiten? Ich habe es über xdg-open $ file gemacht, aber es wird schreibgeschützt geöffnet.
Kevin

Jeder Texteditor benötigt sudozu Beginn des Befehls Administratorrechte
wilfo

Seltsamerweise wechselt dies bei jedem Öffnen zwischen links und rechts, wenn ich die Starterplatzierung nur für den linken Monitor einstelle. Wenn man es richtig einstellt, funktioniert es jedes Mal.
rmobis

3
Es ist wahr. Ihr Kommentar hat dazu geführt, dass ich die neueste Version von Guake installiert habe (von diesem ppa: https://launchpad.net/~webupd8team/+archive/ubuntu/unstableund es scheint, dass sie es jetzt so gemacht haben, dass Sie zwischen dem Terminal, das auf dem Bildschirm angezeigt wird, auf dem sich die Maus befindet, oder dem Sperren auf einen bestimmten Bildschirm wählen können. was meiner
meinung nach

Die einfachste Lösung bietet der Kommentar von @ wilfo, in dem die Aktualisierungen der ursprünglichen Entwickler aufgeführt sind. Die integrierten Funktionen von Guake 0.7.2 bieten die Möglichkeit, die Anzeige sowie viele andere nützliche Einstellungen vorzunehmen.
Steven C. Howell

2

Die Lösung ist sehr einfach, da Sie Ihren Guake-Bildschirm an Ihrem rechten Monitor ausrichten möchten, sodass die y-Koordinate in der Startposition (x, y) des Bildschirms gleich ist, dh sie beginnt bei 0, aber x-Koordinate ändert sich und sollte der Breite Ihres linken Monitors entsprechen. Um dies zu können, müssen Sie zwei Dinge tun.

I. Ändern Sie die Monitornummer in 1, wie oben vorgeschlagen. In der Reihe

window_rect = screen.get_monitor_geometry (0)

Ersetzen Sie 0 durch 1.

II. Fügen Sie die erste Bildschirmbreite an der x-Position der Startkoordinate hinzu. um dies zu tun.

Ersetzen

if width < total_width:
    if halignment == ALIGN_CENTER:
        window_rect.x = (total_width - window_rect.width) / 2
    elif halignment == ALIGN_LEFT:
        window_rect.x = 0
    elif halignment == ALIGN_RIGHT:
        window_rect.x = total_width - window_rect.width
window_rect.y = 0
return window_rect

Durch

if width < total_width:
     if halignment == ALIGN_CENTER:
         window_rect.x += (total_width - window_rect.width) / 2
     elif halignment == ALIGN_LEFT:
         window_rect.x += 0
     elif halignment == ALIGN_RIGHT:
         window_rect.x += total_width - window_rect.width
window_rect.y = 0
return window_rect

Sobald Sie diese Änderungen vorgenommen und guake neu gestartet haben (Beenden und erneut starten), sollten Sie die gewünschte Ausrichtung des Guake-Bildschirms erhalten.

Hoffe das hilft :)


1

Ich habe auch eine Frage dazu gestellt: guake am rechten Monitor in einer Dual-Display-Umgebung - Ubuntu 15.10 (Wily Werewolf))

In Ubuntu 15.10 hat sich guake etwas geändert. Um Ihr Terminal auf den richtigen Monitor umzustellen, müssen Sie Folgendes bearbeiten:

sudo vim /usr/lib/python2.7/dist-packages/guake/guake_app.py

dann in Zeile 831 wechseln:

window_rect = screen.get_monitor_geometry(monitor)

durch:

window_rect = screen.get_monitor_geometry(1)

töte und starte guake neu

Kennt jemand einen Weg, dies weniger hackig zu machen?


1

Wie lalit sagte, war der beste Weg, dies auf Ubuntu 14.04LTS zu tun, eine Änderung

window_rect = screen.get_monitor_geometry(0)

zu

window_rect = screen.get_monitor_geometry(0)

aber sich ändernd

    if width < total_width:
    if halignment == ALIGN_CENTER:
        window_rect.x = (total_width - window_rect.width) / 2
    elif halignment == ALIGN_LEFT:
        window_rect.x = 0
    elif halignment == ALIGN_RIGHT:
        window_rect.x = total_width - window_rect.width
window_rect.y = 0
return window_rect

zu

 if width < total_width:
     if halignment == ALIGN_CENTER:
         window_rect.x += total_width + (total_width - window_rect.width) / 2
     elif halignment == ALIGN_LEFT:
         window_rect.x += 0
     elif halignment == ALIGN_RIGHT:
         window_rect.x += total_width - window_rect.width
window_rect.y = 0
return window_rect

Der einzige Unterschied besteht im ersten "if", ohne dass "total_width" zu "window_rect.x" hinzugefügt wird. Guake erscheint in der Mitte meines linken Monitors.

PS: Sorry Lalit, aber ich kann keinen Kommentar zu deinem Beitrag hinzufügen, da ich noch keine Punkte habe = (


1

Die Lösung von Wilfo funktioniert bei mir nicht. In meinem Fall löste ich unter Linux Mint mit folgendem Code:

def get_final_window_rect(self):
    """Gets the final size of the main window of guake. The height
    is the window_height property, width is window_width and the
    horizontal alignment is given by window_alignment.
    """
    screen = self.window.get_screen()
    height = self.client.get_int(KEY('/general/window_height'))
    width = 100
    halignment = self.client.get_int(KEY('/general/window_halignment'))

    # future we might create a field to select which monitor you
    # wanna use
    #monitor = 0 # use the left most monitor
    monitor = screen.get_n_monitors() - 1 # use the right most monitor

    monitor_rect = screen.get_monitor_geometry(monitor)
    window_rect = monitor_rect.copy()
    window_rect.height = window_rect.height * height / 100
    window_rect.width = window_rect.width * width / 100

    if width < monitor_rect.width:
        if halignment == ALIGN_CENTER:
            window_rect.x = monitor_rect.x + (monitor_rect.width - window_rect.width) / 2
        elif halignment == ALIGN_LEFT:
            window_rect.x = monitor_rect.x
        elif halignment == ALIGN_RIGHT:
            window_rect.x = monitor_rect.x + monitor_rect.width - window_rect.width

    window_rect.y = monitor_rect.y
    return window_rect

Ich nehme es von hier , aber ich wechselte 80zu 100.


1

Gute Nachrichten!

In Version 0.8.5 wird Guake auf dem aktiven Monitor angezeigt, sodass Sie den Guake-Code nicht mehr anpassen müssen.


Version 0.5.0 (die in Ubuntu Repo) unterstützt es auch:apt-get install --only-upgrade guake
Artur Klesun

0

Ich habe dies nicht getestet, aber ich denke, Sie können einfach / usr / bin / guake bearbeiten, da es sich um ein Python-Skript handelt.

Finden

window_rect = screen.get_monitor_geometry(0) #line 824 auf meiner Maschine

und ändern Sie die 0 in den Index des Monitors, in dem guake angezeigt werden soll.


1
Ich habe die Zeile 0nach 1in bearbeitet /usr/lib/guake/guake.py. Und starte guake neu, aber nichts ändert sich.
Ironsand

0

Nur um die Antworten von smartmouse und wilfo zu ergänzen, müssen Sie nach der Änderung von / usr / bin / guake einen harten Neustart durchführen. Das Abmelden von der Guake-Sitzung beendet den Guake-Prozess nicht.

Öffnen Sie den Systemmonitor, beenden Sie den Guake-Anwendungsprozess und starten Sie ihn neu


0

Ich musste dies auf Ubuntu 16.04 LTS mit 2 Monitoren ändern.

Ich habe die oben genannten Methoden ausprobiert, aber festgestellt, dass sich der Code seitdem geändert hat. Ich ging in ~/.gconf/apps/guake/generalund bearbeitete %gconf.xmlund wechselte display_n (int)von 0zu 1für meinen 2. Monitor.

Hoffe das hilft :)


-1

Ich versuche es in Ubuntu 14.04. Ich habe festgestellt, dass Sie in beiden Monitoren nur auf "Einstellungen" beim guake-Symbol (rechter oberer Bildschirm) klicken müssen, dann auf "Anzeigen" im selben Monitor klicken und dann auf dem Monitor, auf dem Sie sich befinden, ein guake-Terminal erscheint benutzen !!!


Es ist (zumindest für mich) nicht klar, wie mit diesem Ansatz "monitor_index" festgelegt wird. Können Sie diese Antwort bearbeiten, um zu verdeutlichen, wie die Frage beantwortet wird? Vielen Dank!
Elder Geek
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.