# GNOME Desktop System Administration Guide

## GConf 사용하기

이 장에서는 사용자의 기본 설정 정보를 관리하기 위해 GConf를 사용하는 방법을 설명합니다.

### GConf 개요

GConf를 이용하면 그놈 데스크탑 사용자들의 기본 설정 정보를 간단히 관리할 수 있습니다. GConf는 시스템 관리자가 다음과 같은 작업을 할 수 있도록 도와줍니다:

- 특정한 설정에 대해 모든 사용자에게 적용되는 필수값들을 지정합니다. 이를 이용하면, 시스템 관리자가 사용자들이 특정 설정을 변경할 수 있는지 제어할 수 있습니다.

- 특정한 설정에 대해 모든 사용자에게 적용되는 기본값을 설정합니다.

- 기본 설정의 정의 파일에서 제안하는 값들을 사용합니다.

- 각 설정에 대한 문서를 읽습니다.

GConf는 로컬 혹은 네트워크 상에서 설정값이 바뀐 경우에도 프로그램에게 알려줍니다. 따라서 설정값을 변경하면 해당 설정을 이용하는 모든 프로그램들이 즉시 업데이트 됩니다.

GConf는 다음과 같은 구성 요소들을 포함합니다:

- 사용자 기본 설정을 위한 저장소.

- `gconfd-2` 데몬.

- `gconftool-2` 명령행 도구.

### 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`의 형태가 됩니다.

#### 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` | 이 설정 소스는 특정 시스템을 위한 기본 설정값을 저장하는 데 사용됩니다.

#### 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>` 엘리먼트에 포함되어 있습니다. 기본적으로 기본 설정 소스 내의 모든 설정 키들은 스키마 키와 연관되어 있습니다.

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

#### GConf 스키마 정의 파일

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

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

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

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

### GConf 데몬

GConf 데몬은 `gconfd-2`입니다. GConf 데몬은 설정값이 변경된 경우 이를 프로그램에게 알립니다. 예를 들어 메뉴와 도구 모음 설정 도구에서 도구 모음이 아이콘 만을 표시하도록 변경할 수 있습니다. 설정 도구에서 이 옵션을 선택하면, 실행 중인 모든 프로그램들의 도구 모음이 즉시 업데이트될 것입니다. GConf 데몬은 로컬이나 네트워크 상에서 동작할 수 있습니다.

GConf 데몬은 각 사용자에 대해 별도로 실행됩니다. GConf 데몬은 인증이나 데이터 보안과 같은 복잡한 문제를 처리해서는 안 됩니다. GConf 데몬이 시작되면 GConf 경로 파일을 읽습니다. GConf 데몬은 프로그램과 설정 소스 간의 모든 접근을 관리합니다.

프로그램에서 특정 설정 키에 대한 값을 요청하면, 데몬은 다음과 같이 설정 소스를 찾습니다:

1. 경로 파일에 지정된 순서에 따라 각 설정 소스 내에서 설정 키의 값을 찾습니다. 만약 값을 찾으면 이를 반환합니다.

2. 값을 찾지 못했다면, 경로 파일에 지정된 순서에 따라 각 설정 소스 내의 설정 키와 연관된 스키마 키를 찾습니다.

3. 스키마 키를 찾았다면 해당 키에 대한 값을 점검합니다.

4. 만약 스키마 키의 값이 스키마 객체라면, 해당 객체의 `<default>` 엘리먼트 내의 추천 값을 반환합니다.

GConf 데몬은 설정 키의 값을 캐시에 저장합니다. 모든 프로그램은 이 캐시를 이용하기 때문에, 특정 설정 소스에는 단 한 번만 접근하게 됩니다.

GConf 데몬을 종료시키려면 다음 명령을 실행합니다:

    gconftool-2 --shutdown

### GConf 명령행 도구

GConf는 `gconftool-2`라는 명령행 도구를 포함합니다. `gconftool-2` 명령을 이용하여 다음과 같은 작업을 수행할 수 있습니다:

- 키의 값을 설정합니다.

- 키의 값을 표시합니다.

- 프로그램을 설치했을 때 스키마 정의 파일에서 스키마를 설치합니다.

예를 들어 다음 명령을 이용하여 `/desktop/gnome` 디렉토리와 그 하위 디렉토리 내의 모든 키들의 값을 표시할 수 있습니다.

    gconftool-2 --recursive-list /desktop/gnome

다음은 `gconftool-2` 명령과 함께 사용할 수 있는 몇몇 옵션들의 목록입니다. 명령행 옵션에 대한 자세한 설명은 man:gconftool-2(1) 부분을 보기 바랍니다.

### gconftool-2 명령 옵션

`--all-dirs`

- 지정한 디렉토리 내의 모든 하위 디렉토리 모록을 표시합니다.

`--all-entries`

- 지정한 디렉토리 내의 모든 키들의 값을 표시합니다.

`--config-source=`설정 소스``

- 이 옵션은 `--direct` 옵션과 함께 사용하여 사용자 설정 소스를 지정합니다. 만약 설정 소스를 지정하지 않았다면, 해당 명령은 경로 파일 내의 모든 설정 소스에 적용될 것입니다.

`--direct`

- 이 옵션은 `--config-source` 옵션과 함께 사용하여 설정 소스에 직접 접근합니다. 이 옵션을 이용하면, GConf는 서버를 건너 뛸 것입니다. 이 옵션을 사용하기 전에 GConf 데몬인 `gconfd-2`가 실행되지 않도록 해 주십시오.

`--dump`

- 지정한 GConf 저장소 디렉토리 내의 모든 설정 키의 목록을 만듭니다. 이 목록은 모든 키들의 XML 설명을 포함합니다. 목록은 `<gconfentryfile>` 엘리먼트 내에 포함되어 있습니다.

  예를 들어 이 옵션의 출력을 재지정(redirect)하면 여러분의 패널 설정에 관련된 모든 키들의 목록을 포함하는 파일을 생성할 수 있습니다. 이렇게 생성된 파일은 `--load` 옵션과 함께 사용할 수 있습니다.

`--get`

- 지정한 설정 키의 값을 표시합니다. 또한 지정한 스키마 키에 대한 스키마 객체 내의 엘리먼트들의 값들도 함께 표시합니다.

`--help`

- `gconftool-2` 명령과 이와 함께 사용할 수 있는 옵션에 대한 도움말을 보여줍니다.

`--load=`파일 이름``

- 이 옵션을 이용하면 설정 소스 내의 현재 디렉토리에 있는 설정 키에 대한 값을 지정한 파일 내의 값들로 설정합니다. 지정한 파일은 `<gconfentryfile>` 엘리먼트 내의 키에 대한 XML 설명을 반드시 포함해야 합니다.

`--long-desc=`설명``

- 이 옵션과 함께 `--set-schema` 옵션을 이용하여 스키마 키에 대한 긴 설명을 설정합니다.

`--makefile-install-rule`

- 프로그램에 스키마 정의 파일을 설치합니다.

`--owner=`소유자``

- 이 옵션과 함께 `--set-schema` 옵션을 이용하여 스키마 키의 소유자를 설정합니다.

`--recursive-list`

- 지정한 디렉토리 내의 모든 하위 디렉토리에 존재하는 모든 설정 키들의 값을 표시합니다.

`--recursive-unset`

- 사용자 설정 소스와 기본값 설정 소스 내의 지정한 디렉토리에 있는 모든 하위 디렉토리 내의 설정 키들의 값을 초기화 시킵니다.

`--set`

- 설정 키의 값을 설정하고 사용자 설정 소스에 값을 기록합니다. `--type` 옵션과 함께 사용하여 설정하고 싶은 값의 데이터 형식을 지정합니다. 예를 들어 다음 명령은 사용자 설정 소스 내의 `/apps/gnome-terminal/profiles/Default/background_color` 키의 값을 설정합니다:

      gconftool-2 \
        --set "/apps/gnome-terminal/profiles/Default/background_color" \
        --type string "#000000"

  또한 `-direct` 옵션이나 `--config-source` 옵션과 함께 사용하여 설정값을 다른 설정 소스에 기록하도록 할 수 있습니다.

`--set-schema`

- 스키마 키 내의 속성의 값을 설정하고, 값을 기본값 설정 소스에 기록합니다.

  다음 옵션들과 함께 사용하여 변경하고 싶은 속성을 지정할 수 있습니다:

  - `--type`

  - `--short-desc`

  - `--long-desc`

  - `--owner`

  예를 들어 다음 명령은 `/apps/gnome-terminal/profiles/Default/background_color` 키에 대한 스키마 키의 짧은 설명을 설정합니다:

      gconftool-2 \
        --set-schema  "/schemas/apps/gnome-terminal/profiles/Default/background_color" \
        --short-desc "터미널의 기본 배경 색상"

`--short-desc=`설명``

- 이 옵션은 `--set-schema` 옵션과 함께 사용하여 스키마 키에 대한 짧은 설명을 지정합니다.

`--shutdown`

- GConf 데몬을 종료합니다.

`--type=`데이터 형식``

- 이 옵션을 사용하여 설정 키의 값에 대한 데이터 형식을 지정합니다. 또한 스키마 키 내의 속성 값을 설정할 때도 이 옵션을 사용할 수 있습니다. 아래는 올바른 데이터 형식의 목록입니다:

  - `bool`

  - `float`

  - `int`

  - `list`

  - `pair`

  - `string`

`--unset`

- 사용자 설정 소스와 기본값 설정 소스 내의 설정 키의 값을 초기화 합니다.

`--usage`

- `gconftool-2` 명령과 이와 함께 사용할 수 있는 옵션에 대한 간략한 도움말을 보여줍니다.

### 설정값을 변경하는 방법

여러분은 설정 키에 대한 필수값이나 기본값을 설정해 둘 수 있습니다. 사용자를 위한 필수 설정값이나 기본 설정값을 바꾸기 전에 어떤 사용자가 GConf 데몬을 이용하고 있지는 않은지 확인해야 합니다. 설정값을 바꾸기 전에 모든 사용자들이 로그아웃하도록 하십시오.

`gconftool-2` 명령을 사용하여 설정 키에 대한 필수값이나 기본값을 설정하는 방법은 다음과 같습니다:

    gconftool-2 --direct \
      --config-source 설정 소스 \
      --type 데이터 형식 \
      --set 설정 키 값

예를 들어 `wwwproxy.xyz.com`을 필수 HTTP 프록시 호스트로 설정하려면 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
      --type string \
      --set /system/http_proxy/host wwwproxy.xyz.com

사용자는 이 설정값을 변경할 수 없습니다.

`gconftool-2` 명령을 이용하여 기본값을 설정할 수도 있습니다. 예를 들어 작업 공간의 기본 개수를 5로 설정하고 싶다면, 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
      --type int \
      --set /apps/metacity/general/num_workspaces 5

사용자는 이 설정값을 변경할 수 있습니다.

사용자에 대한 필수 설정값이나 기본 설정값을 바꾸기 전에, 반드시 모든 사용자들이 로그아웃 하였는 지 확인하십시오.

### 일반 환경 설정

이 부분에서는 일반적인 설정에 대한 필수값이나 기본값을 할당하는 방법을 설명합니다.

#### HTTP 프록시 설정 방법

HTTP 프록시 설정을 변경하려면 `/system/http_proxy/` 위치 내의 설정 키의 값을 수정해야 합니다. 예를 들어 HTTP 프록시 호스트의 필수값을 설정하려면 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
      --type string \
      --set /system/http_proxy/host 프록시 이름

HTTP 프록시의 기본값을 설정하려면 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
      --type string \
      --set /system/http_proxy/host 프록시 이름

HTTP 프록시에 관련된 다른 설정들도 변경할 수 있습니다. 다른 HTTP 프록시 설정값들에 대한 정보는 `system_http_proxy.schemas` 스키마 정의 파일을 보기 바랍니다.

#### 인쇄 관리자 설정 방법

인쇄 관리자의 설정을 변경하려면, `/apps/gnome-print-manager` 위치 내의 설정 키의 값을 수정해야 합니다. 예를 들어 사용자들이 다른 사용자의 인쇄 작업을 보지 못하도록 하려면 다음과 같이 필수값을 설정합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
      --type bool \
      --set /apps/gnome-print-manager/show_all_jobs false

이 설정의 기본값을 변경하려면, 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
      --type bool \
      --set /apps/gnome-print-manager/show_all_jobs false

인쇄 관리자와 관련된 다른 설정들도 변경할 수 있습니다. 다른 인쇄 관리자 설정값들에 대한 정보는 `gnome-print-manager.schemas` 스키마 정의 파일을 보기 바랍니다.

#### 작업 공간 갯수 설정 방법

작업 공간의 갯수의 필수값을 변경하려면 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
      --type int \
      --set /apps/metacity/general/num_workspaces 정수

작업 공간 갯수의 기본값을 변경하려면 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
      --type int \
      --set /apps/metacity/general/num_workspaces 정수

창 관리자에 관련된 다른 설정들도 변경할 수 있습니다. 다른 창 관리자 설정값들에 대한 정보는 `metacity.schemas` 스키마 정의 파일을 보기 바랍니다.

#### 키보드 접근성 설정 방법

키보드 접근성 설정을 변경하려면 `/desktop/gnome/accessibility/keyboard` 위치에 있는 설정 키의 값을 수정해야 합니다. 예를 들어 키보드 접근성 기능을 사용하도록 필수값을 설정하려면 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
      --type bool \
      --set /desktop/gnome/accessibility/keyboard/enable true

이 설정의 기본값을 변경하려면, 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
      --type bool \
      --set /desktop/gnome/accessibility/keyboard/enable false

키보드 접근성 기능에 관련된 다른 설정들도 변경할 수 있습니다. 다른 키보드 접근성 기능 설정값들에 대한 정보는 `desktop_gnome_accessibility_keyboard.schemas` 스키마 정의 파일을 보기 바랍니다.

#### 키보드 단축키 설정 방법

키보드 단축 설정을 변경하려면, `/apps/metacity/global_keybindings` 위치 내의 설정 키의 값을 수정해야 합니다. 예를 들어 사용자들이 Alt F3 단축키로만 프로그램 실행 대화 상자를 열게 하려면 다음 명령을 실행하여 이에 대한 필수값을 설정합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
      --type string \
      --set /apps/metacity/global_keybindings/panel_run_dialog '<Alt>F3'

키보드 단축키에 관련된 다른 설정들도 변경할 수 있습니다. 다른 키보드 단축키 설정값들에 대한 정보는 `metacity.schemas` 스키마 정의 파일을 보기 바랍니다.

#### 패널 및 패널 객체 설정 방법

`panel-default-setup.entries` 파일은 그놈 데스크탑 내의 패널에 대한 다음과 같은 정보를 지정합니다:

- 패널의 갯수.

- 패널의 형식.

- 패널의 속성.

- 패널의 내용.

각각의 패널과 패널 객체들을 설정하는 것을 복잡한 작업입니다. 개별적인 패널과 패널 객체들을 설정하려면, 먼저 `panel-default-setup.entries` 파일의 구조를 이해해야 합니다. `panel-default-setup.entries` 파일에 대한 자세한 정보는 다음 절을 보기 바랍니다.

개별적인 패널과 패널 객체를 설정하려면, 많은 설정 소스 내의 많은 설정 값들을 변경해야 합니다. 패널 설정 값을 변경하기 위한 가장 손쉬운 방법은 `gconftool-2` 명령을 `--dump` 옵션 및 `--load` 옵션과 함께 사용하는 것입니다. 패널 및 패널 상의 객체들에 대한 설정을 변경하는 자세한 방법은 gconf-3 부분을 보기 바랍니다.

##### 개별 패널 및 패널 객체 지정하는 방법

`panel-default-setup.entries` 파일은 패널과 패널 객체들을 지정하는 부분을 포함하고 있습니다. `panel-default-setup.entries` 파일은 스키마 키에 대한 값을 지정합니다. `panel-default-setup.entries` 파일은 `/etc/gconf/schemas` 디렉토리에 있습니다.

`panel-default-setup.entries` 파일은 다음과 같은 구조로 이루어져 있습니다:

1. 그놈 데스크탑 내의 패널, 애플릿 및 다른 패널 객체들에 대한 일반적인 구조를 나타내는 키. 다음의 키들은 그놈 데스크탑 내에 나타나는 패널, 패널 객체, 애플릿 등의 갯수를 지정합니다:

   - `/apps/panel/default_setup/general/toplevel_id_list`

   - `/apps/panel/default_setup/general/object_id_list`

   - `/apps/panel/default_setup/general/applet_id_list`

   각각의 키들은 또한 각각의 패널, 패널 객체, 애플릿에 대한 ID를 할당합니다. 예를 들어 다음 예제는 `panel-default-setup.entries` 파일에 있는 것으로, 그놈 데스크탑 내에 있는 한 패널을 나타냅니다:

       <entry>
         <key>toplevel_id_list</key>
         <schema_key>/schemas/apps/panel/general/toplevel_id_list</schema_key>
         <value>
           <list type="string">
             <value>
               <string>bottom_panel</string>
             </value>
           </list>
         </value>
       </entry>

   `panel-default-setup.entries` 파일 내의 `bottom_panel` ID는 아래쪽 가장자리에 있는 패널을 지칭합니다.

2. 패널의 속성을 나타내는 키. 패널 속성 키들은 다음과 같은 구조로 이루어져 있습니다:

       /apps/panel/default_setup/toplevels/패널-이름/패널-속성-키

   예를 들어 `/apps/panel/default_setup/toplevels/bottom_panel/size` 키는 아래쪽 패널의 크기를 지정합니다.

