試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

freedesktop.org準拠のデスクトップ環境における幾つかの日本語ディレクトリを端末シェルで扱いやすくする(方法1-方法3)

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

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

といった日本語の名前のディレクトリ群が自動的に作られるが、端末を使う人の中に「ディレクトリ名の指定の際に日本語を入力するのが面倒」と考える人がいるようだ。
そこで、日本語を入力せずに端末でこれらのディレクトリの名前を指定できるようにするための方法を幾つか扱う。

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

zshの補完の機能を適切に設定する(関連記事)と、コマンドや引数の入力中にTabキーを1回押した段階で候補が複数ある場合、更にTabキーを押すと候補一覧の中の項目からキーボードの矢印キーやCtrl+P/N/B/F,Tabといったキーでハイライト(反転表示)される項目を切り替えた後でキー入力を続けるかEnterを押すことで選択することができるようになる。そのため、日本語の文字が先頭にあっても日本語を入力せずにそのディレクトリを指定することはできる。ファイル名の先頭が日本語となっているファイルやディレクトリが他になければ、ホームディレクトリ内の候補一覧を後ろから見れば、探すのもそれほど面倒ではない。

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

広く知られている方法として、環境変数LANGを「C」としてxdg-user-dirs-gtk-updateを実行し、「Update Names」を押すと、最初に挙げたディレクトリ群の英語名バージョンが作られてこれらが用いられるようになる(元に戻すには、環境変数LANGを指定せずに日本語ロケールのまま実行して同様に更新する)。

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

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

  • 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

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

(「freedesktop.org準拠のデスクトップ環境における幾つかの日本語ディレクトリを端末シェルで扱いやすくする(方法4)」に続く)

関連記事:

使用したバージョン:

  • zsh 4.3.17
  • xdg-user-dirs-gtk 0.9
  • xdg-user-dirs 0.14