Come utilizzare il monitor sul lato destro in ambiente con doppio display


Risposte:


21

Uso due monitor e volevo che Guake fosse visualizzato su quello destro (dove di default è visualizzato su quello sinistro).

Quello che ho fatto è stato modificare il mio /usr/bin/guake/file sostituendo il get_final_window_rectmetodo con questo:

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

Fondamentalmente, utilizza 1come indice del monitor e in seguito aggiunge la giusta larghezza dello schermo alla visualizzazione del punto iniziale della finestra falsa

spero che sia di aiuto!


Come hai aperto quel file per modificarlo? L'ho fatto tramite il file xdg-open $ ma si apre in sola lettura.
Kevin

Qualsiasi editor di testo lo farà, utilizzare sudoall'inizio del comando per avere i privilegi di amministratore
wilfo

Stranamente, questo si alterna tra sinistra e destra ogni volta che lo apro quando imposto "Posizionamento del lanciatore" solo per il monitor sinistro. Impostandolo su quello giusto lo fa funzionare ogni volta.
rmobis,

3
È vero. Il tuo commento ha reso la mia installazione l'ultima versione di Guake (da questo ppa: https://launchpad.net/~webupd8team/+archive/ubuntu/unstablee sembra che lo abbiano fatto così ora che puoi scegliere tra il terminale che appare sullo schermo in cui si trova il mouse o bloccarlo su una schermata specifica, che credo sia una soluzione abbastanza buona secondo me
Wilfo

Il commento di @ wilfo che identifica gli aggiornamenti dagli sviluppatori originali offre la soluzione più semplice. Le funzionalità integrate di Guake 0.7.2 aggiungono la possibilità di impostare il display e molte altre utili impostazioni.
Steven C. Howell,

2

La soluzione è molto semplice, poiché si desidera allineare lo schermo Guake al monitor sul lato destro, quindi nella posizione iniziale (x, y) dello schermo, la coordinata y sarà la stessa, cioè inizierà da 0 ma coordinata x cambierà e dovrebbe essere uguale alla larghezza del monitor laterale sinistro. Per poterlo fare devi fare 2 cose.

I. Modificare il numero del monitor su 1, come suggerito sopra. In linea

window_rect = screen.get_monitor_geometry (0)

Sostituisci 0 con 1.

II. Aggiungi la prima larghezza dello schermo nella posizione x della coordinata iniziale. per farlo.

Sostituire

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

Di

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

Una volta apportate queste modifiche e riavviato guake (Esci e ricomincia), dovresti ottenere l'allineamento desiderato della schermata Guake.

Spero che sia di aiuto :)


1

Ho anche fatto una domanda: guardati dal lato destro del monitor in un ambiente con doppio display - Ubuntu 15.10 (Wily Werewolf))

In Ubuntu 15.10 il falso è cambiato un po '. Per cambiare il terminale sul monitor giusto devi modificare:

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

quindi cambia nella riga 831:

window_rect = screen.get_monitor_geometry(monitor)

di:

window_rect = screen.get_monitor_geometry(1)

uccidere e riavviare guake

Qualcuno sa un modo per fare questo meno confuso?


1

Come ha detto Lalit, il modo migliore che ho trovato per farlo su Ubuntu 14.04LTS stava cambiando

window_rect = screen.get_monitor_geometry(0)

a

window_rect = screen.get_monitor_geometry(0)

ma cambiando

    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

a

 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

L'unica differenza è nel primo "if", senza aggiungere "total_width" a "window_rect.x" il guake appare nel mezzo del mio monitor sinistro.

PS: Scusa Lalit ma non posso aggiungere un commento al tuo post poiché non ho ancora punti = (


1

La soluzione di Wilfo non funziona per me. Nel mio caso ho risolto su Linux Mint con il seguente codice:

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

Lo prendo da qui , ma sono cambiato 80in 100.


1

Buone notizie!

Nella versione 0.8.5, Guake verrà visualizzato sul monitor attivo, quindi non è più necessario modificare il codice Guake.


la versione 0.5.0 (quella nel repository Ubuntu) lo supporta anche:apt-get install --only-upgrade guake
Artur Klesun,

0

Non l'ho provato, ma penso che puoi semplicemente modificare / usr / bin / guake poiché è uno script Python.

Trova

window_rect = screen.get_monitor_geometry(0) #line 824 sulla mia macchina

e cambia lo 0 nell'indice del monitor in cui vuoi visualizzare.


1
Ho modificato la linea 0a 1in /usr/lib/guake/guake.py. E riavvia guake, ma non cambia nulla.
Feronsand

0

Solo per aggiungere le risposte di smartmouse e wilfo, una volta apportata la modifica a / usr / bin / guake, è necessario riavviare il sistema. La disconnessione dalla sessione guake non termina il processo Guake.

Apri il monitor di sistema e termina il processo dell'applicazione guake, quindi riavvia


0

Ho dovuto cambiare questo su Ubuntu 16.04 LTS con 2 monitor.

Stavo provando i metodi sopra ma mi sono reso conto che il codice era cambiato da allora. Sono entrato ~/.gconf/apps/guake/generale modificato %gconf.xmle cambiato display_n (int)da 0a 1per il mio secondo monitor.

Spero che sia di aiuto :)


-1

Provo in Ubuntu 14.04, ho scoperto che devi solo fare clic su "Preferenze" nell'icona guake (schermata in alto a destra) in entrambi i monitor, quindi fare clic su "Mostra" nello stesso monitor, quindi puoi vedere il terminale guake apparire sul monitor stiamo usando !!!


Non è chiaro (almeno per me) come questo approccio "imposterà monitor_index" Potresti modificare questa risposta per chiarire come risponde alla domanda? Grazie!
Anziano Geek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.