
私は先週初めてDebianを使用し、gnome-tweak-toolsを使用していくつかのデスクトップオプションを正常に設定しましたが、ログイン画面をカスタマイズしようとしました。
私が行った研究では、Ubuntu、Linux Mint、またはArch Linuxでこれを行う方法について多くの情報が見つかりましたが、「Debian方式」についてはあまりありませんでした。
私の考えでは、GnomeがDebian-gdmユーザーのログイン画面設定を使用しているようですが、実際にどのように変更するのかわかりませんでした。 「/etc/gdm3 /greeter.dconf-defaults」ファイル構成の「picture-uri」行に、背景として使用するファイルのパスを追加します。 "picture-options_'none'"も何もしないようです。
カスタマイズする最も簡単な方法は何ですか?
私はgnome-shellバージョン3.14.4とDebianバージョン8.6を使用しています。
答え1
(Ubuntu Gnome Shell 16.04+でテスト済み)
2つの方法。一体何をしているのか知りたいならフォローしてくださいソリューション#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)端末に接続し、rootユーザーとして/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 -"を使ってrootに変更して実行するには、まずスクリプトを手動で実行する必要があるようです。
これで、SL7(Centos / RHEL7レプリカ)の特別な問題です。 SL7 は SELinux と監査部分を使用してシステムセキュリティを生成します。ここのシステムファイルがスクリプトによって変更されると、SELinuxはそのファイルについて知らず、使用を無効にし、ログイン時に黒い背景が表示される原因についての情報はありません。この問題は、このディレクトリで「restorecon」コマンドを繰り返し使用することで解決できます。ログアウトすると、必要なログイン画面の背景が表示されます。
追加: "/usr/share/gnome-shell" はリソース ディレクトリなので、Restorecon を実行する必要があります。問題が解決しない場合は、ユーザーの gnome ディレクトリで Restorecon を実行するのが妥当である可能性があります。しかし、私はこれまで仕事がうまくいっています。