i3のワークスペーススライドアニメーション

i3のワークスペーススライドアニメーション

ArchLinuxのi3でワークスペーススライドをアニメーション化するには?

完全なDEを使用したくありません。現在コンプトンをコンポジターとして使用していますが、ワークスペースを切り替えるときにフェードイン/アウトのみを提供するため、KDEやGnomeなどのスライドアニメーションを実行することはできません。

他のシンセサイザーをインストールしても大丈夫ですが、可能であればcomptonとi3も一緒にインストールしたいと思います。 (低レベルのAPIを使用せずにアニメーションを直接書く必要はありませんが、どこから始めるべきかわかりません)


2番目のステップは、MacO(または現在のWindows 10)のようにワークスペースを切り替えることです。トラックパッドから指をドラッグすると、ワークスペースがスムーズに切り替わります。ドラッグを停止すると、ワークスペースは元の位置に戻ります。 (私の話これ)はLinuxシステムで設定するのが本当に良いです。私はLibinput(およびlibinputジェスチャー)を使用していますが、そのような機能があるかどうかはわかりません。


MacOs / Windows 10に最も近いワークスペース移行経験を得るためにArchLinuxでi3を使用する方法は?

ベストアンサー1

これは私がずっと前にやったことですが、おそらくやってはいけません。信じられないほど悪く、非効率的です! :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を使用する方が賢明でしょう。

したがって、ダウン機能は次のようになります。 (マイ1920×1080画面の場合)

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設定のように持続するにはfehが必要です。

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

おすすめ記事