SongRec/Internal formats/preferences.toml
Appearance
The preferences.toml file of SongRec is saved, under Linux, at the ~/.config/songrec/preferences.toml path by default, when using an unsandboxed environment.
It uses the TOML format.
It is written through by the src/core/preferences.rs utility file, which open the path of the preferences file through src/utils/filesystem_operations.rs.
Save location
The location for the preferences.toml file is calculated through the obtain_preferences_file_path function of src/utils/filesystem_operations.rs.
Relevant code:
use directories::ProjectDirs;
const QUALIFIER: &str = "";
const ORGANIZATION: &str = "SongRec";
const APPLICATION: &str = "SongRec";
static PROJECT_DIRS: LazyLock<ProjectDirs> =
LazyLock::new(|| ProjectDirs::from(QUALIFIER, ORGANIZATION, APPLICATION).unwrap());
pub fn obtain_preferences_file_path() -> Result<PathBuf, Box<dyn Error>> {
let mut preferences_file_path = obtain_preferences_directory()?;
preferences_file_path.push("preferences.toml");
Ok(preferences_file_path)
}
fn obtain_preferences_directory() -> Result<PathBuf, Box<dyn Error>> {
let preferences_dir = PROJECT_DIRS.preference_dir();
if !preferences_dir.exists() {
create_dir_all(preferences_dir)?;
}
Ok(preferences_dir.to_path_buf())
}
See:
- https://docs.rs/directories/latest/directories/struct.ProjectDirs.html
- https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.from
- https://docs.rs/directories/latest/directories/struct.ProjectDirs.html#method.preference_dir
Variables
(WIP 2026-05-05)