GConf 저장소

GConf 저장소 내의 각 설정들은 키-값의 쌍으로 표현됩니다. GConf 설정 키는 특정 프로그램의 설정에 해당하는 저장소 내의 요소입니다. 예를 들어, /apps/gnome-session/options/show_splash_screen 설정 키는 세션 설정 도구 내의 로그인 시 스플래시 화면 보기에 해당하는 설정 키입니다. 그놈 데스크탑 사용자 인터페이스는 GConf 저장소 내의 모든 설정 키를 포함하지는 않습니다. 예를 들어 패널 설정 도구는 /apps/panel/global/tooltips_enabled 키에 해당하는 옵션을 갖고 있지 않습니다.

저장소는 간단한 계층 구조의 파일 시스템과 같은 구조로 이루어져 있습니다. 저장소는 다음과 같은 요소들을 포함합니다:

  • 디렉토리는 GConf 저장소를 이용하는 프로그램에 대응됩니다. 예를 들어 저장소 파일 시스템은 /apps/metacity 디렉토리를 포함합니다.
  • 하위 디렉토리는 설정들의 분류에 해당합니다. 예를 들어 저장소 파일 시스템은 /apps/metacity/general 디렉토리를 포함합니다.
  • 디렉토리 내의 설정 키 목록과 각 키에 대한 정보를 포함하는 특수 파일. 예를 들어 HTTP 프록시 설정에 관련된 키에 대한 정보를 포함하는 파일은 /system/http_proxy 디렉토리에 존재합니다.
  • /schemas 디렉토리는 모든 설정 키들을 설명하는 파일들을 포함합니다.

설정 키들은 일반적으로 문자열이나 정수 및 이들의 리스트와 같은 단순한 값을 가집니다. 저장소 내의 설정 키의 형식은 저장소를 읽기 위해 사용되는 백엔드 모듈에 따라 다릅니다. 다음은 /desktop/gnome/interface/font_name 설정 키가 XML 백엔드 모듈을 이용하여 저장소를 읽는 경우의 예입니다:

<entry name="font_name" mtime="1038323555" muser="user123" type="string">
<stringvalue>Sans 10</stringvalue></entry>

이 안내서에서 설정 키를 가리키는 경우에는, 해당 키의 경로를 키의 이름에 더할 것입니다. 예를 들어 /desktop/gnome/interface 디렉토리 내의 font_name 설정 키는 /desktop/gnome/interface/font_name의 형태가 됩니다.

1.2.1. GConf 설정 소스

GConf 저장소는 설정 소스라고 하는 일련의 저장 위치를 포함합니다. 설정 소스들은 GConf 경로 파일 내에 나열되어 있습니다. GConf 경로 파일의 위치는 /etc/gconf/gconf-버전-번호/path입니다. 각 사용자들은 하나의 경로 파일을 가집니다. 경로 파일은 각 설정 소스에 대해 다음과 같은 정보를 지정합니다:

  • 저장소를 읽기 위해 사용되는 백엔드 모듈.
  • 저장소의 접근 권한.
  • 저장소의 위치.

GConf 경로 파일은 include 명령도 포함합니다. 기본적으로 GConf 경로 파일의 내용은 다음과 같습니다:

xml:readonly:/etc/gconf/gconf.xml.mandatory
include /etc/gconf/2/local-mandatory.path
include "$(HOME)/.gconf.path"
include /etc/gconf/2/local-defaults.path
xml:readwrite:$(HOME)/.gconf
xml:readonly:/etc/gconf/gconf.xml.defaults

GConf가 설정값을 찾을 때는, 경로 파일에 지정된 순서대로 설정 소스를 읽습니다. 아래의 표는 경로 파일 내의 설정 소스에 대해 설명합니다:

설정 소스 설명
필수 이 설정 소스에 대한 접근 권한은 읽기 전용으로 설정됩니다. 사용자들은 이 설정 소스의 값을 변경할 수 없으므로, 이 설정 소스 내의 설정들은 필수적입니다.
사용자

이 설정 소스는 사용자의 홈 디렉토리에 있는 .gconf 디렉토리에 저장됩니다. 사용자가 설정을 변경하면, 새로운 설정 정보가 이 위치에 더해집니다.

설정 편집기를 이용하여 사용자 설정 소스를 수정할 수 있습니다.

기본값 이 설정 소스는 기본값 설정들을 포함합니다.

