ca.desrt.dconf

  1. 測試 gsettings 設定 org.gtk.Settings.FileChooser 的 window-size,回應 ca.desrt.dconf 沒有提供任何服務。
    [dywang@deyu ~]$ GSETTINGS_SCHEMA_DIR=/usr/lib64/firefox/bundled/share/glib-2.0/\
    schemas/ gsettings set org.gtk.Settings.FileChooser window-size "(800,600)"
    
    (process:31471): dconf-WARNING **: failed to commit changes to dconf: 
    GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: 
    The name ca.desrt.dconf was not provided by any .service files
    
  2. 從 CentOS 7 (192.168.122.7) 複製 ca.desrt.dconf.service 服務設定檔到 bundled 相對的目錄,但因 firefox 預設還是到 /usr/share/dbus-1/services 目錄找服務設定檔,所以建立連結檔。
    [root@deyu modules]# mkdir -p /usr/lib64/firefox/bundled/share/dbus-1/services/
    [root@deyu modules]# scp -p 192.168.122.7:/usr/share/dbus-1/services/\
    ca.desrt.dconf.service /usr/lib64/firefox/bundled/share/dbus-1/services/
    ca.desrt.dconf.service                        100%   68     0.1KB/s   00:00    
    [root@deyu modules]# ln -s /usr/lib64/firefox/bundled/share/dbus-1/services/\
    ca.desrt.dconf.service /usr/share/dbus-1/services/ca.desrt.dconf.service
    
  3. 從 CentOS 7 (192.168.122.7) 複製 ca.desrt.dconf.service 服務惷定的執行檔 dconf-service 到 bundled 相對的目錄。並修改 ca.desrt.dconf 設定。
    [root@deyu modules]# scp -p 192.168.122.7:/usr/libexec/dconf-service /usr/lib64/firefox/bundled/libexec/
    dconf-service                                 100%   83KB  83.0KB/s   00:00    
    [root@deyu modules]# vim /usr/share/dbus-1/services/ca.desrt.dconf.service
    [root@deyu modules]# cat /usr/share/dbus-1/services/ca.desrt.dconf.service
    [D-BUS Service]
    Name=ca.desrt.dconf
    Exec=/usr/lib64/firefox/bundled/libexec/dconf-service
    
  4. 但執行 gsetting 設定時 dconf timeout。
    [dywang@deyu ~]$ GSETTINGS_SCHEMA_DIR=/usr/lib64/firefox/bundled/share/glib-2.0\
    /schemas/ gsettings set org.gtk.Settings.FileChooser window-size "(800,600)"
    (process:12623): dconf-WARNING **: failed to commit changes to dconf: Timeout was reached
    
  5. 原因為 dconf-service 執行時取用 RHEL/CentOS 6 的 /usr/lib64 函式庫,必須將環境變數 LD_LIRARY_PATH 改為 /usr/lib64/firefox/bundled/lib64。將 ca.desrt.dconf 服務改執行腳本 dconf-service.sh。
    [root@deyu ~]# cat /usr/share/dbus-1/services/ca.desrt.dconf.service
    [D-BUS Service]
    Name=ca.desrt.dconf
    Exec=/usr/lib64/firefox/bundled/bin/dconf-service.sh
    
  6. 建立 dconf-service.sh 腳本,執行 dconf-service 時環境變數 LD_LIRARY_PATH 設定為 /usr/lib64/firefox/bundled/lib64。將 ca.desrt.dconf 服務改執行腳本。
    [root@deyu ~]# vim /usr/lib64/firefox/bundled/bin/dconf-service.sh 
    [root@deyu ~]# cat /usr/lib64/firefox/bundled/bin/dconf-service.sh
    #!/bin/bash
    LD_LIBRARY_PATH=/usr/lib64/firefox/bundled/lib64/ /usr/lib64/firefox/bundled/libexec/dconf-service
    exit 0
    
  7. dconf-service.sh 設定為可執行。
    [root@deyu ~]# chmod +x /usr/lib64/firefox/bundled/bin/dconf-service.sh
    
  8. gsetting 設定正常。
    [dywang@deyu ~]$ GSETTINGS_SCHEMA_DIR=/usr/lib64/firefox/bundled/share/glib-2.0\
    /schemas/ gsettings set org.gtk.Settings.FileChooser window-size "(800,600)"
    [dywang@deyu ~]$ GSETTINGS_SCHEMA_DIR=/usr/lib64/firefox/bundled/share/glib-2.0\
    /schemas/ gsettings get org.gtk.Settings.FileChooser window-size
    (800, 600)
    [dywang@deyu ~]$ GSETTINGS_SCHEMA_DIR=/usr/lib64/firefox/bundled/share/glib-2.0\
    /schemas/ gsettings set org.gtk.Settings.FileChooser window-size "(700,600)"
    [dywang@deyu ~]$ GSETTINGS_SCHEMA_DIR=/usr/lib64/firefox/bundled/share/glib-2.0\
    /schemas/ gsettings get org.gtk.Settings.FileChooser window-size
    (700, 600)
    
  9. 開啟 firefox,使用開檔功能時,設定選檔視窗後,在家目錄的 .config 目錄下會新增 dconf 目錄,並將設定存入目錄下的 user 設定檔。
    [dywang@deyu ~]$ ll .config/dconf/user 
    -rw-rw-r--. 1 dywang dywang 787 Dec 21 17:50 .config/dconf/user