3. 패널 객체, 패널 객체의 속성 및 객체들이 존재하는 패널을 나타내는 키. 예를 들어 다음의 예제는 `panel-default-setup.entries` 파일에 있는 것으로, 아래쪽 패널의 왼쪽 편에 있는 주 메뉴 객체를 나타냅니다:

       <entrylist base="/apps/panel/default_setup/objects/main_menu">
         <entry>
           <key>object_type</key>
           <schema_key>/schemas/apps/panel/objects/object_type</schema_key>
           <value>
             <string>menu-object</string>
           </value>
         </entry>
         <entry>
           <key>toplevel_id</key>
           <schema_key>/schemas/apps/panel/objects/toplevel_id</schema_key>
           <value>
             <string>bottom_panel</string>
           </value>
         </entry>
         <entry>
           <key>position</key>
           <schema_key>/schemas/apps/panel/objects/position</schema_key>
           <value>
             <int>0</int>
           </value>
         </entry>
         <!-- Possibly more entry elements -->
       </entrylist>

4. 애플릿, 애플릿 속성 및 애플릿이 존재하는 패널을 나타내는 키. 예를 들어 다음의 예제는 `panel-default-setup.entries` 파일에 있는 것으로, 아래쪽 패널에 있는 창 목록 애플릿을 나타냅니다:

       <entrylist base="/apps/panel/default_setup/applets/window_list">
         <entry>
           <key>object_type</key>
           <schema_key>/schemas/apps/panel/objects/object_type</schema_key>
           <value>
             <string>bonobo-applet</string>
           </value>
         </entry>
         <entry>
           <key>toplevel_id</key>
           <schema_key>/schemas/apps/panel/objects/toplevel_id</schema_key>
           <value>
             <string>bottom_panel</string>
           </value>
         </entry>
         <entry>
           <key>position</key>
           <schema_key>/schemas/apps/panel/objects/position</schema_key>
           <value>
             <int>2</int>
           </value>
         </entry>
         <!-- Possibly more entry elements -->
         <entry>
           <key>bonobo_iid</key>
           <schema_key>/schemas/apps/panel/objects/bonobo_iid_type</schema_key>
           <value>
             <string>OAFIID:GNOME_WindowListApplet</string>
           </value>
         </entry>
       </entrylist>

   OAFIID는 애플릿에 대한 고유 ID입니다. 특정 애플릿에 대한 OAFIID를 찾으려면 `/usr/lib/bonobo/servers` 디렉토리 내의 `.server` 파일을 보기 바랍니다. 예를 들어 다음 예제는 `GNOME_Wncklet_Factory.server` 파일에서 가져온 것으로 Window List 애플릿의 OAFIID를 보여줍니다:

       <oaf_server iid="OAFIID:GNOME_WindowListApplet"
       type="factory" location="OAFIID:GNOME_Wncklet_Factory">

##### 개별 패널 및 패널 객체 설정 변경하는 방법

패널과 패널 상의 객체들을 설정하려면 다음과 같은 절차를 수행합니다:

1. 그놈 세션으로 로그인하고, 적절히 패널을 설정합니다.

2. `gconftool-2` 명령행 도구를 `--dump` 옵션과 함께 사용하여 여러분의 패널 설정에 대한 XML 설명을 포함하는 파일을 만듭니다. `--dump` 옵션은 지정한 GConf 저장소 디렉토리 내의 모든 설정 키에 대한 목록을 만들어 냅니다.

   예를 들어 다음 명령은 기본 패널 설정에 대한 XML 설명을 포함하는 `my-panel-setup.entries` 파일을 만듭니다:

       gconftool-2 --dump /apps/panel > my-panel-setup.entries

3. 텍스트 편집기로 `my-panel-setup.entries` 파일을 열고, 원하는 대로 파일을 수정합니다.

   예를 들어 데스크탑 엔트리 파일의 위치를 바꾸는 경우를 살펴보겠습니다. 다음은 `--dump` 옵션을 사용해 만들어진 파일의 일부입니다:

       <entry>
         <key>objects/object_16/launcher_location</key>
         <schema_key>/schemas/apps/panel/objects/launcher_location</schema_key>
         <value>
           <string>hadjaha-00adce02f7.desktop</string>
         </value>
       </entry>

   위의 예제에서, `hadjaha-00adce02f7.desktop` 파일에 대한 참조를 어디서나 이용가능한 다른 데스크탑 엔트리 파일로 변경할 수 있습니다.

   `--dump` 옵션을 사용해 패널 설정을 만들어 냈을 때는, 패널 객체들의 위치는 절대 위치가 됩니다. 이러한 패널 객체들의 위치를 절대 위치에서 상대 위치로 바꾸고 싶을 수도 있습니다. 이 경우 패널의 가장 왼쪽에 있는 객체의 `위치` 값은 `0`이 되고, 그 다음 객체의 `위치` 값은 `1`이 되는 식입니다. 만약 객체의 위치가 패널의 오른쪽부터 상대적인 값을 갖게 하려면, `right_stick` 키의 값을 `true`로 설정하십시오.

4. `gconftool-2` 명령행 도구를 `--load` 옵션과 함께 사용하여 `my-panel-setup.entries` 파일 내의 값들을 기본값 설정 소스의 값들로 설정합니다. 예를 들어 다음 명령은 기본값 설정 소스 내의 값들로 `my-panel-setup.entries` 내의 해당 키의 값들을 설정합니다:

       gconftool-2 --direct \
         --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
         --load my-panel-setup.entries

### 모양새 설정 방법

이 부분에서는 모양새에 관련된 설정의 필수값과 기본값을 설정하는 방법을 설명합니다.

#### 글꼴 설정 변경하기

글꼴 설정을 변경하려면, 다음 두 개의 설정 키의 값을 수정합니다. 아래의 표는 수정해야 할 키들과, 이에 관련된 사용자 인터페이스 부분을 보여줍니다:

GConf 위치 | 사용자 인터페이스 요소
/desktop/gnome/interface/font_name | 글꼴 설정 도구, 응용프로그램 글꼴 옵션
/apps/nautilus/preferences/desktop_font | 글꼴 설정 도구, 바탕 화면 글꼴 옵션

예를 들어 `Sans 12` 글꼴을 필수 응용프로그램 글꼴로 설정하려면 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
      --type string \
      --set /desktop/gnome/interface/font_name "Sans 12"

`palatino 12` 글꼴을 바탕 화면 객체의 기본 글꼴로 설정하려면 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
      --type string \
      --set /apps/nautilus/preferences/desktop_font "palatino 12"

#### 바탕 화면 설정하기

바탕 화면 그림의 설정을 변경하려면 `/desktop/gnome/background` 위치 내의 설정 키의 값들을 수정합니다. 예를 들어 배경 그림의 이미지의 필수값을 설정하려면 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
      --type string \
      --set /desktop/gnome/background/picture_filename 파일-이름.png

이 설정의 기본값을 변경하려면, 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
      --type string \
      --set /desktop/gnome/background/picture_filename 파일-이름.png

바탕 화면에 관련된 다른 설정들도 변경할 수 있습니다. 다른 바탕 화면 단축키 설정값들에 대한 정보는 `desktop_gnome_background.schemas` 스키마 정의 파일을 보기 바랍니다.

#### 스플래시 이미지 설정하기

스플래시 이미지 설정을 변경하려면 `/apps/gnome-session/options/` 위치 내의 설정 키의 값들을 수정합니다. 예를 들어 사용자들에게 스플래시 이미지를 보여주지 않으려면 다음과 같이 필수값을 설정합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory \
      --type bool \
      --set /apps/gnome-session/options/show_splash_screen false

이 설정의 기본값을 변경하려면, 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
      --type bool \
      --set /apps/gnome-session/options/show_splash_screen false

스플래시 이미지에 관련된 다른 설정들도 변경할 수 있습니다. 다른 스플래시 이미지 설정값들에 대한 정보는 `gnome-session.schemas` 스키마 정의 파일을 보기 바랍니다.

### 기본 설정값으로 복원하는 방법

특정 사용자에 대한 기본 설정값을 복구하려면 다음 명령을 실행합니다:

    gconftool-2 --direct \
      --config-source 사용자-설정-소스 \
      --recursive-unset

`사용자-설정-소스` 부분을 사용자의 홈 디렉토리 내의 `.gconf` 디렉토리에 있는 설정 소스로 대체하십시오.

이 명령은 사용자 설정 소스와 기본값 설정 소스 내의 모든 하위 디렉토리에 있는 모든 설정 키들의 값을 초기화합니다.

## 메뉴 설정하기

이 부분에서는 그놈 데스크탑에서 메뉴를 구현하는 방법과 이를 적절히 설정하는 방법에 대해 설명합니다.

### 개요

그놈 데스크탑은 XDG 메뉴 명세서에 따라 메뉴를 구현합니다. 이 명세서에 따라 그놈 데스크탑은 다음과 같은 기능을 제공합니다:

- 메뉴의 구조를 쉽게 조정할 수 있습니다. 메뉴의 계층 구조를 조정하기 위해서는 소수의 파일 만을 편집하면 되며, 프로그램이나 파일을 직접 수정하거나 이동할 필요가 없습니다.

- 프로그램을 쉽게 설치할 수 있습니다. 프로그램을 설치할 때 메뉴의 구조에 대한 정보를 제공할 필요가 없습니다.

- 메뉴를 사용자들이 수정하지 못하도록 설정합니다.

그놈 데스크탑 내의 메뉴들은 다음과 같은 요소들을 사용합니다:

- 메뉴 정의 파일

- 데스크탑 엔트리 파일

- 디렉토리 엔트리 파일

### 메뉴 정의 파일

메뉴 파일은 그놈 메뉴 모음에서 사용되는 메뉴들의 계층 구조를 정의합니다. 이 파일을 수정하여 모든 사용자에게 적용되는 메뉴를 조정하거나, 지정한 `applications.menu` 파일의 위치에 따라 특정 사용자에게 적용되는 메뉴를 조정할 수 있습니다.

메뉴 파일은 `$XDG_CONFIG_DIRS/menus/applications.menu` 파일입니다. 만약 `$XDG_CONFIG_DIRS`

$XDG_CONFIG_DIRS는 XDG 기본 디렉토리 명세서에 정의된 환경 변수입니다.

변수가 설정되어 있지 않다면, 기본 경로인 `/etc/xdg`가 사용됩니다. 이것은 사용자가 수정한 버전의 파일은 `$XDG_CONFIG_HOME/menus/applications.menu`에 존재할 수 있으며, 이 경우 해당 파일이 먼저 사용된다는 것을 의미합니다. 만약 `$XDG_CONFIG_HOME` 변수가 설정되어 있지 않으면, 기본 경로인 `~/.config`가 사용됩니다. 여러 개의 `applications.menu` 파일이 존재하는 경우에는 `$XDG_CONFIG_DIRS` 변수 내에서 먼저 나오는 디렉토리가 우선 순위를 가집니다. 이 경우 첫 번째로 찾은 파일이 사용되며 나머지는 무시됩니다.

어떤 순서로 경로를 검색하는지 혼동스러운 사람들을 위해, 아래에서 `applications.menu` 파일의 위치를 찾기 위한 경로의 목록을 설명합니다:

1. `$XDG_CONFIG_HOME` 변수 내의 각 디렉토리를 순서대로 검색하여 `menus/applications.menu` 파일을 찾습니다. 만약 `$XDG_CONFIG_HOME` 변수가 설정되지 않았다면, 기본 값인 `~/.config/` 디렉토리가 사용됩니다.

2. `$XDG_CONFIG_DIRS` 변수 내의 각 디렉토리를 순서대로 검색하여 `menus/applications.menu` 파일을 찾습니다. 만약 `$XDG_CONFIG_DIRS` 변수가 설정되지 않았다면, 기본 값인 `/etc/xdg/` 디렉토리가 사용됩니다.

3. 처음으로 찾은 `applications.menu` 파일을 사용합니다.

example-menu 부분에서 `.menu` 파일의 예를 보여줍니다. 이 예제에서 최상위 메뉴는 `Applications`이며, 이는 `<Name>` 엘리먼트에서 볼 수 있습니다. `Applications` 메뉴는 하나의 하위 메뉴 만을 포함하지만, 여러 개의 하위 메뉴를 가질 수도 있습니다. 각 하위 메뉴는 `<Include>` 엘리먼트를 가질 수 있습니다. `<Include>` 엘리먼트는 매칭 규칙을 사용하여 적절한 데스크탑 엔트리를 걸러내는 작업을 위해 사용됩니다.

예르 들어 `<Category>` 엘리먼트는 오직 `분류` 키가 `<Category>` 엘리먼트의 내용을 포함하는 데스크탑 엔트리를 선택하는 기본 매칭 규칙입니다. 이 예제에서 `Accessories` 메뉴는 분류 키에 Utility를 포함하지만 System을 포함하지 않는 데스크탑 엔트리 만을 포함할 것입니다. 분류 키에 대한 자세한 정보는 menustructure-desktopentry 부분을 보기 바랍니다.

#### `.menu` 파일의 예

    <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
     "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
    <Menu>
      <Name>Applications</Name>
      <Directory>Applications.directory</Directory>

      <!-- Read standard .directory and .desktop file locations -->
      <DefaultAppDirs/>
      <DefaultDirectoryDirs/>

      <!-- Accessories submenu -->
      <Menu>
        <Name>Accessories</Name>
        <Directory>Accessories.directory</Directory>
        <Include>
          <And>
            <Category>Utility</Category>
            <Not>
              <Category>System</Category>
            </Not>
          </And>
        </Include>
      </Menu> <!-- End Accessories -->

      <!-- possibly more submenus -->

    </Menu> <!-- End Applications -->

menustructure-xmlmenu는 `.menu` 파일 내의 엘리먼트 중의 일부에 대해 설명합니다. 보다 자세한 내용은 XDG 메뉴 명세서를 보기 바랍니다.

### 메뉴 정의 파일 엘리먼트

엘리먼트 | 설명
`<Menu>` | 최상위 엘리먼트이며, 하위 메뉴를 정의하는 `<Menu>` 엘리먼트를 내부에 포함할 수 있습니다. 이러한 하위 메뉴의 배치가 메뉴 구조를 결정합니다.
`<Name>` | 메뉴의 이름을 지정합니다. 모든 `<Menu>` 엘리먼트는 반드시 `<Name>` 엘리먼트를 포함해야 합니다.
`<Directory>` | 메뉴의 이름, 설명, 아이콘 등을 포함하는 디렉토리 엔트리 파일의 이름을 지정합니다. 만약 이 엘리먼트가 없다면 `<Name>` 엘리먼트의 내용이 메뉴의 이름으로 표시됩니다. 기본적으로 XDG 메뉴 명세서에서 지정한 대로 `$XDG_DATA_DIRS/desktop-directories/` 위치 내에서 `.directory` 파일을 검색합니다.
`<DefaultAppDirs>` | 이것은 `$XDG_DATA_DIRS/applications/` 내에서 이용 가능한 모든 데스크탑 엔트리를 찾으라는 지시입니다. 만약 이러한 지시가 포함되지 않았다면 이 위치에서는 데스크탑 엔트리를 찾지 않을 것입니다.
`<DefaultDirectoryDirs>` | 이것은 `$XDG_DATA_DIRS/desktop-directories/` 내에서 이용 가능한 모든 디렉토리 엔트리를 찾으라는 지시입니다. 만약 이러한 지시가 포함되지 않았다면 이 위치에서는 디렉토리 엔트리를 찾지 않을 것입니다.
`<Include>` | 메뉴의 내용을 만들어 낼 매칭 규칙의 목록을 포함합니다. 여기에는 `<Filename>`, `<Category>`, `<And>`, `<Or>`, `<Not>`, `<All>` 등의 매칭 규칙이 사용될 수 있습니다. 만약 하나 이상의 규칙이 포함되면 각 규칙들은 논리합(logical OR)으로 연결되므로, 이러한 규칙 중 어느 하나라도 만족하는 데스크탑 엔트리는 모두 포함됩니다.
`<Exclude>` | `<Include>`와 반대되는 엘리먼트로 이 엘리먼트 내의 규칙에 매칭되는 모든 데스크탑 엔트리는 포함된 엘리먼트 집합에서 제외됩니다. 따라서 이 엘리먼트는 반드시 `<Include>` 엘리먼트 보다 뒤에 나와야 합니다.
`<Filename>` | 데스크탑 파일 ID가 `<Filename>` 엘리먼트의 내용과 일치할 때 데스크탑 엔트리를 선택하는 매칭 규칙.
`<Category>` | 분류 키가 `<Category>` 엘리먼트의 내용과 일치할 때 데스크탑 엔트리를 선택하는 매칭 규칙.
`<And>` | `<And>` 엘리먼트 내에 포함된 모든 매칭 규칙들과 일치할 때 데스크탑 엔트리를 선택하는 매칭 규칙.
`<Or>` | `<Or>` 엘리먼트 내에 포함된 어떤 매칭 규칙들과 일치할 때 데스크탑 엔트리를 선택하는 매칭 규칙.
`<Not>` | `<Not>` 엘리먼트 내에 포함된 어떤 매칭 규칙들과 일치할 때 데스크탑 엔트리를 선택하지 않는 매칭 규칙.
`<All>` | 모든 데스크탑 엔트리를 선택하는 매칭 규칙.

### 데스크탑 엔트리 파일

데스크탑 엔트리 파일은 메뉴 내의 한 항목에 대한 정보를 제공하는 데이터 파일입니다. 데스크탑 엔트리 파일은 해당 항목의 이름, 실행할 명령, 아이콘 등과 같은 세부 정보를 지정합니다. 또한 여기에는 메뉴 계층 내에 항목이 포함될 위치를 결정하는 키워드도 포함됩니다.

Desktop entry files must reside in the `$XDG_DATA_DIRS/applications` directory and must have a `.desktop` file extension. If `$XDG_DATA_DIRS`

$XDG_DATA_DIRS는 XDG 기본 디렉토리 명세서에 정의된 환경 변수입니다.

is not set, then the default path is `/usr/share` is used. This also implies that user specific desktop entries may be located at `$XDG_DATA_HOME/applications` which is searched first. If `$XDG_DATA_HOME` is not set, then the default path `~/.local/share` is used. Desktop entries are collected from all directories in the `$XDG_DATA_DIRS` environment variable. Directories which appear first in `$XDG_DATA_DIRS` are given precedence when there are several `.desktop` files with the same name.

