Problem
Currently Velos stores all data in ~/.velos/, which clutters the home directory. This goes against the XDG Base Directory Specification.
Proposed Solution
Follow XDG conventions with fallback to current behavior:
| Data type |
Current |
XDG-compliant |
| Config |
~/.velos/config.toml |
$XDG_CONFIG_HOME/velos/config.toml (default: ~/.config/velos/) |
| Logs |
~/.velos/logs/ |
$XDG_STATE_HOME/velos/logs/ (default: ~/.local/state/velos/) |
| Crash data |
~/.velos/crashes/ |
$XDG_DATA_HOME/velos/crashes/ (default: ~/.local/share/velos/) |
| Socket |
~/.velos/velos.sock |
$XDG_RUNTIME_DIR/velos/velos.sock |
Migration
- Auto-migrate existing
~/.velos/ on first run if XDG dirs don't exist yet
- Print a one-time notice about the migration
References
Problem
Currently Velos stores all data in
~/.velos/, which clutters the home directory. This goes against the XDG Base Directory Specification.Proposed Solution
Follow XDG conventions with fallback to current behavior:
~/.velos/config.toml$XDG_CONFIG_HOME/velos/config.toml(default:~/.config/velos/)~/.velos/logs/$XDG_STATE_HOME/velos/logs/(default:~/.local/state/velos/)~/.velos/crashes/$XDG_DATA_HOME/velos/crashes/(default:~/.local/share/velos/)~/.velos/velos.sock$XDG_RUNTIME_DIR/velos/velos.sockMigration
~/.velos/on first run if XDG dirs don't exist yetReferences
cargo,rustup, most modern CLI tools