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


21

Guake正しいモニターで使用したいです。

だから私は、このことにより、PPAを追加した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

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ウィンドウの開始点表示に正しい画面幅を追加します。

お役に立てれば!


それを編集するためにどのようにそのファイルを開きましたか?xdg-open $ fileを使用して実行しましたが、読み取り専用として開きます。
ケビン14年

任意のテキストエディタを使用し、行いますsudoコマンドの先頭には、管理者権限を持っている
wilfo

奇妙なことに、左側のモニターのみに「ランチャーの配置」を設定すると、開くたびにこれが左右に交互に切り替わります。適切な値に設定すると、毎回動作します。
rmobis

3
それは本当です。あなたのコメントにより、私のインストールはGuakeの最新バージョンになりました(このPPAから:https://launchpad.net/~webupd8team/+archive/ubuntu/unstableマウスが表示されている画面に表示される端末か、特定の画面にロックするかを選択できるようになったようです)これは私が私の意見では良い十分な解決策だと思います
wilfo

元の開発者からの更新を識別する@wilfoのコメントは、最も簡単なソリューションを提供します。Guake 0.7.2のビルトイン機能は、ディスプレイや他の多くの便利な設定を設定する機能を追加します。
スティーブンC.ハウエル

2

解決策は非常に簡単です。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画面の目的の配置を取得する必要があります。

お役に立てれば :)


1

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

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

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


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の内の1つのレポ)だけでなく、それをサポートしていますapt-get install --only-upgrade guake
アルトゥルKlesun

0

これはテストしていませんが、Pythonスクリプトなので/ usr / bin / guakeを編集できると思います。

見つける

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

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


1
0をに編集し1ました/usr/lib/guake/guake.py。そして、guakeを再起動しますが、何も変わりません。
ironsand 14

0

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

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


0

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

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

お役に立てれば :)


-1

Ubuntu 14.04で試してみると、どちらかのモニターのguakeアイコン(右上の画面)で[設定]をクリックし、同じモニターで[表示]をクリックするだけで、モニターでguakeターミナルがポップアウトするのがわかります。使用しています !!!


(少なくとも私には)このアプローチがどのように「monitor_indexを設定する」のかは明らかではありません。この回答を編集して、質問への回答方法を明確にできますか?ありがとうございました!
オタク長老
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.