Skip to content

Please use FreeDesktop $HOME/.config/ directory recommendation for *nix systems #3498

Closed as not planned
@aplatypus

Description

@aplatypus

Problem you are trying to solve

The rustup install shell script announces that it will load and create two related directories:

  • ~/.rustup
  • ~/.cargo

This adds to the burden of config data and metadata in dot-directories and dot-files on *nix systems. My personal practice is to place all dot- files and directories under the recommended ~/.config/ directory; even when I am forced to create symbolic a link, as in this example: ".mysql --> .config/mysql".

In the same section of rustup ... the script informs me that these locations can be modified respectively with:

  • RUSTUP_HOME and
  • CARGO_HOME

environment variables. At that point I cancelled the rustup shell install script and defined the relevant environment variables and re-ran the script with encouraging results. The initial preamble reported that the installer would use the:

  • ~/.config/rustup/
  • ~/.config/.cargo/

... directories defined by the respective environment variables. The installer did an excellent job "enabling" the specified directories. Well done rustup team :-D

Solution you'd like

I would prefer that the default configuration and metadata follow the OpenDesktop standard and place settings and data under the $HOME/.config/ directory.

The rustup script could use the environment variables FreeDesktop specification for setting environment variables.

Furthermore, this allows users to keep configuration information under one umbrella directory and improve general admin and maintenance processing.

Notes

Please see:

... for a more rounded view of this opportunity.

  • I appreciate that there are challenges raised for non-systemd_ installations.
    • However, some common, reasonable and pragmatic approach would probably enhance the configuration and maintenance process in any case.
  • Personally speaking, I'd like to tame all ".-files" and have them under a common location like ~/.config/...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions