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!

wilfo
źródło
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 :)

lalit
źródło
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?

clvx
źródło
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 = (

Ramiro RC
źródło
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.

smartmouse
źródło
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.

wieczny uczeń
źródło
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.

Jacek
źródło
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

Anuraag
źródło
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 :)

pwnall1337
źródło
-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ą !!!

Tony Chen
źródło
(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