BG

Fedora メモ(2)

Fedora14 での, スクリーンセーバーのロック画面(ダイアログ) 周りの設定です。

ロック画面の背景を変更する

現時点(gnome-screensaver-2.30) では, ユーザ毎の設定は出来ない様なので, 背景のデフォルト値を変更する必要があります。(変更の影響はロック画面以外にも適応されるので注意)

  • 画像を変更する例
$ sudo gconftool-2 \
    --direct \
    --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
    --type=string \
    --set /desktop/gnome/background/picture_filename "/usr/share/backgrounds/nature/Aqua.jpg"
  • 黒一色にする例
$ sudo gconftool-2 \
    --direct \
    --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
    --type=string \
    --set /desktop/gnome/background/picture_filename ""
$ sudo gconftool-2 \
    --direct \
    --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
    --type=string \
    --set /desktop/gnome/background/color_shading_type "solid"
$ sudo gconftool-2 \
    --direct \
    --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults \
    --type=string \
    --set /desktop/gnome/background/primary_color "#000000"
    • 上記を実行すると /etc/gconf/gconf.xml.defaults 以下の内容が変更されるので, 必要なら事前にバックアップを取得します
    • 変更を有効にするには, 再ログイン(gnome-screensaver プロセスの再起動)が必要です

ロック画面のテーマを変更する

テーマをダウンロードして '/usr/share/gnome-screnasaver' 以下に展開をします。(テーマは gnome-look.org で, 'lock dialog' や 'lock screen' 等のキーワードで検索すれば見つかります)

GTK+ には UI を XML ファイルから読み込んで構築する機能として libglade と GtkBuilder がありますが, libglade は廃止される予定であり gnome-screnasaver は 2.28 から GtkBuilder へ移行が行われました。
このため, ダウンロードした物に .ui ファイル(GtkBuilder 用)が含まれていない場合は .glade ファイル(libglade 用) を元に .ui を作成する必要があります。

  • 変換コマンドで .glade を .ui に変換(gtk-builder-convert は gtk2-devel パッケージに含まれています)
$ sudo gtk-builder-convert /usr/share/gnome-screensaver/lock-dialog-system.glade /usr/share/gnome-screensaver/lock-dialog-system.ui
  • 自動変換だけでは, 上手く動かないので以下の規則に従って手動修正
    • interface 要素直下に存在する object 要素の class を 'GtkFrame' に, id を 'lock-dialog' にする
    • 元々, id が 'lock-dialog' だった object 要素の id は 適当な物に変更する(他の object 要素と重複しなければ何でも良い筈)
    • 物によっては, レイアウトが崩れるので個別に修正が必要(かも知れません)
$ diff -u /usr/share/gnome-screensaver/lock-dialog-system.ui.tmp /usr/share/gnome-screensaver/lock-dialog-system.ui
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!--*- mode: xml -*-->
 <interface>
-  <object class="GtkWindow" id="window1">
+  <object class="GtkFrame" id="lock-dialog">
     <property name="title" translatable="yes"/>
     <property name="type">GTK_WINDOW_TOPLEVEL</property>
     <property name="window_position">GTK_WIN_POS_NONE</property>
@@ -16,7 +16,7 @@
     <property name="focus_on_map">True</property>
     <property name="urgency_hint">False</property>
     <child>
-      <object class="GtkAlignment" id="lock-dialog">
+      <object class="GtkAlignment" id="alignment">
         <property name="height_request">314</property>
         <property name="visible">True</property>
         <property name="xalign">0.5</property>
    • 編集をミスすると, ロック画面から抜けられなくなる恐れがあるので, 別途コンソールを取った方が良いです
    • (万が一, 抜けられなくなった場合は, 別コンソールから該当ユーザの gnome-screensaver プロセスを kill すればロック画面は解除されます)
  • /usr/share/gnome-screensaver/lock-dialog-xxxx.ui ファイルが完成したら, テーマを適応します。(xxxx は任意の名前)
$ sudo gconftool-2 --type=string --set /apps/gnome-screensaver/lock_dialog_theme xxxx

メモ:
現時点(2011/01/16)での, 開発リポジトリを見るとロック画面のテーマ変更機能が削除された様なので, 今後の計画は判りませんが, 将来(バージョン 2.32 辺りから?) 本機能は利用出来なくなる可能性があります。(Remove the lock dialog theme support)

参考: