freedesktop.org準拠のGUI環境における特殊な日本語ディレクトリを端末から扱いやすくする

Last modified: 2021-09-15

日本語ロケールでは、freedesktop.org準拠のデスクトップ環境でホームディレクトリの下に

  • デスクトップ
  • ピクチャ
  • ビデオ
  • ダウンロード
  • テンプレート
  • 公開
  • ドキュメント
  • ミュージック

といった日本語の名前のディレクトリ群が自動的に作られるが、端末を使う人の中に “ディレクトリ名の指定の際に日本語を入力するのが面倒” と考える人がいるようだ。

そこで、日本語を入力せずに端末でこれらのディレクトリの名前を指定できるようにするための方法を幾つか扱う。

方法1:端末シェルにzshなどを使用する

zshの補完の機能を適切に設定すると、コマンドや引数の入力中にTabキーを1回押した段階で候補が複数ある場合、更にTabキーを押すと候補一覧の中の項目からキーボードの矢印キーやCtrl-P/N/B/F,Tabといったキーでハイライト(反転表示)される項目を切り替えた後でキー入力を続けるかEnterを押すことで選択することができるようになる。

そのため、日本語の文字が先頭にあっても日本語を入力せずにそのディレクトリを指定することはできる。

ファイル名の先頭が日本語となっているファイルやディレクトリが他になければ、ホームディレクトリ内の候補一覧を後ろから見れば、探すのもそれほど面倒ではない。

その後登場したfishというシェルでも同様に補完機能があり、操作も同様に行える。

方法2:英語ロケールにする

広く知られている方法として、環境変数LANGCとしてxdg-user-dirs-gtk-updateを実行し、“Update Names” を押すと、最初に挙げたディレクトリ群の英語名バージョンが作られてこれらが用いられるようになる。

$ LANG=C xdg-user-dirs-gtk-update

元に戻すには、環境変数LANGを指定せずに日本語ロケールのまま実行して同様に更新する。

xdg-user-dirs-gtk-updateコマンドは、Debian/Ubuntuではxdg-user-dirs-gtkパッケージに含まれる。

冒頭に書いたディレクトリは、同じ順番で下に並べると

  • Desktop
  • Pictures
  • Videos
  • Downloads
  • Templates
  • Public
  • Documents
  • Music

という名前になる。

個人的には、せっかくディレクトリ名が国際化されているのに英語にするというのには抵抗がある。

方法3:リンクを使用する

日本語名のディレクトリに対して英語名のリンクを作成することで、端末シェル内でディレクトリにアクセスしやすくできる。

下は英語ロケールにしたときの名前で日本語のディレクトリに対するシンボリックリンクを作成するシェルスクリプトとなる。

[任意]ファイル名:symlink-wellknowndirs.sh エンコーディング:UTF-8
#! /bin/sh
# -*- coding: utf-8 -*-

PATH=/bin:/usr/bin

cd

ln -s デスクトップ Desktop
ln -s ピクチャ Pictures
ln -s ビデオ Videos
ln -s ダウンロード Downloads
ln -s テンプレート Templates
ln -s 公開 Public
ln -s ドキュメント Documents
ln -s ミュージック Music

個人的には、同じ階層にあるディレクトリを別名(しかも名前の意味自体が同じ)で参照するためだけにリンクを作成するというところに抵抗がある。

方法4:カスタム設定

個人的には “方法1” だけでも問題はないのだが、ディレクトリ名の先頭が半角英数にできれば補完がしやすくなるのも確かなので、英語ロケールで使用される名前の後ろに日本語の名前を付けて

Desktop#デスクトップ

のような名前にして使用できればよいと考えた(ただ、人によって名前の付け方には好みがあるので、DT.机上,Pic_画像,Music@音楽,Vid-動画-eosなど、色々な表記の形がありうる)。

ディレクトリの設定ファイルについて

本記事で挙げている特殊なディレクトリ群の名前は

  • 環境変数XDG_CONFIG_HOMEが未定義の場合: [ホームディレクトリ]/.config/user-dirs.dirs
  • 環境変数XDG_CONFIG_HOMEが定義済みの場合: ${XDG_CONFIG_HOME}/user-dirs.dirs

のファイルに記述されている。

日本語ロケールの標準設定では

