From 75a3ae508522d1e31d690a66f10b031256e6946e Mon Sep 17 00:00:00 2001 From: shu Date: Tue, 27 Oct 2026 15:47:16 +0800 Subject: 为 shell 脚本增加执行顺序 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/11_system.sh | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 scripts/11_system.sh (limited to 'scripts/11_system.sh') diff --git a/scripts/11_system.sh b/scripts/11_system.sh new file mode 100644 index 0000000..fdd7e16 --- /dev/null +++ b/scripts/11_system.sh @@ -0,0 +1,146 @@ +#/bin/bash + +# 脏标记:0=不需要重建 UKI,1=需要 +MKINITCPIO=0 + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ETC_DIR="$(cd $SCRIPT_DIR && cd ../etc && pwd)" +echo $ETC_DIR + +setup_vconsole_font() { + sudo sed -i 's/^\(FONT=.*\)$/# \1\nFONT=ter-132n/' /etc/vconsole.conf + + sudo cp /etc/kernel/cmdline /etc/kernel/cmdline.bak + sudo sed -i 's/$/ fbcon=font:TER16x32/' /etc/kernel/cmdline + + sudo cp /boot/loader/loader.conf /boot/loader/loader.conf.bak + sudo sed -i -e '/^[[:space:]]*#\?[[:space:]]*console-mode/d' /boot/loader/loader.conf + echo 'console-mode 1' | sudo tee -a /boot/loader/loader.conf >/dev/null + + # 标记需要重建 + MKINITCPIO=1 +} + +setup_shadowsocks() { + sudo cat > /etc/shadowsocks-rust/s.json < /etc/dae/config.dae < router + qname(suffix: lan) -> router + fallback: direct_dns + } + + response { + fallback: accept + } + } +} + +routing { + # Shadowsocks must reach its remote server directly to avoid a proxy loop. + pname(sslocal) -> direct + + # Keep local, multicast, and other private destinations direct. + dip(224.0.0.0/3, 'ff00::/8') -> direct + dip(geoip:private) -> direct + + # Route mainland China IPs directly. Everything else uses the proxy, so + # overseas destinations do not need to be maintained in a domain list. + dip(geoip:cn) -> direct + + fallback: proxy +} +EOF +} + +setup_modem() { + sudo systemctl enable --now ModemManager.service +} + +setup_fprint() { + # --- system-local-login(KDE 锁屏/系统登录)--- + sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/system-local-login + sudo sed -i '/^auth[[:space:]]\+include[[:space:]]\+system-login/i auth sufficient pam_fprintd.so' /etc/pam.d/system-local-login + + # --- polkit-1 --- + [ -f /etc/pam.d/polkit-1 ] || sudo cp /usr/lib/pam.d/polkit-1 /etc/pam.d/polkit-1 + sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/polkit-1 + sudo sed -i '/^auth[[:space:]]\+include[[:space:]]\+system-auth/i auth sufficient pam_fprintd.so' /etc/pam.d/polkit-1 + + # --- kde-fingerprint --- + [ -f /etc/pam.d/kde-fingerprint ] || sudo cp /usr/lib/pam.d/kde-fingerprint /etc/pam.d/kde-fingerprint +} + +setup_vconsole_font +setup_shadowsocks +setup_dae +setup_modem +setup_fprint + +# 统一重建一次 +if [ "$MKINITCPIO" -eq 1 ]; then + echo ">>> mkinitcpio -P" + sudo mkinitcpio -P +fi \ No newline at end of file -- cgit v1.2.3