今年早些时候开始进入Archlinux的怀抱,虽然默认的界面也很漂亮,但是感觉还是苹果的主题更加合理一些,所以计划将ArchLinux美化成苹果界面。到开学的时候,我实现了对Archlinux的全面改造,所以在此专门写一篇博客介绍一下美化过程,同时由于系统升级也会带来一些问题,本文也追踪升级后带来的问题及处理方案。
下载各主题
1 2 3 4 5
| git clone git@gitee_fengzhenhua:fengzhenhua/WhiteSur-gtk-theme.git ./WhiteSur-gtk-theme git clone git@gitee_fengzhenhua:fengzhenhua/WhiteSur-icon-theme.git ./WhiteSur-icon-theme git clone git@gitee_fengzhenhua:fengzhenhua/WhiteSur-cursors.git ./WhiteSur-cursors git clone git@gitee_fengzhenhua:fengzhenhua/grub2-themes.git ./grub2-themes git clone git@gitee_fengzhenhua:fengzhenhua/WhiteSur-wallpapers.git ./WhiteSur-wallpapers
|
安装WhiteSur GTK Theme
主题
WhiteSur GTK Theme
需要安装一些依赖,这部分脚本已经自动处理了,所以本文不再列出,请参考
https://github.com/vinceliuice/WhiteSur-gtk-theme
或者 https://gitee.com/fengzhenhua/WhiteSur-gtk-theme。
1 2 3 4
| cd ./WhiteSur-gtk-theme chmod +x install.sh ./install.sh cd ..
|
完成之后可以设置程序界面为苹果主题。但是在2022年11月02日升级系统后发现nautilus
文件管理器的最小化,最大化,关闭按钮失去了渲染的效果。分析原因,Gnome
升级后很多程序使用gtk4
标准编写,而之前安装主题的时候默认没有安装关于gtk4
程序的美化配置,于是需要再安装一下Light
主题,这时需要注意使用gtk4
,即执行
1
| ./install.sh -l -c Light
|
同时,重启系统后发现登陆界面也失去了效果,所以需要重新再安装一下gdm
,执行命令
但是在[2023年03月31日星期五晴北京市北京师范大学]升级了我的Archlinux
后,再执行上述命令报错,如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Oops! Operation failed...
=========== ERROR LOG =========== >>>>>>> No error log found <<<<<< =========== ERROR INFO ========== FOUND : >>> lib-core.sh >>> lib-install.sh >>> tweaks.sh SNIPPET: >>> mv -n "${1}"{"",".bak"} TRACE : >>> signal_error >>> backup_file >>> install_gdm_theme >>> main =========== SYSTEM INFO ========= DISTRO : rolling;arch SUDO : yes GNOME : 42-0 REPO : 2023-03-29T14:48:35+0800
HINT: You can google or report to us the info above
https://github.com/vinceliuice/WhiteSur-gtk-theme/issues
|
通过分析得到问题出在文件lib-core.sh
上面,因为之前有备份文件,所以再次使用mv
备份时就出现了问题,解决方案就是删除
/usr/share/gnome-shell/gnome-shell-theme.gresource.bak
然后再执行命令。但是这可能是之前的脚本执行没有问题,但是升级后Archlinux
自身的问题。源码如下
WhiteSur-gtk-theme/shell/lib-core.sh1 2 3 4 5 6 7 8 9 10 11 12
| backup_file() { if [[ -f "${1}" || -d "${1}" ]]; then case "${2}" in sudo) sudo mv -n "${1}"{"",".bak"} ;; udo) udo mv -n "${1}"{"",".bak"} ;; *) sudo mv -n "${1}"{"",".bak"} ;; esac fi }
|
修改为备份进不再按存在文件时不覆盖,而是直接强制覆盖。修改后的代码为:
WhiteSur-gtk-theme/shell/lib-core.sh1 2 3 4 5 6 7 8 9 10 11 12
| backup_file() { if [[ -f "${1}" || -d "${1}" ]]; then case "${2}" in sudo) sudo mv -f "${1}"{"",".bak"} ;; udo) udo mv -f "${1}"{"",".bak"} ;; *) mv -f "${1}"{"",".bak"} ;; esac fi }
|
安装图标
1 2 3 4
| cd ./WhiteSur-icon-theme chmode +x *.sh ./install.sh cd ..
|
安装光标主题
1 2 3 4
| cd ./WhiteSur-cursors chmod +x *.sh ./install.sh cd ..
|
安装壁纸
1 2 3 4 5
| cd ./WhiteSur-wallpapers chmod +x *.sh ./install-gnome-background.sh ./install-wallpapers.sh cd ..
|
安装GRUB
1 2 3 4
| cd ./grub2-themes chmod +x *.sh ./install.sh -b -t whitesur -i whitesur -s 1080p cd..
|
由于此主题所设置的GRUB
有些问题,导致重启后不能正常开机,此时需要用启动U盘
启动ArchLinux
原版的重构一下GRUB
.即重启U盘
后,执行命令:
获得硬盘信息(按照之前的文件,使用我之前的Dell-latitude3510的分区方案)
1 2 3 4 5
| NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 476.9G 0 disk ├─nvme0n1p1 259:1 0 1G 0 part ├─nvme0n1p2 259:2 0 16G 0 part └─nvme0n1p3 259:3 0 459.9G 0 part
|
挂载根分区和/boot/efi
分区
1 2
| mount /dev/nvme0n1p3 /mnt/ mount /nvme0n1p1 /mnt/boot/efi
|
执行构建GRUB
命令
1 2 3
| arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id= ArchLinux grub-mkconfig -o /boot/grub/grub.cfg
|