Customizing the GNOME Shell

本文介绍了如何自定义 GNOME 3 Shell,包括调整主题、窗口边框、添加按钮等。文章讨论了 GNOME Shell 的配置系统从 GConf 转变为 GSettings,并提供了使用 gsettings 和其他工具进行定制的方法。此外,还涉及了图标、应用程序概览、字体和屏幕保护等方面的自定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Customizing the GNOME Shell

In this post I will share a modicum of what I have learned to date about customizing the new GNOME 3 Shell. This is based on the GNOME Shell in Fedora 15 Alpha. The good news is that the GNOME Shell is highly configurable. The bad news is that some of this information may become out-of-date quite quickly as the GNOME Shell is still somewhat of a moving target even though it is supposedly close to release.

Here is what the GNOME Shell looks like in Fedora 15 Alpha with all updates applied as of March 23rd 2011:

GNOME3 Shell screenshot

By the way, that is a really beautiful wallpaper! I am glad that cooler heads prevailed and the Fedora Project has finally decided to go with its own custom wallpaper rather than use the default upstream GNOME Shell wallpaper.

Here is what the Applications Overview looks like:

GNOME3 Shell screenshot

Here is what a GNOME terminal window looks like:

GNOME3 Shell screenshot

This is the default theme which, by the way, is called Adwaita. This post will show you how to make the titlebar smaller so that it does not take up so much space on the screen, add back in the minimize and maximize buttons, color the title bars, and more.

GNOME 3 contains some major changes with respect to persistent application settings data. TheGConf CORBA-based configuration system is no longer used; it has been replaced by GSettings. GSettings is agnostic about its backend; dconf is merely one backend. Key names are restricted to lowercase characters, numbers and dashes (-). Names must begin with a character, must be 32 characters or less in length, must not end with a dash and must not contain consecutive dashes. GSettings stores its schemas in a binary format, unlike GConf which uses XML files. Fedora 14 was the first Fedora release to includeGSettings. See the glib-compile-schemas manpage for further information.

A new command line utility gsettings, which replaces gconftool-2, is provided to enable you to easily interface with GSettings.

$ gsettings
Usage:
  gsettings COMMAND [ARGS...]

Commands:
  help                      Show this information
  list-schemas              List installed schemas
  list-relocatable-schemas  List relocatable schemas
  list-keys                 List keys in a schema
  list-children             List children of a schema
  list-recursively          List keys and values, recursively
  range                     Queries the range of a key
  get                       Get the value of a key
  set                       Set the value of a key
  reset                     Reset the value of a key
  writable                  Check if a key is writable
  monitor                   Watch for changes

Use 'gsettings help COMMAND' to get detailed help.

$ gsettings list-schemas
org.gnome.nautilus.desktop
org.gnome.color-manager
org.gnome.gedit.plugins.filebrowser.nautilus
org.gnome.settings-daemon.peripherals.wacom
org.gnome.Empathy.hints
org.gnome.settings-daemon.peripherals.touchpad
org.gnome.settings-daemon.plugins.keyboard
org.gnome.Nautilus.Sendto
org.gnome.FileRoller.Dialogs.BatchAdd
org.freedesktop.Telepathy.Logger
org.gnome.yelp
....
....
org.gnome.gcalctool
org.gnome.settings-daemon.peripherals.wacom.eraser
org.gnome.FileRoller.General
org.gnome.libgnomekbd.preview
org.gnome.gnome-system-log
org.gnome.libgnomekbd.keyboard
org.webkitgtk-1.0
org.gnome.gedit.state
org.gnome.system.proxy
org.gnome.gnome-system-monitor.disktreenew
org.gnome.eog.ui
org.gnome.gnome-screenshot
org.gnome.settings-daemon.plugins
org.gnome.gedit.preferences.encodings
org.gnome.Bluetooth.nst
org.gnome.desktop.lockdown
org.gnome.crypto.cache
org.gnome.settings-daemon.peripherals.wacom.stylus
org.gnome.DejaDup
org.gnome.eog.plugins
org.gnome.gnome-system-monitor.proctree
org.gnome.eog.fullscreen
org.gnome.settings-daemon.plugins.housekeeping
org.gnome.FileRoller.Dialogs.Add
org.gnome.desktop.thumbnailers
org.gnome.Empathy.sounds
org.gnome.desktop.a11y.keyboard

