web-dev-qa-db-ja.com

i3のワークスペーススライディングアニメーション

ArchLinuxのi3でワークスペースのスライドアニメーションを作成するにはどうすればよいですか?

完全なDEを使用したくないのですが、現在コンプトンとしてコンプトンを使用していますが、ワークスペースを切り替えるとフェードイン/フェードアウトしか提供されません。KDEのようなスライドアニメーションを実行したり、ノーム。

別のコンポジターをインストールしてもかまいませんが、可能であればcomptonとi3でインストールできるようにしたいと思います。 (私は自分でより低レベルのAPIを使用してアニメーションをコーディングする必要がないことを気にしませんが、どこから始めればよいかわかりません)


2番目の手順は、MacO(またはWindows 10でも同様)のようにワークスペースを切り替えることです。トラックパッドで指をドラッグすると、ワークスペースがスムーズに切り替わります。ワークスペースのドラッグを停止すると、元の場所に戻ります。 (私は this について話している)Linuxシステムでセットアップするのは本当にクールだろう。私はLibinput(およびlibinputジェスチャー)を使用していますが、そのような機能があるかどうかはわかりません。


ArchLinuxでi3を使用してMacO/Windows10ワークスペース切り替えエクスペリエンスに最も近づくにはどうすればよいですか?

10
tourdetour

これは私がずっと前にやったことですが、おそらくこのように行うべきではありません。信じられないほどハックで非効率的です! :P
基本的に現在の画面のスクリーンショットを作成し、一度に1ピクセルずつ横にスライドさせます。 (速度は私が推測するコンピューターに依存します。)

私はこのコード内でワークスペースを変更するたびにトリガーされるbashスクリプトgoto_to_workspace.shを持っています(スクリプトは、引数番号をワークスペース番号として使用します。例:goto_to_workspace.sh 4

WORKSPACE=$1
WKSP=`xprop -root -notype  _NET_CURRENT_DESKTOP | sed 's#.* =##'`
CURRENT_WORKSPACE=`expr 1 + $WKSP`
if [ $CURRENT_WORKSPACE -ne $WORKSPACE ]; then
    scrot -q 50 PRTSRC.jpeg
    feh PRTSRC.jpeg&
    FEH_WINDOW=$!
    #WAIT (give i3 time to switch workspace in the background)
    sleep .2
fi
slide_FEH_LEFT(){
    LONG_LINE="move left 1px"
    for i in {1..11}; do
        LONG_LINE=$LONG_LINE","$LONG_LINE
    done
    i3-msg "[class=feh] $LONG_LINE"
}
slide_FEH_RIGHT(){
    LONG_LINE="move right 1px"
    for i in {1..11}; do
        LONG_LINE=$LONG_LINE","$LONG_LINE
    done
    i3-msg "[class=feh] $LONG_LINE"
}
if [ $CURRENT_WORKSPACE -gt $WORKSPACE ]; then
    slide_FEH_RIGHT
else
    slide_FEH_LEFT
fi
#SIMPLE KILL AFTER 500ms
{ sleep .5 && kill $FEH_WINDOW; } &

編集:問題をより深く調査します。代わりにwmctrlを使用する方が賢明です。

したがって、下がる機能はたとえば次のようになります:(私の1920x1080画面の場合)

slide_FEH_DOWN_wmctrl(){
    FEH_ID=`wmctrl -l|grep "PRTSRC.jpeg$"|awk '{print $1}'`
    for (( c=0; c!=1100; c=c+10 )) do
        wmctrl -i -r $FEH_ID -e 1,0,$c,1920,1080
    done
}

また、xlib(cまたはpython)を使ってすばやく何かを実行しようとしましたが、wmctrlよりもスムーズではありません。したがって、誰かがそれをよりよく行うことができる場合は、私たちに知らせてください。

EDIT2:もちろん、たとえばi3の設定で、次のように固執する必要があります。

for_window [class="feh"] floating enable, sticky enable, border pixel 0, move absolute position 0 px 0 px
2
bob dylan

私はそれを達成する方法を見つけていませんが、これはおそらく可能かもしれません。

I3wmを5年間使用しています。不要な毛羽立ちのない、高速を目指しています。 i3wm.orgの引用:「肥大化しないでください、空想しないでください」

あなたのリクエストはこのウィンドウマネージャの範囲外のようです。 KDEやGnomeで見られるようなスムーズなアニメーションが本当に必要な場合は、これらのアニメーションのほうが適している場合があります。

1
krompus