# ol.dirs

_platforms: clj, cljs_

Cross-platform directory lookup for Clojure, ClojureScript on Node, and ClojureDart.

The public API returns strings or vectors of strings and never creates directories.

* arity 0 returns the base directory
* arity 1 appends an application name
* arity 2 appends qualifier, organization, and application using platform rules

See [`config-home`](#config-home), [`data-home`](#data-home), [`state-home`](#state-home), and [`home-dir`](#home-dir).

## data-home

### clj

_platforms: clj_

```clojure
(data-home)
(data-home application)
(data-home qualifier organization application)
```

Returns the writable user data directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L14-L19)

### cljs

_platforms: cljs_

```clojure
(data-home)
(data-home application)
(data-home qualifier organization application)
```

Returns the writable user data directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L14-L19)

---

## config-home

### clj

_platforms: clj_

```clojure
(config-home)
(config-home application)
(config-home qualifier organization application)
```

Returns the writable user configuration directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L21-L26)

### cljs

_platforms: cljs_

```clojure
(config-home)
(config-home application)
(config-home qualifier organization application)
```

Returns the writable user configuration directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L21-L26)

---

## state-home

### clj

_platforms: clj_

```clojure
(state-home)
(state-home application)
(state-home qualifier organization application)
```

Returns the writable user state directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L28-L33)

### cljs

_platforms: cljs_

```clojure
(state-home)
(state-home application)
(state-home qualifier organization application)
```

Returns the writable user state directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L28-L33)

---

## data-dirs

### clj

_platforms: clj_

```clojure
(data-dirs)
(data-dirs application)
(data-dirs qualifier organization application)
```

Returns the shared data search roots as a vector of strings.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L35-L40)

### cljs

_platforms: cljs_

```clojure
(data-dirs)
(data-dirs application)
(data-dirs qualifier organization application)
```

Returns the shared data search roots as a vector of strings.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L35-L40)

---

## config-dirs

### clj

_platforms: clj_

```clojure
(config-dirs)
(config-dirs application)
(config-dirs qualifier organization application)
```

Returns the shared configuration search roots as a vector of strings.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L42-L47)

### cljs

_platforms: cljs_

```clojure
(config-dirs)
(config-dirs application)
(config-dirs qualifier organization application)
```

Returns the shared configuration search roots as a vector of strings.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L42-L47)

---

## cache-home

### clj

_platforms: clj_

```clojure
(cache-home)
(cache-home application)
(cache-home qualifier organization application)
```

Returns the writable user cache directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L49-L54)

### cljs

_platforms: cljs_

```clojure
(cache-home)
(cache-home application)
(cache-home qualifier organization application)
```

Returns the writable user cache directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L49-L54)

---

## runtime-dir

### clj

_platforms: clj_

```clojure
(runtime-dir)
(runtime-dir application)
(runtime-dir qualifier organization application)
```

Returns the runtime directory, or `nil` on platforms without one.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L56-L61)

### cljs

_platforms: cljs_

```clojure
(runtime-dir)
(runtime-dir application)
(runtime-dir qualifier organization application)
```

Returns the runtime directory, or `nil` on platforms without one.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L56-L61)

---

## executable-dir

### clj

_platforms: clj_

```clojure
(executable-dir)
(executable-dir application)
(executable-dir qualifier organization application)
```

Returns the user executable directory, or `nil` when unsupported.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L63-L68)

### cljs

_platforms: cljs_

```clojure
(executable-dir)
(executable-dir application)
(executable-dir qualifier organization application)
```

Returns the user executable directory, or `nil` when unsupported.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L63-L68)

---

## preference-dir

### clj

_platforms: clj_

```clojure
(preference-dir)
(preference-dir application)
(preference-dir qualifier organization application)
```

Returns the preference directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L70-L75)

### cljs

_platforms: cljs_

```clojure
(preference-dir)
(preference-dir application)
(preference-dir qualifier organization application)
```

Returns the preference directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L70-L75)

---

## home-dir

### clj

_platforms: clj_

```clojure
(home-dir)
```

Returns the user’s home directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L77-L79)

### cljs

_platforms: cljs_

```clojure
(home-dir)
```

Returns the user’s home directory.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L77-L79)

---

## audio-dir

### clj

_platforms: clj_

```clojure
(audio-dir)
```

Returns the user’s audio or music directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L81-L83)

### cljs

_platforms: cljs_

```clojure
(audio-dir)
```

Returns the user’s audio or music directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L81-L83)

---

## desktop-dir

### clj

_platforms: clj_

```clojure
(desktop-dir)
```

Returns the user’s desktop directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L85-L87)

### cljs

_platforms: cljs_

```clojure
(desktop-dir)
```

Returns the user’s desktop directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L85-L87)

---

## document-dir

### clj

_platforms: clj_

```clojure
(document-dir)
```

Returns the user’s documents directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L89-L91)

### cljs

_platforms: cljs_

```clojure
(document-dir)
```

Returns the user’s documents directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L89-L91)

---

## download-dir

### clj

_platforms: clj_

```clojure
(download-dir)
```

Returns the user’s downloads directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L93-L95)

### cljs

_platforms: cljs_

```clojure
(download-dir)
```

Returns the user’s downloads directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L93-L95)

---

## font-dir

### clj

_platforms: clj_

```clojure
(font-dir)
```

Returns the user’s font directory, or `nil` when unsupported.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L97-L99)

### cljs

_platforms: cljs_

```clojure
(font-dir)
```

Returns the user’s font directory, or `nil` when unsupported.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L97-L99)

---

## picture-dir

### clj

_platforms: clj_

```clojure
(picture-dir)
```

Returns the user’s pictures directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L101-L103)

### cljs

_platforms: cljs_

```clojure
(picture-dir)
```

Returns the user’s pictures directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L101-L103)

---

## public-dir

### clj

_platforms: clj_

```clojure
(public-dir)
```

Returns the user’s public sharing directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L105-L107)

### cljs

_platforms: cljs_

```clojure
(public-dir)
```

Returns the user’s public sharing directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L105-L107)

---

## template-dir

### clj

_platforms: clj_

```clojure
(template-dir)
```

Returns the user’s templates directory, or `nil` when unsupported or unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L109-L111)

### cljs

_platforms: cljs_

```clojure
(template-dir)
```

Returns the user’s templates directory, or `nil` when unsupported or unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L109-L111)

---

## video-dir

### clj

_platforms: clj_

```clojure
(video-dir)
```

Returns the user’s videos directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L113-L115)

### cljs

_platforms: cljs_

```clojure
(video-dir)
```

Returns the user’s videos directory, or `nil` when unresolved.

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L113-L115)

---

## state-dir

### clj

_platforms: clj_

```clojure
(state-dir)
(state-dir application)
(state-dir qualifier organization application)
```

Alias of [`state-home`](#state-home).

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L117-L122)

### cljs

_platforms: cljs_

```clojure
(state-dir)
(state-dir application)
(state-dir qualifier organization application)
```

Alias of [`state-home`](#state-home).

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L117-L122)

---

## config-dir

### clj

_platforms: clj_

```clojure
(config-dir)
(config-dir application)
(config-dir qualifier organization application)
```

Alias of [`config-home`](#config-home).

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L124-L129)

### cljs

_platforms: cljs_

```clojure
(config-dir)
(config-dir application)
(config-dir qualifier organization application)
```

Alias of [`config-home`](#config-home).

[source,window=_blank](https://github.com/outskirtslabs/dirs/blob/main/src/ol/dirs.cljc#L124-L129)
