Jak używać guake na prawym monitorze bocznym w środowisku podwójnego wyświetlacza


Odpowiedzi:


21

Korzystam z dwóch monitorów i chciałem, aby Guake był wyświetlany na prawym (gdzie domyślnie jest wyświetlany na lewym).

Zrobiłem edycję mojego /usr/bin/guake/pliku, zastępując get_final_window_rectmetodę następującą:

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

Zasadniczo używa 1jako indeksu monitora, a następnie dodaje odpowiednią szerokość ekranu do wyświetlania punktu początkowego okna guake

mam nadzieję że to pomoże!


Jak otworzyłeś ten plik, aby go edytować? Zrobiłem to za pomocą pliku xdg-open $, ale otwiera się on jako tylko do odczytu.
kevin

sudo
Zrobi to

Dziwne, to zmienia się pomiędzy lewą a prawą za każdym razem, gdy ją otwieram, gdy ustawiam „Miejsce uruchamiania” tylko dla lewego monitora. Ustawienie właściwego powoduje, że działa za każdym razem.
rmobis

3
To prawda. Twój komentarz spowodował, że zainstalowałem najnowszą wersję Guake'a (z tego ppa: https://launchpad.net/~webupd8team/+archive/ubuntu/unstablei wygląda na to, że zrobili to tak, że teraz możesz wybrać między terminalem wyświetlanym na ekranie myszy lub zablokowaniem go na określonym ekranie, Moim zdaniem jest to dość dobre rozwiązanie
Wilfo

Komentarz @ wilfo identyfikujący aktualizacje oryginalnych programistów zapewnia najprostsze rozwiązanie. Wbudowane funkcje Guake 0.7.2 dodają możliwość ustawienia wyświetlacza, a także wielu innych przydatnych ustawień.
Steven C. Howell,

2

Rozwiązanie jest bardzo proste, ponieważ chcesz wyrównać ekran Guake do monitora po prawej stronie, więc w pozycji początkowej (x, y) ekranu współrzędna y będzie taka sama, tzn. Zacznie się od 0, ale współrzędna x zmieni się i powinna być równa szerokości twojego lewego monitora bocznego. Aby móc to zrobić, musisz zrobić 2 rzeczy.

I. Zmień numer monitora na 1, jak sugerowano powyżej. W linii

window_rect = screen.get_monitor_geometry (0)

Zamień 0 na 1.

II. Dodaj szerokość pierwszego ekranu w pozycji x początkowej współrzędnej. zrobić to.

Zastąpić

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

Przez

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

Po wprowadzeniu tych zmian i ponownym uruchomieniu guake (Wyjdź i zacznij od nowa), powinieneś uzyskać pożądane wyrównanie ekranu Guake.

Mam nadzieję że to pomoże :)


1

Zadałem również to pytanie: guake na prawym monitorze bocznym w środowisku z dwoma wyświetlaczami - Ubuntu 15.10 (Wily Werewolf))

W Ubuntu 15.10 guake trochę się zmienił. Aby zmienić terminal na właściwy monitor, musisz edytować:

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

następnie zmień wiersz 831:

window_rect = screen.get_monitor_geometry(monitor)

przez:

window_rect = screen.get_monitor_geometry(1)

zabij i uruchom ponownie guake

Czy ktoś wie, jak zrobić to mniej hackerskim?


1

Jak powiedział Lalit, najlepszym sposobem, jaki udało mi się to zrobić na Ubuntu 14.04LTS, była zmiana

window_rect = screen.get_monitor_geometry(0)

do

window_rect = screen.get_monitor_geometry(0)

ale się zmienia

    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

do

 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

Jedyna różnica polega na pierwszym „if”, bez dodawania „total_width” do „window_rect.x” guake pojawia się na środku mojego lewego monitora.

PS: Przepraszam Lalit, ale nie mogę dodać komentarza do twojego postu, ponieważ nie mam jeszcze punktów = (


1

Rozwiązanie wilfo mi nie działa. W moim przypadku rozwiązałem na Linux Mint z następującym kodem:

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

Biorę to stąd , ale zmieniłem się 80na 100.


1

Dobre wieści!

W wersji 0.8.5 Guake będzie wyświetlany na aktywnym monitorze, więc nie musisz już poprawiać kodu Guake.


wersja 0.5.0 (ta w repozytorium Ubuntu) również to obsługuje:apt-get install --only-upgrade guake
Artur Klesun,

0

Nie testowałem tego, ale myślę, że możesz po prostu edytować / usr / bin / guake, ponieważ jest to skrypt Pythona.

Odnaleźć

window_rect = screen.get_monitor_geometry(0) #line 824 na moim komputerze

i zmień 0 na indeks monitora, w którym chcesz wyświetlać guake.


1
I edytowane linię 0do 1w /usr/lib/guake/guake.py. I uruchom ponownie guake, ale nic się nie zmienia.
irons i

0

Aby dodać do odpowiedzi smartmouse i wilfo, po wprowadzeniu zmiany w / usr / bin / guake musisz następnie mocno zrestartować komputer. Wylogowanie z sesji Guake nie kończy procesu Guake.

Otwórz monitor systemu i zabij fałszywy proces aplikacji, a następnie uruchom ponownie


0

Musiałem to zmienić w Ubuntu 16.04 LTS z 2 monitorami.

Próbowałem powyższych metod, ale zdałem sobie sprawę, że kod się zmienił. Wszedłem ~/.gconf/apps/guake/generali edytowane %gconf.xmli zmieniane display_n (int)od 0do 1mojego 2 monitora.

Mam nadzieję że to pomoże :)


-1

Próbuję w Ubuntu 14.04, stwierdziłem, że po prostu kliknij „Preferencje” na ikonie guake (prawy górny ekran) na dowolnym monitorze, następnie kliknij „Pokaż” na tym samym monitorze, a zobaczysz, jak fałszywy terminal wyskakuje na monitorze używają !!!


(Przynajmniej dla mnie) nie jest jasne, jak to podejście „ustawi monitor_index”. Czy możesz edytować tę odpowiedź, aby wyjaśnić, w jaki sposób odpowiada na pytanie? Dziękuję Ci!
Starszy Geek
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.