Ubuntu18.04.5深度定制主题,修改背景图片壁纸开机动画,完美去掉默认背景紫色

Ubuntu18.04.5深度定制主题,修改背景图片壁纸开机动画,完美去掉默认背景紫色

  • 问题描述
  • 修改后的效果
  • 详细操作步骤
    • 0. 准备图片
    • 1. 修改背景:grub引导启动界面(一般系统不显示可跳过此步骤)
    • 2. 修改背景:开/关机动画
    • 3. 修改背景:选择用户登录输入密码界面
    • 4. 修改桌面壁纸和锁屏壁纸
    • 5. 修改背景:命令行终端
    • 6. 去掉进入桌面时以#2c001e为背景色的闪烁(高风险

问题描述

如果你觉得Ubuntu的默认背景色看起来怪怪的,那就开始动手换掉它吧。

Ubuntu的默认背景色的值是#2c001e,此处对比网页白色背景,为了看着效果一样把色值调亮了

主要出现的位置有多处,对应需要不同的方法:

  1. grub引导启动界面
  2. 开/关机动画
  3. 选择用户登录输入密码界面
  4. 桌面壁纸和锁屏壁纸
  5. 命令行终端
  6. 进入桌面时以#2c001e为背景色闪烁

修改后的效果

详细操作步骤

以下步骤均在Ubuntu18.04.5上测试。其他版本上请小心驾驶,谨防翻车。

0. 准备图片

准备一张和显示器分辨率相同的png格式的图片wallpaper.png,运行如下命令。

sudo cp -i wallpaper.png /usr/share/backgrounds/
sudo chmod 644 /usr/share/backgrounds/wallpaper.png
sudo chown root /usr/share/backgrounds/wallpaper.png
sudo chgrp root /usr/share/backgrounds/wallpaper.png

1. 修改背景:grub引导启动界面(一般系统不显示可跳过此步骤)

运行

sudo gedit /etc/default/grub

找到GRUB_GFXMODE所在行

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

修改GRUB_GFXMODE为你的分辨率,并去掉它前面的#。保存退出。

GRUB_GFXMODE=1920x1080

放置你的图片并更新grub

sudo ln -s /usr/share/backgrounds/wallpaper.png /boot/grub/
sudo update-grub

2. 修改背景:开/关机动画

运行

sudo ln -sf /usr/share/backgrounds/wallpaper.png /usr/share/plymouth/themes/ubuntu-logo/wallpaper.png
sudo gedit /usr/share/plymouth/themes/ubuntu-logo/ubuntu-logo.script

在最后添加三行,保存退出

wallpaper_image = Image("wallpaper.png");
wallpaper_sprite = Sprite(wallpaper_image);
wallpaper_sprite.SetZ(-100);

3. 修改背景:选择用户登录输入密码界面

运行

sudo gedit /etc/alternatives/gdm3.css

找到

#lockDialogGroup {                                                               
  background: #2c001e url(resource:///org/gnome/shell/theme/noise-texture.png); 

修改为

#lockDialogGroup {                                                               
  background: url(file:///usr/share/backgrounds/wallpaper.png);

找到

  .login-dialog-user-list:expanded .login-dialog-user-list-item:selected {
    background-color: #dd4814;
    color: #ffffff; }
  .login-dialog-user-list:expanded .login-dialog-user-list-item:logged-in {
    border-right: 2px solid #dd4814; }

修改为透明,避免选择用户的框的背景与后面的整个背景不协调

  .login-dialog-user-list:expanded .login-dialog-user-list-item:selected {
    background-color: transparent;
    color: #ffffff; }
  .login-dialog-user-list:expanded .login-dialog-user-list-item:logged-in {
    border-right: 2px solid transparent; }

4. 修改桌面壁纸和锁屏壁纸

运行

ln -s /usr/share/backgrounds/wallpaper.png ~/Pictures/

桌面鼠标右键→更改背景→背景/锁定屏幕→图片→选择双击

5. 修改背景:命令行终端

推荐使用terminator

sudo apt-get install terminator
terminator

右键→配置文件首选项→配置→default→背景→透明背景→0.80

6. 去掉进入桌面时以#2c001e为背景色的闪烁(高风险

1) 问题描述:
登录成功后,从输入密码界面切换到桌面时,会有一个短暂的过度动画,该动画会以#2c001e为背景色闪现一下,逼死强迫症。
无语的是,这个颜色值硬编码在js脚本里,这个脚本又被打包进了二进制库文件,没有设置接口。
那干脆就直接对这个库文件开刀了
2) 解决思路
查看/usr/lib/gnome-shell/libgnome-shell.so,可以找到以下明文内容。SystemBackground直接把0x2c001eff作为背景色。
修改代码里的0x2c001eff或者file也许就能改掉Ubuntu那糟糕的颜色。

var DEFAULT_BACKGROUND_COLOR = (Desktop.is("ubuntu")) ? Clutter.Color.from_pixel(0x2c001eff) : Clutter.Color.from_pixel(0x2e3436ff);
...
var SystemBackground = new Lang.Class({
    Name: 'SystemBackground',

    _init() {
        let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/noise-texture.png');

        if (_systemBackground == null) {
            _systemBackground = new Meta.Background({ meta_screen: global.screen });
            _systemBackground.set_color(DEFAULT_BACKGROUND_COLOR);
            _systemBackground.set_file(file, GDesktopEnums.BackgroundStyle.WALLPAPER);

3) 操作步骤

  • 免责声明
    此处误操作会导致无法预估的灾难性后果。请提前备份重要数据,并做好重装系统的准备,否则还是放弃吧,安全第一。
    哪怕成功了,目前运行没问题。但还不能断言其稳定性和兼容性在将来是万无一失的。
    此处提供的内容仅供个人学习交流,使用以下方法造成的一切后果请自行承担。
  • 普通文本编辑器无法正确修改二进制文件,强烈建议使用vim的-b模式修改。vim教程请参考https://www.runoob.com/linux/linux-vim.html,主要用到这4组键:/, i, esc, :wq。

尽管直接修改颜色值能去掉#2c001e,但是新的颜色值依然和桌面壁纸不协调,过渡时还可能会闪一下。所以尝试其他方法。
阅读代码发现SystemBackground还读取了一个文件作为输入。于是修改其文件路径从而修改背景SystemBackground。
(注意:文件路径长度必须匹配原来的,否则无法正常开机进入桌面。比如原来的路径长的是52个字符,新的也要是52,不够就重命名图片文件用0补齐。)
运行

sudo cp -i /usr/lib/gnome-shell/libgnome-shell.so /tmp/libgnome-shell-bak.so
sudo apt -y install vim
sudo ln -sf /usr/share/backgrounds/wallpaper.png /usr/share/backgrounds/wallpaper00000000.png
sudo vim -b /usr/lib/gnome-shell/libgnome-shell.so

找到

        let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/noise-texture.png');

修改为

        let file = Gio.File.new_for_uri('file:///usr/share/backgrounds/wallpaper00000000.png');

至此,输入密码后,进入桌面时,只有一个从中间放大的动画,再也不见基佬紫。
如果不幸失败了无法进入桌面,请尝试恢复备份:

sudo cp /tmp/libgnome-shell-bak.so /usr/lib/gnome-shell/libgnome-shell.so

你可能感兴趣的:(ubuntu,系统安装)