Як користуватися guake на правому боці монітора в середовищі подвійного дисплея


21

Я хочу використовувати Guakeпід правильним монітором.

Тому я додав цю програму за допомогою sudo add-apt-repository ppa:cberner/guake, і sudo apt-get update.

https://launchpad.net/~cberner/+archive/guake/+index?field.series_filter=raring

Інструкція говорить, що я можу monitor_indexякось встановити . Але я не зміг знайти налаштування.

Хтось знає про це?

Відповіді:


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

сподіваюся, що це допомагає!


Як ви відкрили цей файл, щоб його відредагувати? Я зробив це через xdg-open $ файл, але він відкривається лише для читання.
кевін

Будь-який текстовий редактор зробить, використовуйте sudoна початку команди, щоб мати права адміністратора
wilfo

Як не дивно, це чергується ліворуч і праворуч кожного разу, коли я відкриваю їх, коли встановлюю "Розміщення запуску" лише для лівого монітора. Встановивши його на потрібне, він працює щоразу.
rmobis

3
Це правда. Ваш коментар змусив мене встановити останню версію Guake (з цього ppa: https://launchpad.net/~webupd8team/+archive/ubuntu/unstableі, здається, вони зробили це так, що тепер ви можете вибрати між терміналом, що з’являється на екрані, на якому знаходиться миша, або заблокувати його на певному екрані, Я думаю, що це досить гарне рішення на мою думку
wilfo

Коментар @ wilfo, що ідентифікує оновлення від оригінальних розробників, пропонує найпростіше рішення. Вбудовані функції Guake 0.7.2 додають можливість налаштування дисплея, а також багато інших корисних налаштувань.
Стівен Ч. Хоуелл

2

Рішення дуже просте, оскільки ви хочете вирівняти екран Guake на моніторі правої сторони, так що у вихідному положенні (x, y) екрана координат y буде таким самим, тобто він починатиметься від 0, але координата x зміниться, і вона повинна дорівнювати ширині лівого бічного монітора. Щоб мати змогу це зробити, потрібно зробити 2 речі.

I. Змініть номер монітора на 1, як було запропоновано вище. В лінію

window_rect = screen.get_monitor_geometry (0)

Замініть 0 на 1.

II. Додайте першу ширину екрана в х позицію початкової координати. зробити це.

Замініть

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.

Сподіваюся, це допомагає :)


1

Я також поставив це питання: guake на правому боці монітора в середовищі подвійного дисплея - Ubuntu 15.10 (Wily Werewolf))

В Ubuntu 15.10 guake трохи змінився. Щоб змінити свій термінал на потрібний монітор, вам слід відредагувати:

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)

вбити та перезапустити guake

Хтось знає спосіб зробити це менш хакі?


1

Як говорив Лаліт, найкращий спосіб, який я знайшов для цього на ubuntu 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" guake з'являється посередині мого лівого монітора.

PS: Вибачте Лалит, але я не можу додати коментар до вашої публікації, оскільки у мене поки немає балів = ((


1

Рішення від 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

Гарні новини!

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


версія 0.5.0 (та у ubuntu repo) також підтримує його:apt-get install --only-upgrade guake
Артур Клесун

0

Я цього не перевіряв, але думаю, що ви можете просто редагувати / usr / bin / guake, оскільки це сценарій python.

Знайдіть

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

і змініть 0 на індекс монітора, на якому потрібно відобразити guake.


1
Я редагував рядок 0до 1в /usr/lib/guake/guake.py. І перезапустіть guake, але нічого не зміниться.
ironsand

0

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

Відкрийте монітор системи та вбийте процес застосування програми guake та перезапустіть


0

Мені довелося змінити це на Ubuntu 16.04 LTS з 2 моніторами.

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

Сподіваюся, це допомагає :)


-1

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


Незрозуміло (принаймні, для мене), як такий підхід "встановить monitor_index". Чи можете ви відредагувати цю відповідь, щоб уточнити, як вона відповідає на питання? Дякую!
Старійшина Гік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.