Add XDG user dirs configuration

This commit is contained in:
Jeremy Soller
2024-09-18 09:42:05 -06:00
parent 087810a252
commit caebc0d6f7
+50
View File
@@ -232,6 +232,56 @@ pub fn install_dir<P: AsRef<Path>, S: AsRef<str>>(config: Config, output_dir: P,
recursive_chown: true,
}.create(&output_dir)?;
if uid >= 1000 {
// Create XDG user dirs
//TODO: move to some autostart program?
for xdg_folder in &[
"Desktop",
"Documents",
"Downloads",
"Music",
"Pictures",
"Public",
"Templates",
"Videos",
".config",
".local",
".local/share",
".local/share/Trash",
".local/share/Trash/info",
] {
FileConfig {
path: format!("{}/{}", home, xdg_folder),
data: String::new(),
symlink: false,
directory: true,
mode: Some(0o0700),
uid: Some(uid),
gid: Some(gid),
recursive_chown: false,
}.create(&output_dir)?;
}
FileConfig {
path: format!("{}/.config/user-dirs.dirs", home),
data: r#"# Produced by redox installer
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_VIDEOS_DIR="$HOME/Videos"
"#.to_string(),
symlink: false,
directory: false,
mode: Some(0o0600),
uid: Some(uid),
gid: Some(gid),
recursive_chown: false,
}.create(&output_dir)?;
}
let password = hash_password(&password)?;
passwd.push_str(&format!("{};{};{};{};{};{}\n", username, uid, gid, name, home, shell));