아래는 데스크탑 엔트리 파일의 예제입니다:

    [Desktop Entry]
    Encoding=UTF-8
    Name=Calculator
    Name[fr]=Calculatrice
    ...
    Comment=Perform calculations
    Comment[fr]=Effectue des calculs compliqués
    ...
    Exec=gcalctool
    Icon=accessories-calculator
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;Utility;Calculator

menustructure-TBL-7는 데스크탑 엔트리 파일에 사용되는 가장 중요한 키들에 대해 설명합니다. 이에 대한 자세한 정보는 XDG 데스크탑 엔트리 명세서를 보기 바랍니다.

### 데스크탑 엔트리 키

데스크탑 엔트리 키 | 설명
`Categories` | 이 항목을 설명하는 핵심어를 지정합니다. 각 단어들은 세미콜론 (;) 기호를 통해 구분됩니다. 표준 분류 핵심어의 목록을 확인하려면, http://www.freedesktop.org/Standards/menu-spec에 있는 데스크탑 메뉴 명세서를 보기 바랍니다. 메뉴 정의 파일은 이 분류(Categories)키를 이용하여 데스크탑 엔트리와 메뉴를 매핑해 줍니다.
`Comment` | 해당 항목에 대한 짧은 설명을 지정합니다. 이 설명은 메뉴 내에서 해당 항목을 가리킬 때 풍선 도움말로 표시됩니다.
`Encoding` | 데스크탑 엔트리 파일의 인코딩을 지정합니다.
`Exec` | 메뉴에서 항목이 선택되었을 때 실행할 명령을 지정합니다.
`Icon` | 항목을 표시할 아이콘 파일의 이름을 지정합니다. 파일의 경로나 확장자를 지정하지 마십시오.
`MimeType` | 프로그램에서 처리할 수 있는 MIME 형식을 지정합니다.
`Name` | 항목의 이름을 지정합니다. 이 이름은 메뉴 내의 항목에 표시됩니다.
`NoDisplay` | 이 옵션은 이 프로그램은 존재하지만, 메뉴에 표시하지 않을 것을 의미합니다.
`Terminal` | `Exec` 키에 지정된 명령이 터미널 창에서 실행될 지 여부를 지정합니다. 만약 이 값이 `참`이면 해당 명령은 터미널 창에서 실행됩니다. 만약 해당 명령이 자체적으로 실행 창을 만들지 않는다면, 이 키의 값은 반드시 `참`이 되어야 합니다.
`Type` | 해당 항목의 형식을 지정합니다. 이 값은 다음과 같은 것들 중 하나입니다: `Application`: 이 항목은 프로그램을 실행합니다. `Link`: 이 항목은 파일, 폴더 혹은 (FTP 사이트, 웹페이지, Windows 공유 등과 같은) 원격지의 자원에 대한 링크입니다. `FSDevice`: 이 항목은 파일 시스템 장치입니다. `Directory`: 이 항목은 디렉토리입니다.

데스크탑 엔트리 파일의 키에 대한 자세한 정보는, 다음 URL에서 데스크탑 엔트리 명세서를 보기 바랍니다:

        http://www.freedesktop.org/Standards/desktop-entry-spec

패널 실행기와 데스크탑 객체에서도 데스크탑 엔트리 파일을 사용합니다. 실행 아이콘과 데스크탑 객체를 위한 데스크탑 엔트리 파일도 메뉴 항목과 동일한 정보를 제공합니다. 예를 들어 데스크탑 엔트리 파일은 사용자가 실행 아이콘이나 데스크탑 객체를 선택하면 실행할 명령을 제공합니다.

### 디렉토리 엔트리 파일

디렉토리 엔트리 파일은 메뉴에 대한 정보를 제공하는 데이터 파일입니다. 디렉토리 엔트리 파일은 메뉴의 이름, 풍선 도움말, 아이콘과 같은 정보들을 지정합니다. 디렉토리 엔트리 파일의 확장자는 `.directory`입니다.

디렉토리 엔트리 파일은 반드시 `$XDG_DATA_DIRS/desktop-directories` 디렉토리 내에 있어야 합니다. 만약 `$XDG_DATA_DIRS` 변수가 설정되어 있지 않으면, 기본값으로 `/usr/share` 경로가 사용됩니다. 이것은 사용자가 지정한 디렉토리 엔트리는 반드시 `$XDG_DATA_HOME/desktop-directories` 내에 있어야 한다는 것을 뜻하며, 이 경우 해당 파일이 먼저 검색됩니다. 만약 `$XDG_DATA_DIRS` 변수가 설정되어 있지 않다면, 기본값인 `.directory` 경로가 사용됩니다. 디렉토리 엔트리들은 `$XDG_DATA_HOME` 환경 변수내의 모든 디렉토리에서 수집됩니다. 만약 같은 이름의 `~/.local/share` 파일이 여러 개 있는 경우에는 `$XDG_DATA_DIRS` 내에서 먼저 나타난 디렉토리에 있는 것이 사용됩니다.

아래는 디렉토리 엔트리 파일의 예제입니다:

    [Desktop Entry]
    Name=Graphics
    Name[fr]=Graphisme
    ...
    Comment=Graphics applications
    Comment[fr]=Applications graphiques
    ...
    Icon=gnome-graphics
    Type=Directory
    Encoding=UTF-8

menustructure-TBL-15는 디렉토리 엔트리 파일 내의 가장 중요한 키들에 대해 설명합니다.

### 디렉토리 엔트리 키

디렉토리 엔트리 키 | 설명
`Name` | 메뉴의 이름을 지정합니다. 이 이름은 메뉴에 표시됩니다.
`Comment` | 메뉴에 대한 짧은 설명을 지정합니다. 이 내용은 해당 메뉴를 가리킬 때 풍선 도움말로 나타납니다.
`Icon` | 메뉴를 표시하는 아이콘 파일 이름을 지정합니다. 파일 이름의 경로나 확장자를 지정하지 마십시오.
`Type` | 메뉴의 형식을 지정합니다. 이 키의 값은 항상 `Directory`입니다.

### 시스템 메뉴 편집하기

메뉴 설정을 변경하기 위해 메뉴 설정 파일과 메뉴 데이터 파일을 직접 편집할 수 있습니다.

#### 메뉴 추가하기

모든 사용자들이 이용할 수 있는 메뉴를 더하려면 다음 순서대로 하십시오:

1. 더하고 싶은 항목에 대한 디렉토리 엔트리 파일을 만들어서, `$XDG_DATA_DIRS/desktop-directories` 디렉토리 아래에 둡니다. 디렉토리 엔트리 파일에 대한 정보는 menustructure-14 부분을 보기 바랍니다.

2. `$XDG_CONFIG_DIRS/menus/applications.menu` 파일을 찾습니다.

3. `.menu` 파일에서, 새 메뉴에 대한 `<Menu>` 엘리먼트를 더합니다. `.menu` 파일에 대한 정보는 menustructure-13 부분을 보기 바랍니다.

4. `<Menu>` 엘리먼트 아래에 `<Name>` 엘리먼트를 만듭니다. Name 엘리먼트의 내용은 해당 메뉴에 대한 이름이 되어야 합니다.

5. `<Menu>` 엘리먼트 아래에 `<Directory>` 엘리먼트를 만듭니다. Directory 엘리먼트의 내용은 디렉토리 엔트리 파일의 이름이 되어야 합니다.

6. 메뉴에 항목을 더하는 방법은 menustructure-4 부분을 보기 바랍니다.

다음 번에 사용자가 로그인하면, 메뉴 모음에서 해당 메뉴를 볼 수 있습니다.

##### 메뉴가 보이지 않는다면?

만약 `<Include>` 엘리먼트 내에 매칭 규칙을 지정하지 않았거나, 매칭 규칙이 어떤 데스크탑 엔트리와도 적용되지 않는다면 메뉴 모듬에서 해당 메뉴를 보지 못할 수도 있습니다.

#### 메뉴에 항목 추가하기

모든 사용자들이 이용할 수 있는 메뉴 항목을 더하려면, 다음 순서대로 하십시오:

1. 더하고 싶은 항목에 대한 데스크탑 엔트리 파일을 만듭니다. 데스크탑 엔트리 파일에 대한 정보는 menustructure-desktopentry 부분을 보기 바랍니다.

2. 데스크탑 엔트리 파일을 `$XDG_DATA_DIRS/applications` 폴더에 둡니다.

3. `$XDG_CONFIG_DIRS/menus/applications.menu` 파일을 찾습니다.

4. `<Menu>` 엘리먼트가 1단계에서 만든 데스크탑 엔트리 파일과 일치하는 매칭 규칙을 가지는 `<Include>` 엘리먼트를 포함하는 지 확인합니다.

다음 번에 사용자가 로그인하면, 해당 위치에 메뉴 항목이 보일 것입니다.

#### 메뉴 속성 편집하기

모든 사용자에게 적용되는 메뉴의 속성을 편집하려면, 다음 순서대로 하십시오:

1. `$XDG_CONFIG_DIRS/menus/applications.menu` 파일을 찾습니다.

2. 이 파일에서 수정하고 싶은 메뉴에 대한 `<Menu>` 엔트리를 찾습니다. 디렉토리 엔트리 파일의 이름은 `<Directory>` 엘리먼트에 지정되어 있습니다.

3. 이 메뉴에 대한 디렉토리 엔트리 파일을 찾아서, 메뉴의 속성을 변경합니다. `.directory` 파일에 대한 자세한 정보는 menustructure-14 부분을 보기 바랍니다.

#### 메뉴 항목 편집하기

메뉴 항목을 편집하려면, 다음 순서대로 하십시오:

1. `$XDG_DATA_DIRS/applications` 디렉토리에서 해당 메뉴 항목에 대한 데스크탑 엔트리 파일을 찾습니다.

2. 데스크탑 엔트리 파일을 수정하여 메뉴 항목의 속성을 변경합니다. 데스크탑 엔트리 파일에 대한 자세한 정보는 menustructure-desktopentry 부분을 보기 바랍니다.

#### 메뉴에서 항목 삭제하기

모든 사용자에게 적용되는 메뉴 항목을 지우려면:

1. `$XDG_CONFIG_DIRS/menus/applications.menu` 파일을 찾습니다.

2. 이 파일에서 지우고 싶은 데스크탑 엔트리를 포함하는 `<Menu>` 엘리먼트를 찾습니다.

3. `<Include>` 엘리먼트의 닫는 태그 뒤에 `<Exclude>` 엘리먼트를 추가합니다. 이 엘리먼트는 2단계에서 찾은 `<Menu>` 엘리먼트 내에 있어야 합니다.

4. `<Exclude>` 엘리먼트의 하위 엘리먼트로 특정 데스크탑 엔트리를 제외시키기 위한 `<Filename>` 매칭 규칙을 추가합니다.

다음 번에 사용자가 로그인하면, 해당 메뉴 항목은 메뉴에 표시되지 않을 것입니다. menustructure-deleteitem는 `applications.menu` 파일에서 메뉴를 삭제하는 방법을 보여줍니다. `dasher.desktop` 데스크탑 엔트리는 접근성 메뉴에서 명시적으로 제외되었습니다.

##### 메뉴에서 항목 삭제하기

    <!-- ... -->

      <Menu>
        <Name>Accessibility</Name>
        <Directory>Accessibility.directory</Directory>
        <Include>
          <And>
            <Category>Accessibility</Category>
            <Not><Category>Settings</Category></Not>
          </And>
        </Include>
        <Exclude>
          <Filename>dasher.desktop</Filename>
        </Exclude>
      </Menu>

    <!-- ... -->

### 사용자 메뉴 편집 및 통합하기

다음과 같은 그놈 데스크탑 프로그램을 이용하여 사용자 메뉴를 편집할 수 있습니다:

- 그놈 메뉴 편집기

사용자들이 간편하게 자신의 메뉴를 편집할 수 있는 메뉴 편집기가 있습니다. 자세한 정보는 그놈 사용자 안내서의 메인 메뉴 모음 사용하기 부분을 보기 바랍니다. 또는 직접 사용자 메뉴 파일을 만들거나 수정할 수도 있습니다.

사용자 지정 메뉴를 직접 만들려면 `$XDG_CONFIG_HOME/menus/applications.menu` 파일이 반드시 존재해야 합니다. `$XDG_CONFIG_HOME` 변수가 설정되어 있지 않으면 기본값인 `~/.config` 디렉토리가 사용됩니다. 이곳은 `applications.menu` 파일을 맨 처음으로 찾아보는 곳이므로, 다른 모든 메뉴 파일보다 우선적으로 사용됩니다.

사용자 메뉴는 menustructure-13 부분에서 설명한 모든 엘리먼트들을 포함할 수 있습니다. 허용된 엘리먼트의 전체 목록은 XDG 메뉴 명세서를 보기 바랍니다.

사용자 메뉴 파일은 시스템 메뉴 파일보다 우선적으로 사용되기 때문에, 시스템 메뉴를 통합하지 않는다면 시스템 메뉴 전체를 완전히 대체할 것입니다. 메뉴를 통합하는 방법은 다음 절에서 설명합니다.

#### 시스템 메뉴 통합하기

때때로 사용자들은 표준 시스템 메뉴에 특정 항목들을 추가하거나 삭제하기 만을 원합니다. 이렇게 한 가지 만 변경하도록 지원하려면, 사용자 `applications.menu` 파일에 `type="parent"` 속성을 포함하는 `<MergeFile>` 엘리먼트를 사용하는 것이 좋습니다.

`<MergeFile>` 엘리먼트는 메뉴를 사용자의 메뉴 파일의 내용과 통합되도록 허용합니다. `type="parent"` 속성을 사용하면, `<MergeFile>` 엘리먼트의 내용은 무시되고, `$XDG_CONFIG_DIRS/menus` 디렉토리 내의 다음 `applications.menu` 파일을 이용해 통합합니다.

##### 예전 명세서

예전 버전의 명세서에는 `type` 속성이 포함되지 않았고 단순히 `<MergeFile>` 엘리먼트의 내용으로 통합될 메뉴 파일의 위치를 지정해야 했습니다. 따라서 `type="parent"` 속성이 사용된 경우에도 `<MergeFile>` 엘리먼트의 내용에 명시된 위치를 볼 수도 있습니다.

통합 과정은 다음과 같이 수행됩니다:

- 통합된 메뉴 파일

  통합된 메뉴 파일은 `$XDG_CONFIG_DIRS/menus` 디렉토리 내의 다음 `applications.menu` 파일을 가리킵니다.

  내의 최상위 `<Menu>` 엘리먼트의 하위 엘리먼트들은 기본 메뉴 파일 내의 `<MergeFile>` 엘리먼트로 바뀝니다.

- 같은 이름의 `<Menu>` 엘리먼트들은 하나의 `<Menu>` 엘리먼트로 합쳐집니다. 이것은 같은 이름을 가진 `<Menu>` 엘리먼트의 모든 하위 엘리먼트들을 마지막으로 나타나는 메뉴 엘리먼트에 추가하는 방식입니다.

menustructure-systemmerge은 시스템 메뉴 파일을 통합하는 사용자 메뉴 파일의 예입니다.

##### 시스템 메뉴 통합하기

    <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
     "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">

    <Menu>
      <Name>Applications</Name>
      <MergeFile type="parent">/etc/xdg/menus/applications.menu</MergeFile>
      <Menu>
        <Name>Accessibility</Name>
        <Exclude>
          <Filename>dasher.desktop</Filename>
        </Exclude>
      </Menu>
    </Menu>

#### 임의의 메뉴 통합하기

임의의 메뉴 파일도 시스템 메뉴와 동일한 방식으로 통합할 수 있습니다. 차이점은 이 방식의 통합을 위해서는 `type` 속성이 `path`로 설정되거나 `<MergeFile>` 엘리먼트에 포함되어 있지 않아야 합니다.

통합 과정은 `<MergeFile>` 엘리먼트에 지정된 통합된 메뉴 파일의 위치를 제외하고는 동일한 방식으로 수행됩니다.

## 테마 설치하기

이 부분에서는 그놈 데스크탑에서 이용할 수 있는 테마와 그 설정에 대해서 설명하고, 테마 설정 옵션을 만들거나 설치하는 방법에 대해 알아봅니다.

### 테마 소개

테마는 그놈 데스크탑의 일부에 대한 시각적인 효과를 지정하는 일련의 설정들을 말합니다. 사용자들은 그놈 데스크탑의 모양새를 바꾸기 위해 테마를 선택할 수 있습니다.

테마는 다음과 같은 그놈 데스크탑의 여러 부분들에 대한 설정을 포함합니다:

컨트롤

- 테마의 컨트롤 설정은 창, 패널, 애플릿 등의 모양새를 지정합니다. 또한 창, 패널, 애플릿 내에 있는 메뉴, 아이콘, 단추 등과 같은 그놈 호환 인터페이스 항목들의 모양새도 지정합니다. 몇몇 컨트롤 설정 옵션들은 특별한 접근성 기능을 위해 설계되었습니다. 사용자들은 테마 설정 도구 내의 컨트롤 탭에서 컨트롤 설정에 대한 옵션을 선택할 수 있습니다.

창 가장자리

- 테마의 창 틀 설정은 창 테두리의 모양새 만을 지정합니다. 사용자들은 테마 설정 도구 내의 창 가장자리 탭에서 창 테두리 설정에 대한 옵션을 선택할 수 있습니다.

Icon

- 테마의 아이콘 설정은 패널과 데스크탑 바탕 화면에 나타나는 아이콘들의 모양새를 지정합니다. 사용자들은 테마 설정 도구 내의 아이콘 탭에서 아이콘 설정에 대한 옵션을 선택할 수 있습니다.

### 테마 인덱스 파일

각각의 테마는 테마의 특성을 정의하는 인덱스 파일을 가지고 있습니다. 인덱스 파일의 이름은 `/usr/share/themes/`테마-이름`/index.theme`입니다.

