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/00_install_packages.sh | 9 ++ scripts/10_stow.sh | 8 ++ scripts/11_system.sh | 146 ++++++++++++++++++++++++++++++++ scripts/50_aur.sh | 9 ++ scripts/51_dev.sh | 12 +++ scripts/52_install_vscode_extensions.sh | 17 ++++ scripts/aur.sh | 9 -- scripts/dev.sh | 12 --- scripts/install_packages.sh | 9 -- scripts/install_vscode_extensions.sh | 17 ---- scripts/stow.sh | 8 -- scripts/system.sh | 146 -------------------------------- 12 files changed, 201 insertions(+), 201 deletions(-) create mode 100755 scripts/00_install_packages.sh create mode 100755 scripts/10_stow.sh create mode 100644 scripts/11_system.sh create mode 100755 scripts/50_aur.sh create mode 100755 scripts/51_dev.sh create mode 100755 scripts/52_install_vscode_extensions.sh delete mode 100755 scripts/aur.sh delete mode 100755 scripts/dev.sh delete mode 100755 scripts/install_packages.sh delete mode 100755 scripts/install_vscode_extensions.sh delete mode 100755 scripts/stow.sh delete mode 100644 scripts/system.sh (limited to 'scripts') diff --git a/scripts/00_install_packages.sh b/scripts/00_install_packages.sh new file mode 100755 index 0000000..d3ee0f3 --- /dev/null +++ b/scripts/00_install_packages.sh @@ -0,0 +1,9 @@ +#/bin/bash + +PKG_BASE="kde-applications-meta chromium code shadowsocks-rust dae base-devel git git-delta sops age vim uv fnm stow fastfetch" +PKG_SYSTEM="bind lsof eza bat bat-extras htop jq less unzip 7zip wget usbutils nmap httpie" +PKG_HARDWARE="modemmanager usb_modeswitch solaar brightnessctl terminus-font fprintd libfprint" +PKG_DEV="go rustup plantuml caddy docker docker-buildx docker-compose" +PKG_DESKTOP="bitwarden telegram-desktop darktable digikam obs-studio blender haruna mpv fcitx5 fcitx5-chinese-addons fcitx5-configtool fcitx5-pinyin-zhwiki steam" + +sudo pacman -Syu --needed $PKG_BASE $PKG_SYSTEM $PKG_HARDWARE $PKG_DEV $PKG_DESKTOP \ No newline at end of file diff --git a/scripts/10_stow.sh b/scripts/10_stow.sh new file mode 100755 index 0000000..8bdcd5b --- /dev/null +++ b/scripts/10_stow.sh @@ -0,0 +1,8 @@ +#/bin/bash + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +DOTFILE_DIR="$(cd $SCRIPT_DIR && cd ../dotfiles && pwd)" +# echo $DOTFILE_DIR + +# add link +cd $DOTFILE_DIR && stow -d $DOTFILE_DIR -t $HOME --no-folding --adopt */ \ No newline at end of file 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 diff --git a/scripts/50_aur.sh b/scripts/50_aur.sh new file mode 100755 index 0000000..81568e3 --- /dev/null +++ b/scripts/50_aur.sh @@ -0,0 +1,9 @@ +#/bin/bash + +# https://aur.archlinux.org/packages/yay + +GIT_PATH_YAY="/tmp/git_yay" + +git clone https://aur.archlinux.org/yay.git $GIT_PATH_YAY +cd $GIT_PATH_YAY && makepkg -si +yay -S wechat rapidraw xpadneo-dkms \ No newline at end of file diff --git a/scripts/51_dev.sh b/scripts/51_dev.sh new file mode 100755 index 0000000..10cf726 --- /dev/null +++ b/scripts/51_dev.sh @@ -0,0 +1,12 @@ +#/bin/bash + +CURRENT_VERSION=24 +FNM_NODE_DIST_MIRROR=https://mirrors.nju.edu.cn/nodejs-release/ + +fnm install $CURRENT_VERSION +fnm use $CURRENT_VERSION +npm i -g pnpm +pnpm setup +pnpm i -g serve tiddlywiki @deepseek-ai/dsh + +rustup default stable \ No newline at end of file diff --git a/scripts/52_install_vscode_extensions.sh b/scripts/52_install_vscode_extensions.sh new file mode 100755 index 0000000..9aa1e15 --- /dev/null +++ b/scripts/52_install_vscode_extensions.sh @@ -0,0 +1,17 @@ +#/bin/bash + +EXTENSIONS=( + "yzhang.markdown-all-in-one" # https://open-vsx.org/extension/yzhang/markdown-all-in-one + "golang.Go" # https://open-vsx.org/extension/golang/Go + "EditorConfig.EditorConfig" # https://open-vsx.org/extension/EditorConfig/EditorConfig + "vscode-icons-team.vscode-icons" # https://open-vsx.org/extension/vscode-icons-team/vscode-icons + "Vue.volar" # https://open-vsx.org/extension/Vue/volar + "redhat.vscode-yaml" # https://open-vsx.org/extension/redhat/vscode-yaml + "tamasfe.even-better-toml" # https://open-vsx.org/extension/tamasfe/even-better-toml + "jebbs.plantuml" # https://open-vsx.org/extension/jebbs/plantuml + "rust-lang.rust-analyzer" # https://open-vsx.org/extension/rust-lang/rust-analyzer +) + +for ext in "${EXTENSIONS[@]}"; do + code --install-extension "$ext" +done diff --git a/scripts/aur.sh b/scripts/aur.sh deleted file mode 100755 index 81568e3..0000000 --- a/scripts/aur.sh +++ /dev/null @@ -1,9 +0,0 @@ -#/bin/bash - -# https://aur.archlinux.org/packages/yay - -GIT_PATH_YAY="/tmp/git_yay" - -git clone https://aur.archlinux.org/yay.git $GIT_PATH_YAY -cd $GIT_PATH_YAY && makepkg -si -yay -S wechat rapidraw xpadneo-dkms \ No newline at end of file diff --git a/scripts/dev.sh b/scripts/dev.sh deleted file mode 100755 index 10cf726..0000000 --- a/scripts/dev.sh +++ /dev/null @@ -1,12 +0,0 @@ -#/bin/bash - -CURRENT_VERSION=24 -FNM_NODE_DIST_MIRROR=https://mirrors.nju.edu.cn/nodejs-release/ - -fnm install $CURRENT_VERSION -fnm use $CURRENT_VERSION -npm i -g pnpm -pnpm setup -pnpm i -g serve tiddlywiki @deepseek-ai/dsh - -rustup default stable \ No newline at end of file diff --git a/scripts/install_packages.sh b/scripts/install_packages.sh deleted file mode 100755 index d3ee0f3..0000000 --- a/scripts/install_packages.sh +++ /dev/null @@ -1,9 +0,0 @@ -#/bin/bash - -PKG_BASE="kde-applications-meta chromium code shadowsocks-rust dae base-devel git git-delta sops age vim uv fnm stow fastfetch" -PKG_SYSTEM="bind lsof eza bat bat-extras htop jq less unzip 7zip wget usbutils nmap httpie" -PKG_HARDWARE="modemmanager usb_modeswitch solaar brightnessctl terminus-font fprintd libfprint" -PKG_DEV="go rustup plantuml caddy docker docker-buildx docker-compose" -PKG_DESKTOP="bitwarden telegram-desktop darktable digikam obs-studio blender haruna mpv fcitx5 fcitx5-chinese-addons fcitx5-configtool fcitx5-pinyin-zhwiki steam" - -sudo pacman -Syu --needed $PKG_BASE $PKG_SYSTEM $PKG_HARDWARE $PKG_DEV $PKG_DESKTOP \ No newline at end of file diff --git a/scripts/install_vscode_extensions.sh b/scripts/install_vscode_extensions.sh deleted file mode 100755 index 9aa1e15..0000000 --- a/scripts/install_vscode_extensions.sh +++ /dev/null @@ -1,17 +0,0 @@ -#/bin/bash - -EXTENSIONS=( - "yzhang.markdown-all-in-one" # https://open-vsx.org/extension/yzhang/markdown-all-in-one - "golang.Go" # https://open-vsx.org/extension/golang/Go - "EditorConfig.EditorConfig" # https://open-vsx.org/extension/EditorConfig/EditorConfig - "vscode-icons-team.vscode-icons" # https://open-vsx.org/extension/vscode-icons-team/vscode-icons - "Vue.volar" # https://open-vsx.org/extension/Vue/volar - "redhat.vscode-yaml" # https://open-vsx.org/extension/redhat/vscode-yaml - "tamasfe.even-better-toml" # https://open-vsx.org/extension/tamasfe/even-better-toml - "jebbs.plantuml" # https://open-vsx.org/extension/jebbs/plantuml - "rust-lang.rust-analyzer" # https://open-vsx.org/extension/rust-lang/rust-analyzer -) - -for ext in "${EXTENSIONS[@]}"; do - code --install-extension "$ext" -done diff --git a/scripts/stow.sh b/scripts/stow.sh deleted file mode 100755 index 8bdcd5b..0000000 --- a/scripts/stow.sh +++ /dev/null @@ -1,8 +0,0 @@ -#/bin/bash - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -DOTFILE_DIR="$(cd $SCRIPT_DIR && cd ../dotfiles && pwd)" -# echo $DOTFILE_DIR - -# add link -cd $DOTFILE_DIR && stow -d $DOTFILE_DIR -t $HOME --no-folding --adopt */ \ No newline at end of file diff --git a/scripts/system.sh b/scripts/system.sh deleted file mode 100644 index fdd7e16..0000000 --- a/scripts/system.sh +++ /dev/null @@ -1,146 +0,0 @@ -#/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