$ gsettings list-schemas | grep shell
org.gnome.shell
org.gnome.shell.clock
org.gnome.shell.recorder
org.gnome.shell.calendar

$ gsettings list-keys org.gnome.shell
command-history
development-tools
disabled-extensions
disabled-open-search-providers
enable-app-monitoring
favorite-apps
looking-glass-history


As an example, here is how to enable the digital clock on the top panel to show the date and seconds:

$ gsettings list-keys org.gnome.shell.clock
show-date
show-seconds

# note the failure if you are root!
# gsettings set  org.gnome.shell.clock show-date true
**
GLib-GIO:ERROR:gdbusconnection.c:2279:initable_init: assertion failed: (connection->initialization_error == NULL)
Aborted (core dumped)

$ gsettings set  org.gnome.shell.clock show-date true
$ gsettings set  org.gnome.shell.clock show-seconds true


Here is how to list all the settings for the GNOME Shell:

$ gsettings list-recursively org.gnome.shell
org.gnome.shell command-history ['r', 'lg', '?', 'ff', 'lg', 'js', '?', 're', 'r', 'command-history', 'ch', 'lg', 'lgh', 'b', 'r', 'd', 'ff', 'r', 'GSettings', 'GSetting', 'r', 'version', 'ver', 'v']
org.gnome.shell development-tools true
org.gnome.shell disabled-extensions @as []
org.gnome.shell disabled-open-search-providers @as []
org.gnome.shell enable-app-monitoring true
org.gnome.shell favorite-apps ['gnome-terminal.desktop', 'mozilla-firefox.desktop', 'gnome-baobab.desktop', 'gimp.desktop', 'gnome-eog.desktop', 'gnome-screenshot.desktop']
org.gnome.shell looking-glass-history @as []
org.gnome.shell.calendar show-weekdate false
org.gnome.shell.clock show-date true
org.gnome.shell.clock show-seconds true
org.gnome.shell.recorder file-extension 'webm'
org.gnome.shell.recorder framerate 15
org.gnome.shell.recorder pipeline ''


While the gsettings utility enables you to modify certain properties of the GNOME Shell, it does not enable you to really customize the current theme. So do not throw awaygconftool-2 just yet! There are a whole range of settings that gsettings does not have access to. For instance you can add back the window minimize and maximize buttoms as follows:

gconftool-2 --set /desktop/gnome/shell/windows/buttom_layout --type string :minimize,maximize,close


You will have to log out and log back in for the change to take place. Alternatively you can use the Configuration Editor (gconf-editor) which, if installed, is available under Applications, System Tools.

GNOME3 Shell screenshot

Another method is to use dconf-editor which you may need to load on your system as it is not installed by default. However, be warned,dconf and dconf-editor both seem to be highly unstable as of the date of this post. Worse still, absolutely no documentation or manpages are currently provided fordconf or dconf-editor.

Alternatively, you can customize a small subset of the GNOME Shell using the new Tweak Tool (gnome-tweak-tool.)
GNOME3 Shell screenshot
Astute readers will notice that my version of gnome-tweak-tool is different than the default OOTB tool. That is because I edited/usr/share/gnome-tweak-tool/shell.ui and changed a few property settings such as:

1
2
<property name= "title" translatable= "yes" >GNOME Tweak Tool</property>
<property name= "resizable" >True</property>


This utility, like many others, does not show up in the Application Overview. You have to use the Searchbar to access it.

Incidently, Tweak Tool can be used to add minimize and maximize buttons to windows. See the above screenshot. Observe also the different theme and the dark colored titlebars. All will be revealed! Just keep reading.

As stated previously, the default GNOME Shell theme is Adwaita. You can modify this theme by editing/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml. One of the more interesting sections of this configuration file is:

01
02
03
04
05
06
07
08
09
10
11
< frame_geometry name = "normal" title_scale = "medium" rounded_top_left = "4" rounded_top_right = "4" >
         < distance name = "left_width" value = "1" />
         < distance name =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值