다음은 테마 인덱스 파일의 예제입니다:

    [Desktop Entry]
    Type=X-GNOME-Metatheme
    Name=High Contrast Large
    Name[es]=Alto contraste grande
    Comment=Large black-on-white text and icons
    Comment[es]=Textos e iconos grandes en negro sobre blanco
    Encoding=UTF-8

    [X-GNOME-Metatheme]
    GtkTheme=HighContrastLargePrint
    IconTheme=HighContrast
    MetacityTheme=Atlanta
    ApplicationFont=sans 18

아래의 표는 테마 인덱스 파일 내의 키들에 대해 설명합니다:

### 테마 인덱스 파일 내의 키

인덱스 파일 키 | 설명
`Type` | 이 테마가 나타내는 컨트롤, 창 가장자리, 아이콘 등과 같은 테마 옵션들의 모양새을 지정합니다.
`Name` | 테마의 이름을 지정합니다. 이것은 테마 설정 도구에서 나타나는 테마의 이름입니다.
`Comment` | 테마에 대한 간략한 설명을 지정합니다. 이것은 테마 설정 도구에서 테마의 이름 아래에 표시되는 설명입니다.
`GtkTheme` | 테마 설정 도구의 컨트롤 설정에 해당합니다. 창, 패널, 애플릿 등에 적용되는 컨트롤 설정 옵션을 지정합니다.
`IconTheme` | 테마 설정 도구의 아이콘 설정에 해당합니다. 패널과 데스크탑 바탕 화면에 적요되는 아이콘 설정 옵션을 지정합니다.
`MetacityTheme` | 테마 설정 도구의 창 가장자리 설정에 해당합니다. 창에 적용되는 테두리 설정 옵션을 지정합니다.
`ApplicationFont` | 글꼴 설정 도구의 프로그램 글꼴 설정에 해당합니다.

### 새 컨트롤 옵션 설치하기

테마 설정 도구 내의 컨트롤 설정에 대한 옵션을 추가할 수 있습니다. 컨트롤 옵션은 `/usr/share/themes` 디렉토리 내에 존재합니다. 파일 시스템 내의 컨트롤 옵션의 일반적인 구조는 다음과 같습니다:

옵션 파일

- `/usr/share/themes/`옵션-이름`/gtk-2.0/gtkrc`

이미지 파일

- `/usr/share/themes/`옵션-이름`/pixmaps/*.*`

일반적으로 컨트롤 설정을 위한 새로운 옵션은 `.tar.gz` 파일 형태로 제공됩니다. 새 컨트롤 옵션을 설치하려면 `.tar.gz` 파일의 압축을 풀고, `.tar` 파일을 `/usr/share/themes` 디렉토리에 풀면 됩니다.

사용자들은 컨트롤 설정을 위한 옵션을 개별적으로 설치할 수 있습니다. 그렇게 하려면 사용자의 설정 옵션은 `$HOME/.themes` 디렉토리에 저장됩니다.

### 새 창 가장자리 옵션 설치하기

테마 설정 도구 내의 창 가장자리 설정에 대한 옵션을 추가할 수 있습니다. 창 가장자리 옵션은 `/usr/share/themes/`옵션-이름`/metacity-1` 디렉토리 내에 존재합니다. 파일 시스템 내의 창 가장자리 옵션의 일반적인 구조는 다음과 같습니다:

옵션 파일

- `/usr/share/themes/`옵션-이름`/metacity-1/metacity-theme-1.xml`

이미지 파일

- `/usr/share/themes/`옵션-이름`/metacity-1/*.*`

일반적으로 창 가장자리 설정을 위한 새로운 옵션은 `.tar.gz` 파일 형태로 제공됩니다. 새 창 가장자리 옵션을 설치하려면 `.tar.gz` 파일의 압축을 풀고, `.tar` 파일을 `/usr/share/themes` 디렉토리에 풀면 됩니다.

사용자들은 창 가장자리 설정을 위한 옵션을 개별적으로 설치할 수 있습니다. 그렇게 하려면 사용자의 설정 옵션은 `$HOME/.themes` 디렉토리에 저장됩니다.

### 새 아이콘 옵션 설치하기

테마 설정 도구 내의 아이콘 설정에 대한 옵션을 추가할 수 있습니다. 아이콘 옵션은 `/usr/share/icons/`옵션-이름`` 디렉토리 내에 존재합니다. 파일 시스템 내의 아이콘 옵션의 일반적인 구조는 다음과 같습니다:

옵션 파일

- `/usr/share/icons/`옵션-이름``

이미지 파일

- `/usr/share/icons/`옵션-이름`/icons/*.*`

일반적으로 아이콘 설정을 위한 새로운 옵션은 `.tar.gz` 파일 형태로 제공됩니다. 새 아이콘 옵션을 설치하려면 `.tar.gz` 파일의 압축을 풀고, `.tar` 파일을 `/usr/share/icons` 디렉토리에 풀면 됩니다.

사용자들은 아이콘 설정을 위한 옵션을 개별적으로 설치할 수 있습니다. 그렇게 하려면 사용자의 설정 옵션은 `$HOME/.themes` 디렉토리에 저장됩니다.

### 테마에 아이콘 설치하기

그놈 데스크탑은 사용자들의 특별한 시각적인 요구를 위해 설계된 몇 가지 테마를 제공합니다. 예를 들어 어떤 테마는 시력이 나쁜 사람들을 위해 설계되었습니다. 각각의 테마에 대해 아이콘이 잘 표시되려면 몇몇 버전의 아이콘이 필요할 것입니다.

어떤 프로그램을 위한 새로운 아이콘을 설치할 필요가 있을 때가 있습니다. 새로운 아이콘을 설치할 때는, 반드시 여러 버전의 아이콘을 만들어야, 여러 테마들 내에서 올바로 표시될 것입니다. 다음과 같은 종류의 아이콘에 대한 여러 가지 버전을 만들어야 합니다:

- 그놈 데스크탑 내의 프로그램들이 사용하는 아이콘.

- GTK+ 응용 프로그램에서 내부적으로 사용되는 아이콘 혹은 GTK+ 스톡 아이콘.

새로운 아이콘을 설치할 때는, 여러 버전의 아이콘을 만들어야 테마 내에서 적절히 표시될 것입니다. 아이콘은 (예를 들어 PNG와 같은) 여러 형식으로 만들 수 있습니다. 데스크탑 환경에서 주로 사용되는 아이콘 크기는 48x48 픽셀입니다. 이 크기의 아이콘을 기본으로, 대부분의 테마들을 아이콘의 크기를 변경할 수 있습니다.

새로운 아이콘을 설치할 때는, 다음과 같은 버전의 48x48 픽셀의 아이콘을 만들기 바랍니다:

- 보통 아이콘

- 저대비 아이콘

- 고대비 아이콘

- 역상 고대비 아이콘

가능하다면, 큰 크기의 인쇄가 필요없는 테마를 위해, 각 아이콘의 16x16 버전도 만들기 바랍니다.

themes-3 이나 themes-5 부분에 지정된 이미지 파일 위치에 아이콘을 설치하십시오. 예를 들어 HighContrastLargePrint 테마에 아이콘을 추가하려면, `/usr/share/themes/HighContrastLargePrint/pixmaps` 디렉토리에 아이콘을 추가합니다. 관련된 테마 파일에 아이콘에 대한 참조를 추가하십시오. 예를 들어 HighContrastLargePrint 테마에 아이콘을 추가하려면, 아이콘에 대한 참조에 `/usr/share/themes/HighContrastLargePrint/gtk-2.0/gtkrc` 파일을 추가하십시오. 해당 테마에 대한 `gtkrc` 파일을 수정하여 아이콘을 GTK 스톡 아이콘 ID와 연관시키십시오.

프로그램 실행 아이콘과 패널에 대한 아이콘을 만드는 것에 대한 자세한 정보는 http://www.freedesktop.org/Standards/icon-theme-spec 부분을 보기 바랍니다.

### 사용자 지정 컨트롤 옵션 만들기

만약 컨트롤 설정에 대한 옵션이 사용자들의 요구에 맞지 않는다면, 원하는 컨트롤 옵션을 만들 수 있습니다. 특정 컨트롤 옵션을 만들려면, 다음 과정을 수행합니다:

1. `/usr/share/themes` 디렉토리 내에 해당 옵션을 위한 디렉토리 구조를 만듭니다. 다른 옵션들이 사용하는 것과 동일한 디렉토리 구조를 사용합니다. 예를 들어 SmallPrint라는 이름의 옵션을 만들고 싶다면, 다음 디렉토리를 만듭니다:

   - `/usr/share/themes/SmallPrint`

   - `/usr/share/themes/SmallPrint/gtk-2.0`

2. 사용자들의 요구와 가장 비슷한 `gtkrc` 파일을 찾아서, 새로운 옵션에 대한 `gtk-2.0` 디렉토리에 복사합니다.

3. 텍스트 편집기로 `gtkrc` 파일을 열고, 필요한 인터페이스 엘리먼트들의 속성을 변경합니다.

4. 만약 새로운 옵션이 이미지를 포함한다면, 새로운 옵션에 대한 `pixmaps` 디렉토리에 이미지를 복사합니다. 만약 새로운 옵션에서 다른 옵션이 사용 중인 이미지를 재사용하는 경우에는, 이미지의 복사본을 만들 필요가 없습니다. 대신, `gtkrc` 파일 내의 `pixmap_path` 엔트리가 올바른 위치를 가리키도록 확인하십시오.

이제 사용자들이 컨트롤 설정에 대한 새로운 옵션을 선택할 수 있습니다.

`gtkrc` 파일에 대한 자세한 정보는 http://developer.gnome.org/doc/API/2.0/gtk/index.html 부분을 보기 바랍니다.

## 글꼴 설정하기

이 부분에서는 그놈 데스크탑에서 글꼴을 설정하는 방법을 설명합니다.

### 글꼴 설정하기 개요

그놈 데스크탑은 `fontconfig` 라고 하는 글꼴 설정 라이브러리를 사용합니다. `fontconfig` 라이브러리는 PostScript Type 1 글꼴과 트루타입 글꼴을 포함한 모든 글꼴을 이용할 수 있습니다.

`fontconfig` 라이브러리는 그놈 데스크탑에서 이용할 수 있는 모든 글꼴의 목록을 제공합니다. `fontconfig` 라이브러리는 모든 글꼴의 목록을 작성하기 위해 `/etc/fonts/fonts.conf` 파일에 나열된 모든 디렉토리들을 검색합니다. 시스템 내의 모든 글꼴들을 보려면, 시스템의 파일 관리자에서 `fonts:///` 위치로 이동합니다.

`fontconfig` 라이브러리에 대한 자세한 정보는 다음 URL을 방문해 보십시오:

          http://freedesktop.org/software/fontconfig

### 글꼴 바꾸기

`fontconfig` 라이브러리는 전체 글꼴이나 특정 글자가 없는 경우에 글꼴을 바꾸어 줍니다. 만약 시스템에서 현재 글꼴에 포함되지 않는 글자를 표시해야 하는 경우, `fontconfig` 라이브러리는 비슷한 다른 글꼴을 표시하려고 시도할 것입니다. 예를 들면, 웹 페이지에서 Verdana 글꼴을 표시하도록 요청했지만 해당 글꼴이 시스템에 설치되어 있지 않다면 `fontconfig` 라이브러리는 Helvetica 와 같은 비슷한 글꼴을 보여줍니다. 비슷한 글꼴의 목록은 `/etc/fonts/fonts.conf` 파일에 정의되어 있습니다.

만약 시스템에서 선택된 글꼴에 포함되지 않은 글자를 표시해야 하는 경우에, `fontconfig` 라이브러리는 비슷한 다른 글꼴을 표시하려고 시도할 것입니다. 예를 들어, 여러분이 텍스트 편집기에서 Bitstream Vera Sans 글꼴을 선택했다고 가정합니다. Bitstream Vera 글꼴 계열은 키릴 문자를 포함하지 않습니다. 만약 여러분이 키릴 문자를 포함한 문서를 연다면, 텍스트 편집기는 키릴 문자를 포함하는 비슷한 다른 글꼴을 사용하여 글자를 보여줄 것입니다.

`fontconfig` 라이브러리는 또한 `serif`, `sans-serif`, `monospace` 와 같은 글꼴들에 대한 별칭(alias)들도 정의합니다. 만약 여러분이 이러한 별칭 중의 하나를 선택한다면, 시스템은 `/etc/fonts/fonts.conf` 파일 내에 있는 별칭에 정의된 첫 번째 글꼴을 사용합니다.

### 모든 사용자를 위해 글꼴 추가하기

모든 사용자들에게 적용되도록 글꼴을 추가하려면, 다음 단계를 수행합니다:

1. 글꼴 파일을 `/etc/fonts/fonts.conf` 파일에 있는 디렉토리 중의 하나에 복사합니다. 일반적으로 글꼴들은 `/usr/share/fonts/` 디렉토리에 저장됩니다.

2. `fontconfig` 라이브러리는 자동으로 글꼴의 목록을 갱신합니다. 만약 글꼴 목록이 갱신되지 않았다면, 다음 명령을 실행합니다:

       fc-cache 디렉토리-이름

### 특정 사용자를 위해 글꼴 추가하기

특정 사용자에게만 적용되도록 글꼴을 추가하려면, 다음 단계를 수행합니다:

1. 글꼴 파일을 사용자의 `$HOME/.fonts` 디렉토리에 복사합니다. 만약 여러분이 파일 관리자에서 `fonts:///` 위치에 글꼴 파일을 옮겨놓았다면(drag), 글꼴 파일은 `$HOME/.fonts` 디렉토리로 복사됩니다.

2. `fontconfig` 라이브러리는 자동으로 글꼴의 목록을 갱신합니다. 만약 글꼴 목록이 갱신되지 않았다면, 다음 명령을 실행합니다:

       fc-cache 디렉토리-이름

## MIME 형식

이 부분에서는 프로그램이 MIME 형식을 인식하는 방법과 MIME 형식을 등록하는 법, 그놈 데스크탑에 프로그램을 추가하는 방법들을 설명합니다.

이 장의 목적은 서로 다른 부분의 MIME 데이터베이스를 설정하는 방법을 익히고, MIME 시스템에 대한 일반적인 이해를 돕기 위한 것입니다. 따라서 여기서는 불필요하게 자세한 부분까지는 설명하지 않을 것입니다. 세부적인 내용들은 XDG 공통 MIME 정보 명세서를 참조하기 바랍니다.

### MIME 형식에 대한 소개

Multipurpose Internet Mail Extension [MIME] 형식은 파일의 종류를 알려주기 위한 것입니다. 인터넷 브라우저와 같은 프로그램들은 MIME 형식을 이용하여 해당 파일을 어떻게 처리할지 결정합니다. 예를 들어 이메일 응용 프로그램은 첨부된 파일의 형식을 인식하여 gedit와(과) 같은 적절한 보기 프로그램을 선택하기 위해 MIME 형식을 이용할 수 있습니다.

또 다른 예로, 노틸러스 파일 관리자는 다음과 같은 작업을 처리하기 위해 파일의 MIME 형식을 알아야만 합니다:

- 적절한 프로그램으로 파일 열기.

- 파일의 형식을 설명하는 문자열을 표시하기.

- 파일을 나타내는 적절한 아이콘 표시하기.

- 해당 파일을 열 수 있는 다른 프로그램들의 목록을 표시하기.

MIME 형식은 원래 이메일 메시지의 내용을 지정하기 위한 표준으로 설계되었습니다. 지금은 많은 시스템들이 파일 시스템 내에 있는 임의의 파일에 대한 형식을 구분하기 위해 MIME 형식을 사용하고 있습니다. MIME 형식은 최상위 미디어 형식과 슬래시 문자(`/`), 하위 형식으로 구성됩니다. 이러한 MIME 형식의 예는 `image/jpeg`와 같은 것이 있습니다. 이 예에서 미디어 형식 부분은 `image`에 해당하고, 하위 형식은 `jpeg`에 해당합니다. 최상위 미디어 형식은 파일 내용에 대한 일반적인 분류를 의미하고, 하위 형식은 특정한 파일 형식을 의미합니다.

IANA [Internet Assigned Naming Authority]로부터 인증받은 8 가지의 미디어 형식이 존재합니다. 이들은 각각

- application
- audio
- image
- message
- model
- multipart
- text
- video

에 해당하며, 각 미디어 형식에 따른 여러 가지 하위 형식이 존재합니다. 자세한 정보는 IANA 웹사이트에 있는 MIME 미디어 형식 부분을 살펴보기 바랍니다.

그놈의 MIME 형식에 대한 구현 사항은 XDG 공통 MIME 형식 정보 명세서를 따릅니다. 이 명세서는 다음과 같은 장점을 제공합니다:

- MIME과 관련된 모든 파일을 위한 표준 위치.

- 프로그램에서 새로운 MIME 형식에 대한 정보를 등록하기 위한 표준 방식.

- 파일의 MIME 형식을 알아내기 위한 표준 방식.

- MIME 형식에 대한 정보를 알아내기 위한 표준 방식.

이 장의 나머지 부분에서는 MIME 데이터베이스를 구성하는 파일과 디렉토리에 대한 설명, 소스 XML 파일의 상세 정보, MIME 형식을 생성하거나 수정하는 방법, 특정 MIME 형식을 다루는 프로그램을 등록하는 방법, 그놈 데스크탑에 프로그램을 추가하는 방법들을 설명합니다.

### MIME 데이터베이스

MIME 데이터베이스는 다음과 같은 정보들을 저장하는 파일의 집합입니다:

- 알려진 MIME 형식의 집합

- 파일의 MIME 형식을 알아내기 위한 방법

- MIME 형식에 대한 메타 정보. 즉, 이 형식의 파일을 표시할 때 사람이 알아보기 쉽도록 설명한 내용.

#### 위치

관리자로써, MIME 시스템을 이해하기 위해 가장 중요하고 기본적인 단계는 이러한 파일들이 저장되는 위치를 아는 것입니다. XDG 공통 MIME 정보 명세서는 X 데스크탑 그룹에서 제안되었으므로, XDG 기본 디렉토리 명세서의 내용을 따릅니다. 이 명세서는 메뉴를 편집하는 것과 같은 다른 시스템 관리 작업에서도 매우 중요하므로, 이 명세서의 내용을 숙지해 두는 것이 좋습니다.