[引用]ファイル名:~/.config/user-dirs.dirsまたは${XDG_CONFIG_HOME}/user-dirs.dirsより エンコーディング:UTF-8
XDG_DESKTOP_DIR="$HOME/デスクトップ"
XDG_PICTURES_DIR="$HOME/ピクチャ"
XDG_VIDEOS_DIR="$HOME/ビデオ"
XDG_DOWNLOAD_DIR="$HOME/ダウンロード"
XDG_TEMPLATES_DIR="$HOME/テンプレート"
XDG_PUBLICSHARE_DIR="$HOME/公開"
XDG_DOCUMENTS_DIR="$HOME/ドキュメント"
XDG_MUSIC_DIR="$HOME/ミュージック"

という内容になっており、このファイルはxdg-user-dirs-updateというコマンドによって自動生成されている(xdg-user-dirs-gtk-updateを使用している場合も、ディレクトリ名を更新する際に呼び出される)。

このファイルの設定はグラフィカルログイン時の初期段階で読み込まれ、これに基づいてデスクトップなどのディレクトリが選択される。

このファイルを手動で編集することでこれらのディレクトリの場所を変更(初期設定とは別のディレクトリを特殊なディレクトリとして使用)することができる。記述したディレクトリは事前に用意しておき、変更前のディレクトリの内容をそのまま使用したい場合は古い名前の各ディレクトリの中身を新しいディレクトリに入れておく。

設定はファイル編集後に一度ログアウトして再ログインすると適用される(変更適用のために何かコマンドを実行したりする必要はない)。

user-dirs.dirsの例

下はホームディレクトリの下の階層の

  • Desktop#デスクトップ
  • Pictures#ピクチャ
  • Videos#ビデオ
  • Downloads#ダウンロード
  • Templates#テンプレート
  • Public#公開
  • Documents#ドキュメント
  • Music#ミュージック

というディレクトリ群を使用するための設定となる。

ファイル名:~/.config/user-dirs.dirsまたは${XDG_CONFIG_HOME}/user-dirs.dirs
XDG_DESKTOP_DIR="$HOME/Desktop#デスクトップ"
XDG_PICTURES_DIR="$HOME/Pictures#ピクチャ"
XDG_VIDEOS_DIR="$HOME/Videos#ビデオ"
XDG_DOWNLOAD_DIR="$HOME/Downloads#ダウンロード"
XDG_TEMPLATES_DIR="$HOME/Templates#テンプレート"
XDG_PUBLICSHARE_DIR="$HOME/Public#公開"
XDG_DOCUMENTS_DIR="$HOME/Documents#ドキュメント"
XDG_MUSIC_DIR="$HOME/Music#ミュージック"

この例では全てのディレクトリがホームディレクトリの下の階層となっているが、絶対パスで別のディレクトリを指定することでホームディレクトリの下以外にあるディレクトリを用いるようにもできる。

GTK+アプリケーションのブックマーク内の項目の更新について

GTK+アプリケーションのファイル選択ダイアログでは、はじめから

  • ドキュメント
  • ミュージック
  • ピクチャ
  • ビデオ
  • ダウンロード

といった項目がブックマークとして含まれており、ロケールが変化したときにxdg-user-dirs-gtk-updateを実行してディレクトリ名を更新した場合にはこれらの項目も更新されるが、user-dirs.dirsを手動で編集した場合はこの更新作業([ホームディレクトリ]/.gtk-bookmarksの編集)を手動で行うか、一時的に[ホームディレクトリ]/.gtk-bookmarksを退避(名前変更や移動)後にxdg-user-dirs-gtk-updateを実行して再作成された[ホームディレクトリ]/.gtk-bookmarksに含まれるブックマーク項目と退避ファイルの内容を統合する形で適用することになる(特殊ディレクトリ群の古い項目群は除く)。

xdg-user-dirs-gtk-updateを実行する場合は、user-dirs.dirsに記述したディレクトリ群を事前に作成しておく。

今回[ホームディレクトリ]/.gtk-bookmarksを退避後にxdg-user-dirs-gtk-updateを実行したところ、下の5行の内容の[ホームディレクトリ]/.gtk-bookmarksが作成されたので、退避ファイルの内容をこの後ろに付けることにした。

