Как использовать guake на правом мониторе в среде с двойным отображением

21

Я хочу использовать Guake на правом мониторе.

Итак, я добавил этот ppa на sudo add-apt-repository ppa:cberner/guake и sudo apt-get update .

Ссылка

Инструкция говорит, что я могу как-то установить monitor_index . Но я не мог найти, как настроить.

Кто-нибудь знает об этом?

    
задан ironsand 06.04.2014 в 01:09
источник

10 ответов

21

Я использую два монитора и хотел, чтобы Guake отображался на правой (где по умолчанию отображается слева).

Я сделал, чтобы изменить файл /usr/bin/guake/ , заменив метод get_final_window_rect следующим образом:

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

В основном, он использует 1 в качестве индекса монитора, а затем добавляет правую ширину экрана к отображению начальной точки окна guake

надеюсь, что это поможет!

    
ответ дан wilfo 30.07.2014 в 13:04
2

Решение очень просто, так как вы хотите выровнять экран Guake с вашим монитором правой руки, поэтому в исходном положении (x, y) экрана координата y будет одинаковой, т.е. она начнется с 0 но координата x изменится, и она будет равна ширине вашего монитора левой стороны. Чтобы иметь возможность сделать это, вам нужно сделать 2 вещи.

я. Измените номер монитора на 1, как указано выше. В строке

  

window_rect = screen.get_monitor_geometry (0)

Заменить 0 на 1.

II. Добавьте первую ширину экрана в положение x начальной координаты. для этого.

Заменить

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

По

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

Как только вы сделаете эти изменения и перезапустите guake (Закройте и запустите снова), вы должны получить желаемое выравнивание экрана Guake.

Надеюсь, что это поможет:)

    
ответ дан lalit 27.11.2014 в 09:18
1

Я также задал этот вопрос: ответ дан clvx 23.10.2015 в 16:42

1

Как сказал Лалит, лучший способ, который я нашел для этого на ubuntu 14.04LTS, менял

window_rect = screen.get_monitor_geometry(0)

to

window_rect = screen.get_monitor_geometry(0)

, но изменение

    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

to

 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

Единственное отличие его в первом «if», без добавления «total_width» в «window_rect.x» guake, появляется в середине моего левого монитора.

P.S: Извините, Lalit, но я не могу добавить комментарий к вашему сообщению, так как у меня еще нет очков = (

    
ответ дан Ramiro R.C. 11.12.2015 в 13:41
1

Хорошие новости!

В версии 0.8.5 на активном мониторе отобразится Guake, поэтому вам больше не нужно настраивать код Guake.

    
ответ дан everlasting-learner 29.06.2016 в 22:19
0

Я не тестировал это, но я думаю, вы можете просто отредактировать / usr / bin / guake, так как это скрипт python.

Find

window_rect = screen.get_monitor_geometry(0) #line 824 на моей машине

и измените значение 0 на индекс монитора, на который вы хотите отобразить guake.

    
ответ дан Jack 07.04.2014 в 20:05
0

Просто чтобы добавить к ответам smartmouse и wilfo, как только вы внесете изменения в / usr / bin / guake, вам придется выполнить жесткий перезапуск. Выход из сеанса guake не завершает процесс Guake.

Откройте системный монитор и уничтожьте процесс приложения guake, затем перезапустите

    
ответ дан Anuraag 22.01.2016 в 22:23
0

Мне пришлось изменить это на Ubuntu 16.04 LTS с двумя мониторами.

Я пытался использовать вышеуказанные методы, но понял, что код изменился с тех пор. Я пошел в ~/.gconf/apps/guake/general и отредактировал %gconf.xml и изменил display_n (int) от 0 до 1 для моего второго монитора.

Надеюсь, что это поможет:)

    
ответ дан pwnall1337 09.09.2016 в 17:15
0

Я пытаюсь использовать Ubuntu 14.04, Я обнаружил, что вам просто нужно щелкнуть «Настройки» на значке guake (правый верхний экран) на любом мониторе, а затем нажать «Показать» на том же мониторе, после чего вы увидите, что на вашем мониторе вы можете увидеть, как на вашем мониторе появляется заглушка.     

ответ дан tony chen 08.02.2017 в 13:11