2012. 10. 31. 13:33

ubuntu에서 sudo(root) 프로세스의 ui(kde) theme 제대로 잡기

ubuntu에서는 kde(qt로 제작된) ui 프로세스를,

$ sudo ./Test
$ gtksudo ./Test

와 같이 실행하면 다음과 같이 표시됩니다.


즉, theme가 적용이 안됩니다.

원래, $ ./Test와 같이 명령하면 다음과 같습니다.


그래서, 아래와 같이 2개의 env.txt / env_sudo.txt를 diff하여 그 원인을 찾아봤습니다.

$ env > /tmp/env.txt
$ sudo env > /tmp/env_sudo.txt

그 원인은 sudo를 통할 때, GNOME_DESKTOP_SESSION_ID 환경 변수가 전달되지 않아 발생한 문제였습니다.
따라서, 아래와 같이 실행하십시요.

$ sudo visudo
그러면 nano editor 같은 창이 발생합니다.
맨 끝 부분에,
Defaults env_keep += "GNOME_DESKTOP_SESSION_ID"
를 추가하신 다음 CTRL+X하고 Y를 누르면, sudo 명령시 해당 환경 변수값이 전달됩니다.

그러면 해당 ui가 제대로 표시가 되더군요 (ubuntu 11.04).

만일 향후 ubuntu의 업그레이드등으로 인해 재대로 동작하지 않을 때는, 제가 했던 방법(env.txt / env_sudo.txt 두개 diff하여 하나씩 추가하는 방법)을 응용하면 될 듯 합니다. Default env_keep += "A B C ..."와 같이 공백으로 여러개를 등록할 수 있으니 참고하세요.