[一部]ファイル名:~/.gtk-bookmarks
file:///home/[ユーザ名]/Documents%23%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88
file:///home/[ユーザ名]/Music%23%E3%83%9F%E3%83%A5%E3%83%BC%E3%82%B8%E3%83%83%E3%82%AF
file:///home/[ユーザ名]/Pictures%23%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3
file:///home/[ユーザ名]/Videos%23%E3%83%93%E3%83%87%E3%82%AA
file:///home/[ユーザ名]/Downloads%23%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89
(古い~/.gtk-bookmarksの内容の内、上のディレクトリ群以外の項目をこの行以下に貼り付ける)

ただ、これだけではブックマーク項目の表示文字数が長くなるため

[一部]ファイル名:~/.gtk-bookmarks エンコーディング:UTF-8
file:///home/[ユーザ名]/Documents%23%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88 ドキュメント
file:///home/[ユーザ名]/Music%23%E3%83%9F%E3%83%A5%E3%83%BC%E3%82%B8%E3%83%83%E3%82%AF ミュージック
file:///home/[ユーザ名]/Pictures%23%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3 ピクチャ
file:///home/[ユーザ名]/Videos%23%E3%83%93%E3%83%87%E3%82%AA ビデオ
file:///home/[ユーザ名]/Downloads%23%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89 ダウンロード
(古い~/.gtk-bookmarksの内容の内、上のディレクトリ群以外の項目をこの行以下に貼り付ける)

上のように表示名を指定するようにした。

ただ、このように表示名を付けても、GIMPのファイル選択ダイアログやThunarなどのGUIファイルマネージャのように、ディレクトリ名がそのまま表示される箇所はソフトウェアによって出ることがある。

gimp-2.6.12-filechooser

画像はGIMPのファイル選択ダイアログの左側のブックマーク表示部(“ドキュメント” から “ダウンロード”)とその上の “ピクチャ” と “ドキュメント” の生ディレクトリ名が表示されている項目。アイコンテーマは “elementary” 。

なお、[ホームディレクトリ]/.gtk-bookmarksの内容はバージョン2系のGTK+でもバージョン3系のGTK+でも同じように扱われる。

関連:特殊なディレクトリのGUIファイルマネージャ内のアイコンについて

Nautilus,Thunar

GNOMEのファイルマネージャNautilusやXfce4のファイルマネージャThunarでは、user-dirs.dirsを手動で編集した場合でも、本記事で挙げた特殊なディレクトリ群はアイコンテーマ内の専用アイコンで表示される(左のサイドバー/サイドペインでも同様)。

thunar-1.2.3-customdir-elementary

画像はThunarでの表示。アイコンテーマは “elementary” 。

アイコンテーマ内に該当する画像ファイル([/usr/share/icons/ もしくは [ホームディレクトリ]/.icons]/[テーマ名]/places/[サイズもしくはscalable]/内の “folder-” で始まる幾つかのファイル群とデスクトップアイコンの “user-desktop” のファイル)がない場合は別のアイコンテーマから代替表示され、例えば “Tango” テーマを使用するように設定すると、幾つかのディレクトリのアイコンが別のテーマのものになる。

PCManFM

LXDEのファイルマネージャPCManFMでは、バージョン0.9.10時点では上記のディレクトリ群はアイコンテーマ内の専用アイコンで表示されることはない(基本的に通常のディレクトリのアイコンとなる)。

Dolphin

KDE Software CompilationのファイルマネージャDolphinでは、各ディレクトリのコンテキストメニューから “プロパティ” を選択して “一般” タブの左上にあるアイコンのボタンを押して一覧からアイコンを選択することで、任意のアイコンが指定できる(特殊なディレクトリ群に適したものは “システムアイコン” の “場所” の一覧にある)。

この設定は各ディレクトリ内の.directoryという隠しファイルに保存される。

上のようにアイコンを指定するとディレクトリは下のように表示される。

dolphin-2.0-customdir

  • 使用したバージョン
    • zsh 4.3.17
    • xdg-user-dirs-gtk 0.9
    • xdg-user-dirs 0.14
    • Nautilus 3.4.2
    • Thunar 1.2.3
    • PCManFM 0.9.10
    • Dolphin 2.0
    • GIMP 2.6.12