ArchLinux의 i3에서 작업 공간 슬라이딩을 애니메이션화하는 방법은 무엇입니까?
전체 DE를 사용하고 싶지 않습니다. 현재 compton을 컴포지터로 사용하고 있지만 작업 공간을 전환할 때 페이드 인/아웃만 제공하므로 KDE나 Gnome과 같은 슬라이딩 애니메이션을 수행할 수 없습니다.
다른 신디사이저를 설치해도 괜찮지만, 가능하다면 compton과 i3도 함께 설치하고 싶습니다. (낮은 수준의 API를 사용하지 않고 애니메이션을 직접 작성하지 않아도 괜찮지만 어디서부터 시작해야 할지 모르겠습니다)
두 번째 단계는 MacO(또는 현재 Windows 10)에서와 같이 작업 영역을 전환하는 것입니다. 트랙패드에서 손가락을 드래그하면 작업 영역 간에 원활하게 전환됩니다. 드래그를 중지하면 작업 영역이 원래 위치로 되돌아갑니다. (내 얘기는이것)는 Linux 시스템에 설정하는 것이 정말 좋습니다. 저는 Libinput(및 libinput 제스처)을 사용하고 있지만 그러한 기능이 있는지는 모르겠습니다.
MacOs/Windows10에 가장 가까운 작업 공간 전환 경험을 얻기 위해 ArchLinux에서 i3를 사용하는 방법은 무엇입니까?
답변1
이것은 제가 오래 전에 했던 일이지만 아마도 해서는 안 될 일입니다. 믿을 수 없을 정도로 해악스럽고 비효율적입니다! :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: 물론 i3 구성과 같이 지속하려면 feh가 필요합니다.
for_window [class="feh"] floating enable, sticky enable, border pixel 0, move absolute position 0 px 0 px
답변2
아직 구현 방법을 찾지 못했지만 아마도 가능할 것입니다.
나는 5년 동안 i3wm을 사용해 왔습니다. 빠르고 불필요한 보풀이 없는 것을 목표로 합니다. i3wm.org를 인용하자면: "부풀어오르지 않고, 종소리도 없고 휘파람 소리도 없습니다."
귀하의 요청은 해당 창 관리자의 범위를 벗어나는 것 같습니다. KDE나 Gnome에서 볼 수 있는 것과 같은 부드러운 애니메이션을 정말로 원한다면 이것이 더 나을 수도 있습니다.