Compiz

3D 기술을 포함한 그래픽 칩이 널리 퍼지고 이에 대응하는 X 윈도우 환경과 아울러 윈도우 관리자 Compiz가 등장했다. 흔히 다음과 같은 영상을 통해 리눅스 진영도 맥 못지 않게 화려하다는 것을 각인시킬 때 쓰이곤 한다.
초창기에 AIGLX와 Xgl, Compiz와 Beryl로 분열되었으나 몇 년이 지난 지금에 와서는 하나로 평정된 상태다.


활용법

단순히 눈요기만이 아니라 맥에서 Dashboard나 Expose, Spaces를 운용하는 것과 같은 실용적인 기능을 위해서도 충분히 쓰이고 있다. 개인적으로 맥에서 각 화면 모서리에 반응하도록 설정했던 Expose와 Spaces 환경을 거의 똑같이 구성해(화면 모서리 반응은 설정에서 지원되는 경우 (키보드, 마우스 아이콘처럼) 모니터 아이콘이 설정 항목 옆에 나온다.) 기능상 차이를 거의 느끼지 못한다.

다만 맥에서 각 기능이 유기적으로 연동되어 가령 이 모서리로 Spaces를 불렀다가 저 모서리로 Dashboard를 불렀을 때 매끄럽게 사라지고 나타나는 모습까지는 안 나온다. 그리고 움직임도 경쾌하다고 할 수는 있겠지만 맥의 부드럽게 스스슥 움직이는 것과는 거리가 있다.


Spaces

데스크탑 부문의 Expo(expo) 플러그인에서 대응한다. 동작시에 Dock과 Panel을 숨기는 기능이 있어서 깔끔한 모습을 볼 수 있다.

개념적으로는 Desktop Wall(wall) 플러그인을 쓰는 것이 맞겠지만 데스크탑 큐브(cube)를 써도 expo의 동작에는 영향이 없다. 다만 expo로 보기에는 2x2 구성이 이쁜데 큐브 회전(rotate) 플러그인은 상하 이동이 없어서 4x1로 쓰는 것이 기능에 걸맞다는 점이 아쉽다.

Exposé

윈도우를 펼처서 보는 기능은 창 관리 부문의 스케일(scale) 플러그인 바로가기 부분에서 대응한다. 현재 화면의 창, 모든 화면의 창, 창 그룹에 대해 설정할 수 있다. 단, 맥에서처럼 마우스 미들클릭으로 지정하면 탭을 닫거나 할 때도 호출된다.

데스크탑 큐브(cube)+큐브 회전(rotate) 플러그인을 쓸 경우, 모든 화면의 창 중에서 다른 화면에 있는 창을 선택하면 큐브가 빠르게 돌아가는 연출과 함께 창이 있는 화면으로 가는 것을 볼 수 있다. (단 viewport가 2개일 경우 깨진 화면이 나오는 것을 경험했다) Desktop Wall(wall) 플러그인도 비슷한 식으로 미끄러지는 연출이 있어야 할 것 같은데 화면이 바뀌지 않는다. (설정을 빼먹은 건지 버그인지 모르겠다)

Docky를 '똑똑한 숨김' 상태로 두고 있는데 동작중에도 각 창의 활성화 상태에 따라 반응하는 것이 그대로 보여 거슬리는 감이 있다. Expo(expo) 플러그인처럼 동작중에 이러한 요소들을 숨기는 기능이 있어야 하지 않을까?

데스크탑을 보는 기능은 Show desktop(showdesktop) 플러그인에서 대응한다. Movement Direction을 To Corners로 하면 각 창이 일부만 남기고 모서리 쪽으로 넘어가는 동일한 모습을 볼 수 있다. 이전에는 이 동작 중에 창을 열 경우 화면의 크기 계산 자체가 영향을 받는 것인지 숨겨진 창이 다시 돌아오지 않는 등의 문제가 있어서 창을 열도록 명령을 내리면 즉시 동작을 해제해야 했는데 0.9 버전에서는 아직 경험한 바 없다.

Dashboard

데스크탑 부문의 Widget Layer(widget) 플러그인에서 대응한다.

위젯 창으로 인식할 창 특성을 지정하면 평소에는 안 보이다가 위젯 화면에서 나타나는 식인데, 지정한 바를 기억하지 못하면 멀쩡하게 실행한 프로그램이 (위젯에 잡혀 있어서) 화면에 보이지 않는 것을 보고 당황할 수 있다. (경험했다)

다만 여기에 적용할만한 프로그램이 (특히 날씨 표시) 마땅히 없어서 사용하지 않고 있다.


문제점

여러 데스크탑을 전통적인 여러 Workspace 대신 하나의 Workspace 안에 여러 Viewport로 처리하는데 (창 관리를 유기적으로 하기 위한 구조상의 선택으로 보인다) 이 때문에 기존에 개발된 프로그램의 명시적으로 Workspace에 대응하는 기능들과는 잘 안 맞다.

Desktop Wall(wall) 플러그인의 Edge flipping 기능이 화면 가장자리에 화면 동작을 인식하기 위한 보이지 않는 공간을 선점해두는데 이 때문에 가장자리에서 마우스가 제대로 반응하지 않는 문제가 있다. 큐브 회전(rotate)에도 같은 문제가 있다는 것 같다. 가장자리를 모두 해제해서 해당 기능을 쓰지 않는 것 외에는 해결책이 제시되지 않았다. Window Previews(thumbnail) 플러그인에서 의존하는 Mouse position polling(mousepoll) 플러그인이 이름처럼 마우스 위치를 잡아내는 거라면 wall이나 rotate에서도 쓸 수 있지 않을까?

0.9 버전이 2010년 7월 초에 발표되었는데 아직은 불안정하고 버그도 있다.
  • Docky가 위치한 화면 가장자리에서 일정 부분이 투명한 레이어에 덮여 마우스 동작이 그 아래로 전달되지 않는다. 실제로 Snapping Windows(snap) 플러그인을 켜면 근처에서 멈추는 지점이 보인다. 컴포지터가 레이어 처리를 이상하게 하는 것일까?
  • smplayer를 띄우면 화면이 먹통이 되어 compiz를 다시 띄워야 하는 경험을 했다. 잡다한 플러그인을 끄고 일단 동작 가능하게 만들고 정확한 원인 추적은 하지 않았다.
  • 창의 반응이 지연되거나 화면이 제대로 갱신되지 않는 경우가 있다. 내용 변화가 곧장 나타나지 않거나(damage과 repaint 과정이 이상한 걸까?), 스크롤을 했을 때 한동안 반응이 없거나 클릭 가능한 위치에서 hover 반응이 없는 등. 특히 크롬이 심하다.


Comments