MIME 데이터베이스는 `$XDG_DATA_HOME/mime`디렉토리와 `$XDG_DATA_DIRS/mime` 디렉토리에 있는 파일의 집합으로 구성됩니다. 만약 이러한 환경 변수들이 설정되어 있지 않다면, 기본값으로 `~/.local/share` 디렉토리와 `/usr/local/share:/usr/share` 디렉토리를 각각 사용합니다. `$XDG_DATA_DIRS` 변수의 기본값에서 볼 수 있듯이, 각각의 환경 변수들은 실제로는 콜론(:)으로 구분된 디렉토리의 목록입니다. 만약 동일한 내용이 중복되는 경우에는 `$XDG_DATA_HOME/mime`에 있는 사용자 데이터베이스는 `$XDG_DATA_DIRS/mime`에 있는 시스템 데이터베이스보다 우선 순위를 가집니다. 앞으로 이 문서에서는 XDG 공통 MIME 정보 명세서와 마찬가지로 이러한 디렉토리들을 `<MIME>`(이)라고 가리킬 것입니다.

예를 들어, 환경 변수들의 기본값을 사용한다고 가정할 때 Load `<MIME>/text/plain.xml` 라는 표현은 다음 파일들을 읽어온다(load)는 것을 의미합니다:

- `~/.local/share/mime/text/plain.xml`

- `/usr/local/share/mime/text/plain.xml`

- `/usr/share/mime/text/plain.xml`

#### 내용

다음은 MIME 데이터베이스내의 디렉토리와 파일의 목록에 대해 간략한 설명을 추가한 것입니다:

`<MIME>/packages/`

- 이 디렉토리는 MIME 형식들의 집합을 설명하는 여러 XML 파일들을 포함합니다. 기본적으로 `freedesktop.org.xml` 파일은 `/usr/share/mime/packages` 디렉토리에 설치됩니다. 이 파일은 주로 사용되는 모든 기본 MIME 형식에 대한 정보를 포함합니다.

  새로운 MIME 형식에 대한 정보를 제공하는 프로그램들은 여기에 하나의 새로운 XML 파일을 설치해야 합니다. 프로그램이 설치된 위치에 따라 `$XDG_DATA_HOME:$XDG_DATA_DIRS` 내의 한 디렉토리에 `/mime/package`라는 이름의 하위 디렉토리를 만들 것입니다. 예를 들어 프로그램이 `/usr/bin` 디렉토리에 설치되었다면, 새로운 소스 XML 파일을 `/usr/share/mime/packages` 디렉토리에 설치할 것입니다. `packages` 디렉토리 내의 XML 파일들에 대한 자세한 정보는, mimetypes-source-xml 부분을 살펴보기 바랍니다.

`<MIME>/`미디어`/`하위 형식`.xml`

- 이 디렉토리와 파일들은 update-mime-database 프로그램에 의해 `<MIME>/packages/` 하위 디렉토리 내의 소스 XML 파일들의 집합으로부터 자동으로 생성됩니다. 예를 들어 `/usr/share/mime/packages/freedesktop.org.xml` 파일 내의 각 `mime-type` 엘리먼트들은, `/usr/share/mime/` 디렉토리 내에 MIME 형식의 미디어 형식에 대한 디렉토리가 만들어져 있습니다. XML 파일은 MIME 형식의 하위 형식 이름의 디렉토리 내에도 생성됩니다. 이 XML 파일은 해당 형식에 대한 설명 (그에 대한 번역도 포함), 하위 클래스 지정(designation), 별칭 등을 포함합니다.

  ##### 예: `/usr/share/mime/text/plain.xml` 파일

      <?xml version='1.0' encoding='utf-8'?>
      <mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/plain">
      <!--Created automatically by update-mime-database. DO NOT EDIT!-->
        <comment>plain text document</comment>
        <!-- possibly more translations -->
        <comment xml:lang="es">documento de texto sencillo</comment>
        <comment xml:lang="eu">testu soileko dokumentua</comment>
        <comment xml:lang="fi">perustekstiasiakirja</comment>
        <comment xml:lang="fr">document plein texte</comment>
        <!-- possibly more translations -->
      </mime-type>

  이 파일은 기본 소스 XML 파일인 `freedesktop.org.xml`을 이용하여 update-mime-database 프로그램을 통해 생성되었습니다.

`<MIME>/globs`

- 이 파일은 콜론(:) 기호로 구분된 MIME 형식과 glob 패턴으로 이루어진 한 줄로 구성됩니다. glob 패턴과 일치하는 파일들은 해당 패턴의 앞에 지정된 MIME 형식으로 인식됩니다. 파일 이름을 glob 패턴과 일치시키는 방법에 대한 특별한 규칙들이 존재합니다. 자세한 내용은 XDG 공통 MIME 명세서를 참조하기 바랍니다.

  이 파일은 기본 소스 XML 파일인 `freedesktop.org.xml`을 이용하여 update-mime-database 프로그램을 통해 생성되었습니다.

`<MIME>/magic`

- 파일의 내용을 스니핑(sniffing)하여 MIME 형식을 인식하는 방법에 대한 정보를 포함하는 바이너리 파일입니다. 이것은 다음과 같은 규칙들을 하나 이상 포함하는 파일입니다: 파일의 0번 오프셋 위치에서 `%PDF-` 문자열을 검사하여, 만약 일치하면 MIME 형식을 `application/pdf`로 지정합니다.

  이 파일은 update-mime-database 프로그램을 통해 생성되었습니다.

`<MIME>/XMLnamespaces`

- 이 파일은 XML 이름 공간과 MIME 형식 간의 매핑을 포함합니다. 각 줄은 이름 공간, 로컬 이름, MIME 형식의 세 필드로 이루어져 있으며, 각 필드는 공백 문자로 구분됩니다. 만약 로컬 이름이 비어있다면, 이름 공간과 MIME 형식 사이에 두 개의 공백 문자가 있어야 합니다.

  이 파일은 update-mime-database 프로그램을 통해 생성되었습니다.

`<MIME>/aliases`

- 이 파일은 각 MIME 형식들에 대한 별칭(alias)의 목록을 포함합니다. 별칭은 단순히 다른 형식으로 알려진 MIME 형식입니다. 이 파일의 각 줄은 두 개의 필드로 이루어지며, 첫번째 필드는 별칭의 이름이며 두번째 필드는 MIME 형식을 가리킵니다. 각 필드는 공백 문자로 구분됩니다.

  이 파일은 update-mime-database 프로그램을 통해 생성되었습니다.

`<MIME>/subclasses`

- 이 파일은 자신의 부모(parent) MIME 형식과 그 하위 클래스 MIME 형식에 대한 목록을 포함합니다. XDG 공통 MIME 명세서에 따르면:

  > 만약 한 형식이 다른 형식의 인스턴스이기도 하다면, 이 형식은 다른 형식의 하위 클래스(subclass)입니다. 예를 들어 모든 image/svg 파일은 text/xml 파일이기도 하며 application/octet-stream 파일이기도 합니다. 하위 클래스는 데이터의 분류에 따른 것이라기 보다는 파일의 형식에 대한 것입니다 (예를 들어, 모든 스프레드시트 형식의 부모가 되는 '일반적인 스프레드시트' 클래스는 존재하지 않습니다).

  이 파일의 형식은 `aliases` 파일과 비슷합니다. 각 줄은 공백 문자로 구분된 두 필드로 구성되며, 첫번째 필드는 하위 클래스 MIME 형식을, 두번째 필드는 부모 MIME 형식을 나타냅니다.

  이 파일은 update-mime-database 프로그램을 통해 생성되었습니다.

#### MIME 데이터베이스 형식 갱신하기

MIME 데이터베이스를 갱신하는 방법을 이해하는 것은 새로운 MIME 형식을 시스템에 추가하거나, MIME 형식에 대한 정보를 수정해야 하는 관리자들에게는 중요합니다. update-mime-database는 이를 위한 프로그램입니다.

예를 들어 어떤 프로그램이 새로운 MIME 형식에 대한 정보를 `/usr/share/mime/packages/diff.xml`에 설치했다면, `/usr/share/mime`을 인자로 주어 update-mime-database 프로그램을 호출해야 합니다.

    # update-mime-database /usr/share/mime
    ***
    * Updating MIME database in /usr/share/mime...
    ***

MIME 데이터베이스는 `<MIME>/packages` 디렉토리 내의 모든 소스 XML 파일들을 검색하여 갱신합니다.

### 소스 XML 파일

`<MIME>/packages` 디렉토리에 위치한 이러한 XML 파일들은 update-mime-database 프로그램을 통해 설치된 MIME 형식들에 대한 모든 정보를 제공합니다. XML 파일 자체에 대한 다음과 같은 몇 가지 규칙이 존재합니다:

- 이름 공간을 `http://www.freedesktop.org/standards/shared-mime-info`로 지정해야 합니다

- 최상위(root) 엘리먼트의 이름은 `mime-info`가 되어야 합니다

- `mime-info` 엘리먼트의 자식으로 여러 (0개 이상의) `mime-type` 엘리먼트들을 지정할 수 있습니다. `type` 속성은 정의된 MIME 형식을 지정하기 위해 사용됩니다.

기본적으로 `freedesktop.org.xml` 파일은 `<MIME>` 경로 (보통은 `/usr/share/mime/packages`) 중의 하나에 있는 `packages` 디렉토리에 설치됩니다.

mimetypes-mimeinfo-elements은 `mime-type` 엘리먼트의 자식으로 올 수 있는 각 엘리먼트에 대한 간단한 설명을 제공합니다.

### Child elements of `<mime-type>`

엘리먼트 (및 속성) | 설명
`<glob pattern="`*.xyz`">` | 이 엘리먼트는 파일 이름에 glob 패턴을 지정합니다. 만약 파일 이름이 일치하면 부모 `mime-type` 엘리먼트의 MIME 형식으로 지정됩니다. `pattern` 속성은 필수적인 속성입니다.
`<magic priority="`50`">` | 이 엘리먼트는 `일치된` 엘리먼트를 자식으로 포함합니다. `priority` 속성은 생략할 수 있으며, 0부터 100사이의 우선순위를 지정합니다 (가장 우선 순위가 높은 것은 100입니다) 각각의 자식 `일치된` 엘리먼트는 세 가지 필수 속성인 `type` `offset` `값` 와 네번째 (생략할 수 있는) 속성인 `mask`를 가집니다. 이 속성들에 대한 자세한 정보는 XDG 공통 MIME 정보 명세서를 참조하기 바랍니다.
`<alias type="`미디어`/`하위 형식`">` | 이 엘리먼트는 부모 `mime-type` 엘리먼트에 대한 별칭을 정의합니다. 별칭은 단순히 다른 형식으로 알려진 MIME 형식입니다. 예를 들어 `application/x-pdf`는 `application/pdf` MIME 형식의 별칭입니다.
`<sub-class-of type="`미디어`/`하위 형식`">` | 이 엘리먼트는 부모 `mime-type` 엘리먼트를 `type` 속성 내에 지정된 MIME 형식의 하위 클래스로 정의합니다. 예를 들어, `image/svg`는 `text/xml`, `text/plain`, `application/octet-stream` MIME 형식의 하위 클래스입니다.
`<comment xml:lang="`locale`">` | 이 엘리먼트는 MIME 형식에 대한 사람이 읽기 편한 설명을 제공합니다. 이 엘리먼트는 여러 (0개 이상) 올 수 있으며 각각은 `xml:lang` 속성에 대해 고유한 값을 가집니다.
`<root-XML namespaceURI="`이름 공간`" localName="">` | 만약 파일이 XML 파일로 인식되면 이 엘리먼트의 `namespaceURI` 속성과 `localName` 속성을 이용하여 (둘 다 필수 속성입니다) 보다 세세한 분류를 할 수 있도록 도와줍니다. `namespaceURI` 속성은 문서의 이름 공간을 지칭하며, `localName` 속성은 문서의 최상위 엘리먼트의 이름을 지칭합니다. 만약 `localName` 속성이 존재하지만 값이 설정되어 있지 않다면, 최상위 엘리먼트의 이름은 아무렇게나 쓸 수 있지만, 이름 공간은 일치해야 합니다.

이러한 파일들을 이해할 수 있는 가장 쉬운 방법은 예제를 살펴보는 것입니다. XDG 공통 MIME 명세서에 따르면, mimetypes-source-xml-example는 `diff.xml`이라는 소스 XML 파일의 내용을 보여줍니다. 이 예에서는 `text/x-diff`라는 MIME 형식을 정의합니다. 여기에는 여러 언어로 MIME 형식에 대한 (사람이 보기 편한) 설명을 담고 있는 `comment` 엘리먼트들이 있습니다. 이 MIME 형식은 glob 패턴과 일치하는 이름을 찾는 규칙과 파일의 내용을 살펴보는 (sniffing) 규칙 (`매직(magic)` 규칙이라고도 함)을 모두 가지고 있습니다. `.diff` 혹은 `.patch`라는 확장자를 가지는 파일들은 이 MIME 형식으로 인식됩니다. 또는 파일의 내용이 `match` 엘리먼트의 `value` 속성 내의 문자열값으로 시작하는 파일들은 `text/x-diff` MIME 형식으로 인식될 것입니다.

glob 패턴과 매직 규칙이 적용되는 순서에 대한 것은 이 문서의 범위를 벗어납니다. 이에 대한 자세한 사항은 XDG 공통 MIME 정보 명세서를 참조하기 바랍니다.

#### 소스 XML 파일 예제: `diff.xml`

    <?xml version='1.0'?>
    <mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
      <mime-type type="text/x-diff">
        <comment>Differences between files</comment>
        <comment xml:lang="af">verskille tussen lêers</comment>
        <!-- more translated comment elements -->
        <magic priority="50">
          <match type="string" offset="0" value="diff\t"/>
          <match type="string" offset="0" value="***\t"/>
          <match type="string" offset="0" value="Common subdirectories: "/>
        </magic>
        <glob pattern="*.diff"/>
        <glob pattern="*.patch"/>
      </mime-type>
    </mime-info>

### MIME 형식 변경하기

프로그램이 `<MIME>/packages` 디렉토리에 설치한 소스 XML 파일들을 절대로 직접 수정해서는 안됩니다. 대신 `Overrides.xml` 파일을 수정하십시오. 이 파일은 동일한 `packages` 디렉토리에 설치된 다른 모든 소스 XML 파일보다 높은 우선순위를 가집니다. 만약 여러분이 프로그램 개발자라면 이 규칙이 적용되지 않습니다. 이 때는 적절한 `<MIME>/packages` 디렉토리에 새로운 소스 XML 파일을 만들어야 합니다. (물론 `Makefile`에서 이를 처리하도록 할 것입니다).

여러분은 시스템 상의 모든 사용자를 위한 MIME 데이터베이스나, 변경하는 위치에 해당하는 특정 사용자를 위한 MIME 데이터베이스를 수정할 수 있습니다. 모든 사용자에 대한 데이터베이스를 수정하려면 `$XDG_DATA_DIRS/mime/packages` 디렉토리 내의 `Overrides.xml` 파일을 변경하면 됩니다. 특정 사용자를 위한 데이터베이스를 수정하려면 `$XDG_DATA_HOME/mime/packages` 디렉토리 내의 `Overrides.xml` 파일을 변경하면 됩니다.

수정을 하고나면 항상 MIME 데이터베이스의 디렉토리 위치를 첫번째 인자로 주어 update-mime-database 프로그램을 실행해야 합니다.

#### MIME 형식 추가 또는 수정하기

모든 사용자에 대한 하나 이상의 MIME 형식을 추가하려면 다음과 같이 하십시오:

1. MIME 형식의 정의를 포함하고 있는 기존의 `Overrides.xml` 소스 XML 파일을 수정하거나 새로 만듭니다. 자세한 정보는 mimetypes-source-xml 부분을 보기 바랍니다.

2. `/usr/share/mime/packages` 디렉토리에 `Overrides.xml` 파일을 가져다 놓습니다.

3. 시스템 계정으로 update-mime-database 프로그램을 실행하여 MIME 데이터베이스를 갱신합니다.

       update-mime-database /usr/share/mime

특정한 사용자에 대한 하나 이상의 MIME 형식을 추가하는 것은 위와 동일한 과정을 거치지만 `~/.local/share/mime/packages` 디렉토리 내의 `Overrides.xml` 파일을 이용한다는 것이 다릅니다. 그리고 update-mime-database 프로그램을 실행할 때는 첫번째 인자로 `~/.local/share/mime/packages`를 주어야 합니다.

#### 변경 내용을 확인하기

MIME 데이터베이스를 변경하고 그 내용을 갱신하고나면 gnomevfs-info 프로그램을 이용하여 변경된 내용이 적용되었는지 확인할 수 있습니다. 이 프로그램은 특정 파일에 대한 MIME 형식 및 다른 유용한 정보들을 출력해 줍니다.

SVG 파일에 대해 gnomevfs-info 프로그램을 실행하면 아래와 같은 출력을 볼 수 있습니다. 이 MIME 형식에 대한 기본 프로그램은 `eog.desktop`(이)라는 것을 알 수 있을 것입니다. 기본 프로그램에 대한 내용은 mimetypes-registering 부분에서 논의할 것입니다.

    $ gnomevfs-info mime-diagram.svg
    Name              : mime-diagram.svg
    Type              : Regular
    MIME type         : image/svg+xml
    Default app       : eog.desktop
    Size              : 14869
    Blocks            : 32
    I/O block size    : 4096
    Local             : YES
    SUID              : NO
    SGID              : NO
    Sticky            : NO
    Permissions       : 600644
    Link count        : 1
    UID               : 1000
    GID               : 100
    Access time       : Wed Feb 22 18:24:47 2006
    Modification time : Wed Feb 22 18:24:42 2006
    Change time       : Wed Feb 22 18:24:42 2006
    Device #          : 775
    Inode #           : 297252
    Readable          : YES
    Writable          : YES
    Executable        : NO
    $

