Как отключить минимизацию окон для кнопки & ldquo; Activities & rdquo; на Гноме?

Я использую oneiric с оболочкой gnome и Docky. Окна сводятся к минимуму в обзоре «Действия» на панели. Как я могу получить эффект минимизации для docky вместо этого в Activity?

5
задан 15 October 2011 в 10:39

11 ответов

Извините, что воскресить такой старый поток, но я ищу, чтобы написать некоторые пользовательские анимации для Gnome Shell, и это почти единственный поток, который я могу найти, который был смутно полезен.

На всякий случай помогает кому-то еще, вот что я разработал до сих пор:

// 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]
                 });

. Короче говоря, если у вас есть док-станция внизу, вы можете легко сделать анимацию до середины ее do:

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

y: primary.height

Не идеально, но это начало ...

2
ответ дан 25 July 2018 в 21:10

Попробуйте использовать расширение GNOME Disable Window Animations :

1
ответ дан 2 August 2018 в 02:50

Извините, что воскресить такой старый поток, но я ищу, чтобы написать некоторые пользовательские анимации для Gnome Shell, и это почти единственный поток, который я могу найти, который был смутно полезен.

На всякий случай помогает кому-то еще, вот что я разработал до сих пор:

// 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]
                 });

. Короче говоря, если у вас есть док-станция внизу, вы можете легко сделать анимацию до середины ее do:

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

y: primary.height

Не идеально, но это начало ...

2
ответ дан 2 August 2018 в 02:50

Я хотел сделать то же самое, но с более низкой нижней панелью, а не док-станцией. Однако концепция та же. Я думаю, вы можете отредактировать этот файл:

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

Я попытался точно определить эффект, но единственное Я нахожу здесь следующее:

/* 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]
                     });
},

Если бы были какие-либо другие переходы, возможно, его можно было бы заменить. Я мог даже согласиться на переходный процесс. Я просто не знаю, где указаны эти переменные. Я думаю, что важными строками являются x: xDest,, y: 0 и переход: 'easeOutQuad',

Если кто-то хочет добавить это или исправить, пожалуйста, помогите.

2
ответ дан 2 August 2018 в 02:50

Попробуйте использовать расширение GNOME Disable Window Animations :

1
ответ дан 4 August 2018 в 18:38

Извините, что воскресить такой старый поток, но я ищу, чтобы написать некоторые пользовательские анимации для Gnome Shell, и это почти единственный поток, который я могу найти, который был смутно полезен.

На всякий случай помогает кому-то еще, вот что я разработал до сих пор:

// 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]
                 });

. Короче говоря, если у вас есть док-станция внизу, вы можете легко сделать анимацию до середины ее do:

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

y: primary.height

Не идеально, но это начало ...

2
ответ дан 4 August 2018 в 18:38

Я хотел сделать то же самое, но с более низкой нижней панелью, а не док-станцией. Однако концепция та же. Я думаю, вы можете отредактировать этот файл:

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

Я попытался точно определить эффект, но единственное Я нахожу здесь следующее:

/* 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]
                     });
},

Если бы были какие-либо другие переходы, возможно, его можно было бы заменить. Я мог даже согласиться на переходный процесс. Я просто не знаю, где указаны эти переменные. Я думаю, что важными строками являются x: xDest,, y: 0 и переход: 'easeOutQuad',

Если кто-то хочет добавить это или исправить, пожалуйста, помогите.

2
ответ дан 4 August 2018 в 18:38

Извините, что воскресить такой старый поток, но я ищу, чтобы написать некоторые пользовательские анимации для Gnome Shell, и это почти единственный поток, который я могу найти, который был смутно полезен.

На всякий случай помогает кому-то еще, вот что я разработал до сих пор:

// 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]
                 });

. Короче говоря, если у вас есть док-станция внизу, вы можете легко сделать анимацию до середины ее do:

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

y: primary.height

Не идеально, но это начало ...

2
ответ дан 6 August 2018 в 03:03

Единственный способ изменить это (в настоящее время) без изменения исходного кода - это написать расширение, которое изменяет свойства анимации минимизации, чтобы оно предназначалось для док-станции.

1
ответ дан 7 August 2018 в 20:44

Я хотел сделать то же самое, но с более низкой нижней панелью, а не док-станцией. Однако концепция та же. Я думаю, вы можете отредактировать этот файл:

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

Я попытался точно определить эффект, но единственное Я нахожу здесь следующее:

/* 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]
                     });
},

Если бы были какие-либо другие переходы, возможно, его можно было бы заменить. Я мог даже согласиться на переходный процесс. Я просто не знаю, где указаны эти переменные. Я думаю, что важными строками являются x: xDest,, y: 0 и переход: 'easeOutQuad',

Если кто-то хочет добавить это или исправить, пожалуйста, помогите.

2
ответ дан 10 August 2018 в 09:06

Попробуйте использовать расширение GNOME Disable Window Animations :

1
ответ дан 15 August 2018 в 21:58

Другие вопросы по тегам:

Похожие вопросы: