วิธีปรับแต่งหน้าจอเข้าสู่ระบบ Gnome ใน Debian


11

ฉันใช้ Debian เป็นครั้งแรกในช่วงสัปดาห์ที่แล้วและฉันได้จัดการกำหนดค่าตัวเลือกเดสก์ท็อปด้วยเครื่องมือ gnome-tweak แต่ฉันพยายามติดตั้งหน้าจอเข้าสู่ระบบเอง

ในระหว่างการวิจัยฉันทำฉันพบข้อมูลมากมายเกี่ยวกับการทำสิ่งนี้ใน Ubuntu, Linux Mint หรือ Arch Linux แต่ไม่ได้ข้อมูลอะไรมากมายเกี่ยวกับ "วิธีเดเบียน"

ฉันคิดว่า Gnome ใช้การกำหนดค่าของผู้ใช้ Debian-gdm สำหรับหน้าจอเข้าสู่ระบบ แต่ฉันไม่รู้ว่าจะเปลี่ยนแปลงได้อย่างไรฉันพยายามเปลี่ยนด้วย gnome-tweak-tools เป็นผู้ใช้คนอื่นและฉัน ยังพยายามแก้ไขการกำหนดค่าไฟล์ "/etc/gdm3/greeter.dconf-defaults" เพิ่มเส้นทางไปยังไฟล์ที่ฉันต้องการเป็นพื้นหลังในบรรทัด "picture-uri" "picture-options_'none" "ดูเหมือนจะไม่ทำอะไรเลย

วิธีใดที่ง่ายที่สุดในการปรับแต่ง

ฉันใช้ gnome-shell เวอร์ชัน 3.14.4 และ debian เวอร์ชัน 8.6


ฉันขาดอะไรที่ชัดเจนหรือไม่ หากคุณเพียงแค่ต้องการที่จะเปลี่ยนภาพพื้นหลังควรจะมีการตั้งค่า (ถึงแม้ว่าผมจะไม่สามารถทดสอบว่ามันเป็นผมใช้รุ่น GNOME ใหม่กว่า)
lw1.at

คำตอบ:


5

(ทดสอบบน 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


ฉันไม่ได้รับgnome-shell-theme.gresource.xmlไฟล์ในขณะที่เหลืออยู่ทำไม ... ? ฉันมี Gnome 3.22
71GA

4

หลังจากทำการค้นคว้าเพิ่มเติมและทำการทดสอบในภายหลังในที่สุดฉันก็เปลี่ยนพื้นหลังการเข้าสู่ระบบซึ่งเป็นขั้นตอนที่ฉันปฏิบัติตาม:

1) ฉันได้วางไฟล์ที่ฉันต้องการเป็นพื้นหลังในไดเรกทอรี / usr / share / pictures (ฉันได้สร้างไดเรกทอรีนั้นเอง)

2) ฉันเข้าสู่เทอร์มินัลและในฐานะผู้ใช้รูทฉันได้แก้ไขไฟล์ /etc/gdm3/greeter.dconf-defaults เพื่อให้มีลักษณะดังนี้:

[org/gnome/desktop/background]
picture-uri='file:///usr/share/Pictures/background.png'
picture-options='zoom'

[org/gnome/login-screen]
logo='/usr/share/icons/gnome/48x48/places/debian-swirl.png'
fallback-logo='/usr/share/icons/gnome/48x48/places/debian-swirl.png'
disable-user-list=true
disable-restart-buttons=true

(background.png เป็นภาพพื้นหลังจริงของฉัน)

3) เพื่อสร้างการกำหนดค่าใหม่ฉันรัน "dpkg-reconfigure gdm3" และ "dpkg-reconfigure gdebi-core"


1
นี้ชนเซสชั่น X ของฉันในการเริ่มต้นการแก้ไขได้โดยการยกเลิกการเปลี่ยนแปลงในคอนโซลแม้ว่า :)
มาร์ติน