경로 파일 내의 설정 소스의 순서는 필수 설정값이 사용자 설정보다 우선하도록 보장합니다. 또한 사용자 설정이 기본값 설정보다 우선적으로 적용되도록 보장합니다. 이것은 GConf가 다음과 같은 우선 순위를 가지고 설정을 적용하는 것을 의미합니다:

  1. 필수 설정
  2. 사용자 지정 설정
  3. 기본값 설정

GConf 경로 파일 내의 include 명령은 시스템 관리자가 다른 설정 소스를 지정할 수 있도록 해 줍니다.

포함된 설정 소스 설명
/etc/gconf/2/local-mandatory.path 이 설정 소스는 특정 시스템을 위한 필수 설정값을 저장하는 데 사용됩니다.
$(HOME)/.gconf.path 사용자의 홈 디렉토리 내의 .gconf.path 파일 내에 설정 소스의 위치를 지정합니다.
/etc/gconf/2/local-defaults.path 이 설정 소스는 특정 시스템을 위한 기본 설정값을 저장하는 데 사용됩니다.

1.2.2. GConf 스키마

GConf 스키마GConf 스키마 키GConf 스키마 객체를 합쳐서 부르는 말입니다. 아래의 표는 스키마 키 및 스키마 객체와 함께 이러한 항목들과 설정 키와의 관계를 설명합니다:

항목 설명
설정 키 프로그램의 설정 항목에 대응하는 GConf 저장소 내의 요소.
스키마 키 설정 키에 대한 스키마 객체를 저장하는 키.
스키마 객체

설정 키에 대한 정보를 포함하는 설정 소스 내의 요소. 다음과 같은 정보로 구성됩니다:

  • 설정 키를 이용하는 프로그램의 이름.
  • 설정 키의 값 형식. 예를 들면 정수, 참/거짓 등.
  • 설정 키에 대한 기본 값.
  • 설정 키에 대한 간단한 설명.

아래의 표는 설정 키, 스키마 키, 스키마 객체에 대한 예제입니다:

항목
설정 키 /desktop/gnome/interface/font_name
스키마 키 /schemas/desktop/gnome/interface/font_name
스키마 객체
<schema>
  <applyto>/desktop/gnome/interface/font_name</applyto>
  <key>/schemas/desktop/gnome/interface/font_name</key>
  <owner>gnome</owner>
  <type>string</type>
  <default>Sans 10</default>
  <locale name="C">
    <short>Default font</short>
      <long>Name of the default font used by gtk+.</long>
  </locale>
</schema>

스키마 키를 설정 키와 연관지을 수 있습니다. 예를 들어 /desktop/gnome/interface/font_name 키는 다음과 같은 스키마 키를 포함합니다:

<entry name="font_name" mtime="1034873859"
schema="/schemas/desktop/gnome/interface/font_name"/>

스키마 키를 설정 키와 연관시킬 때, 설정값은 스키마 키의 스키마 객체에 지정하는 추천 값을 사용합니다. 이 값은 스키마 객체 내의 <default> 엘리먼트에 포함되어 있습니다. 기본적으로 기본 설정 소스 내의 모든 설정 키들은 스키마 키와 연관되어 있습니다.

일반적으로 스키마들은 기본값 설정 소스 내에 저장됩니다.

1.2.3. GConf 스키마 정의 파일

스키마는 스키마 정의 파일에서 생성됩니다. 스키마 정의 파일은 특정 프로그램 내의 모든 키에 대한 특성을 정의합니다. 스키마 정의 파일의 확장자는 .schemas 입니다.

스키마 정의 파일은 /etc/gconf/schemas 디렉토리 내에 포함됩니다. 스키마 정의 파일을 이용하여 새로운 설정 소스를 만들 수 있습니다.

어떤 정의 파일들은 그놈 데스크탑 사용자 인터페이스와 밀접하게 관련되어 있습니다. 예를 들어, system_http_proxy.schemas 파일은 네트워크 프록시 프로그램과 관련이 있습니다. 다른 스키마 정의 파일들은 그놈 데스크탑 사용자 인터페이스에 포함되지 않은 설정 키들을 포함하고 있습니다. 예를 들면 /apps/panel/global/tootips_enabled 키는 사용자 인터페이스에는 나타나지 않습니다.

그놈 데스크탑 사용자 인터페이스 중 일부는 하나 이상의 스키마 정의 파일에 포함된 설정 키들을 나타내는 설정을 포함하고 있습니다. 예를 들어, 키보드 단축키 설정 도구는 panel-global-config.schemas 파일과 metacity.schemas 파일에 나타난 설정 키에 해당하는 설정을 포함합니다.