「XDG ユーザーディレクトリ」の版間の差分
細 |
(TranslationStatus) |
||
(4人の利用者による、間の23版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category: |
+ | [[Category:Freedesktop.org]] |
− | [[en: |
+ | [[en:XDG user directories]] |
+ | [[pt:XDG user directories]] |
||
+ | [[ru:XDG user directories]] |
||
+ | [[zh-hans:XDG user directories]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|xdg-menu}} |
{{Related|xdg-menu}} |
||
− | {{Related| |
+ | {{Related|デフォルトアプリケーション}} |
+ | {{Related|XDG Base Directory サポート}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | ユーザーディレクトリとは {{ic|Documents}}, {{ic|Downloads}}, {{ic|Music}}, {{ic|Desktop}} などの {{ic|$HOME}} ディレクトリに配置されるユーザー共通のディレクトリのセットのことです。ファイルマネージャの中ではそれぞれアイコンが割り振られ、プログラムやアプリケーションによって参照されることがよくあります。{{pkg|xdg-user-dirs}} はこれらのディレクトリを自動で生成するプログラムです。詳細は [http://freedesktop.org/wiki/Software/xdg-user-dirs freedesktop.org] のウェブサイトを見て下さい。 |
||
+ | [https://www.freedesktop.org/wiki/Software/xdg-user-dirs/ freedesktop.org] より: |
||
− | {{Tip|{{ic|~/Desktop}} ディレクトリも自動で作成するため、このプログラムはファイルマネージャを使って [[Openbox|Openbox]] などの[[ウィンドウマネージャ]]のデスクトップを管理したいというユーザーにとって特に有用です。}} |
||
+ | :xdg-user-dirs はデスクトップフォルダや音楽フォルダのような、「よく知られた」ユーザーディレクトリを管理するためのツールです。また、ファイル名のローカライズ (すなわち翻訳) も行います。 |
||
+ | |||
+ | :仕組みとしては、{{man|1|xdg-user-dirs-update}} がログイン時の非常に早い段階で実行されます。このプログラムは設定ファイルとデフォルトのディレクトリのセットを読み込みます。このプログラムは設定ファイルと一連のデフォルトディレクトリを読み込み、ユーザーのホームディレクトリにこれらのディレクトリのローカライズ版を作成し、{{ic|$XDG_CONFIG_HOME/user-dirs.dirs}} ({{ic|XDG_CONFIG_HOME}} のデフォルトは {{ic|~/.config}}) にアプリケーションがこれらのディレクトリを見つけるために読める設定ファイルを設定します。 |
||
+ | |||
+ | ほとんどの[[ファイルマネージャ]]は、XDG ユーザーディレクトリを特別なアイコンで表示します。 |
||
== インストール == |
== インストール == |
||
+ | |||
− | [[公式リポジトリ]]から {{pkg|xdg-user-dirs}} パッケージを[[インストール]]してください。 |
||
+ | {{Pkg|xdg-user-dirs}} を[[インストール]]してください。 |
||
+ | |||
+ | {{Tip|一部の[[デスクトップ環境]]では、すでにインストールされているかもしれません (例: [[GNOME]])。}} |
||
== デフォルトディレクトリの作成 == |
== デフォルトディレクトリの作成 == |
||
− | + | 以下を実行することで、ローカライズされたデフォルトユーザディレクトリの完全なスイートを {{ic|$HOME}} ディレクトリ内に自動で作成することができます: |
|
$ xdg-user-dirs-update |
$ xdg-user-dirs-update |
||
− | {{Tip|英語のディレクトリを作成 |
+ | {{Tip|英語名のディレクトリを強制的に作成させるために、{{ic|1=LC_ALL=C xdg-user-dirs-update --force}} を使用することができます。}} |
− | コマンドを実行すると、以下も自動的に |
+ | このコマンドを実行すると、以下のことも自動的に行われます: |
− | * ローカルの {{ic|~/.config/user-dirs.dirs}} 設定ファイル: アカウント |
+ | * ローカルの {{ic|~/.config/user-dirs.dirs}} 設定ファイルの作成: これは、アカウント固有のホームディレクトリを探索し使用するためにアプリケーションによって使用されます。 |
− | * |
+ | * ローカルの {{ic|~/.config/user-dirs.locale}} 設定ファイルの作成: これは、使用中のロケールに合わせて言語を設定するために使用されます。 |
+ | |||
− | * ローカルの {{ic|~/.config/user-dirs.locale}} 設定ファイル: 使用しているロケールにあわせて言語を設定するのに使用。 |
||
+ | {{ic|xdg-user-dirs-update.service}} ユーザサービスもデフォルトでインストールされ有効化されます。このサービスは、ログインセッションの開始時に上記のコマンドを実行して、ディレクトリを最新に保ちます。 |
||
== カスタムディレクトリの作成 == |
== カスタムディレクトリの作成 == |
||
− | ローカルの {{ic|~/.config/user-dirs.dirs}} とグローバルの {{ic|/etc/xdg/user-dirs.defaults}} どちらの設定ファイルも次のような環境変数を使ってユーザーディレクトリを指定しています: {{ic|1=XDG_DIRNAME_DIR="$HOME/directory_name}} |
+ | ローカルの {{ic|~/.config/user-dirs.dirs}} とグローバルの {{ic|/etc/xdg/user-dirs.defaults}} どちらの設定ファイルも次のような環境変数を使ってユーザーディレクトリを指定しています: {{ic|1=XDG_DIRNAME_DIR="$HOME/directory_name"}}。設定ファイルのサンプルは以下のようになります (どれもテンプレートのディレクトリです): |
+ | {{hc|1=~/.config/user-dirs.dirs|2= |
||
− | XDG_DESKTOP_DIR="$HOME/Desktop" |
||
− | + | XDG_DESKTOP_DIR="$HOME/Desktop" |
|
− | + | XDG_DOCUMENTS_DIR="$HOME/Documents" |
|
− | + | XDG_DOWNLOAD_DIR="$HOME/Downloads" |
|
− | + | XDG_MUSIC_DIR="$HOME/Music" |
|
− | + | XDG_PICTURES_DIR="$HOME/Pictures" |
|
− | + | XDG_PUBLICSHARE_DIR="$HOME/Public" |
|
− | + | XDG_TEMPLATES_DIR="$HOME/Templates" |
|
+ | XDG_VIDEOS_DIR="$HOME/Videos" |
||
+ | }} |
||
{{pkg|xdg-user-dirs}} は、適当なユーザーディレクトリを記述しているローカルの設定ファイルを読み込むため、カスタムフォルダを指定することが可能です。例えば {{ic|~/.config/user-dirs.dirs}} の {{ic|XDG_DOWNLOAD_DIR}} 変数のカスタムフォルダを {{ic|1=$HOME/Internet}} にすれば、どのアプリケーションもこの変数でこのディレクトリを使用します。 |
{{pkg|xdg-user-dirs}} は、適当なユーザーディレクトリを記述しているローカルの設定ファイルを読み込むため、カスタムフォルダを指定することが可能です。例えば {{ic|~/.config/user-dirs.dirs}} の {{ic|XDG_DOWNLOAD_DIR}} 変数のカスタムフォルダを {{ic|1=$HOME/Internet}} にすれば、どのアプリケーションもこの変数でこのディレクトリを使用します。 |
||
− | {{Note|多くの設定ファイルと同じように、ローカル設定はグローバル設定を上書きします。新しいカスタムディレクトリ |
+ | {{Note|多くの設定ファイルと同じように、ローカル設定はグローバル設定を上書きします。また、新しいカスタムディレクトリは作成する必要があります。}} |
また、コマンドラインを使ってカスタムフォルダを指定することもできます。例えば以下のコマンドは上述のように設定ファイルを編集したのと同じになります: |
また、コマンドラインを使ってカスタムフォルダを指定することもできます。例えば以下のコマンドは上述のように設定ファイルを編集したのと同じになります: |
||
49行目: | 63行目: | ||
== 設定されているディレクトリを確認 == |
== 設定されているディレクトリを確認 == |
||
− | 一度設定されれば、{{pkg|xdg-user-dirs}} で |
+ | 一度設定されれば、{{pkg|xdg-user-dirs}} で任意のユーザディレクトリを表示することができます。例えば、以下のコマンドは {{ic|Templates}} ディレクトリの場所を表示します (もちろん、ローカル設定ファイル内の {{ic|XDG_TEMPLATES_DIR}} 変数の値と対応します): |
$ xdg-user-dir TEMPLATES |
$ xdg-user-dir TEMPLATES |
||
+ | |||
+ | {{Warning|検査されていない入力からの引数を {{ic|xdg-user-dir}} に渡すべきではありません。このコマンドは、如何なるサニティチェックも行わずに引数を {{ic|eval}} に渡すからです。以下のような行が実行されます: |
||
+ | |||
+ | eval echo \${XDG_${1}_DIR:-$HOME} |
||
+ | |||
+ | これはすなわち、{{ic|xdg-user-dir}} によって、サニタイズされていない入力からの任意コード実行が容易になってしまうことを意味します。この酷い実装が上流で修正されない限り、ハードコードされた引数や厳格に検査された引数だけを用いて {{ic|xdg-user-dir}} を使用するべきです。 |
||
+ | }} |
||
+ | |||
+ | {{TranslationStatus|XDG user directories|2023-07-09|780019}} |
2023年7月9日 (日) 07:07時点における版
freedesktop.org より:
- xdg-user-dirs はデスクトップフォルダや音楽フォルダのような、「よく知られた」ユーザーディレクトリを管理するためのツールです。また、ファイル名のローカライズ (すなわち翻訳) も行います。
- 仕組みとしては、xdg-user-dirs-update(1) がログイン時の非常に早い段階で実行されます。このプログラムは設定ファイルとデフォルトのディレクトリのセットを読み込みます。このプログラムは設定ファイルと一連のデフォルトディレクトリを読み込み、ユーザーのホームディレクトリにこれらのディレクトリのローカライズ版を作成し、
$XDG_CONFIG_HOME/user-dirs.dirs
(XDG_CONFIG_HOME
のデフォルトは~/.config
) にアプリケーションがこれらのディレクトリを見つけるために読める設定ファイルを設定します。
ほとんどのファイルマネージャは、XDG ユーザーディレクトリを特別なアイコンで表示します。
インストール
xdg-user-dirs をインストールしてください。
デフォルトディレクトリの作成
以下を実行することで、ローカライズされたデフォルトユーザディレクトリの完全なスイートを $HOME
ディレクトリ内に自動で作成することができます:
$ xdg-user-dirs-update
このコマンドを実行すると、以下のことも自動的に行われます:
- ローカルの
~/.config/user-dirs.dirs
設定ファイルの作成: これは、アカウント固有のホームディレクトリを探索し使用するためにアプリケーションによって使用されます。 - ローカルの
~/.config/user-dirs.locale
設定ファイルの作成: これは、使用中のロケールに合わせて言語を設定するために使用されます。
xdg-user-dirs-update.service
ユーザサービスもデフォルトでインストールされ有効化されます。このサービスは、ログインセッションの開始時に上記のコマンドを実行して、ディレクトリを最新に保ちます。
カスタムディレクトリの作成
ローカルの ~/.config/user-dirs.dirs
とグローバルの /etc/xdg/user-dirs.defaults
どちらの設定ファイルも次のような環境変数を使ってユーザーディレクトリを指定しています: XDG_DIRNAME_DIR="$HOME/directory_name"
。設定ファイルのサンプルは以下のようになります (どれもテンプレートのディレクトリです):
~/.config/user-dirs.dirs
XDG_DESKTOP_DIR="$HOME/Desktop" XDG_DOCUMENTS_DIR="$HOME/Documents" XDG_DOWNLOAD_DIR="$HOME/Downloads" XDG_MUSIC_DIR="$HOME/Music" XDG_PICTURES_DIR="$HOME/Pictures" XDG_PUBLICSHARE_DIR="$HOME/Public" XDG_TEMPLATES_DIR="$HOME/Templates" XDG_VIDEOS_DIR="$HOME/Videos"
xdg-user-dirs は、適当なユーザーディレクトリを記述しているローカルの設定ファイルを読み込むため、カスタムフォルダを指定することが可能です。例えば ~/.config/user-dirs.dirs
の XDG_DOWNLOAD_DIR
変数のカスタムフォルダを $HOME/Internet
にすれば、どのアプリケーションもこの変数でこのディレクトリを使用します。
また、コマンドラインを使ってカスタムフォルダを指定することもできます。例えば以下のコマンドは上述のように設定ファイルを編集したのと同じになります:
$ xdg-user-dirs-update --set DOWNLOAD ~/Internet
設定されているディレクトリを確認
一度設定されれば、xdg-user-dirs で任意のユーザディレクトリを表示することができます。例えば、以下のコマンドは Templates
ディレクトリの場所を表示します (もちろん、ローカル設定ファイル内の XDG_TEMPLATES_DIR
変数の値と対応します):
$ xdg-user-dir TEMPLATES