Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Follow the XDG Base Directory Specification #242

Open
hakan-demirli opened this issue Jul 13, 2024 · 6 comments
Open

Follow the XDG Base Directory Specification #242

hakan-demirli opened this issue Jul 13, 2024 · 6 comments

Comments

@hakan-demirli
Copy link

XDG Base Directory Specification dictates which files should go where.

Steel currently dumps its dir to the home directory.

@dryya
Copy link

dryya commented Jul 19, 2024

+1 from me, I would really love to see this changed now while steel is in alpha/beta instead of waiting until later and making this minor usability change more complicated.

@mattwparas
Copy link
Owner

I don't disagree, however I wasn't quite sure where "programming language files and libraries" fell under the spec - also in the meantime while I figure out how to handle this, you can set the location where steel installs things by setting the $STEEL_HOME env var

@mattwparas
Copy link
Owner

I guess the question then, is do steel library files go under the xdg equivalent of ~/.local/share/steel or /.local/lib/steel? I don't have a preference myself

@kskarthik
Copy link
Contributor

Yes, $STEEL_HOME could be set to any $XDG_*

@hakan-demirli
Copy link
Author

hakan-demirli commented Jul 21, 2024

I guess the question then, is do steel library files go under the xdg equivalent of ~/.local/share/steel or /.local/lib/steel? I don't have a preference myself

It depends on whether the library files are shared. I would go with ~/.local/lib/ since it should be ok as long as the usage is consistent.
Ubuntu manual describes the paths as follows:

~/.local/lib/
           Static, private vendor data that is compatible with all architectures.

~/.local/lib/arch-id/
   Location for placing public dynamic libraries. The architecture identifier to use is
   defined on Multiarch Architecture Specifiers (Tuples)[6] list.

~/.local/share/
           Resources shared between multiple packages, such as fonts or artwork.

@genevieve-me
Copy link

For what it's worth I would also suggest that the history file be kept in XDG_STATE_HOME. I don't think ~/.local/lib is actually defined in the XDG spec, nor is there an environment variable for it, but I also wouldn't really mind if it were used. I think the standard for that was put forward by systemd: https://www.freedesktop.org/software/systemd/man/latest/file-hierarchy.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants