Files
lush/issues/08-configuration.md
Cormac Shannon bbc0f24009 Implement startup configuration file support (issue #08)
Load ~/.config/lush/config and config.d/*.lua at REPL startup,
respecting XDG_CONFIG_HOME. Suppressed by -E flag.
2026-03-03 22:59:51 +00:00

1.1 KiB

08 — Configuration support

Status: done

Users should be able to programmatically configure the shell at startup.

Config location

  • ~/.config/lush/config — main config file (Lua script)
  • ~/.config/lush/config.d/ — drop-in directory, files sourced in lexicographic order

What can be configured

  • Prompt — see #09
  • Aliases — command aliases (e.g. alias("ll", "ls -l"))
  • Environment setup — set/modify env vars at startup
  • Autocompletion rules — TBD, mechanism for registering custom completions

Startup behaviour

  1. If ~/.config/lush/config exists, execute it as a Lua script
  2. If ~/.config/lush/config.d/ exists, execute each .lua file in lexicographic order
  3. Config files run in the same Lua state as the interactive session — locals, globals, and env changes persist

Open questions

  • Should there be a system-wide config (/etc/lush/config) sourced before user config?
  • What API surface to expose for autocompletion registration?
  • Should config errors be fatal or just print a warning and continue?