Files
dock/kali
2025-12-01 23:37:25 +08:00

256 lines
6.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Kali Linux 增强版中文配置脚本
# 包含图形界面工具和更多配置选项
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# 检查是否为 root 用户
if [ "$EUID" -ne 0 ]; then
echo -e "${RED}请使用 sudo 运行此脚本${NC}"
exit 1
fi
# 显示菜单
show_menu() {
clear
echo -e "${GREEN}=================================${NC}"
echo -e "${GREEN} Kali Linux 中文配置工具 ${NC}"
echo -e "${GREEN}=================================${NC}"
echo -e "${YELLOW}请选择配置选项:${NC}"
echo "1. 完整中文环境配置(推荐)"
echo "2. 仅安装中文字体"
echo "3. 仅安装中文输入法"
echo "4. 仅配置区域设置"
echo "5. 安装中文GUI工具"
echo "6. 修复常见中文问题"
echo "7. 查看当前语言设置"
echo "8. 退出"
echo -e "${BLUE}=================================${NC}"
}
# 完整配置
full_setup() {
echo -e "${YELLOW}[1/10] 更新软件源...${NC}"
apt update -y
echo -e "${YELLOW}[2/10] 安装中文字体包...${NC}"
apt install -y \
fonts-wqy-microhei \
fonts-wqy-zenhei \
xfonts-wqy \
ttf-wqy-microhei \
ttf-wqy-zenhei \
fonts-noto-cjk \
fonts-droid-fallback
echo -e "${YELLOW}[3/10] 安装语言包...${NC}"
apt install -y \
language-pack-zh-hans \
language-pack-gnome-zh-hans \
kde-l10n-zhcn
echo -e "${YELLOW}[4/10] 配置区域设置...${NC}"
sed -i '/zh_CN.UTF-8/s/^# //g' /etc/locale.gen
locale-gen
update-locale LANG=zh_CN.UTF-8
echo -e "${YELLOW}[5/10] 安装输入法框架...${NC}"
# IBUS 方案
apt install -y \
ibus \
ibus-libpinyin \
ibus-pinyin \
ibus-gtk ibus-gtk3
# Fcitx 方案(备用)
apt install -y \
fcitx \
fcitx-pinyin \
fcitx-googlepinyin \
fcitx-config-gtk \
fcitx-frontend-gtk2 \
fcitx-frontend-gtk3 \
fcitx-module-cloudpinyin
echo -e "${YELLOW}[6/10] 安装中文软件包...${NC}"
apt install -y \
manpages-zh \
chromium-l10n \
libreoffice-l10n-zh-cn \
thunderbird-l10n-zh-cn
echo -e "${YELLOW}[7/10] 安装中文桌面环境支持...${NC}"
if dpkg -l | grep -q "kali-desktop"; then
apt install -y \
kali-desktop-base \
kali-desktop-xfce \
kali-desktop-gnome
fi
echo -e "${YELLOW}[8/10] 配置环境变量...${NC}"
cat > /etc/profile.d/chinese.sh << EOF
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:zh
export LC_CTYPE="zh_CN.UTF-8"
export LC_NUMERIC="zh_CN.UTF-8"
export LC_TIME="zh_CN.UTF-8"
export LC_COLLATE="zh_CN.UTF-8"
export LC_MONETARY="zh_CN.UTF-8"
export LC_MESSAGES="zh_CN.UTF-8"
export LC_PAPER="zh_CN.UTF-8"
export LC_NAME="zh_CN.UTF-8"
export LC_ADDRESS="zh_CN.UTF-8"
export LC_TELEPHONE="zh_CN.UTF-8"
export LC_MEASUREMENT="zh_CN.UTF-8"
export LC_IDENTIFICATION="zh_CN.UTF-8"
export LC_ALL=zh_CN.UTF-8
EOF
echo -e "${YELLOW}[9/10] 配置用户设置...${NC}"
if [ ! -z "$SUDO_USER" ]; then
USER_HOME=$(getent passwd $SUDO_USER | cut -d: -f6)
# 创建输入法自动启动
mkdir -p "$USER_HOME/.config/autostart"
cat > "$USER_HOME/.config/autostart/ibus.desktop" << EOF
[Desktop Entry]
Type=Application
Name=IBus
Exec=ibus-daemon -drx
EOF
chown -R $SUDO_USER:$SUDO_USER "$USER_HOME/.config"
fi
echo -e "${YELLOW}[10/10] 清理缓存...${NC}"
apt autoremove -y
apt clean
echo -e "${GREEN}完整配置完成!${NC}"
}
# 仅安装字体
fonts_only() {
apt update
apt install -y \
fonts-wqy-microhei \
fonts-wqy-zenhei \
fonts-noto-cjk \
fonts-droid-fallback
echo -e "${GREEN}中文字体安装完成!${NC}"
}
# 仅安装输入法
input_method_only() {
apt update
apt install -y ibus ibus-libpinyin
echo -e "${GREEN}中文输入法安装完成!${NC}"
echo "请运行 'ibus-setup' 配置输入法"
}
# 配置区域设置
locale_setup() {
apt install -y locales
dpkg-reconfigure locales
echo -e "${GREEN}区域设置完成!${NC}"
}
# 安装GUI工具
gui_tools() {
apt update
apt install -y \
gedit \
gucharmap \
gnome-tweaks \
gnome-software \
synaptic
echo -e "${GREEN}GUI工具安装完成${NC}"
}
# 修复常见问题
fix_issues() {
echo -e "${YELLOW}修复常见中文问题...${NC}"
# 修复字体显示问题
fc-cache -fv
# 修复乱码问题
if [ -f "/etc/default/locale" ]; then
sed -i 's/LANG=.*/LANG="zh_CN.UTF-8"/' /etc/default/locale
fi
# 修复输入法问题
if [ ! -z "$SUDO_USER" ]; then
USER_HOME=$(getent passwd $SUDO_USER | cut -d: -f6)
echo "export GTK_IM_MODULE=ibus" >> "$USER_HOME/.bashrc"
echo "export QT_IM_MODULE=ibus" >> "$USER_HOME/.bashrc"
echo "export XMODIFIERS=@im=ibus" >> "$USER_HOME/.bashrc"
fi
echo -e "${GREEN}问题修复完成!${NC}"
}
# 显示当前设置
show_current() {
echo -e "${YELLOW}当前语言设置:${NC}"
echo "LANG: $LANG"
echo "LANGUAGE: $LANGUAGE"
echo "LC_ALL: $LC_ALL"
echo ""
echo -e "${YELLOW}已安装的语言包:${NC}"
locale -a | grep zh
echo ""
echo -e "${YELLOW}已安装的中文字体:${NC}"
fc-list :lang=zh
}
# 主循环
while true; do
show_menu
read -p "请输入选项 (1-8): " choice
case $choice in
1)
full_setup
read -p "按回车键继续..."
;;
2)
fonts_only
read -p "按回车键继续..."
;;
3)
input_method_only
read -p "按回车键继续..."
;;
4)
locale_setup
read -p "按回车键继续..."
;;
5)
gui_tools
read -p "按回车键继续..."
;;
6)
fix_issues
read -p "按回车键继续..."
;;
7)
show_current
read -p "按回车键继续..."
;;
8)
echo -e "${GREEN}再见!${NC}"
exit 0
;;
*)
echo -e "${RED}无效选项,请重新输入${NC}"
sleep 2
;;
esac
done