web-dev-qa-db-fra.com

Comment utiliser guake sur le moniteur droit dans un environnement à double affichage

Je veux utiliser Guake au moniteur de droite.

J'ai donc ajouté ce ppa par Sudo add-apt-repository ppa:cberner/guake et Sudo apt-get update.

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

L'instruction dit que je peux définir monitor_index en quelque sorte. Mais je n'ai pas pu trouver comment configurer.

Est-ce que quelqu'un sait à ce sujet?

21
ironsand

J'utilise deux écrans et je voulais que Guake soit affiché à droite (où par défaut, il est affiché à gauche).

Ce que j'ai fait était de modifier mon fichier /usr/bin/guake/ en remplaçant la méthode get_final_window_rect par ceci:

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

Fondamentalement, il utilise 1 comme index du moniteur, puis ajoute la largeur d'écran de droite à l'affichage du point de départ de la fenêtre guake.

j'espère que cela t'aides!

21
wilfo

La solution est très simple, car vous souhaitez aligner votre écran Guake sur votre moniteur de droite, donc en position de départ (x, y) de l'écran, la coordonnée y sera identique, c'est-à-dire qu'elle commencera à 0 mais la coordonnée x va changer et il devrait être égal à la largeur de votre moniteur de gauche. Pour pouvoir faire cela, vous devez faire 2 choses.

I. Modifiez le numéro du moniteur en 1, comme suggéré ci-dessus. En ligne

window_rect = screen.get_monitor_geometry (0)

Remplacez 0 par 1.

II. Ajouter la première largeur d'écran en position x de la coordonnée de départ. pour faire ça.

Remplacer

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

Par

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

Une fois que vous avez effectué ces modifications et redémarré guake (Quittez et recommencez), vous devriez obtenir l’alignement souhaité de l’écran Guake.

J'espère que cela t'aides :)

2
lalit

J'ai également fait à ceci une question: guake au moniteur de droite dans un environnement à double affichage - Ubuntu 15.10 (Wily Werewolf)))

Dans Ubuntu 15.10, guake a un peu changé. Pour changer votre terminal sur le bon moniteur, vous devez éditer:

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

puis changez à la ligne 831:

window_rect = screen.get_monitor_geometry(monitor)

par:

window_rect = screen.get_monitor_geometry(1)

tuer et redémarrer guake

Quelqu'un sait un moyen de faire cela moins hacky?

1
clvx

Bonnes nouvelles!

Sur la version 0.8.5, Guake sera affiché sur le moniteur actif, vous n’aurez donc plus à modifier le code de Guake.

1

Comme lalit l’a dit, la meilleure façon que j’ai trouvée de le faire sur Ubuntu 14.04LTS était de changer

window_rect = screen.get_monitor_geometry(0)

à

window_rect = screen.get_monitor_geometry(0)

mais changeant

    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

La seule différence est dans le premier "if", sans ajouter "total_width" à "window_rect.x" guake apparaît au milieu de mon moniteur gauche.

P.S: Désolé Lalit mais je ne peux pas ajouter de commentaire à ton message car je n’ai pas encore de points = (

1
Ramiro R.C.

La solution de wilfo ne fonctionne pas pour moi. Dans mon cas, j'ai résolu le problème avec Linux Mint avec le code suivant:

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

Je le prends de ici , mais j'ai changé 80 en 100.

1
smartmouse

J'ai dû changer cela sur Ubuntu 16.04 LTS avec 2 moniteurs.

J'essayais les méthodes ci-dessus, mais je réalisais que le code avait changé depuis. Je suis allé dans ~/.gconf/apps/guake/general et édité %gconf.xml et ai changé display_n (int) de 0 à 1 pour mon deuxième moniteur.

J'espère que cela t'aides :)

0
pwnall1337

Je n'ai pas testé cela, mais je pense que vous pouvez simplement éditer/usr/bin/guake puisqu'il s'agit d'un script python.

Trouver

window_rect = screen.get_monitor_geometry(0) #line 824 sur ma machine

et remplacez le 0 par l’index du moniteur que vous souhaitez afficher dans.

0
Jack

Juste pour ajouter aux réponses de smartmouse et de wilfo, une fois que vous avez effectué la modification dans/usr/bin/guake, vous devez procéder à un redémarrage brutal. La déconnexion de la session guake ne met pas fin au processus Guake.

Ouvrez le moniteur système et arrêtez le processus d'application guake, puis redémarrez.

0
Anuraag