web-dev-qa-db-ja.com

デュアルディスプレイ環境の右側モニターでguakeを使用する方法

右側のモニターでGuakeを使用します。

そこで、Sudo add-apt-repository ppa:cberner/guakeSudo apt-get updateでこのPPAを追加しました。

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

命令では、monitor_indexをなんとか設定できると書かれています。しかし、設定方法が見つかりませんでした。

誰かがこれを知っていますか?

21
ironsand

2台のモニターを使用し、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ウィンドウの開始点表示に正しい画面幅を追加します

お役に立てれば!

21
wilfo

解決策は非常に簡単です。Guake画面を右側のモニターに合わせて、画面の開始位置(x、y)で、y座標が同じになる、つまり0から開始しますが、x座標変更され、左側のモニターの幅に等しくなります。これを行うには、2つのことを行う必要があります。

I.上記のように、モニター番号を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画面の目的の配置を取得する必要があります。

お役に立てれば :)

2
lalit

私もこれを質問しました: デュアルディスプレイ環境の右側のモニターで確認-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
clvx

良いニュースです!

バージョン0.8.5では、Guakeはアクティブなモニターに表示されるため、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

唯一の違いは、最初の「if」で、「total_width」を「window_rect.x」に追加せずに、左モニターの中央に表示されることです。

追伸:申し訳ありませんがLalitですが、まだポイントがないため投稿にコメントを追加できません=(

1
Ramiro R.C.

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

here から取得しますが、80100に変更しました。

1
smartmouse

Ubuntu 16.04 LTSで2つのモニターを使用してこれを変更する必要がありました。

上記の方法を試していましたが、コードが変更されたことに気付きました。私は~/.gconf/apps/guake/generalに入り、%gconf.xmlを編集し、2番目のモニターの0から1display_n (int)を変更しました。

お役に立てれば :)

0
pwnall1337

これはテストしていませんが、pythonスクリプトであるため、/ usr/bin/guakeを編集するだけでよいと思います。

見つける

window_rect = screen.get_monitor_geometry(0)#マシン上の#line 824

0を、guakeを表示するモニターのインデックスに変更します。

0
Jack

Smartmouseとwilfoの回答に追加するために、/ usr/bin/guakeを変更したら、ハードリスタートする必要があります。 guakeセッションからログアウトしても、Guakeプロセスは終了しません。

システムモニターを開き、guakeアプリケーションプロセスを終了してから再起動します

0
Anuraag