diff --git a/README.md b/README.md index 0fea0075..df04bdc4 100644 --- a/README.md +++ b/README.md @@ -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 { 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 { - 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())?;