This commit is contained in:
2025-12-06 12:06:14 -06:00
parent 0a37110aca
commit afa2ca58fa

View File

@@ -18,17 +18,81 @@ Personal dotfiles and configuration guide.
Above you should see quick links for downloading and setup. Below I will discuss
how I approach setting up my $HOME directory. We will be following [Free Desktop Specifications](https://www.freedesktop.org/wiki/Specifications/).
One of the tools we need to know about is `xdg-user-dirs`.
One of the tools we need to know about is `xdg-user-dirs`.
Make sure this is installed with `sudo apt install xdg-user-dirs`
xdg-user-dirs is a tool to help manage "well known" user directories like the desktop folder and the music folder. It also handles localization (i.e. translation) of the filenames.
xdg-user-dirs is a tool to help manage "well known" user directories like the
desktop folder and the music folder. It also handles localization
(i.e. translation) of the filenames.
The way it works is that xdg-user-dirs-update is run very early in the login phase. This program reads a configuration file, and a set of default directories. It then creates localized versions of these directories in the users home directory and sets up a config file in $(XDG_CONFIG_HOME)/user-dirs.dirs (XDG_CONFIG_HOME defaults to ~/.config) that applications can read to find these directories.
**Sysadmins can configure things by editing /etc/xdg/user-dirs.conf. At the moment there are only two settings, you can disable the whole thing, and you can specify the charset encoding used for filenames. They can also set or change the default directories and their initial values in /etc/xdg/user-dirs.defaults.**
The way it works is that xdg-user-dirs-update is run very early in the login
phase. This program reads a configuration file, and a set of default
directories. It then creates localized versions of these directories in the
users home directory and sets up a config file in
$(XDG_CONFIG_HOME)/user-dirs.dirs (XDG_CONFIG_HOME defaults to ~/.config)
that applications can read to find these directories.
**Sysadmins can configure things by editing /etc/xdg/user-dirs.conf.
At the moment there are only two settings, you can disable the whole thing,
and you can specify the charset encoding used for filenames. They can also
set or change the default directories and their initial values in
/etc/xdg/user-dirs.defaults.**
$(XDG_CONFIG_HOME)/user-dirs.dirs specifies the current set of directories for the user. This file is in a shell format, so its easy to access from a shell script. This file can also be modified by users (manually or via applications) to change the directories used. Note: To disable a directory, point it to the homedir. If you delete it it will be recreated on the next login.
$(XDG_CONFIG_HOME)/user-dirs.dirs specifies the current set of directories
for the user. This file is in a shell format, so its easy to access from a
shell script. This file can also be modified by users (manually or via
applications) to change the directories used. Note: To disable a directory,
point it to the homedir. If you delete it it will be recreated on the next
login.
You can find the [user-dirs.defaults HERE]()// TODO add link.
You can find the custom one I use [HERE]()// TODO add link.
Some of these are their own repositories, and I will include a link below with
an explanation and purpose of the directory.
`
# Our desktop (if applicable)
DESKTOP=gui
# Downloads folder for firefox etc.
DOWNLOAD=dl
# Our templates folder for click/create functionality on desktops.
# TODO ADD LINK TO REPO
TEMPLATES=eg
# Guides/Notes written in Markdown.
# TODO ADD LINK TO REPO
MARKDOWN=md
# Local sharing.
PUBLICSHARE=pub
# Documents and media
DOCUMENTS=media/docs
MUSIC=media/music
PICTURES=media/pics
VIDEOS=media/vids
PDF=media/pdf
# CAD repo for link to library resources etc.
# TODO ADD LINK TO REPO
CAD=cad
# All my development repos.
# TODO ADD LINK TO REPO
REPO=repo
# Bash scripts and resources.
# TODO ADD LINK TO REPO
SCRIPTS=sh
# Originally for virtual machines, but now includes Docker, etc.
# TODO ADD LINK TO REPO
VIRTUALMACHINES=vm
`
## Credits / Resources