Como usar o guake no monitor do lado direito no ambiente de duas exibições

21

Eu quero usar Guake no monitor certo.

Então, adicionei esse ppa por sudo add-apt-repository ppa:cberner/guake e sudo apt-get update .

Sites

A instrução diz que posso definir monitor_index de alguma forma. Mas não consegui encontrar como configurar.

Alguém sabe sobre isso?

    
por ironsand 06.04.2014 / 01:09

10 respostas

21

Eu uso dois monitores e queria que o Guake fosse exibido no lado direito (onde, por padrão, ele é exibido no lado esquerdo).

O que eu fiz foi editar meu arquivo /usr/bin/guake/ substituindo o método get_final_window_rect por:

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

Basicamente, ele usa 1 como o índice do monitor e, mais tarde, adiciona a largura da tela à exibição do ponto inicial da janela da pesquisa

espero que isso ajude!

    
por wilfo 30.07.2014 / 13:04
2

A solução é muito simples, pois você deseja alinhar sua tela do Guake ao seu monitor do lado direito, de modo que na posição inicial (x, y) da tela, a coordenada y será a mesma, ou seja, será iniciada a partir de 0 mas a coordenada x mudará e deverá ser igual à largura do monitor do lado esquerdo. Para fazer isso, você precisa fazer duas coisas.

eu. Altere o número do monitor para 1, conforme sugerido acima. Na linha

  

window_rect = screen.get_monitor_geometry (0)

Substitua 0 por 1.

II. Adicione a largura da primeira tela na posição x da coordenada de partida. para fazer isso.

Substituir

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

Depois de fazer essas alterações e reiniciar o guake (Sair e começar de novo), você deve obter o alinhamento desejado da tela do Guake.

Espero que isso ajude:)

    
por lalit 27.11.2014 / 09:18
1

Eu também fiz uma pergunta: guake no monitor do lado direito em ambiente dual display - Ubuntu 15.10 (Wily Werewolf))

No Ubuntu 15.10, o guake mudou um pouco. Para mudar o seu terminal para o monitor correto, você precisa editar:

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

altere então na linha 831:

window_rect = screen.get_monitor_geometry(monitor)

por:

window_rect = screen.get_monitor_geometry(1)

mate e reinicie o guake

Alguém sabe uma maneira de fazer isso menos hacky?

    
por clvx 23.10.2015 / 16:42
1

Como disse lalit, a melhor maneira que encontrei para fazer isso no Ubuntu 14.04LTS foi mudar

window_rect = screen.get_monitor_geometry(0)

para

window_rect = screen.get_monitor_geometry(0)

mas mudando

    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

para

 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

A única diferença é que no primeiro "if", sem adicionar "total_width" ao "window_rect.x", o guake aparece no meio do meu monitor esquerdo.

P.S: Desculpe Lalit, mas não posso adicionar um comentário ao seu post, pois ainda não tenho pontos = (

    
por Ramiro R.C. 11.12.2015 / 13:41
1

A solução do wilfo não funciona para mim. No meu caso eu resolvi no Linux Mint com o seguinte 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

Eu pego de aqui , mas mudei 80 para 100 .

    
por smartmouse 11.12.2015 / 15:36
1

Boas notícias!

Na versão 0.8.5, o Guake será exibido no monitor ativo, então você não precisa mais ajustar o código do Guake.

    
por everlasting-learner 29.06.2016 / 22:19
0

Eu não testei isso, mas acho que você pode simplesmente editar / usr / bin / guake, pois é um script python.

Encontre

window_rect = screen.get_monitor_geometry(0) #line 824 na minha máquina

e mude 0 para o índice do monitor que você deseja exibir.

    
por Jack 07.04.2014 / 20:05
0

Apenas para adicionar as respostas do smartmouse e do wilfo, assim que você fizer a mudança para / usr / bin / guake, você terá que reiniciar. O logout da sessão do guake não termina o processo do Guake.

Abra o monitor do sistema e elimine o processo de aplicação do guake e, em seguida, reinicie

    
por Anuraag 22.01.2016 / 22:23
0

Eu tive que mudar isso no Ubuntu 16.04 LTS com 2 monitores.

Eu estava tentando os métodos acima, mas percebi que o código mudou desde então. Eu entrei em ~/.gconf/apps/guake/general e editei %gconf.xml e mudei display_n (int) de 0 para 1 para meu segundo monitor.

Espero que isso ajude:)

    
por pwnall1337 09.09.2016 / 17:15
0

Eu tento no Ubuntu 14.04, Eu achei que você só precisa clicar em "Preferências" no ícone do guake (tela superior direita) em qualquer monitor, clique em "Mostrar" no mesmo monitor, então você pode ver o terminal do guake aparecer no monitor que você está usando !!!

    
por tony chen 08.02.2017 / 13:11