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

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

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

https://launchpad.net / ~ cberner / + archive/guake / + индекс? поле series_filter=raring

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

Кто-то знает об этом?

21
задан 6 April 2014 в 03:09

10 ответов

Я использую два монитора и хотел, чтобы 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 в качестве индекса монитора и позже, добавляет, что правильный экран width к дисплею стартовой точки окна

землетрясения надеется, что это помогает!

21
ответ дан 16 November 2019 в 12:21

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

я. Число монитора изменения к 1, как предложено выше. В строке

window_rect = экранная get_monitor_geometry (0)

Замена 0 1.

II. Добавьте первый экран width в 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.

Hope это помогает:)

2
ответ дан 16 November 2019 в 12:21

Я также сделал это вопросом: землетрясение в мониторе правой стороны в двойной окружающей среде показа - Ubuntu 15.10 (Коварный Оборотень))

Во время землетрясения Ubuntu 15.10 изменился немного. Чтобы изменить Ваш терминал на правильный монитор, Вы должны отредактировать:

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

тогда изменение в линии 831:

window_rect = screen.get_monitor_geometry(monitor)

:

window_rect = screen.get_monitor_geometry(1)

убивают и перезапускают землетрясение

, Кто-либо знает способ сделать это меньше hacky?

1
ответ дан 16 November 2019 в 12:21

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

window_rect = screen.get_monitor_geometry(0)

к

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

к

 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

единственная разница в первом, "если", не добавляя "total_width" к "window_rect.x" землетрясению появляется посреди моего левого монитора.

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

1
ответ дан 16 November 2019 в 12:21

Решение wilfo не работает мне. В моем случае я решил на Linux Mint со следующим кодом:

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

я беру его от здесь , но я изменился 80 на 100.

1
ответ дан 16 November 2019 в 12:21

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

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

1
ответ дан 16 November 2019 в 12:21

Я не протестировал это, но я думаю, что можно просто отредактировать/usr/bin/guake, так как это - сценарий Python.

Находят

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

и изменяют 0 на индекс монитора, в котором Вы хотите, чтобы землетрясение отобразилось.

0
ответ дан 16 November 2019 в 12:21

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

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

0
ответ дан 16 November 2019 в 12:21

Я должен был изменить это на Ubuntu 16.04 LTS с 2 мониторами.

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

Hope это помогает :)

0
ответ дан 16 November 2019 в 12:21

Я пробую в Ubuntu 14.04, я нашел, что просто необходимо нажать "Preferences" на значок землетрясения (правильный главный экран) в любом мониторе, затем нажать "Show" в том же мониторе, затем Вы видите терминал землетрясения, всплывающий в мониторе, который Вы используете!!!

-1
ответ дан 16 November 2019 в 12:21

Другие вопросы по тегам:

Похожие вопросы: