This commit is contained in:
JMARyA 2025-01-05 03:03:53 +01:00
parent 4ad01219db
commit 7f0fd2c45b
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
4 changed files with 29 additions and 11 deletions

View file

@ -14,7 +14,8 @@ mode = "Desktop"
locale = "de_DE.UTF-8"
# Keymap
keymap = "de-latin1"
keyboard_layout = "de"
keyboard_variant = "mac"
# Timezone
timezone = "Europe/Berlin"

View file

@ -68,8 +68,10 @@ pub struct GeneralConfig {
pub mode: InstallMode,
/// System locale
pub locale: String,
/// Keymap
pub keymap: String,
/// Keyboard Layout
pub keyboard_layout: String,
/// Keyboard Variant
pub keyboard_variant: Option<String>,
/// Timezone
pub timezone: String,
/// Hostname

View file

@ -38,11 +38,7 @@ pub fn first_boot_values(conf: &GeneralConfig) {
// Keymap
print_status("Writing /etc/vconsole.conf");
std::fs::write(
"/mnt/etc/vconsole.conf",
format!("KEYMAP=\"{}\"", conf.keymap),
)
.unwrap();
std::fs::write("/mnt/etc/vconsole.conf", build_vconsole_conf(conf)).unwrap();
// Hostname
print_status("Writing /etc/hostname");
@ -57,3 +53,14 @@ pub fn first_boot_values(conf: &GeneralConfig) {
systemd_service_enable("NetworkManager.service");
}
pub fn build_vconsole_conf(conf: &GeneralConfig) -> String {
let mut ret = format!("KEYMAP={}\n", conf.keyboard_layout);
ret.push_str(&format!("XBKLAYOUT={}\n", conf.keyboard_layout));
if let Some(variant) = &conf.keyboard_variant {
ret.push_str(&format!("XKBMODEL={variant}\n"));
}
ret
}

View file

@ -1,6 +1,14 @@
use crate::config::GeneralConfig;
use crate::{config::GeneralConfig, create_iso::build_kxkbrc, linux::install_file, print_status};
pub fn setup_skel(conf: &GeneralConfig) {
// TODO : Implement
unimplemented!()
print_status("Setting user config");
std::fs::create_dir_all("/mnt/etc/skel/.config").unwrap();
install_file(
"/mnt/etc/skel/.config/kxkbrc",
&build_kxkbrc(
conf.keyboard_layout.as_str(),
conf.keyboard_variant.as_ref().map(|x| x.as_str()),
),
0o644,
);
}