Cómo usar guake en el monitor del lado derecho en un entorno de doble pantalla

Respuestas:

21

Utilizo dos monitores y quería que Guake se mostrara en el derecho (donde por defecto se muestra en el izquierdo).

Lo que hice fue editar mi /usr/bin/guake/archivo reemplazando el get_final_window_rectmétodo con esto:

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

Básicamente, se utiliza 1como índice del monitor y, más adelante, agrega el ancho de pantalla correcto a la visualización del punto de inicio de la ventana guake

¡espero que esto ayude!

wilfo
fuente
¿Cómo abriste ese archivo para editarlo? Lo hice a través de xdg-open $ file pero se abre como solo lectura.
Kevin
Cualquier editor de texto lo hará, use sudoal comienzo del comando para tener privilegios de administrador
wilfo
Curiosamente, esto alterna entre izquierda y derecha cada vez que lo abro cuando configuro 'Colocación del iniciador' solo para el monitor izquierdo. Establecerlo a la derecha lo hace funcionar todo el tiempo.
rmobis
3
Es verdad. Su comentario hizo que instale la última versión de Guake (de este ppa: https://launchpad.net/~webupd8team/+archive/ubuntu/unstabley parece que lo han hecho para que pueda elegir entre el terminal que aparece en la pantalla en la que se encuentra el mouse o bloquearlo en una pantalla específica, que creo que es una solución lo suficientemente buena en mi opinión
wilfo
El comentario de @ wilfo que identifica las actualizaciones de los desarrolladores originales proporciona la solución más simple. Las características integradas de Guake 0.7.2 agregan la capacidad de configurar la pantalla, así como muchas otras configuraciones útiles.
Steven C. Howell
2

La solución es muy simple, ya que desea alinear su pantalla Guake con su monitor del lado derecho, por lo que en la posición inicial (x, y) de la pantalla, la coordenada y será igual, es decir, comenzará desde 0 pero la coordenada x cambiará y debería ser igual al ancho del monitor del lado izquierdo. Para poder hacer esto necesitas hacer 2 cosas.

I. Cambie el número de monitor a 1, como se sugirió anteriormente. En línea

window_rect = screen.get_monitor_geometry (0)

Reemplace 0 por 1.

II Agregue el primer ancho de pantalla en la posición x de la coordenada inicial. para hacer esto.

Reemplazar

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

Por

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 vez que realice estos cambios y reinicie guake (Salga y comience de nuevo), debería obtener la alineación deseada de la pantalla Guake.

Espero que esto ayude :)

lalit
fuente
1

También hice una pregunta: ver en el monitor del lado derecho en un entorno de pantalla dual - Ubuntu 15.10 (Wily Werewolf))

En Ubuntu 15.10, guake ha cambiado un poco. Para cambiar su terminal al monitor correcto, debe editar:

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

luego cambie en la línea 831:

window_rect = screen.get_monitor_geometry(monitor)

por:

window_rect = screen.get_monitor_geometry(1)

matar y reiniciar guake

Alguien sabe una manera de hacer esto menos hacky?

clvx
fuente
1

Como dijo Lalit, la mejor forma en que encontré esto en ubuntu 14.04LTS fue cambiando

window_rect = screen.get_monitor_geometry(0)

a

window_rect = screen.get_monitor_geometry(0)

pero 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

La única diferencia es en el primer "if", sin agregar "total_width" a "window_rect.x" guake aparece en el centro de mi monitor izquierdo.

PD: Lo siento, Lalit, pero no puedo agregar un comentario a tu publicación porque todavía no tengo puntos = (

Ramiro RC
fuente
1

La solución de wilfo no me funciona. En mi caso resolví en Linux Mint con el siguiente código:

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 tomo desde aquí , pero me cambié 80a 100.

ratón inteligente
fuente
1

¡Buenas noticias!

En la versión 0.8.5, Guake se mostrará en el monitor activo, por lo que ya no tendrá que modificar el código Guake.

aprendiz eterno
fuente
la versión 0.5.0 (la de ubuntu repo) también lo admite:apt-get install --only-upgrade guake
Artur Klesun
0

No he probado esto, pero creo que puedes editar / usr / bin / guake ya que es un script de Python.

Encontrar

window_rect = screen.get_monitor_geometry(0) #line 824 en mi máquina

y cambie el 0 al índice del monitor en el que desea que se muestre guake.

Jack
fuente
1
Edité la línea 0para 1adentro /usr/lib/guake/guake.py. Y reinicie guake, pero nada cambia.
ironsand
0

Solo para agregar a las respuestas de smartmouse y wilfo, una vez que realiza el cambio a / usr / bin / guake, debe reiniciar por completo. Cerrar la sesión de guake no finaliza el proceso de Guake.

Abra el monitor del sistema y elimine el proceso de la aplicación guake, luego reinicie

Anuraag
fuente
0

Tuve que cambiar esto en Ubuntu 16.04 LTS con 2 monitores.

Estaba probando los métodos anteriores pero me di cuenta de que el código había cambiado desde entonces. Entré en ~/.gconf/apps/guake/generaly editado %gconf.xmly cambiado display_n (int)desde 0que 1para mi segundo monitor.

Espero que esto ayude :)

pwnall1337
fuente
-1

Intento en Ubuntu 14.04, descubrí que solo necesitas hacer clic en "Preferencias" en el ícono de guake (pantalla superior derecha) en cualquiera de los monitores, luego hacer clic en "Mostrar" en el mismo monitor, luego puedes ver la terminal de guake en el monitor están usando !!!

Tony Chen
fuente
No está claro (al menos para mí) cómo este enfoque "establecerá el índice de monitor" ¿Podría editar esta respuesta para aclarar cómo responde a la pregunta? ¡Gracias!
Élder Geek