56 lines
1.4 KiB
Bash
56 lines
1.4 KiB
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
fws_first_user() {
|
|
awk -F: '$3 >= 1000 && $1 != "nobody" { print $1; exit }' /etc/passwd
|
|
}
|
|
|
|
fws_install_packages() {
|
|
pacman -Sy --noconfirm --needed "$@"
|
|
}
|
|
|
|
fws_enable_services() {
|
|
for service in "$@"; do
|
|
systemctl enable "$service" >/dev/null 2>&1 || true
|
|
done
|
|
}
|
|
|
|
|
|
fws_disable_services() {
|
|
for service in "$@"; do
|
|
systemctl disable "$service" >/dev/null 2>&1 || true
|
|
done
|
|
}
|
|
|
|
fws_write_dmrc() {
|
|
local user_name="$1"
|
|
local session_name="$2"
|
|
|
|
if [ -n "$user_name" ] && [ -d "/home/$user_name" ]; then
|
|
printf '[Desktop]\nSession=%s\n' "$session_name" > "/home/$user_name/.dmrc"
|
|
fi
|
|
}
|
|
|
|
fws_write_lightdm_config() {
|
|
local user_name="$1"
|
|
local session_name="$2"
|
|
|
|
if [ -z "$user_name" ]; then
|
|
return 0
|
|
fi
|
|
|
|
mkdir -p /etc/lightdm/lightdm.conf.d
|
|
printf '[Seat:*]\nautologin-user=%s\nautologin-user-timeout=0\nuser-session=%s\nautologin-session=%s\ngreeter-hide-users=true\nallow-guest=false\n' "$user_name" "$session_name" "$session_name" > /etc/lightdm/lightdm.conf.d/50-fws.conf
|
|
}
|
|
|
|
fws_write_sddm_config() {
|
|
local user_name="$1"
|
|
local session_name="$2"
|
|
|
|
if [ -z "$user_name" ]; then
|
|
return 0
|
|
fi
|
|
|
|
mkdir -p /etc/sddm.conf.d
|
|
printf '[Autologin]\nUser=%s\nSession=%s.desktop\nRelogin=false\n' "$user_name" "$session_name" > /etc/sddm.conf.d/50-fws.conf
|
|
} |