PC의 배경화면도 안드로이드의 라이브 배경 화면처럼 멋지게 나오면 좋은데 아직 그런 것을 지원하지 않는다. 대신 그놈 데스크탑에는 timed background라고 하는, 배경이 시각에 따라 바뀌게 하는 기능이 있다. 그놈에 이런 배경화면으로 adwaita-timed라고 하는 것이 기본으로 들어 있는데 /usr/share/backgrounds/gnome/adwaita-timed.xml 파일에 정의되어 있다. 이 파일을 본따 나만의 배경을 만들어 본다.

인터넷에서 쉽게 얻을 수 있는 GIF 파일을 풀어서 각 프레임을 이미지 파일로 만들자. Imagemagick의 convert란 툴을 이용하면 GIF를 PNG로 변환할 수 있는데 그냥 하면 제대로 된 결과를 얻을 수 없다. 용량을 줄이기 위해선지 각 프레임이 이전 프레임에서 바뀐 정보만을 담고 있기 때문이다. 그래서 convert-coalesce 옵션을 주어야 한다. GIF 파일을 이름이 test.gif라고 하면 다음과 같은 명령을 주면 된다.

convert test.gif -coalesce test.png

그러면 test-0.png, test-1.png, …가 프레임 수만큼 생길 것이다. 이 파일들로 홈디렉토리 아래 적당한 디렉토리 안에 다음과 같은 XML 파일을 만들고 저장한다. 그림 파일 경로는 절대 경로로 넣어 준다.

<background>
  <static>
    <duration>1</duration>
    <file>/absolute/path/to/directory/test-0.png</file>
  </static>

  <static>
    <duration>1</duration>
    <file>/absolute/path/to/directory/test-1.png</file>
  </static>

  ........
</background>

duration의 단위는 초이다. 0.5를 줘도 그만큼 빠르게 바뀌지는 않는다. 처리 속도 때문인 것 같기도 하고 모르겠다.

이 XML 파일을 gnome-tweaks 프로그램을 이용해 배경으로 설정할 수 있다. gnome-tweaks는 한국어 번역으로는 ’기능 개선’이란 이름을 가지고 있다.

그놈 자체 배경 설정 프로그램에 나오게 해서 배경으로 설정할 수도 있는데 홈디렉토리 아래 ~/.local/share/gnome-background-properties라는 디렉토리에 또 다른 XML 파일을 만들어 주어야 한다. 참고할 파일은 /usr/share/gnome-background-properties/adwaita.xml이다. 이 파일에는 wallpaper 태그가 하나밖에 없지만 여러 개 넣어도 된다. 앞서 만든 timed background XML 파일을 filename 태그의 내용으로 넣으면 그놈 배경 설정 프로그램에 그게 표시된다. 그러면 배경 화면이나 잠금 화면을 설정할 수 있다.

아 씨 성 이 자 돌림의 가수들의 GIF 파일로 timed background를 만들었다. 아, 신 씨도 있다. GIF 파일은 대체로 화질이 떨어지는데 화소가 큼지막하게 보이는 것이 무슨 효과를 준 것 같고 멋있다.

팁: VIM으로 <static> 태그 반복 넣기

XML 파일에 많은 <static> 태그를 넣어야 하는데 일일이 손으로 넣을 수는 없다. 셸스크립트로 넣을 수 있겠지만 VIM으로 간단하게 할 수 있다. 매크로를 저장하고 그림 파일 개수에 따라 반복하면 된다. 그림 파일에 붙은 숫자는 Ctrl-a를 누르면 증가한다. 그런데 앞에 마이너스 부호(-)가 붙어서 음수로 생각하고 -0을 그냥 1로 만들어 버린다. 그래서 증가 대신 감소하는 명령 Ctrl-x를 사용한다.

  1. <static> 시작 태그가 시작하는 줄에서 qa 명령을 넣는다. 매크로 기록을 시작하는 것이고 매크로 이름을 a로 주는 것이다.
  2. V 명령을 치고 커서를 움직여 </static> 태그가 있는 줄까지 비주얼 선택을 한다. (빈 줄을 포함시키려면 한 줄 더 내린다.)
  3. y로 복사한다.
  4. 커서를 아래로 움직여 내리고 p 명령으로 붙여 넣는다. (빈 줄을 포함시키지 않으려면 </static> 태그 줄까지, 포함시키려면 그 아래 줄까지 내린다.)
  5. /를 친 후에 그림 파일 이름을 넣고 엔터를 쳐서 커서가 파일 이름으로 가게 한다.
  6. f- 명령으로 숫자에 커서가 위치하게 한다.
  7. Ctrl-x 명령으로 숫자를 감소시킨다.
  8. 위로 커서를 이동시켜 이번에 붙여 넣은 <static> 시작 태그 줄에서 q를 쳐서 매크로 기록을 끝낸다.
  9. 이번에 붙여 넣은 <static> 시작 태그 줄에서 50@a와 같이 명령을 넣는다. 50은 그림 파일 개수로 바꾼다.