web-dev-qa-db-fra.com

Comment désactiver la minimisation de Windows sur le "bouton Activités" sur Gnome?

J'utilise oneiric avec gnome Shell et Docky. Les fenêtres sont réduites à la vue d'ensemble "Activités" du panneau. Comment puis-je obtenir l'effet de minimisation pour docky à la place des activités?

5
Edocastillo

Je voulais faire la même chose mais avec le panneau inférieur de frippery, au lieu du dock. Le concept est cependant le même. Je pense que vous pouvez éditer ce fichier:

/usr/share/gnome-Shell/js/ui/windowManager.js

J'ai essayé de localiser l'effet mais la seule chose que je trouve ici est la suivante:

/* scale window down to 0x0.
     * maybe TODO: get icon geometry passed through and move the window towards it?
     */
    this._minimizing.Push(actor);

    let primary = Main.layoutManager.primaryMonitor;
    let xDest = primary.x;
    if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
        xDest += primary.width;

    Tweener.addTween(actor,
                     { scale_x: 0.0,
                       scale_y: 0.0,
                       x: xDest,
                       y: 0,
                       time: WINDOW_ANIMATION_TIME,
                       transition: 'easeOutQuad',
                       onComplete: this._minimizeWindowDone,
                       onCompleteScope: this,
                       onCompleteParams: [shellwm, actor],
                       onOverwrite: this._minimizeWindowOverwritten,
                       onOverwriteScope: this,
                       onOverwriteParams: [shellwm, actor]
                     });
},

S'il y avait d'autres transitions, il serait peut-être possible de la remplacer. Je pourrais même me contenter d'une transition en fondu. Je ne sais simplement pas où ces variables sont spécifiées. Je pense que les lignes importantes sont x: xDest,, y: 0, et transition: 'easiteOutQuad',

S'il y a quelqu'un qui souhaite ajouter à cela ou le corriger, aidez-nous.

2
Zbeefy

Désolé de ressusciter un tel vieux fil, mais je cherche à écrire des animations personnalisées pour Gnome Shell et c'est à peu près le seul fil que je peux trouver qui était vaguement utile.

Juste au cas où cela aiderait quelqu'un d'autre, voici ce que j'ai trouvé jusqu'à présent:

// Push the current actor onto the 
// minimising stack / queue / list / 
// whatever it is

this._minimizing.Push(actor);

// get the main monitor

let primary = Main.layoutManager.primaryMonitor;

// calculate the destination for the x 
// coordinate (0,0 is top left so this 
// is presumably 0 for single monitor set ups)

let xDest = primary.x;

// if Clutter is configured to use 
// right-to-left text, then the 
// activities button is on the 
// right hand side, so add the 
// monitor width to xDest

if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
    xDest += primary.width;

// add the animation to the window

Tweener.addTween(actor,
                 { 

                   // shrink the height and width down to 0

                   scale_x: 0.0,
                   scale_y: 0.0,

                   // move to the calculated destination
                   // (most likely top-left i.e. 0,0)

                   x: xDest,
                   y: 0,

                   // take the correct amount of time

                   time: WINDOW_ANIMATION_TIME,

                   // set the type of curve to use
                   // during the animation

                   transition: 'easeOutQuad',

                   // set up some events to trigger 
                   // when were done

                   onComplete: this._minimizeWindowDone,
                   onCompleteScope: this,
                   onCompleteParams: [shellwm, actor],
                   onOverwrite: this._minimizeWindowOverwritten,
                   onOverwriteScope: this,
                   onOverwriteParams: [shellwm, actor]
                 });

Donc, si vous avez votre dock en bas, vous pouvez facilement faire en sorte que l'animation se mette au milieu en faisant:

x: primary.x + (primary.width/2)

y: hauteur.principale

Pas parfait mais c'est un début ...

2
L Perry

La seule façon de changer cela (actuellement) sans changer le code source, serait d'écrire une extension qui change les propriétés de l'animation de minimisation afin qu'elle cible le dock.

1
RolandiXor