(ทดสอบบน Ubuntu Gnome Shell 16.04+)
สองทาง. หากคุณต้องการที่จะรู้ว่าสิ่งที่คุณกำลังทำอยู่ทำตามโซลูชั่น # 1 หากคุณต้องการสคริปต์เดียวที่จะทำทุกอย่างให้คุณให้ทำตามโซลูชัน # 2 (ทั้งหมดจะทำเช่นนั้นโดยอัตโนมัติโซลูชัน # 1)
โซลูชันที่ 1
ข้อมูลพื้นหลัง:พื้นหลังการเข้าสู่ระบบ Gnome ไม่ใช่พารามิเตอร์ที่คุณสามารถเปลี่ยนได้โดยตรง (แปลก!) มีอยู่ในไฟล์ CSS ของ Gnome Shell ซึ่งมีอยู่ในไฟล์ไบนารี ดังนั้นคุณต้องแยกไฟล์ไบนารี่แก้ไขและแทนที่ไบนารี่ใหม่ด้วยไฟล์เก่า
ขั้นตอนที่ 1: แยกไฟล์ไบนารีของ Gnome shell
เรียกใช้สคริปต์ต่อไปนี้extractgst.sh
เพื่อแยกธีมเชลล์ Gnome ไปยัง~/shell-theme
ไดเรกทอรี
#!/bin/sh
workdir=${HOME}/shell-theme
if [ ! -d ${workdir}/theme ]; then
mkdir -p ${workdir}/theme
fi
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource
for r in `gresource list $gst`; do
gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/}
done
ขั้นตอนที่ 2: การปรับเปลี่ยน
- คัดลอกภาพพื้นหลังของคุณไปยังโฟลเดอร์
~/shell-theme/theme
นี้
- สร้างไฟล์ที่
~/shell-theme/theme/gnome-shell-theme.gresource.xml
มีเนื้อหา
- แทนที่ชื่อไฟล์ด้วยชื่อไฟล์ภาพพื้นหลังของคุณ
ตอนนี้เปิดgnome-shell.css
ไฟล์ในไดเรกทอรีและเปลี่ยน#lockDialogGroup
คำนิยามดังนี้
#lockDialogGroup {
background: #2e3436 url(filename);
background-size: [WIDTH]px [HEIGHT]px;
background-repeat: no-repeat;
}
ตั้งชื่อไฟล์ให้เป็นชื่อของภาพพื้นหลังและขนาดพื้นหลังให้เป็นความละเอียดของคุณ
ขั้นที่ 3: สร้างไบนารีชุดรูปแบบเชลล์ Gnome ใหม่และแทนที่ที่มีอยู่
ภายในไดเร็กทอรีธีมรัน
glib-compile-resources gnome-shell-theme.gresource.xml
คุณจะได้รับไฟล์ไบนารี คัดลอกไปที่
/usr/share/gnome-shell
เริ่ม GDM ใหม่โดยใช้
service gdm restart
หากไม่ทำงานหรือติดขัดให้รีสตาร์ทคอมพิวเตอร์เพื่อดูรูปพื้นหลังการเข้าสู่ระบบใหม่ :))
โซลูชันที่ 2
ตกลงตามที่ระบุไว้มีวิธีที่ง่ายกว่าในการทำให้สิ่งเหล่านี้เป็นแบบอัตโนมัติ เพียงบันทึกสคริปต์นี้เป็น login-background.sh
WORKDIR=~/tmp/gdm-login-background
GST=/usr/share/gnome-shell/gnome-shell-theme.gresource
GSTRES=$(basename $GST)
mkdir -p $WORKDIR
cd $WORKDIR
mkdir theme
for r in `gresource list $GST`; do
gresource extract $GST $r >$WORKDIR$(echo $r | sed -e 's/^\/org\/gnome\/shell\//\//g')
done
cd theme
cp "$IMAGE" ./
echo "
#lockDialogGroup {
background: #2e3436 url(resource:///org/gnome/shell/theme/$(basename $IMAGE));
background-size: cover;
background-repeat: no-repeat;
}" >>gnome-shell.css
echo '<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/shell/theme">' >"${GSTRES}.xml"
for r in `ls *.*`; do
echo " <file>$r</file>" >>"${GSTRES}.xml"
done
echo ' </gresource>
</gresources>' >>"${GSTRES}.xml"
glib-compile-resources "${GSTRES}.xml"
sudo mv "/usr/share/gnome-shell/$GSTRES" "/usr/share/gnome-shell/${GSTRES}.backup"
sudo mv "$GSTRES" /usr/share/gnome-shell/
rm -r $WORKDIR
if [ "$CREATED_TMP" = "1" ]; then
rm -r ~/tmp
fi
รันสคริปต์โดยใช้
IMAGE=~/Bat.jpg sh login-background.sh
ตอนนี้เริ่ม gdm โดยใช้service gdm restart
หรือรีสตาร์ทแล็ปท็อปสำหรับพื้นหลังการเข้าสู่ระบบใหม่ของคุณ :))
ข้อมูลอ้างอิง:
https://wiki.archlinux.org/index.php/GDM
https://bbs.archlinux.org/viewtopic.php?id=197036