私はgnome ShellとDockyでoneiricを使用しています。ウィンドウは、パネル上の「アクティビティ」概要に最小化されています。アクティビティの代わりにdockyの最小化効果を取得するにはどうすればよいですか?
私は同じことをしたかったのですが、ドックの代わりにフリッピーなボトムパネルを使いました。コンセプトは同じです。このファイルを編集できると思います。
/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'、だと思います
これに追加したり修正したりする人がいる場合は、助けてください。
このような古いスレッドを復活させて申し訳ありませんが、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
完璧ではありませんが、それは始まりです...
ソースコードを変更せずにこれを(現在)変更する唯一の方法は、最小化アニメーションのプロパティを変更してドックを対象とする拡張機能を作成することです。