저는 지난 주에 처음으로 데비안을 사용했고 gnome-tweak-tools를 사용하여 일부 데스크톱 옵션을 성공적으로 구성했지만 로그인 화면을 사용자 정의하려고 했습니다.
제가 수행한 연구에서 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와 데비안 버전 8.6을 사용하고 있습니다.
답변1
(Ubuntu Gnome Shell 16.04+에서 테스트됨)
두 가지 방법. 대체 무슨 짓을 하고 있는지 알고 싶다면 팔로우하세요솔루션 #1. 스크립트가 모든 작업을 수행하도록 하려면 다음을 따르세요.솔루션 #2(하는 일은 모두 자동화 솔루션 #1 입니다)
솔루션 1
배경 정보:Gnome 로그인 배경은 직접 변경할 수 있는 매개변수가 아닙니다(이상합니다!). 이는 바이너리에 있는 Gnome Shell CSS 파일에 있습니다. 따라서 바이너리를 추출하고 수정한 다음 새 바이너리를 이전 바이너리로 교체해야 합니다.
1단계: Gnome 셸 바이너리 추출
다음 스크립트를 실행하여 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
하거나 노트북을 다시 시작하여 새로운 로그인 배경을 얻으세요 :))
답변2
몇 가지 조사와 테스트 끝에 마침내 로그인 배경을 변경했으며 다음 단계를 따랐습니다.
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"를 실행했습니다.
답변3
현재 가장 쉬운 해결책은 아마도 다음 앱을 사용하는 것입니다. https://github.com/juhaku/loginized.노트:나는 이 애플리케이션의 작성자입니다.
로그인 테마와 배경 이미지를 변경할 수 있는 GNOME GDM 로그인 테마 관리자입니다. 앱에 더 많은 기능이 추가될 수 있습니다.
답변4
다른 시스템(SL7.4)에 대한 일부 테스트에서 문제가 나타났습니다.
"extractgst.sh"는 해결 방법 1의 2단계에서 편집해야 하는 "gnome-shell-theme.gresource.xml"을 생성하지 않습니다. 솔루션 2의 ".xml" 파일 생성을 추가하면 검사에 필요한 "xml" 파일을 얻게 됩니다.
해결 방법 2 스크립트는 정의되지 않은 "$CREATED_TMP"를 사용합니다. 완전한 "if" 문을 삭제하세요.
스크립트에서 sudo를 사용할 때는 주의하세요. "/bin/su -"를 사용하여 루트로 변경하고 실행하려면 먼저 스크립트를 수동으로 실행해야 할 것 같습니다.
이제 SL7(Centos/RHEL7 복제본)의 특별한 문제입니다. SL7은 SELinux와 감사 부분을 사용하여 시스템 보안을 생성합니다. 여기의 시스템 파일이 스크립트에 의해 변경되면 SELinux는 해당 파일에 대해 알지 못하고 사용을 비활성화하며 로그인 시 검은색 배경이 나타나는 원인에 대한 정보가 없습니다. 이 문제는 이 디렉터리에서 "restorecon" 명령을 반복적으로 사용하여 해결할 수 있습니다. 로그아웃하면 원하는 로그인 화면 배경이 표시됩니다.
추가됨: "/usr/share/gnome-shell"은 리소스 디렉터리이므로 Restorecon을 수행해야 합니다. 문제가 지속되면 사용자의 gnome 디렉터리에서 Restorecon을 수행하는 것이 합리적일 수 있습니다. 하지만 저는 지금까지 일이 잘 진행되고 있습니다.