คำเตือน! วิธีแก้ปัญหานี้จะทำให้ระบบของคุณขัดข้องหากพิจารณาอย่างเป็นทางการใน Debian Wiki: wiki.debian.org/GDM การ ประเมินผล:ดูเหมือนว่า Debian จะมีปัญหาในการรักษา Wiki ให้ทันสมัยอยู่เสมอ ถ้า Debian ต้องการที่จะเป็น GNU / Linux OS ที่ดีที่สุด (ซึ่งในความคิดของฉันเป็นแล้ว) ก็ต้องออกแบบใหม่มันเป็นวิกิเพื่อให้ใช้งานง่ายขึ้น (HTML5 / CSS 3.0 / ฐานข้อมูล) สำหรับผู้ใช้รายใหม่จะต้องไม่เกิดขึ้นซึ่งโซลูชันที่อธิบายอย่างเป็นทางการขัดข้องระบบของพวกเขา นี่เป็นสิ่งสำคัญเนื่องจากมันจะเปลี่ยนพวกเขาออกไปจาก Linux ... และเราไม่ต้องการสิ่งนั้น ...
71GA

1

น่าจะเป็นทางออกที่ง่ายที่สุดตอนนี้คือการใช้โปรแกรมต่อไปนี้: https://github.com/juhaku/loginized หมายเหตุ:ฉันเป็นผู้เขียนแอปพลิเคชันนี้

มันเป็นตัวจัดการล็อกอินของ GNOME GDM ซึ่งช่วยให้คุณเปลี่ยนชุดการเข้าสู่ระบบและภาพพื้นหลังได้เช่นกัน อาจมีฟีเจอร์ที่กำลังจะมีขึ้นในแอปพลิเคชัน


0

การทดสอบบางอย่างในระบบอื่น (SL7.4) พบปัญหา

"extractgst.sh" ไม่ได้สร้าง "gnome-shell-theme.gresource.xml" ซึ่งควรแก้ไขในขั้นตอนที่ 2 ของโซลูชันที่ 1 หากคุณเพิ่มการสร้างไฟล์ ".xml" ของโซลูชัน 2 คุณจะมี จำเป็นต้องใช้ไฟล์ "xml" เพื่อการตรวจสอบ

โซลูชัน 2 สคริปต์ใช้ "$ CREATED_TMP" ซึ่งไม่เคยมีการกำหนด กรุณาลบ "ถ้า" - สถานะ

ระวังการใช้ sudo กับสคริปต์ เปลี่ยนเป็นรูทด้วย "/ bin / su -" แล้วเรียกใช้สิ่งที่จำเป็นสำหรับสคริปต์ด้วยมือก่อน

ตอนนี้ปัญหาพิเศษกับ SL7 (Centos / RHEL7 clone) SL7 ใช้ SELinux ร่วมกับส่วนตรวจสอบเพื่อสร้างความปลอดภัยของระบบ หากไฟล์ระบบที่นี่มีการเปลี่ยนแปลงโดยสคริปต์ SELinux ไม่ทราบเกี่ยวกับพวกเขาและห้ามการใช้งานไฟล์เหล่านั้นจะไม่มีข้อมูลเกี่ยวกับสิ่งที่ส่งผลให้พื้นหลังสีดำที่เข้าสู่ระบบ สิ่งนี้สามารถแก้ไขได้โดยใช้คำสั่ง "restorecon" ซ้ำสำหรับไดเรกทอรีนี้ หลังจากออกจากระบบคุณจะได้รับหน้าจอเข้าสู่ระบบที่ต้องการ

เพิ่ม: restorecon ควรทำสำหรับ "/ usr / share / gnome-shell" เพราะนี่คือไดเรกทอรีทรัพยากร อาจเป็นไปได้ว่าการเรียกใช้ restorecon สำหรับไดเรกทอรี gnome สำหรับผู้ใช้นั้นเป็นเรื่องที่สมเหตุสมผลหากปัญหายังคงมีอยู่ แต่สำหรับฉันตอนนี้ทุกอย่างทำงานได้ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.