diff --git a/README.md b/README.md index a0f8141..e593d38 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ # Aporia -Aporia is a login manager that displays ascii art. It supports x11 and wayland sessions. +Aporia is a login manager that displays ascii art. It supports x11 and wayland sessions, and the [XDG base directory specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html). drawing Only systemd is supported. -## Installtion +## Compilation & Installtion Install the dependencies: - Go compiler - gcc -- pam (libpam-dev on ubuntu) +- pam (libpam-dev on debian based distros) Run the install.sh script as root. ```sh @@ -68,15 +68,13 @@ font and all font sizes available on your computer.
Why does my ascii art show up as diamonds?
- -Some terminal fonts do not support certain braille characters. Using a different ascii art generator will likely -fix your problem. +Some terminal fonts do not support braille characters. Using an ascii art generator that does not output braille characters will fix your problem.
Is aporia production ready?
-There is a bug where somethimes the window manager will refuse to launch. I am looking into this. +I daily drive aporia with no issues.
diff --git a/login/env.go b/login/env.go index 8671c7a..f0685d7 100644 --- a/login/env.go +++ b/login/env.go @@ -63,15 +63,22 @@ func makeEnv(pam_handle *C.struct_pam_handle, pwnam *C.struct_passwd, desktopNam setEnv("PATH", "/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin") - // pam_systemd options + // XDG Session environment. + // See: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html setEnv("XDG_SESSION_TYPE", sessionType) setEnv("XDG_SESSION_DESKTOP", desktopName) setEnv("XDG_SESSION_DESKTOP", desktopName) setEnv("XDG_SESSION_CLASS", "user") + + setEnv("XDG_CONFIG_HOME", fmt.Sprint(homeDir, "/.config")) + setEnv("XDG_CACHE_HOME", fmt.Sprint(homeDir, "/.cache")) + setEnv("XDG_DATA_HOME", fmt.Sprint(homeDir, "/.local/share")) + setEnv("XDG_STATE_HOME", fmt.Sprint(homeDir, "/.local/state")) setEnv("XDG_RUNTIME_DIR", user) - // setEnv("XDG_SESSION_ID", "1") - // setEnv("XDG_SEAT", "seat0") - // setEnv("XDG_VTNR", "1") + + // System Directories + setEnv("XDG_DATA_DIRS", "/usr/local/share:/usr/share") + setEnv("XDG_CONFIG_DIRS", "/etc/xdg") os.Chown(user, int(pwnam.pw_uid), int(pwnam.pw_gid))