mimetypes-newtype-example에서는 새로운 MIME 형식을 만들고 gnomevfs-info 프로그램을 이용하여 이를 확인하는 과정을 수행해 볼 것입니다.

#### `application/x-newtype` 예제

MIME 형식을 새로 만들고 (혹은 수정하고) 이를 확인하려면 다음과 같이 하십시오:

1. 홈 디렉토리에 `testing.xyz`라는 아무 내용없는 새 파일을 만듭니다.

2. gnomevfs-info 프로그램을 이용하여 이 파일의 MIME 형식을 확인합니다. 이 파일은 어떤 glob 패턴이나 매직 규칙에 해당하지 않으므로 MIME 형식은 `text/plain`으로 인식될 것입니다.

3. mimetypes-addmodify 부분에서 설명한대로 `Overrides.xml` 파일을 만듭니다. (이미 있다면 수정합니다.) 파일의 내용은 mimetypes-overrides-xml의 것을 사용합니다.

4. update-mime-database 프로그램을 이용하여 데이터베이스를 갱신합니다.

5. gnomevfs-info 프로그램을 이용하여 변경 사항이 적용되었는지 확인합니다. `testing.xyz` 파일의 MIME 형식이 `application/x-newtype`으로 인식되는 것을 볼 수 있을 것입니다.

       $ gnomevfs-info testing.xyz | grep MIME
       MIME 형식         : application/x-newtype
       $

##### `Overrides.xml` 파일

    <?xml version='1.0' encoding='utf-8'?>
    <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
      <mime-type type="application/x-newtype"><comment>new mime type</comment><glob pattern="*.xyz"/></mime-type>
    </mime-info>

### MIME 형식을 위한 등록하기

MIME 형식을 처리하기 위해 프로그램을 등록하는 과정은 아주 직관적입니다. 프로그램을 등록하려면 `.desktop` 엔트리 파일에 `MimeType` 키를 만들고 각각의 MIME 형식에 대한 목록을 세미콜론(;)으로 구분하여 써 주면 됩니다. `MimeType` 키는 오직 `.desktop` 파일의 `Type` 키의 값이 `Application`인 경우에만 사용되어야 합니다. `.desktop` 파일에 대한 자세한 정보는 menustructure-desktopentry 부분을 보기 바랍니다.

`.desktop` 엔트리 파일을 만들거나 수정하고 나면, update-desktop-database 프로그램을 이용하여 데이터베이스를 갱신해 주어야 합니다. (이 프로그램은 인자를 받지 않는다는 것만 제외하면 update-mime-database 프로그램과 매우 비슷합니다.) 이 프로그램은 file in the `$XDG_DATA_HOME:$XDG_DATA_DIRS` 내의 각 디렉토리에 있는 `applications` 하위 디렉토리에 `mimeinfo.cache` 파일을 만들 것입니다. cache 파일은 단지 `MimeType` 키를 읽기 위해 `.desktop` 파일 전체를 다시 읽어야 하는 경우를 (이 경우 불필요한 디스크 I/O가 발생될 것입니다) 방지하기 위해 필요합니다.

특정 MIME 형식을 처리하기 위해 사용되는 기본 프로그램은 `defaults.list` 파일에 지정되어야 합니다. 이 파일은 `$XDG_DATA_HOME`과 `$XDG_DATA_DIRS` 내의 각 디렉토리에 있는 `applications` 하위 디렉토리에 있습니다. 이 파일은 형식은 MIME 형식, `=` 기호, 데스크탑 파일 ID (데스크탑 엔트리 파일의 이름을 말합니다). mimetypes-registering-example는 사용자의 `~/.local/share/applications` 디렉토리에 있는 `defaults.list` 파일의 간략한 예입니다.

#### 사용자의 `defaults.list` 파일

    [Default Applications]
    application/pdf=evince.desktop
    text/html=epiphany.desktop
    text/plain=gedit.desktop
    image/jpeg=eog.desktop
    image/png=eog.desktop
    text/xml=gedit.desktop

#### XDG 데스크탑 엔트리 명세서

프로그램에 MIME 형식을 등록하는 것은 XDG 공통 MIME 정보 명세서가 아닌 XDG 데스크탑 엔트리 명세서일부입니다.

### 그놈 데스크탑에 프로그램 추가하기

그놈 데스크탑에 프로그램을 추가하려면 다음 과정을 수행하십시오:

1. 프로그램에 대한 메뉴 항목을 더합니다. 메뉴에 항목을 추가하는 방법에 대한 정보는 menustructure-2 부분을 보기 바랍니다.

2. 프로그램에 대한 아이콘을 `/usr/share/icons/`테마-이름`/`아이콘-크기`/apps`에 추가합니다. 아이콘과 테마에 대한 자세한 정보는 themes-11 부분을 보기 바랍니다.

3. 만약 프로그램이 새로운 MIME 형식을 사용한다면, 소스 XML 파일을 MIME 데이터베이스에 추가합니다. 자세한 정보는 mimetypes-modifying 부분을 보기 바랍니다.

4. 만약 프로그램이 새로운 MIME 형식을 사용한다면, MIME 형식에 대한 아이콘을 `/usr/share/icons/`테마-이름`/`아이콘-크기`/mimetypes`에 추가합니다. 아이콘과 테마에 대한 자세한 정보는 themes-0 부분을 보기 바랍니다.

5. MIME 형식과 프로그램을 연결하려면 `.desktop` 파일에 `MimeType` 키를 포함시킵니다. 자세한 정보는 mimetypes-registering 부분을 보기 바랍니다.

## 화면 보호기 설정하기

이 부분에서는 화면 보호기의 기본 설정을 변경하는 방법을 설명합니다. 또한 화면 보호기에서 사용할 수 있는 화면들을 수정하는 방법에 대해서도 설명합니다.

### 화면 보호기 소개

화면 보호기는 화면을 사용하지 않을 때 화면 상의 이미지를 바꿔주는 프로그램입니다. 그놈 데스크탑의 화면 보호기 프로그램은 gnome-screensaver입니다. 다음의 절에서는 gnome-screensaver 프로그램을 설정하는 방법 및 화면 보호기의 테마를 변경하는 방법을 설명할 것입니다.

### 화면 보호기 기본 설정

화면 보호기와 관련된 모든 설정은 GConf에 저장됩니다.

사용자들이 화면 보호기 프로그램의 기본 설정을 변경하려면 화면 보호기 기본 설정 도구를 이용할 수 있습니다. 화면 보호기 기본 설정에 대한 자세한 정보는 그놈 데스크탑 사용자 가이드를 참조하기 바랍니다.

사용자들은 `/usr/bin/gnome-screensaver-preferences` 프로그램을 이용하여 화면 보호기 기본 설정 대화상자를 열 수도 있습니다.

모든 사용자에게 적용되는 화면 보호기 기본 설정 및 정책을 설정하려면 기본 GConf 설정 소스 내의 화면 보호기 설정을 수정하십시오.

모든 사용자에게 적용되는 화면 보호기 필수 설정 및 정책을 설정하려면 필수 GConf 설정 소스 내의 화면 보호기 설정을 수정하십시오.

### 화면 보호기 테마 변경하기

화면 보호기 프로그램은 사용자들이 하나 이상의 화면 보호기 테마를 설정할 수 있도록 해 줍니다. 화면 보호기 테마는 화면을 사용하지 않을 때 화면 상에 이미지를 표시하는 프로그램입니다. 이용할 수 있는 화면 보호기 테마는 화면 보호기 설정 도구에서 볼 수 있습니다.

새 화면 보호기 테마를 추가하려면 화면 보호기 테마 엔진을 위한 실행 파일을 PATH 상에 포함된 경로나 화면 보호기 테마 엔진 실행 파일이 있는 디렉토리에 복사합니다. 시스템 상에 화면 보호기 테마 엔진 실행 파일이 존재하는 디렉토리는 다음과 같은 명령을 통해 확인할 수 있습니다. :

    pkg-config --variable=privlibexecdir gnome-screensaver

그리고 `.desktop` 파일은 화면 보호기 테마 디렉토리에 추가합니다. 시스템 상에 화면 보호기 테마 디렉토리의 위치는 다음 명령을 통해 확인할 수 있습니다:

    pkg-config --variable=themesdir gnome-screensaver

`.desktop` 파일의 Exec 필드에는 화면 보호기를 한 창 내에서가 아닌 화면 전체로 실행할 때 필요한 인자들을 포함합니다. 예를 들어 몇몇 오래된 화면 보호기 테마 엔진들은 화면 보호기를 전체 화면으로 표시하기 위해 `-root` 옵션을 포함해야 할 수 있습니다.

화면 보호기 하부 구조는 XDG 메뉴 명세서에 따라 테마를 구현합니다. 이 명세서를 따름으로써, 그놈에서는 다음과 같은 일들이 가능해 집니다:

- 테마를 쉽게 변경할 수 있습니다. 이용 가능한 테마를 수정하기 위해 몇 개의 파일 만을 편집하면 되고, 프로그램 자체를 수정하거나 파일을 옮길 필요가 없습니다.

- 테마를 쉽게 설치할 수 있습니다. 테마를 설치할 때 시스템에 대한 정보를 제공해 줄 필요가 없습니다.

- 사용자들이 테마를 수정하지 못하도록 시스템을 설정할 수 있습니다.

자세한 정보는 menustructure-0 부분을 보기 바랍니다.

## 세션 관리

이 부분에서는 세션 관리와 세션 기본값을 설정하는 방법에 대해 설명합니다. 또한 세션과 로그인 스크립트에 대한 정보도 포함합니다.

### 세션에 대하여

세션은 사용자가 그놈 데스크탑에 로그인한 순간부터 로그아웃할 때까지 발생합니다. 세션 관리자는 로그인 관리자가 사용자를 인증한 이후에 시작됩니다. 세션 관리자는 사용자가 세션을 관리할 수 있도록 해 줍니다. 예를 들어, 사용자는 세션의 상태를 저장하고 다음 번 로그인 시에 저장해 둔 세션으로 복귀할 수 있습니다.

최소한 다음과 같은 프로그램이 세션 내에 실행됩니다:

- 세션 관리자인 `gnome-session`.

- GConf X 설정 대몬인 `gnome-daemon`.

- 그놈 데스크탑의 패널을 실행하는 gnome-panel 프로그램.

- Metacity 창 관리자.

### 세션 기본값 설정하기

다음의 표는 기본 세션 정보를 포함하는 파일의 목록입니다:

파일 | 설명
`/usr/share/gnome/default.session` | 기본 세션 파일. 세션 기본값에 대한 자세한 정보는 이 파일에 기록됩니다.
`$HOME/.gnome2/session` | 사용자 세션 파일. 사용자가 세션을 수정하면, 그에 대한 정보가 이 파일에 기록됩니다.

모든 사용자에게 적용되는 세션 기본값을 설정하려면, 기본 세션 파일을 수정합니다.

특정 사용자에게 기본 세션 설정을 복구하려면 사용자의 홈 디렉토리에 있는 세션 파일을 지웁니다. 사용자 세션 파일이 없는 경우에는, `/usr/share/gnome/default.session`에 있는 기본 설정값이 사용됩니다.

사용자의 현재 세션을 기본 세션으로 저장하려면, `gnome-session-save` 명령을 이용할 수 있습니다.

## 도움말 시스템

이 부분에서는 그놈 데스크탑의 도움말 시스템에 대해 설명합니다.

### 도움말 시스템의 개요

그놈 데스크탑은 Yelp 도움말 보기 프로그램을 통해 도움말을 보여줍니다. 자세한 정보는 그놈 데스크탑 사용자 안내서의 Yelp 도움말 탐색기 부분을 보기 바랍니다.

도움말의 원본 문서는 XML 파일입니다. 이 XML 파일들은 DocBook XML 버전 4.1.2 문서 형식 정의 (DTD)를 이용하여 작성되었습니다. DocBook XML 파일들은 gnome-doc-utils와 함께 설치된 스타일시트를 사용하여 HTML로 변환되며, 이러한 HTML 파일은 도움말 탐색기에 표시됩니다. DocBook XML 파일에 대한 자세한 정보는 다음 URL을 살펴보기 바랍니다:

          http://www.oasis-open.org/docbook/xml

도움말 시스템은 Open Source Metadata Framework (OMF) 파일과 분류 시스템을 이용합니다. 다음 절에서는 OMF 파일과 분류 시스템에 대해 설명할 것입니다.

### OMF 파일

각 설명서에 대한 XML 파일은 그와 관련된 OMF 파일을 가집니다. OMF 파일은 도움말 탐색기에서 이용하는 설명서와 관련된 정보를 포함합니다. OMF 파일은 `.omf` 확장자를 가집니다.

프로그램을 설치할 때, 설치 과정에서 OMF 파일을 OMF 파일들의 디렉토리에 설치합니다. 만약 도움말 문서가 관련된 OMF 파일을 해당 디렉토리에 가지고 있다면, 도움말 탐색기는 도움말 문서를 보여줄 것입니다.

OMF 파일은 다음과 같은 도움말 문서에 관련된 정보들을 포함합니다:

- 도움말 문서에 대한 XML 파일의 위치

- 도움말 문서의 제목

- 해당 도움말 문서가 속하는 분류

OMF 파일을 만드는 방법에 대한 자세한 정보는 Scrollkeeper OMF 파일 작성하기 부분을 보기 바랍니다.

### ScrollKeeper 분류 시스템

ScrollKeeper는 문서 분류 시스템입니다. Scrollkeeper의 주요 기능은 도움말 탐색기를 위해 OMF 파일 내의 정보를 관리하는 것입니다. 여러분이 프로그램을 설치할 때, OMF 파일은 ``$prefix`/share/omf/`<프로그램-이름>`` 디렉토리로 복사됩니다.

ScrollKeeper는 ``$prefix`/etc/scrollkeeper.conf` 파일 내에 지정된 디렉토리 내의 OMF 파일들로부터 목차를 구성합니다. 이 파일은 보통 재귀적인 탐색을 위해 `OMF_DIR` 변수의 값으로 컴마로 구분된 디렉토리의 목록을 설정하는 한 줄로 구성됩니다.

    OMF_DIR=/usr/share/omf:/usr/local/share/omf:/opt/gnome2/share/omf:/opt/kde/omf

ScrollKeeper는 도움말 문서가 속할 수 있는 분류 주제의 계층 구조를 포함합니다. OMF 파일에 있는 문서의 분류 주제는 도움말 탐색기에 표시되는 목차 내의 문서의 위치를 결정합니다.

주제 분류의 계층 구조는 ``$prefix`/scrollkeeper/Templates/`<lang>`/scrollkeeper_cl.xml` 파일에 정의되어 있습니다. 문서의 주제 분류는 반드시 이 파일 내에 지정된 분류를 따라야 합니다.

Scrollkeeper 시스템에 한 자세한 정보는 http://scrollkeeper.sourceforge.net/에 있는 웹사이트를 방문해 보시길 바랍니다.

만약 도움말 문서 XML 파일이 새로운 위치로 옮겨졌다면, OMF 파일 내의 위치도 갱신되어야 합니다.

## 성능 개선하기

이 장에서는 그놈 데스크탑 시스템의 성능을 향상시킬 수 있는 방법을 설명합니다.

### 성능 향상 기법의 개요

이 장에서는 그놈 데스크탑의 성능을 개선하기 위해 설정할 수 있는 몇 가지 기본 설정들을 보여줄 것입니다. 여러분은 `gconftool-2` 명령을 이용하여 사용자의 기본 설정값을 변경할 수 있습니다. 이 장에서 사용할 예제들은 사용자 설정 소스 내의 값들을 변경하는 방법을 설명합니다.

`--direct` 옵션과 `--config-source` 옵션을 이용하여 기본 설정의 필수값이나 기본값을 설정할 수도 있습니다. 또한 수 많은 기본 설정들의 값을 설정하기 위해 스크립트 내에서 `gconftool-2` 명령을 사용할 수도 있습니다. `gconftool-2` 명령과 이와 함께 사용할 수 있는 옵션에 대한 자세한 정보 gconf-0 부분을 보기 바랍니다.

### CPU 사용량 줄이기

이 절에서는 그놈 데스크탑 시스템의 CPU 사용량을 줄이기 위해 설정할 수 있는 기본 설정들에 대해서 설명합니다.

#### CPU 자원을 더 적게 소모하는 테마 옵션 사용하기

몇몇 창 테두리 테마 옵션들은 창 테두리를 그리기 위해 이미지 파일을 로드합니다. 다른 옵션들은 창 테두리를 그리기 위해 보다 단순한 기법을 사용합니다.

Crux 창 테두리 옵션은 이미지 파일을 로드하기 때문에, CPU 자원이 부족한 시스템에서는 이로 인해 전체 시스템을 느려지게 될 수도 있습니다. CPU 사용량을 낮추려면 아래의 창 테두리 옵션 중의 하나를 사용합니다:

- Atlanta

- Esco

다음 창 테두리 옵션들은 Crux보다 적은 CPU 자원을 사용합니다:

- AgingGorilla

- Bright

- Metabox

Metabox 옵션은 HighContrastInverse와 같은 반전 컨트롤 옵션과는 궁합이 잘 맞지 않습니다. 반전 컨트롤 옵션을 이용한다면 Atlanta 옵션을 이용하기 바랍니다.

창 테두리 옵션을 변경하려면 다음 명령을 실행합니다:

    gconftool-2 \
    --type string \
    --set /apps/metacity/general/theme 옵션-이름

예를 들어, Atlanta 옵션을 사용하려면 다음과 같은 명령을 실행합니다:

    gconftool-2 \
    --type string \
    --set /apps/metacity/general/theme Atlanta

다른 방법으로, 사용자들은 테마 설정 도구를 이용하여 적절한 옵션을 선택할 수 있습니다.

창 테두리 옵션을 미리 보거나, 성능을 측정하려면 Metacity 테마 보기 프로그램을 이용할 수 있습니다. Metacity 테마 보기 프로그램을 시작하려면 다음 명령을 실행합니다:

    metacity-theme-viewer 옵션-이름

