web-dev-qa-db-ja.com

Gnomeの「アクティビティボタン」に対するウィンドウの最小化を無効にする方法は?

私はgnome ShellとDockyでoneiricを使用しています。ウィンドウは、パネル上の「アクティビティ」概要に最小化されています。アクティビティの代わりにdockyの最小化効果を取得するにはどうすればよいですか?

5
Edocastillo

私は同じことをしたかったのですが、ドックの代わりにフリッピーなボトムパネルを使いました。コンセプトは同じです。このファイルを編集できると思います。

/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、およびtransition: 'easeOutQuad'、だと思います

これに追加したり修正したりする人がいる場合は、助けてください。

2
Zbeefy

このような古いスレッドを復活させて申し訳ありませんが、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]
                 });

要するに、ドックが下部にある場合は、次のようにすることでアニメーションを簡単に中央に移動させることができます。

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

y:primary.height

完璧ではありませんが、それは始まりです...

2
L Perry

ソースコードを変更せずにこれを(現在)変更する唯一の方法は、最小化アニメーションのプロパティを変更してドックを対象とする拡張機能を作成することです。

1
RolandiXor