ubuntu는 기본적으로 gnome 데스크탑 환경을 사용하는데 AWN 같은 것도 써 봤지만 아무래도 제일 무난하게 쓸 수 있는 것은 gnome-panel이다. 그런데 이 gnome-panel을 쓰다가 panel에 올려 놓은 applet이나 object들의 위치가 간혹 이리저리 엉키는 현상이 발생하곤 한다. 그러면 applet들 위치를 맞춰주느라고 또 이리저리 마우스질을 해야 하니 여간 귀찮은 것이 아니다. launchpad에 있는 이 글이나 brainstorm.ubuntu.com에 있는 이 글 같은 곳에 이런저런 얘기들이 있는데 모두 다 읽고 나서 ubuntu 8.10 intrepid ibex의 경우에는 문제들이 많이 호전됐다는 것을 알 수 있다. 그래도 applet들을 추가하고 마우스로 위치를 지정한 경우에는 어느 순간에 가면 엉키는 현상은 여전히 생긴다. 지금은 panel에 올릴 수 있는 applet들을 꽤 둘러본 상태고 더 이상 새로 applet을 추가할 일도 거의 없을 것 같기에 applet들 위치를 확정적으로 고정하기로 했다. 위에 링크한 첫번째 글에 중요한 hint들이 많이 들어 있다.
우선 손을 보기 전의 panel의 모양은 이런 상태였는데 한 번 엉키고 나서 마우스로 이리저리 조정한 것이다. 거기에 리붓을 하고 나면 또 이런 식으로 배치가 영 찜찜하고 간격도 생긴다.
위 링크한 글들에 의하면 gconf-editor를 통해서 applet의 위치를 직접 수치를 입력해서 지정해 줄 수가 있다는 것을 알 수 있다.
위 화면은 gconf-editor를 열고 /apps/panel 아래를 연 모습이다. applets에 보면 10개의 applet이 현재 등록돼 있고, objects에 보면 5개의 object들이 등록돼 있다는 것을 볼 수 있는데, applets에 있는 것들은 말 그대로 applet인 것들이고, objects에 들어 있는 것은 메뉴 항목이나 구분선이나 프로그램 실행 단축 아이콘 같은 것들이다. general 항목을 보면 현재 panel에 올라와 있는 applet들과 object들이 모두 나열돼 있다.
하나의 예로 applet_0을 보면 object_type이 bonobo-applet이라고 돼 있고 위치는 panel의 왼쪽 끝을 기준으로 1231 픽셀 우로 이동한 곳이다. bonobo_iid가 OAFID:GNOME_GWeatherApplet이라고 돼 있는 것으로 첫번째 스크린샷에서 오른쪽에서 두번째인 날씨 애플릿인 것을 알 수가 있다. position 바로 위에 있는 panel_right_stick이 체크돼 있는 경우는 위치를 panel의 오른쪽 끝을 기준으로 지정하게 된다. 패널의 왼쪽 끝은 상관 없이 오른쪽에 정렬해서 붙일 경우에 유용하다.
이제 삽질의 시간인데, applet들의 bonobo-iid를 보면서 어떤 applet인지 확인하고 object들의 경우는 object_type이나 launcher_location 등을 보면서 실제 어떤 녀석인지 확인한다. 기억력에 자신이 있으면 applet이나 object들을 하나씩 확인하면서 바로 위치를 지정해도 되고, 그렇지 않으면 어딘가 적어 놔도 된다. 어쨌든, 위치는 오른쪽 끝이든 왼쪽 끝이든 첫번째 녀석은 0, 그 다음은 1, 그 다음은 2, 이런 식으로 한다. 위치는 픽셀 단위이지만 panel에 applet이나 object들이 실제 올라갈 때는 겹치지 않도록 적당히 위치를 이동하게 된다. 1 픽셀 단위로 적어 놓으면 applet이나 object들이 사이에 간격 없이 잘 배열된다. 위치를 지정하면서 여섯번째에 있는 locked 항목도 체크해 준다.
이런 식으로 지정하면 실제 applet들의 위치가 바로 이동하지는 않는다. 그렇다고 또 마우스질을 할 수는 없으니 panel을 다시 띄운다. panel을 다시 띄우기 전에 gconf-editor에서 수정한 내용을 백업해 놓는다(만일을 위해서^^).
$ gconftool-2 --dump /apps/panel > panel.gconf
같은 식으로 하면 된다. panel이 떠 있다는 것은 gnome 세션의 기본 구성 요소에 panel이 포함돼 있다는 뜻이기 때문에 kill 명령으로 죽이면 gnome이 panel이 죽은 것을 감지하고 새로 띄우게 된다. (windows에서 explorer가 말썽을 부려서 프로세스를 죽이면 다시 뜨는 것과 유사하다.) 이런 식으로 한다.
panel이 다시 뜨고 나면 좀 보기가 나아진다. 필요한 applet들은 낭비하는 공간 없이 다닥다닥 붙어 있고, 위치가 엉키지도 않는다.