Comment utiliser Guake sur le moniteur de droite dans un environnement à double affichage

Réponses:

21

J'utilise deux moniteurs et je voulais que Guake soit affiché sur celui de droite (où par défaut il est affiché sur celui de gauche).

Ce que j'ai fait, c'est d'éditer mon /usr/bin/guake/fichier en remplaçant la get_final_window_rectméthode 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 1comme index du moniteur et plus tard, ajoute la bonne largeur d'écran à l'affichage du point de départ de la fenêtre guake

J'espère que cela t'aides!

wilfo
la source
Comment avez-vous ouvert ce fichier pour le modifier? Je l'ai fait via le fichier $ xdg-open mais il s'ouvre en lecture seule.
Kevin
N'importe quel éditeur de texte fera l'affaire, utilisez sudoau début de la commande pour avoir des privilèges d'administrateur
wilfo
Curieusement, cela alterne entre gauche et droite chaque fois que je l'ouvre lorsque je règle le «placement du lanceur» pour le moniteur gauche uniquement. Le mettre à droite le fait fonctionner à chaque fois.
rmobis
3
C'est vrai. Votre commentaire a fait que j'installe la dernière version de Guake (à partir de ce ppa: https://launchpad.net/~webupd8team/+archive/ubuntu/unstableet il semble qu'ils l'ont fait maintenant que vous pouvez choisir entre le terminal apparaissant sur l'écran de la souris ou le verrouiller sur un écran spécifique, qui, je pense, est une assez bonne solution à mon avis
wilfo
Le commentaire de @ wilfo identifiant les mises à jour des développeurs d'origine fournit la solution la plus simple. Les fonctionnalités intégrées de Guake 0.7.2 ajoutent la possibilité de régler l'affichage ainsi que de nombreux autres paramètres utiles.
Steven C. Howell
2

La solution est très simple, car vous voulez 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 la même, c'est-à-dire qu'elle commencera à partir de 0 mais de la coordonnée x va changer et il doit ê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 à 1, comme suggéré ci-dessus. En ligne

window_rect = screen.get_monitor_geometry (0)

Remplacez 0 par 1.

II. Ajoutez 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 (Quitter et recommencer), vous devriez obtenir l'alignement souhaité de l'écran Guake.

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

lalit
la source
1

J'ai également fait de ceci une question: guake sur le 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 modifier:

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 connaît un moyen de faire cela moins hacky?

clvx
la source
1

Comme l'a dit lalit, la meilleure façon 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 "si", sans ajouter "total_width" à "window_rect.x" guake apparaît au milieu de mon moniteur gauche.

PS: Désolé Lalit mais je ne peux pas ajouter de commentaire à votre message car je n'ai pas encore de points = (

Ramiro RC
la source
1

La solution de wilfo ne fonctionne pas pour moi. Dans mon cas, j'ai résolu sur 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 d' ici , mais j'ai changé 80pour 100.

smartmouse
la source
1

Bonnes nouvelles!

Sur la version 0.8.5, Guake sera affiché sur le moniteur actif, vous n'avez donc plus besoin de modifier le code Guake.

apprenant éternel
la source
la version 0.5.0 (celle du repo ubuntu) le prend également en charge:apt-get install --only-upgrade guake
Artur Klesun
0

Je n'ai pas testé cela mais je pense que vous pouvez simplement éditer / usr / bin / guake car c'est un script python.

Trouver

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

et changez le 0 en index du moniteur dans lequel vous souhaitez que guake s'affiche.

Jack
la source
1
J'ai modifié la ligne 0à 1en /usr/lib/guake/guake.py. Et redémarrez guake, mais rien ne change.
ironsand
0

Juste pour ajouter aux réponses de smartmouse et wilfo, une fois que vous avez modifié / usr / bin / guake, vous devez alors redémarrer. La déconnexion de la session Guake ne met pas fin au processus Guake.

Ouvrez le moniteur système et tuez le processus de demande de guake puis redémarrez

Anuraag
la source
0

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

J'essayais les méthodes ci-dessus mais j'ai réalisé que le code avait changé depuis. Je suis entré dans ~/.gconf/apps/guake/generalet sous la direction %gconf.xmlet a changé display_n (int)de 0à 1mon 2ème moniteur.

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

pwnall1337
la source
-1

J'essaye dans Ubuntu 14.04, j'ai trouvé que vous avez juste besoin de cliquer sur "Préférences" à l'icône de guake (écran en haut à droite) dans l'un ou l'autre moniteur, puis cliquez sur "Afficher" dans le même moniteur, puis vous pouvez voir le terminal guake apparaître sur le moniteur que vous utilisent !!!

tony chen
la source
On ne sait pas (du moins pour moi) comment cette approche va "définir monitor_index". Pourriez-vous modifier cette réponse pour clarifier comment elle répond à la question? Merci!
Elder Geek