예를 들어 Atlanta 옵션의 성능을 측정하거나 모양을 보고 싶다면, 다음과 같이 실행합니다:

    metacity-theme-viewer Atlanta

#### 메뉴 아이콘을 표시하지 않도록 하여 CPU 사용량 줄이기

메뉴 내의 어떤 항목들은 옆에 아이콘을 표시합니다. 이 기능을 사용하지 않으려면, 다음 명령을 실행합니다:

    gconftool-2 \
    --type bool \
    --set /desktop/gnome/interface/menus_have_icons false

또 다른 방법으로, 사용자는 메뉴와 도구 모음 설정 도구에서 메뉴에 아이콘 보이기 옵션의 선택을 해제할 수 있습니다.

#### 스플래시 스크린을 사용하지 않도록 하여 CPU 사용량 줄이기

기본적으로, 사용자가 데스크탑 환경에 로그인할 때 스플래시 스크린이 표시됩니다. 사용자 로그인 과정이 진행되는 동안 스플래시 스크린에 아이콘들이 표시됩니다. 로그인 과정에서 CPU 사용량을 줄이기 위해서는 스플래시 스크린을 끌 수 있습니다.

스플래시 스크린을 끄려면 다음 명령을 실행합니다:

    gconftool-2 \
    --type bool \
    --set /apps/gnome-session/options/show_splash_screen false

또 다른 방법으로, 사용자는 세션 설정 도구에서 로그인할 때 스플래시 스크린 보기 옵션의 선택을 해제할 수 있습니다.

#### 패널 애니메이션을 사용하지 않도록 하여 CPU 사용량 줄이기

사용자가 패널을 숨기거나 보이게 할 때, 패널에 애니메이션을 적용할 수 있습니다. 이 기능을 끄려면, 다음 명령을 실행합니다:

    gconftool-2 \
    --type bool \
    --set /apps/panel/global/enable_animations false

또 다른 방법으로, 사용자는 패널 설정 도구에서 메뉴 및 패널 애니메이션 옵션의 선택을 해제할 수 있습니다.

#### 파일 관리자 성능 개선하기

노틸러스 파일 관리자는 성능을 향상시킬 수 있도록 변경할 수 있는 몇 가지 기능을 포함하고 있습니다.

##### 성능 기본 설정 변경하기

파일 관리자는 성능에 관련된 기본 설정들을 포함합니다. 각각의 성능 기본 설정들은 3가지 값 중 하나를 선택할 수 있습니다. 이러한 값들에 대한 설명은 아래와 같습니다:

값 | 설명
`always` | 로컬 파일 및 다른 파일 시스템 상의 파일에 대해서도 모두 작업을 수행합니다.
`local_only` | 로컬 파일에 대해서만 작업을 수행합니다. 성능 기본 설정을 `local_only`로 설정하면, CPU 사용량을 줄일 수 있습니다.
`never` | 작업을 수행하지 않습니다. 성능 기본 설정을 `never`로 설정하면, CPU 사용량과 네트워크 트래픽을 줄일 수 있습니다.

아래의 표는 파일 관리자를 위한 성능 기본 설정에 대해 설명합니다. 가장 빠른 성능을 얻기 위해서는, 모든 설정의 값을 `never`로 변경하십시오.

기본 설정 | 설명
`show_icon_text` | 파일을 나타내는 아이콘 내에 텍스트 파일의 내용을 미리보기로 표시할 것인지 지정합니다. 텍스트 파일의 내용을 미리보기로 표시하지 않으려면, 다음 명령을 실행합니다:
    gconftool-2 \
    --type string \
    --set /apps/nautilus/preferences/show_icon_text never
또는 다음과 같은 방법으로 설정할 수도 있습니다: 파일 관리자 창에서 편집기본 설정을 선택하고, 미리보기를 선택합니다. 아이콘 안에 텍스트 보기 기본 설정에 대한 옵션을 선택합니다.
`show_directory_item_counts` | 폴더 내의 항목의 수를 표시할 것인지 지정합니다. 폴더 내의 항목의 수를 표시하지 않으려면, 다음 명령을 실행합니다:
    gconftool-2 \
    --type string \
    --set /apps/nautilus/preferences/show_directory_item_counts never
또는 다음과 같은 방법으로 설정할 수도 있습니다: 파일 관리자 창에서 편집기본 설정을 선택하고, 미리보기를 선택합니다. 항목 개수 보기 기본 설정에 대한 옵션을 선택합니다.
`show_image_thumbnails` | 이미지 파일의 썸네일(미리보기)를 보여줄 것인지 지정합니다. 썸네일을 보여주지 않으려면, 다음 명령을 실행합니다:
    gconftool-2 \
    --type string \
    --set /apps/nautilus/preferences/show_image_thumbnails never
또는 다음과 같은 방법으로 설정할 수도 있습니다: 파일 관리자 창에서 편집기본 설정을 선택하고, 미리보기를 선택합니다. 썸네일 보기 기본 설정에 대한 옵션을 선택합니다.
`preview_sound` | 사운드 파일의 내용을 미리보기로 표시할 것인지 지정합니다. 사운드 파일의 미리보기를 표시하지 않으려면, 다음 명령을 실행합니다:
    gconftool-2 \
    --type string \
    --set /apps/nautilus/preferences/preview_sound never
또는 다음과 같은 방법으로 설정할 수도 있습니다: 파일 관리자 창에서 편집기본 설정을 선택하고, 미리보기를 선택합니다. 사운드 파일 미리 보기 기본 설정에 대한 옵션을 선택합니다.

##### 가장자리 창, 도구 모음, 위치 표시줄 표시하지 않기

파일 관리자는 가장자리 창과 도구 모음을 표시하지 않도록 끌 수 있는 기본 설정을 포함합니다. 파일 관리자의 성능을 향상시키려면, 가장자리 창과 도구 모음을 꺼두는 것이 좋습니다.

가장자리 창을 끄려면, 다음 명령을 실행합니다:

    gconftool-2 \
    --type bool \
    --set /apps/nautilus/preferences/start_with_sidebar false

도구 모음을 끄려면, 다음 명령을 실행합니다:

    gconftool-2 \
    --type bool \
    --set /apps/nautilus/preferences/start_with_toolbar false

위치 표시줄도 꺼둘 수 있습니다. 필요한 경우, 사용자는 Ctrl L 키보드 단축키를 눌러 위치 표시줄을 표시할 수 있습니다.

위치 표시줄을 끄려면, 다음 명령을 실행합니다:

    gconftool-2 \
    --type bool \
    --set /apps/nautilus/preferences/start_with_location_bar false

##### 데스크탑 끄기

파일 관리자는 사용자가 노틸러스를 이용하여 데스크탑을 관리할 수 있도록 하는 기본 설정을 포함하고 있습니다. 여러분은 성능을 향상시키기 위해 데스크탑을 이용하지 않게 할 수 있습니다. 하지만 데스크탑을 이용하지 않으면, 다음과 같은 작업을 수행할 수 없습니다:

- 파일 관리자를 이용하여 바탕화면의 배경 그림의 패턴이나 색상을 변경하는 일.

- 휴지통과 같은 데스크탑 객체를 이용하는 일. 데스크탑 객체들은 데스크탑에 표시되지 않습니다.

데스크탑을 끄려면, 다음 명령을 실행합니다:

    gconftool-2 \
    --type bool \
    --set /apps/nautilus/preferences/show_desktop false

### X 윈도우 시스템 네트워크 트래픽 줄이기

이 절에서는 그놈 데스크탑에서 X 윈도우 시스템 네트워크 트래픽을 줄이도록 설정할 수 있는 기본 설정들에 대해 설명합니다.

#### 네트워크 트래픽을 조금 사용하는 테마 옵션 사용하기

원격 디스플레이 프로토콜은 블럭 내의 모든 픽셀이 같은 색상인 경우 모든 픽셀 정보를 전송하지는 않습니다.

X 윈도우 시스템 네트워크 트래픽을 줄이려면, 단색으로 이루어진 창 가장자리 테마 옵션을 사용할 수 있습니다. 이를 위해서는 다음과 같은 창 가장자리 옵션 중의 하나를 이용하십시오:

- Atlanta

- Esco

테마 옵션을 변경하는 것에 대한 정보는 performance-3 부분을 보기 바랍니다.

#### 메뉴 내의 아이콘을 표시하지 않도록 하여 네트워크 트래픽 줄이기

메뉴 내의 어떤 항목들은 옆에 아이콘을 표시합니다. 만약 이 아이콘이 다른 파일 시스템 상에 존재한다면, 이 기능으로 인해 X 윈도우 시스템 네트워크 트래픽이 증가될 수 있습니다. 또한 이 기능은 패널이 원격 호스트 상에 표시되는 경우 X 윈도우 시스템 네트워크 트래픽을 증가시킬 수도 있습니다.

이 기능을 끄기위한 자세한 정보는 performance-2 부분을 보기 바랍니다.

### 색 사용량을 줄이고 화질을 개선하기

최근의 많은 컴퓨터 시스템들은 16,777,216가지 색상을 이용하는 24비트 컬러를 지원합니다. 하지만 많은 사용자들은 아직도 256가지 색상을 이용하는 8비트 컬러를 지원하는 시스템을 사용하고 있습니다.

그놈 데스크탑은 웹 호환 (websafe) 색상 팔레트를 사용합니다. 이 팔레트는 8비트 컬러를 지원하는 시스템 상에서 잘 동작하도록 설계된 216가지 색상의 범용 팔레트입니다. 하지만 그놈 데스크탑 내의 몇몇 구성요소들은 24비트 컬러를 지원하는 시스템 용으로 설계되었습니다.

8비트 컬러를 지원하는 시스템에서는 다음과 같은 문제점이 발생할 수 있습니다:

- 창, 아이콘, 배경 그림 등이 매끄럽지 않게 보일 수 있습니다. 많은 수의 테마, 배경 이미지, 아이콘들은 웹 호환 색상 팔레트에 속하지 않은 색상을 사용합니다. 팔레트에 속하지 않은 색상들은 가장 비슷한 색이나 디더링된 근사값으로 바뀌게 됩니다. 이렇게 색상을 변환하는 과정에서 이미지가 매끄럽지 않게 보이는 것입니다.

- 웹 호환 색상 팔레트를 사용하지 않는 프로그램들은 더 적은 색상을 이용합니다. 이 과정에서 색상 오류가 나타날 수 있으며, 어떤 색상들은 프로그램의 사용자 인터페이스 상에 나타나지 않을 수도 있습니다. 어떤 프로그램들은 색상을 이용할 수 없는 경우에 충돌을 일으키기도 합니다.

- 웹 호환 색상 팔레트를 이용하는 프로그램과 이를 이용하지 않는 프로그램 사이를 전환하는 경우에 색상이 깜빡이게 될 수 있습니다. 웹 호환 색상 팔레트를 이용하지 않는 프로그램들은 자체적인 색상표를 이용하고 있을 수도 있습니다. 이렇게 자체 색상표를 사용할 때 다른 구성요소들이 색상을 잃게될 수 있으며, 이들은 볼 수 없게 됩니다.

아래의 절들은 8비트 컬러를 지원하는 시스템에서 그놈 데스크탑의 모양새를 최적화하는 방법에 대해 설명합니다.

#### 웹 호환 색상 팔레트를 사용하는 테마 옵션 이용하기

Bright와 Esco와 같은 몇몇 창 가장자리 테마 옵션들은 웹 호환 색상 팔레트에 있는 색상들을 사용합니다. Bright와 Esco 테마 옵션은 8비트 컬러 디스플레이 상에서 다른 창 가장자리 옵션들처럼 거칠게 보이지 않습니다. 8비트 비주얼 모드에서 최적의 효과를 보기 위해서는 Bright 혹은 Esco 옵션을 사용하십시오.

테마 옵션을 변경하는 것에 대한 정보는 performance-3 부분을 보기 바랍니다.

#### 메뉴내의 아이콘을 표시하지 않도록 하여 색 사용량 줄이기

메뉴 내의 어떤 항목들은 아이콘을 표시합니다. 만약 아이콘이 웹 호환 색상 팔레트에 속하지 않은 색상을 포함하고 있다면, 이 기능은 사용된 색상의 개수를 증가시킬 수 있습니다.

이 기능을 끄기위한 자세한 정보는 performance-2 부분을 보기 바랍니다.

#### 스플래시 스크린을 사용하지 않도록 하여 색 사용량 줄이기

그놈 데스크탑과 그 응용 프로그램이 더 많은 색상을 이용할 수 있도록 스플래시 스크린을 끌 수 있습니다.

스플래시 스크린을 끄는 방법은 performance-6 부분을 참조하기 바랍니다.

#### 바탕화면을 단색으로 설정하여 색 사용량 줄이기

데스크탑 바탕 화면을 단색으로 채우면 그놈 데스크탑에서 사용되는 색상의 수를 줄일 수 있습니다.

바탕 화면을 단색으로 설정하려면 다음 명령을 실행합니다:

    gconftool-2 \
    --type string \
    --set /desktop/gnome/background/picture_options none

    gconftool-2 \
    --type string \
    --set /desktop/gnome/background/color_shading_type solid

    gconftool-2 \
    --type string \
    --set /desktop/gnome/background/primary_color #16진수-색상

또 다른 방법으로, 사용자는 바탕 화면 설정 도구를 이용하여 바탕 화면을 단색으로 설정할 수 있습니다.

## 그놈 데스크탑 기능 사용하지 않기

이 장에서는 그놈 데스크탑의 특정 기능들을 사용하지 않도록 설정하는 방법에 대해 설명합니다.

### 그놈 데스크탑 기능 사용하지 않기 개요

그놈 데스크탑은 특정 기능에 접근할 수 없도록 제한하는 기능을 포함하고 있습니다. 이 기능은 사용자가 컴퓨터 상에서 수행할 수 있는 동작을 제한하고 싶은 경우와 같은 여러 상황에서 유용하게 사용됩니다. 예를 들어, 전시회에서 공용으로 사용되는 컴퓨터에서 명령행에서 수행되는 연산을 금지하고 싶을 수도 있습니다. 이러한 기능은 잠금 (lockdown) 기능이라고도 부릅니다.

이렇게 특정 기능을 제한하려면 GConf 키를 설정합니다. GConf 키를 설정하는 방법에 대해서는, gconf-0 부분을 참조하기 바랍니다. 또한 사용자 설정 소스 내의 GConf 키를 설정하려면 설정 편집기 프로그램을 사용할 수도 있습니다. 설정 편집기 프로그램에 대한 자세한 정보는 GConf 편집기 설명서를 보기 바랍니다.

### 수동으로 잠금 기능 설정하기

#### 화면 잠그기과 로그아웃 막기

화면 잠그기와 로그아웃 기능을 사용하지 않으려면 `/apps/panel/global/disable_lock_screen` 키와 `/apps/panel/global/disable_log_out` 키의 값을 `true`로 설정합니다.

화면 잠그기와 로그아웃 기능을 사용하지 못하도록 하면, 패널에서 다음과 같은 항목들이 사라집니다:

- 메인 메뉴 내의 화면 잠그기와 로그아웃`사용자 이름` 메뉴 항목.

- 패널에 추가동작 내의 잠그기와 로그아웃 메뉴 항목.

- 메뉴 모음 애플릿의 동작 메뉴 내의 화면 잠그기와 로그아웃 `사용자 이름` 메뉴 항목.

또한, 패널 상의 모든 화면 잠그기와 로그아웃 버튼들도 비활성화 됩니다.

#### 명령행 기능 사용하지 않기

못령행에서 실행되는 작업을 사용하지 않으려면, `/desktop/gnome/lockdown/disable_command_line` 키의 값을 `true`로 설정합니다.

명령행 기능을 사용하지 못하도록 하면, 사용자 인터페이스에 다음과 같은 변화가 일어납니다:

- 다음 메뉴들에서 프로그램 실행 메뉴 항목이 사라집니다:

  - 메인 메뉴

  - 패널에 추가 메뉴 내의 동작 하위 메뉴

  - 메뉴 모음 애플릿 내의 동작 메뉴

- 패널 상의 모든 실행 버튼들이 비활성화 됩니다.

명령행 기능을 사용하지 않으려면, 터미널 프로그램을 실행하는 메뉴 항목들도 없애야 합니다. 예를 들어, 메뉴 내에서 다음과 같은 명령들을 포함하는 항목들이 삭제해야 할 것입니다:

- `/usr/bin/gnome-terminal` 프로그램을 실행하는 그놈 터미널

- `/usr/bin/xterm`

- `/usr/bin/setterm`

이 항목들은 다음과 같은 메뉴들에서 삭제됩니다:

- 메인 메뉴

- 패널에 추가 메뉴에서 실행

명령행 기능을 막으려면, 명령행 애플릿도 사용하지 못하도록 해야 합니다. 명령행 애플릿을 사용하지 못하게 하려면 `/apps/panel/global/disabled_applets` 키에 애플릿을 추가합니다. 명령행 애플릿을 사용하지 않도록 하면, 메인 메뉴와 패널에 추가도구 메뉴에서 명령행 애플릿이 사라집니다.

#### 패널 설정 사용하지 않기

패널 설정을 사용하지 않으려면, `/apps/panel/global/locked_down` 키의 값을 `true`로 설정합니다.

패널 설정을 사용하지 못하도록 하면, 사용자 인터페이스에 다음과 같은 변화가 일어납니다:

- 패널 팝업 메뉴와 서랍 팝업 메뉴에서 다음과 같은 항목들이 사라집니다:

  - 패널에 추가

  - 이 패널 지우기

  - 속성

  - 새 패널

- 실행 아이콘 팝업 메뉴가 비활성화 됩니다.

- 애플릿 팝업 메뉴에서 다음 항목들이 사라집니다:

  - 패널에서 지우기

  - 패널에 잠그기

  - 옮기기

- 메인 메뉴 팝업 메뉴가 비활성화 됩니다.

- 실행 아이콘 드래그 기능을 사용할 수 없으므로, 사용자들이 패널에서 혹은 패널로 실행 아이콘을 드래그할 수 없습니다.

