Думаю, не меня одного раздражают такие именованные кириллицей подкаталоги в домашнем каталоге пользователя, как Загрузки, Документы и так далее (к тому же обычно называемые папками). Особенно неудобно добираться до их содержимого в командной строке вообще и в голой консоли в особенности: каюсь, со времён внедрения Unicode я не очень твёрдо помню умолчальный переключатель латиница/кириллица в текстовом режиме (в скобках для памяти — правые Alt+Shift). Не говоря уж о том, что при каких-либо сбоях русификации вместо русских имён можно созерцать набор вопросиков (в Иксах) или квадратиков.

До недавнего времени я с этими подкаталогами боролся радикально: так как в моём $HOME не содержится ничего, кроме dot-файлов (все данные и прочая медия хранится на отдельных файловых системах), я их просто убивал. Вопреки распространённому мнению, они не восстанавливаются при перезапуске сеанса, если только не прописаны в конфигах каких-либо приложений (например, как место размещения скачиваемых файлов в FireFox’е). В результате у меня в домашнем каталоге оставался только подкаталог Рабочий стол, к которому я почти никогда не обращаюсь, тем более из командной строки.

Но давеча, после обзаведения Ноутбучкой, я отложил организацию «внешних» файловых систем под данные до завершения экспериментов. Но данные, тем не менее, в их ходе появлялись. Да и музыку временами послушать хотелось, или там кино посмотреть. И я решил окучить штатные «папки» домашнего каталога. Разумеется, предварительно трансформировав их имена в нормальную латиницу. За пару минут поиска выяснилось, что многочисленные сетевые инструкции на эту тему представляют собой переразмещение одного и того же материала (видимо, первоисточник здесь), касаются Kubuntu/Ubuntu и сводятся к совету отредактировать должным образом файл $HOME/.config/user-dirs.dirs.

У меня в openSUSE на этот файл не было и намёка, поэтому я углубился в дебри вотчин Гоши и Яши. В коих обнаружилось, что за имена подкаталогов в каталоге пользователя отвечает специальный стандарт, а язык их воспроизведения определяется текущей локалью. Заодно оказалось, что требуемый файл user-dirs.dirs можно сгенерировать командой

$ xdg-user-dirs-update

Я немедленно проделал эту операцию — и получил в каталоге $HOME/.config/, кроме user-dirs.dirs, ещё и user-dirs.locale. Последний содержал всего одну строку:

ru_RU

А первый имел следующий вид:

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/"
XDG_DOWNLOAD_DIR="$HOME/"
XDG_MUSIC_DIR="$HOME/"
XDG_PICTURES_DIR="$HOME/"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_TEMPLATES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/"

Ничтоже сумняшеся, я отредактировал этот файл, дописав в соответствующие строки значения Desktop, Documents и так далее, после чего перезапустил сеанс. И с удивлением обнаружил, что в отношении подкаталогов ничего не изменилось. А сам файл user-dirs.dirs вернулся в первозданное состояние:

XDG_DESKTOP_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/"
...

и так далее.

Замена в user-dirs.locale значения ru_RU на en_US ничего не дала. После этого я решил прочесть, наконец, руководство к xdg-user-dirs-update. В openSUSE соответствующей man-страницы не оказалось (как, судя по комментам на форумах, во многих других дистрибутивах). Но её можно отыскать в сети (например, как ни странно, здесь).

После прочтения инструкции, некоторых размышлений и пары экспериментов с опцией --dummy-output я дал команду

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

дабы сделать текущей локалью не русскую. И после перерегистрации в системе увидел вожделенные каталоги Documents, Downloads и прочие, в файле $HOME/.config/user-dirs.dirs — строки вида

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOCUMENTS_DIR="$HOME/Documents"
...

а в $HOME/.config/user-dirs.locale — значение C.

Теоретически рассуждая, всем этим положенным по стандарту каталогам можно было бы придать более осмысленные имена, но мне этим заниматься было уже лень.


К содержанию