Arch-Linux
i3中的工作區滑動動畫
如何在 ArchLinux 上的 i3 中製作工作區滑動動畫?
我不想使用完整的 DE,我現在使用 compton 作為合成器,但它僅在切換工作區時提供淡入/淡出,我無法讓它執行滑動動畫,例如 KDE 中的動畫或侏儒。
我不介意安裝另一個合成器,但如果可能的話,我希望能夠使用 compton 和 i3 來完成。(我不介意不必使用更底層的 api 並自己編寫動畫,但我不知道從哪裡開始)
第二步是像在 MacO 上(或者現在也在 Windows 10 上)那樣進行工作區切換,您可以在觸控板上拖動手指,它會在工作區之間順利切換:如果您停止拖動,工作區將彈回原位。(我說的是這個)在 Linux 系統上設置真的很酷。我正在使用 Libinput(和 libinput 手勢),但我不知道是否有這樣的功能。
如何在 ArchLinux 上使用 i3 獲得最接近 MacOs/Windows10 工作區切換體驗?
這是我很久以前所做的,但可能不應該這樣做,它非常笨拙且效率低下!:P
它基本上是對目前螢幕進行截圖,然後一次將其滑動到一邊一個像素。(我猜速度取決於電腦。)
我有一個 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:當然,您需要 feh 保持粘性,例如在您的 i3 配置中:
for_window [class="feh"] floating enable, sticky enable, border pixel 0, move absolute position 0 px 0 px