#/bin/bash # 脏标记:0=不需要重建 UKI,1=需要 MKINITCPIO=0 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_vconsole_font setup_shadowsocks setup_dae # 统一重建一次 if [ "$MKINITCPIO" -eq 1 ]; then echo ">>> mkinitcpio -P" sudo mkinitcpio -P fi