# \[Linux\] Processing should comply with the XDG directory standard

**URL:** <https://discourse.processing.org/t/linux-processing-should-comply-with-the-xdg-directory-standard/23942>\
**Category:** Processing\
**Created:** [September 18, 2020, 4:36pm UTC](https://discourse.processing.org/t/linux-processing-should-comply-with-the-xdg-directory-standard/23942 "2020-09-18T16:36:21Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![zjeffer](https://avatars.discourse-cdn.com/v4/letter/z/bb73d2/32.png) [@zjeffer](https://discourse.processing.org/u/zjeffer)\
**Post date:** [September 18, 2020, 4:36pm UTC](https://discourse.processing.org/t/linux-processing-should-comply-with-the-xdg-directory-standard/23942/1 "2020-09-18T16:36:21Z")

</div>

Currently, Processing on Linux creates a hidden folder in the user’s $HOME folder. For me, it creates `/home/zjeffer/.processing/`.

This is bad practice: it clutters the $HOME folder and this is a big problem if you install a lot of applications. [Freedesktop’s XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) defines where applications should store their config and data files.

In my opinion, Processing should put the `~/.processing` folder in either `$XDG_CONFIG_HOME` (default: `$HOME/.config/processing`) or `$XDG_DATA_HOME` (default: `$HOME/.local/share/processing`).

You can read more about XDG Base Directory Specification [on the Arch Linux Wiki](https://wiki.archlinux.org/index.php/XDG_Base_Directory).

---

<div class="post-metadata">

**Author:** ![tabreturn](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/tabreturn/32/3697_2.png) [@tabreturn](https://discourse.processing.org/u/tabreturn)\
**Post date:** [September 18, 2020, 10:22pm UTC](https://discourse.processing.org/t/linux-processing-should-comply-with-the-xdg-directory-standard/23942/2 "2020-09-18T22:22:46Z")

</div>

Agreed, @zjeffer. I’d prefer a less cluttered `$HOME` directory. My preference is `$HOME/.config/processing`

---

<div class="post-metadata">

**Author:** ![raron](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/raron/32/13651_2.png) [@raron](https://discourse.processing.org/u/raron)\
**Post date:** [September 19, 2020, 9:23am UTC](https://discourse.processing.org/t/linux-processing-should-comply-with-the-xdg-directory-standard/23942/3 "2020-09-19T09:23:57Z")

</div>

Directories starting with a period is hidden by default anyway? (but I get it, I also use “show hidden files”…). I agree it would be cleaner, but I can’t say I care too much (as long as the Documents folder isn’t cluttered with anything else but my stuff).

On my windows system, I long since gave up on the (My) Documents folder and made my own, to have in peace from all the mess of game save clutters. It may be a click or two extra to navigate to it some times, but I’m used to it.

Relevant comic:  
[![](https://imgs.xkcd.com/comics/standards.png) ](https://imgs.xkcd.com/comics/standards.png)

---

<div class="post-metadata">

**Author:** ![neilcsmith](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/neilcsmith/32/144_2.png) [@neilcsmith](https://discourse.processing.org/u/neilcsmith)\
**Post date:** [September 19, 2020, 9:41am UTC](https://discourse.processing.org/t/linux-processing-should-comply-with-the-xdg-directory-standard/23942/4 "2020-09-19T09:41:38Z")

</div>

As much as I (already) love that cartoon, the XDG specifications are pretty much _the_ standard on Linux - one of few cases that hasn’t resulted in the outcome of that cartoon.

---

<div class="post-metadata">

**Author:** ![zjeffer](https://avatars.discourse-cdn.com/v4/letter/z/bb73d2/32.png) [@zjeffer](https://discourse.processing.org/u/zjeffer)\
**Post date:** [September 24, 2020, 7:05pm UTC](https://discourse.processing.org/t/linux-processing-should-comply-with-the-xdg-directory-standard/23942/5 "2020-09-24T19:05:35Z")

</div>

It looks like it also puts java files in `$HOME/.java/`, instead of using `_JAVA_OPTIONS` as described here: [https://wiki.archlinux.org/index.php/XDG\_Base\_Directory#Partial](https://wiki.archlinux.org/index.php/XDG_Base_Directory#Partial) (see the Java#OpenJDK option)
