diff options
author | Alberto Corona <ac@albertocorona.com> | 2017-01-07 15:19:30 -0600 |
---|---|---|
committer | Joe Wilm <jwilm@users.noreply.github.com> | 2017-01-09 09:23:32 -0800 |
commit | 987b8555def9b321d8388d7ca8290d214bc51c4a (patch) | |
tree | fcd79875adb6fc0430c3beb61b5db651a6295b9a | |
parent | 2fa271419c4765f7758dcf336fe0b913c12c18a6 (diff) |
Conform to XDG spec for configuration
- Use $XDG_CONFIG_HOME/alacritty/alacritty.yml for loading the
configuration file falling back to $HOME/.config/alacritty/alacritty.yml
- Closes #203
-rw-r--r-- | README.md | 12 | ||||
-rw-r--r-- | src/config.rs | 12 |
2 files changed, 15 insertions, 9 deletions
@@ -138,9 +138,15 @@ cp Alacritty.desktop ~/.local/share/applications ### Configuration Although it's possible the default configuration would work on your system, -you'll probably end up wanting to customize it anyhow. There is an -`alacritty.yml` at the git repository root. Copy this to either -`$HOME/.alacritty.yml` or `$XDG_CONFIG_HOME/alacritty.yml` and run Alacritty. +you'll probably end up wanting to customize it anyhow. There is a default +`alacritty.yml` at the git repository root. Alacritty looks for the configuration +file as the following paths: + +1. `$XDG_CONFIG_HOME/alacritty/alacritty.yml` +2. `$HOME/.config/alacritty/alacritty.yml` + +If these files are not found then one is created as `$HOME/.config/alacritty/alacritty.yml` +once alacritty is first run. Many configuration options will take effect immediately upon saving changes to the config file. The only exception is the `font` and `dpi` section which diff --git a/src/config.rs b/src/config.rs index 4511b227..706f1d01 100644 --- a/src/config.rs +++ b/src/config.rs @@ -811,19 +811,19 @@ impl Config { /// /// The config file is loaded from the first file it finds in this list of paths /// - /// 1. `$HOME/.config/alacritty.yml` - /// 2. `$HOME/.alacritty.yml` + /// 1. $XDG_CONFIG_HOME/alacritty/alacritty.yml + /// 2. $HOME/.config/alacritty/alacritty.yml pub fn load() -> Result<Config> { let home = env::var("HOME")?; // Try using XDG location by default - let path = ::xdg::BaseDirectories::new() + let path = ::xdg::BaseDirectories::with_prefix("alacritty") .ok() .and_then(|xdg| xdg.find_config_file("alacritty.yml")) .unwrap_or_else(|| { - // Fallback path: $HOME/.alacritty.yml + // Fallback path: $HOME/.config/alacritty/alacritty.yml let mut alt_path = PathBuf::from(&home); - alt_path.push(".alacritty.yml"); + alt_path.push(".config/alacritty/alacritty.yml"); alt_path }); @@ -831,7 +831,7 @@ impl Config { } pub fn write_defaults() -> io::Result<PathBuf> { - let path = ::xdg::BaseDirectories::new() + let path = ::xdg::BaseDirectories::with_prefix("alacritty") .map_err(|err| io::Error::new(io::ErrorKind::NotFound, ::std::error::Error::description(&err))) .and_then(|p| p.place_config_file("alacritty.yml"))?; File::create(&path)?.write_all(DEFAULT_ALACRITTY_CONFIG.as_bytes())?; |