- 패널 드래그 기능을 사용할 수 없으므로, 사용자들이 패널을 다른 위치로 드래그할 수 없습니다.

### 잠금 편집기

그놈 2.14에서부터는 데스크탑 기능을 사용하지 않도록 설정하는 작업을 간편하게 하기 위해 Pessulus라고 하는 그래픽 잠금 편집기가 포함되었습니다.

#### 시작하기

잠금 편집기를 실행하려면:

- Click the System Administration Lockdown Editor

- 터미널 창에서 `pessulus`를 실행합니다.

이제 여러 개의 탭이 있는 창이 보일 것입니다. 각각의 탭은 설정할 수 있는 데스크탑 기능들의 분류를 나타냅니다. 다음 절에서, 각각의 분류에 대해서 살펴보고 기능을 잠글 수 있는 각 기능들에 대해 간단히 설명할 것입니다.

#### 기능 잠그기

특정한 설정을 금지하려면 해당 설정의 설명 옆쪽에 있는 체크 박스를 선택하십시오. 대부분의 설정은 즉시 적용되지만, 어떤 것들은 설정을 적용하기 위해 프로그램을 다시 실행해야 할 수도 있습니다.

pessulus 프로그램이 실행되면 GConf 필수 설정 소스와 연결을 시도합니다. 이 설정 소스에 대한 주소는 `xml:merged:`$prefix`/etc/gconf/gconf.xml.mandatory`입니다. 만약 pessulus 프로그램을 실행하는 사용자가 이 설정 소스에 접근한다면, 각 설정에 대한 체크 박스 옆에 자물쇠 아이콘이 표시될 것입니다. 자물쇠 아이콘을 클릭하면 해당 설정이 필수 설정인지 아닌지 바뀌게(toggle) 됩니다. 만약 해당 설정이 필수 설정이라면 일반 사용자들은 이 설정의 값을 변경하거나 다른 값으로 대체할 수 없습니다. 만약 pessulus 프로그램을 실행하는 사용자가 이 설정 소스에 접근하지 않는다면 자물쇠 아이콘은 표시되지 않을 것입니다. 이 경우 금지된 모든 설정은 사용자의 기본 설정 소스에 저장되며, gconf-editor 혹은 gconftool-2와 같은 다른 도구들을 이용하여 나중에 수정할 수 있습니다. GConf 및 필수 설정 소스에 대한 자세한 정보는 gconf-26 부분을 살펴보기 바랍니다.

다음 부분에서는 각 분류에서 금지할 수 있는 설정들에 대해 간략히 설명할 것입니다.

여러분이 설치한 프로그램에 따라서, 이 절에서 설명하는 분류보다 더 적게 나타날 수도 있습니다.

##### 일반

명령행 사용 금지

- 사용자가 터미널에 접근하거나 실행할 명령행을 입력하는 것을 금지합니다. 예를 들어 이 설정을 적용하면 패널의 "프로그램 실행" 대화상자가 비활성화 됩니다.

인쇄 사용 금지

- 사용자가 인쇄하는 것을 금지합니다. 예를 들어 이 설정을 적용하면 모든 프로그램 내의 "인쇄" 대화상자가 비활성화 됩니다.

인쇄 설정 사용 금지

- 사용자가 인쇄 설정을 변경하는 것을 금지합니다. 예를 들어 이 설정을 적용하면 모든 프로그램 내의 "인쇄 설정" 대화상자가 비활성화 됩니다.

디스크 저장 사용 금지

- 사용자가 파일을 디스크에 저장하는 것을 금지합니다. 예를 들어 이 설정을 적용하면 모든 프로그램 내의 "다른 이름으로 저장" 대화상자가 비활성화 됩니다.

##### 패널

패널 잠그기

- 이 설정이 적용되면 어떠한 패널 설정의 변경도 허용되지 않을 것입니다. 하지만 각 애플릿들은 별도의 잠금이 필요할 수도 있습니다. 이 설정을 적용하려면 패널을 다시 시작해야 합니다.

강제 종료 사용 금지

- 이 설정이 적용되면 사용자가 패널의 강제 종료 버튼에 접근할 수 없도록 하여 프로그램을 강제로 끝내지 못하도록 할 것입니다.

화면 잠금 사용 금지

- 이 설정이 적용되면 사용자가 패널의 화면 잠금 메뉴 항목에 접근할 수 없도록 하여 화면 잠금 기능을 사용하지 못하도록 할 것입니다.

로그아웃 사용 금지

- 이 설정이 적용되면 사용자가 패널의 로그아웃 메뉴 항목에 접근할 수 없도록 하여 로그아웃 하지 못하도록 할 것입니다.

##### Epiphany 웹 브라우저

끝내기 사용 금지

- 사용자가 Epiphany를 종료시킬 수 없도록 합니다.

임의 URL 사용 금지

- 사용자가 Epiphany 내에 URL을 직접 입력하지 못하도록 합니다.

책갈피 편집 금지

- 사용자가 책갈피를 추가하거나 수정할 수 없도록 합니다.

기록 사용 금지

- 뒤로 및 앞으로 이동 기능을 금지하여 모든 기록 정보를 이용하지 못하도록 하고, 기록 대화상자를 비활성화 시키고 가장 많은 사용된 책갈피 목록도 숨깁니다.

자바스크립트 chrome 사용 금지

- window chrome 상의 자바스크립트 제어를 금지합니다.

도구 모음 편집 금지

- 사용자가 도구 모음을 변경하지 못하도록 합니다.

강제 전체 화면

- Epiphany를 전체 화면 모드에서 실행하도록 잠급니다.

메뉴 모음 숨기기

- 기본적으로 메뉴 모음을 숨깁니다. 하지만 F10 키를 이용하면 메뉴 모음을 이용할 수 있습니다.

안전하지 않은 프로토콜 사용 금지

- 안전하지 않은 프로토콜에서 컨텐츠를 로드하지 못하도록 합니다. 안전한 프로토콜은 http와 https 입니다.

##### 그놈 화면 보호기

활성화 되면 잠그기

- 이 설정이 적용되면 화면 보호기가 실행될 때 화면을 잠급니다.

Allow log out

- 이 설정이 적용되면 일정 시간 후에 잠금 해제 대화상장 내에 로그아웃 옵션이 추가됩니다. 이 시간은 "logout_delay" 키로 지정할 수 있습니다.

사용자 전환 허용

- 이 설정이 적용되면 잠금 해제 대화상자 내에 다른 사용자 계정으로 바꿀 수 있는 옵션이 추가됩니다.

## 숨겨진 디렉토리

이 부분에서는 그놈 데스크탑에서 사용자들의 홈 디렉토리에 추가되는 숨겨진 디렉토리들에 대해 설명합니다.

숨겨진 디렉토리는 이름의 첫 부분이 마침표(.)로 시작하는 디렉토리입니다. appendixa-TBL-2에서는 그놈 데스크탑에서 사용자들의 홈 디렉토리에 추가되는 숨겨진 디렉토리들에 대해 설명합니다.

## 사용자 홈 디렉토리 내의 숨겨진 디렉토리들

디렉토리 | 설명
`.config` | 이 디렉토리는 `XDG_CONFIG_HOME` 환경 변수가 설정되지 않은 경우의 기본 위치입니다. 사용자가 정의한 메뉴들은 `menus/applications.menu` 파일에 생성될 것입니다.
`.fonts` | 특정 사용자만 이용하는 글꼴을 포함합니다. 만약 어떤 사용자가 노틸러스 내에서 `fonts:///` URI에 글꼴을 끌어다 놓는다면, 해당 글꼴은 이 위치에 복사됩니다.
`.esd_auth` | 그놈 사운드 대몬에서 사용하는 인증 쿠키를 포함합니다. 그놈 사운드 대몬은 Enlightened Sound Daemon (ESD)입니다. 주의: 이것은 디렉토리가 아니라 파일입니다.
`.gconf` | 해당 사용자에게 적용되는 GConf 설정 소스를 포함합니다. 사용자들이 기본 설정을 변경하면 새로운 설정 정보는 이 위치에 추가됩니다.
`.gconfd` | 다음과 같은 GConf 대몬의 세부 내용들을 포함합니다: 설정 정보. IOR (Interoperable Object Reference)을 통해 참조하는 객체의 잠금 정보. IOR을 통해 참조하는 객체의 상태 정보.
`.gnome` | GConf 저장소 내에 보관되지 않는 사용자별 프로그램 데이터들을 포함합니다. 주의: 이 디렉토리는 오직 그놈 1.x 버전의 프로그램들만 사용하고 있으며, 더 이상은 사용되지 않을 것입니다.
`.gnome2` | GConf 저장소 내에 보관되지 않는 사용자별 프로그램 데이터들을 포함합니다. 예를 들면, 이 디렉토리는 다음과 같은 내용들을 포함합니다: 키보드 단축키 정보. 창 위치 정보. 패널 실행 아이콘들을 위한 데스크탑 엔트리 파일. 이 디렉토리는 프로그램별로 고유한 데이터들을 저장하기 위한 하위 디렉토리들을 포함하고 있을 수도 있습니다.
`.gnome2-private` | 이 디렉토리는 무시합니다. 이 문서를 발표하는 현재, 이 디렉토리는 아무런 기능도 하지 않습니다.
`.local/share` | 이 디렉토리는 `XDG_DATA_HOME` 환경 변수가 설정되지 않은 경우의 기본 위치입니다 사용자가 정의한 데스크탑 엔트리들은 `applications` 하위 디렉토리 내에 만들어 질 것입니다. 사용자가 정의한 MIME 형식들은 `mime/packages/Overrides.xml` 파일 내에 만들어 질 것입니다.
`.metacity` | Metacity 창 관리자가 사용하는 세션 데이터를 포함합니다.
`.nautilus` | 해당 사용자에 해당하는 파일 관리자 데이터를 포함합니다. 예를 들면, 이 디렉토리에는 다음과 같은 정보들을 포함합니다: 사용자가 작업 중인 디렉토리에 대한 메타 데이터. 사용자가 추가한 노틸러스 엠블렘(emblem). 노틸러스 데스크탑 이미지.
`.themes` | 사용자가 추가한 컨트롤 테마 옵션, 창 가장자리 테마 옵션, 아이콘 테마 옵션들을 포함합니다. 사용자들은 테마 설정 도구를 이용해 테마를 추가할 수 있습니다.
`.thumbnails` | 특정 사용자를 위한 이미지 썸네일들을 포함합니다. 이러한 이미지 썸네일들은 파일 관리자에서 사용합니다. 파일 관리자는 사용자가 썸네일 이미지의 생성을 중지하도록 선택할 수 있는 기본 설정을 포함합니다.

## SMB 프린터 설정 시의 보안 문제

이 부분에서는 Windows 네트워크 공유를 이용하는 프린터 설정과 관련된 보안 주의 사항에 대해 설명합니다.

Windows 네트워크 공유는 삼바(Samba) 혹은 SMB라고 불립니다. SMB 공유를 제공하는 프린터를 설정할 때는 인쇄 작업줄에 대한 사용자 이름과 암호를 반드시 입력해야 합니다.

인쇄 작업줄에 대한 사용자 이름과 암호는 `/etc/cups/printers.conf` 파일 내에 암호화되지 않은 형태로 저장됩니다. 이 파일은 root 권한을 가진 사용자들에 읽기 전용의 접근을 허용합니다. 따라서 root 권한을 가진 어떠한 사용자들도 인쇄 작업줄에 대한 사용자 이름과 암호를 볼 수 있습니다.

가능한 한 보안 위험을 줄이기 위해, 인쇄 작업줄에 접근하기 위해 필요한 사용자 이름과 암호는 다른 곳에서 사용하지 않는 것으로 선택하기 바랍니다. 이를 통해 인증되지 않은 인쇄 작업줄을 이용한 보안의 위협을 막을 수 있습니다.

## 용어집

`.desktop` 파일
`.directory` 파일
`.omf` 파일
프로그램 레지스트리

프로그램 레지스트리는 프로그램을 등록하는 데스크탑 엔트리 파일들의 집합입니다. 그놈 데스크탑의 프로그램 레지스트리 위치는 `$XDG_DATA_DIRS:$XDG_DATA_HOME/applications/`입니다.

데스크탑 엔트리 파일

메뉴 내의 각 항목들에 대한 정보를 포함하는 데이터 파일입니다. 데스크탑 엔트리 파일은 메뉴 항목의 이름, 실행 명령, 아이콘 등의 세부 사항들을 지정합니다. 데스크탑 엔트리 파일의 확장자는 `.desktop`입니다.

디렉토리 엔트리 파일

메뉴에 대한 정보를 포함하는 데이터 파일입니다. 디렉토리 엔트리 파일은 메뉴의 이름, 풍선 도움말, 아이콘 등의 세부 사항들을 지정합니다. 디렉토리 엔트리 파일의 확장자는 `.directory`입니다.

GConf 설정 소스

GConf 저장소 내의 저장 위치를 말합니다. 예를 들면 다음과 같습니다: `xml:readonly:/etc/gconf/gconf.xml.defaults`.

GConf 설정 키

GConf 저장소 내의 특정 프로그램의 설정에 해당하는 요소입니다. 예를 들어 `/apps/gnome-session/options/show_splash_screen` 키는 Sessions 설정 도구 내의 로그인할 때 스플래시 화면 보기 옵션에 해당합니다.

GConf 경로 파일

소스를 찾을 순서에 따라 GConf 설정 소스의 목록을 저장하고 있는 파일입니다.

GConf 스키마

스키마 키와 스키마 객체를 합쳐 부르는 말입니다.

GConf 스키마 정의 파일

GConf 스키마 정의 파일은 특정 프로그램에 속한 키의 목록과 이들의 특성을 정의합니다. GConf 스키마는 스키마 정의 파일로부터 만들어 집니다. 스키마 정의 파일의 확장자는 `.schemas`입니다.

GConf 스키마 키

설정 키의 스키마 객체를 저장하는 키입니다. 예를 들어, `/schemas/desktop/gnome/interface/font_name`은 `/desktop/gnome/interface/font_name` 설정 키에 대한 스키마 키입니다.

GConf 스키마 객체

설정 키에 대한 정보를 포함하는 설정 소스 내의 요소입니다. 스키마 객체는 설정 키의 기본값, 설명 등과 같은 정보들을 포함합니다.

glob 패턴

glob 패턴은 `*` 혹은 `?` 등과 같은 특수 문자를 이용하여 파일 이름을 찾아보는 데 사용됩니다 .MIME 시스템은 파일 이름 및 때때로 파일 확장자를 이용하여 MIME 형식을 지정하기 위해 glob 패턴을 사용합니다.

IOR (Interoperable Object Reference)

IOR은 CORBA 객체에 대한 문자열 참조입니다. IOR은 객체를 제어하기 위해 메시지를 보낼 호스트 이름과 포트를 인코딩합니다. 또한 IOR은 객체를 판별하기 위한 객체 키도 포함하고 있습니다.

매직 규칙

매직(magic) 규칙은 파일의 MIME 형식을 찾기위해 파일의 시작 부분에 저장된 텍스트 혹은 바이너리 데이터를 정의합니다. 이 데이터를 살펴볼 오프셋도 매직 규칙 내에 정의되어 있습니다.

메뉴 정의 파일

메뉴 정의 파일은 그놈 메뉴 모음에 사용되는 메뉴의 계층 구조를 정의하는 파일입니다.

MIME

Multipurpose Internet Mail Extension.

MIME 소스 XML 파일

MIME 소스 XML 파일은 여러 종류의 파일 중에서 MIME 형식을 알아내기 위한 방법을 정의합니다. 이에 대해서는 다음과 같은 세 가지 방법이 있습니다. 이는 각각 파일 확장자를 이용하는 법 (glob 패턴), 매직 규칙을 이용하는 법, XML 이름공간을 이용하는 법입니다. MIME 소스 XML 파일은 `$XDG_DATA_DIRS:$XDG_DATA_HOME/mime/packages` 디렉토리 내에 위치하고 있습니다.

MIME 형식

MIME 형식은 파일의 형식을 판별합니다. MIME 형식은 프로그램이 해당 파일을 읽을 수 있도록 해 줍니다. 예를 들어, 이메일 프로그램은 PNG (Portable Networks Graphic) 파일이 첨부된 것을 인식하기 위해 `image/png` MIME 형식을 이용할 수 있습니다.

MIME 형식 데이터베이스

MIME 형식 데이터베이스는 데스크탑 환경에 MIME 형식을 등록하는 파일들의 모음입니다. MIME 형식 데이터베이스의 위치는 `$XDG_DATA_DIRS:$XDG_DATA_HOME/mime` 디렉토리입니다.

OMF 파일

OMF (Open Source Metadata Framework) 파일은 설명서에 대한 XML 파일과 연관된 파일입니다. OMF 파일은 도움말 브라우저에서 사용되는 설명서에 대한 정보를 포함하고 있습니다. OMF 파일의 확장자는 `.omf`입니다.

PAM

Pluggable Authentication Modules.

화면 보호기

화면 보호기는 화면을 사용하지 않을 때 화면에 다른 이미지를 표시해주는 프로그램입니다. 그놈 데스크탑의 화면 보호기 프로그램은 XScreenSaver입니다.

화면 보호기 디스플레이

화면 보호기 디스플레이는 화면을 사용하지 않을 때 사용자의 화면에 이미지를 표시해주는 프로그램입니다.

UDP

User Datagram Protocol.

URI (Uniform Resource Identifier)

URI는 파일 시스템 혹은 웹 상의 특정 위치를 나타내는 문자열입니다. 예를 들어 웹 페이지의 주소는 URI입니다.

웹 호환 색상 팔레트

웹 호환 색상 팔레트는 216 가지 색상의 범용 팔레트입니다. 웹 호환 색상 팔레트는 8비트 색상을 지원하는 시스템에서 색 사용량을 최적화하기 위해 설계되었습니다. 웹 호환 색상 팔레트는 Netscape 색상 팔레트 또는 Netscape 색상 큐브라고 불리기도 합니다.