summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlberto Corona <ac@albertocorona.com>2017-01-07 15:19:30 -0600
committerJoe Wilm <jwilm@users.noreply.github.com>2017-01-09 09:23:32 -0800
commit987b8555def9b321d8388d7ca8290d214bc51c4a (patch)
treefcd79875adb6fc0430c3beb61b5db651a6295b9a
parent2fa271419c4765f7758dcf336fe0b913c12c18a6 (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.md12
-rw-r--r--src/config.rs12
2 files changed, 15 insertions, 9 deletions
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<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())?;