[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r106871: Update X Resources chapter o
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r106871: Update X Resources chapter of Emacs manual. |
Date: |
Sun, 15 Jan 2012 23:26:39 +0800 |
User-agent: |
Bazaar (2.3.1) |
------------------------------------------------------------
revno: 106871
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Sun 2012-01-15 23:26:39 +0800
message:
Update X Resources chapter of Emacs manual.
* doc/emacs/xresources.texi (X Resources): Describe GTK+ case first.
(Resources): Don't use borderWidth as an example, since it doesn't
work with GTK+.
(Table of Resources): Clarify role of several resources, including
the Emacs 24 behavior of cursorBlink etc.
(Face Resources): Node deleted. Recommend using Customize
instead. Add paragraph to `Table of Resources' node summarizing
how to use X resources for changing faces.
(Lucid Resources): Rewrite, omitting description of font names,
referring to the Fonts node instead.
(LessTif Resources): Copyedits.
(GTK resources): Rewrite, describing the difference between gtk2
and gtk3.
(GTK Resource Basics): New node.
(GTK Widget Names, GTK Names in Emacs): Rewrite.
(GTK styles): Just refer to Fonts node for GTK font format.
* doc/emacs/display.texi (Faces): Document the cursor face.
modified:
admin/FOR-RELEASE
doc/emacs/ChangeLog
doc/emacs/anti.texi
doc/emacs/display.texi
doc/emacs/emacs.texi
doc/emacs/xresources.texi
=== modified file 'admin/FOR-RELEASE'
--- a/admin/FOR-RELEASE 2012-01-14 11:23:45 +0000
+++ b/admin/FOR-RELEASE 2012-01-15 15:26:39 +0000
@@ -144,7 +144,7 @@
emerge-xtra.texi
entering.texi cyd
files.texi cyd
-fixit.texi
+fixit.texi cyd
fortran-xtra.texi
frames.texi cyd
glossary.texi
@@ -175,7 +175,7 @@
vc-xtra.texi cyd
vc1-xtra.texi cyd
windows.texi cyd
-xresources.texi
+xresources.texi cyd
** Check the Lisp manual.
=== modified file 'doc/emacs/ChangeLog'
--- a/doc/emacs/ChangeLog 2012-01-14 09:17:25 +0000
+++ b/doc/emacs/ChangeLog 2012-01-15 15:26:39 +0000
@@ -1,3 +1,24 @@
+2012-01-15 Chong Yidong <address@hidden>
+
+ * xresources.texi (X Resources): Describe GTK+ case first.
+ (Resources): Don't use borderWidth as an example, since it doesn't
+ work with GTK+.
+ (Table of Resources): Clarify role of several resources, including
+ the Emacs 24 behavior of cursorBlink etc.
+ (Face Resources): Node deleted. Recommend using Customize
+ instead. Add paragraph to `Table of Resources' node summarizing
+ how to use X resources for changing faces.
+ (Lucid Resources): Rewrite, omitting description of font names,
+ referring to the Fonts node instead.
+ (LessTif Resources): Copyedits.
+ (GTK resources): Rewrite, describing the difference between gtk2
+ and gtk3.
+ (GTK Resource Basics): New node.
+ (GTK Widget Names, GTK Names in Emacs): Rewrite.
+ (GTK styles): Just refer to Fonts node for GTK font format.
+
+ * display.texi (Faces): Document the cursor face.
+
2012-01-14 Chong Yidong <address@hidden>
* cmdargs.texi (Action Arguments): No need to mention
=== modified file 'doc/emacs/anti.texi'
--- a/doc/emacs/anti.texi 2012-01-05 09:46:05 +0000
+++ b/doc/emacs/anti.texi 2012-01-15 15:26:39 +0000
@@ -3,135 +3,19 @@
@c See file emacs.texi for copying conditions.
@node Antinews, Mac OS / GNUstep, X Resources, Top
address@hidden Emacs 22 Antinews
address@hidden Emacs 23 Antinews
@c Update the emacs.texi Antinews menu entry with the above version number.
For those users who live backwards in time, here is information
-about downgrading to Emacs version 22.3. We hope you will enjoy the
+about downgrading to Emacs version 23.4. We hope you will enjoy the
greater simplicity that results from the absence of many Emacs
@value{EMACSVER} features.
@itemize @bullet
-
address@hidden
-We have switched to a character representation specially designed for
-Emacs. Rather than forcing all the widely used scripts into artificial
-alignment, as Unicode does, Emacs treats them all equally, giving
-each one a place in the space of character codes. We have eliminated
-the confusing practice, in Emacs 23, whereby one character can belong
-to multiple character sets. Now each script has its own variant, and
-they all are different as far as Emacs is concerned. For example,
-there's a Latin-1 c-cedilla character, and there's a Latin-2
-c-cedilla; searching a buffer for the Latin-1 variant only finds that
-variant, but not the others.
-
address@hidden
-Emacs now uses its own special internal encoding for address@hidden
-characters, known as @samp{emacs-mule}. This was imperative to
-support several different variants of the same character, each one
-belonging to its own script: @samp{emacs-mule} marks each character
-with its script, to better discern them from one another.
-
address@hidden
-For simplicity, the functions @code{encode-coding-region} and
address@hidden no longer accept an argument saying where
-to store the result of their conversions. The result always replaces
-the original, so there's no need to look for it elsewhere.
-
address@hidden
-Emacs no longer performs font anti-aliasing. If your fonts look ugly,
-try choosing a larger font and increasing the screen resolution.
-Admittedly, this becomes difficult as you go further back in time,
-since available screen resolutions will decrease.
-
address@hidden
-The Fontconfig font library is no longer supported. To specify a
-font, you must use an XLFD (X Logical Font Descriptor). The other
-ways of specifying fonts---so-called ``Fontconfig'' and ``GTK'' font
-names---are redundant, so they have been removed.
-
address@hidden
-Transient Mark mode is now disabled by default. Furthermore, some
-commands that operate specifically on the region when it is active and
-Transient Mark mode is enabled (such as @code{fill-paragraph}
address@hidden, and @code{indent-for-tab-command}), no longer do
-so.
-
address@hidden
-Holding @key{shift} while typing a motion command no longer creates a
-temporarily active region, since that's inconsistent with how Emacs
-normally handles keybindings. The variable @code{shift-select-mode}
-has been deleted. You can, however, still create temporarily active
-regions by dragging the mouse.
-
address@hidden
-The line motion commands, @kbd{C-n} and @kbd{C-p}, now move by logical
-text lines, not screen lines. Even if a long text line is continued
-over multiple screen lines, @kbd{C-n} and @kbd{C-p} treat it as a
-single line, because that's ultimately what it is.
-
address@hidden
-Visual Line mode, which provides ``word wrap'' functionality, has been
-removed. You can still use Long Lines mode to gain an approximation
-of word wrapping, though this has some drawbacks---for instance,
-syntax highlighting often doesn't work well on wrapped lines.
-
address@hidden
address@hidden now runs @code{recenter} instead of
address@hidden This always sets the current line at the
-center of the window, instead of cycling through the center, top, and
-bottom of the window on successive invocations. This lets you type
address@hidden C-l C-l C-l} to be @emph{absolutely sure} that you have
-recentered the line.
-
address@hidden
-The way Emacs generates possible minibuffer completions is now much
-simpler to understand. It matches alternatives to the text before
-point, ignoring the text after point; it also does not attempt to
-perform partial completion if the first completion attempt fails.
-
address@hidden
-Typing @kbd{M-n} at the start of the minibuffer history list no longer
-attempts to generate guesses of possible minibuffer input. It instead
-does the straightforward thing, by issuing the message @samp{End of
-history; no default available}.
-
address@hidden
-Individual buffers can no longer display faces specially. The text
-scaling commands @kbd{C-x C-+}, @kbd{C-x C--}, and @kbd{C-x C-0} have
-been removed, and so has the buffer face menu bound to
address@hidden
-
address@hidden
-VC no longer supports fileset-based operations on distributed version
-control systems (DVCSs) such as Arch, Bazaar, Subversion, Mercurial,
-and Git. For instance, multi-file commits will be performed by
-committing one file at a time. As you go further back in time, we
-will remove DVCS support entirely, so you should migrate your projects
-to CVS.
-
address@hidden
-Rmail now uses a special file format, Babyl format, specifically designed
-for storing and editing mail. When you visit a file in Rmail, or get new
-mail, Rmail converts it automatically to Babyl format.
-
address@hidden
-Emacs can no longer display frames on X windows and text terminals
-(ttys) simultaneously. If you start Emacs as an X application, it
-can only create X frames; if you start Emacs on a tty, it can only use
-that tty. No more confusion about which type of frame
address@hidden will use in any given Emacs session!
-
address@hidden
-Emacs can no longer be started as a daemon. You can be sure that if
-you don't see Emacs, then it's not running.
-
address@hidden
-Emacs has added support for many soon-to-be-non-obsolete platforms,
-including VMS, DECstation, SCO Unix, and systems lacking alloca.
-Support for Sun windows has been added.
address@hidden
+FIXME
@item
To keep up with decreasing computer memory capacity and disk space, many
-other functions and files have been eliminated in Emacs 22.3.
+other functions and files have been eliminated in Emacs 23.4.
@end itemize
=== modified file 'doc/emacs/display.texi'
--- a/doc/emacs/display.texi 2012-01-10 06:20:22 +0000
+++ b/doc/emacs/display.texi 2012-01-15 15:26:39 +0000
@@ -489,10 +489,20 @@
changes for future Emacs sessions. @xref{Face Customization}. A face
does not have to specify every single attribute; often it inherits
most attributes from another face. Any ultimately unspecified
-attribute is taken from a face named @code{default}, whose attributes
-are all specified. The @code{default} face is the default for
-displaying text, and its background color is also used as the frame's
-background color.
+attribute is taken from the face named @code{default}.
+
+ The @code{default} face is the default for displaying text, and all
+of its attributes are specified. Its background color is also used as
+the frame's background color.
+
address@hidden cursor face
+ Another special face is the @code{cursor} face. On graphical
+displays, the background color of this face is used to draw the text
+cursor. None of the other attributes of this face have any effect;
+the foreground color for text under the cursor is taken from the
+background color of the underlying text. On text terminals, the
+appearance of the text cursor is determined by the terminal, not by
+the @code{cursor} face.
You can also use X resources to specify attributes of any particular
face. @xref{Resources}.
=== modified file 'doc/emacs/emacs.texi'
--- a/doc/emacs/emacs.texi 2012-01-14 09:17:25 +0000
+++ b/doc/emacs/emacs.texi 2012-01-15 15:26:39 +0000
@@ -210,7 +210,7 @@
* GNU Free Documentation License:: The license for this documentation.
* Emacs Invocation:: Hairy startup options.
* X Resources:: X resources for customizing Emacs.
-* Antinews:: Information about Emacs version 22.
+* Antinews:: Information about Emacs version 23.
* Mac OS / GNUstep:: Using Emacs under Mac OS and GNUstep.
* Microsoft Windows:: Using Emacs on Microsoft Windows and MS-DOS.
* Manifesto:: What's GNU? Gnu's Not Unix!
@@ -1124,15 +1124,15 @@
* Resources:: Using X resources with Emacs (in general).
* Table of Resources:: Table of specific X resources that affect Emacs.
-* Face Resources:: X resources for customizing faces.
* Lucid Resources:: X resources for Lucid menus.
* LessTif Resources:: X resources for LessTif and Motif menus.
* GTK resources:: Resources for GTK widgets.
GTK resources
-* GTK widget names:: How widgets in GTK are named in general.
-* GTK Names in Emacs:: GTK widget names in Emacs.
+* GTK Resource Basics:: Basic usage of GTK+ resources.
+* GTK Widget Names:: How GTK+ widgets are named.
+* GTK Names in Emacs:: GTK+ widgets used by Emacs.
* GTK styles:: What can be customized in a GTK widget.
Emacs and Mac OS / GNUstep
=== modified file 'doc/emacs/xresources.texi'
--- a/doc/emacs/xresources.texi 2012-01-06 10:17:23 +0000
+++ b/doc/emacs/xresources.texi 2012-01-15 15:26:39 +0000
@@ -6,31 +6,26 @@
@appendix X Options and Resources
You can customize some X-related aspects of Emacs behavior using X
-resources, as is usual for programs that use X. On MS-Windows, you
-can customize some of the same aspects using the system registry.
address@hidden Registry}.
+resources, as is usual for programs that use X.
- When Emacs is built using an ``X toolkit'', such as Lucid or
-LessTif, you need to use X resources to customize the appearance of
-the widgets, including the menu-bar, scroll-bar, and dialog boxes.
-This is because the libraries that implement these don't provide for
-customization through Emacs. GTK+ widgets use a separate system of
+ When Emacs is compiled with GTK+ support, the appearance of various
+graphical widgets, such as the menu-bar, scroll-bar, and dialog boxes,
+is determined by
@ifnottex
``GTK resources'', which we will also describe.
@end ifnottex
@iftex
-``GTK resources.'' In this chapter we describe the most commonly used
-resource specifications. For full documentation, see the online
-manual.
-
address@hidden Add xref for LessTif/Motif menu resources.
+``GTK resources''.
@end iftex
+When Emacs is built without GTK+ support, the appearance of these
+widgets is determined by additional X resources.
+ On MS-Windows, you can customize some of the same aspects using the
+system registry (@pxref{MS-Windows Registry}).
@menu
* Resources:: Using X resources with Emacs (in general).
* Table of Resources:: Table of specific X resources that affect Emacs.
-* Face Resources:: X resources for customizing faces.
* Lucid Resources:: X resources for Lucid menus.
* LessTif Resources:: X resources for LessTif and Motif menus.
* GTK resources:: Resources for GTK widgets.
@@ -63,60 +58,41 @@
using the @samp{-xrm} command line option, as explained below.)
Each line in the X resource file specifies a value for one option or
-for a collection of related options. Each resource specification
+for a collection of related options. The order in which the lines
+appear in the file does not matter. Each resource specification
consists of a @dfn{program name} and a @dfn{resource name}. Case
distinctions are significant in each of these names. Here is an
example:
@example
-emacs.borderWidth: 2
+emacs.cursorColor: dark green
@end example
address@hidden
The program name is the name of the executable file to which the
resource applies. For Emacs, this is normally @samp{emacs}. To
specify a definition that applies to all instances of Emacs,
regardless of the name of the Emacs executable, use @samp{Emacs}.
The resource name is the name of a program setting. For instance,
-Emacs recognizes a @samp{borderWidth} resource that controls the width
-of the external border for graphical frames.
+Emacs recognizes a @samp{cursorColor} resource that controls the color
+of the text cursor.
Resources are grouped into named classes. For instance, the
address@hidden class contains both the @samp{borderWidth} resource
-(which we just described), as well as the @samp{internalBorder}
-resource, which controls the width of the internal border for
-graphical frames. Instead of using a resource name, you can use a
-class name to specify the same value for all resources in that class.
-Here's an example:
-
address@hidden
-emacs.BorderWidth: 2
address@hidden example
-
- If you specify a value for a class, it becomes the default for all
-resources in that class. You can specify values for individual
-resources as well; these override the class value, for those
-particular resources. The following example specifies 2 as the
-default width for all borders, but overrides this value with 4 for the
-external border:
-
address@hidden
-emacs.BorderWidth: 2
-emacs.borderWidth: 4
address@hidden example
address@hidden ifnottex
-
- The order in which the lines appear in the file does not matter.
-One way to experiment with the effect of different resource settings
-is to use the @code{editres} program. See the @code{editres} man page
-for more details.
address@hidden class contains the @samp{cursorColor},
address@hidden and @samp{pointerColor} resources (@pxref{Table of
+Resources}). Instead of using a resource name, you can use a class
+name to specify the default value for all resources in that class,
+like this:
+
address@hidden
+emacs.Foreground: dark green
address@hidden example
Emacs does not process X resources at all if you set the variable
address@hidden to a address@hidden value, or if you
-specify the @samp{-Q} (or @samp{--quick}) command-line argument
-(@pxref{Initial Options}). (The @samp{-Q} argument automatically sets
address@hidden to @code{t}.)
address@hidden to a address@hidden value. If you invoke
+Emacs with the @samp{-Q} (or @samp{--quick}) command-line option,
address@hidden is automatically set to @code{t}
+(@pxref{Initial Options}).
@ifnottex
In addition, you can use the following command-line options to
@@ -162,98 +138,93 @@
@node Table of Resources
@appendixsec Table of X Resources for Emacs
- This table lists the resource names that designate options for
-Emacs, not counting those for the appearance of the menu bar, each
-with the class that it belongs to:
+ This table lists the X resource names that Emacs recognizes,
+excluding those that control the appearance of graphical widgets like
+the menu bar:
@table @asis
@item @code{background} (class @code{Background})
-Background color name.
+Background color (@pxref{Colors}).
@item @code{bitmapIcon} (class @code{BitmapIcon})
Tell the window manager to display the Emacs icon if @samp{on}; don't
-do so if @samp{off}. (The icon is usually shown in the ``taskbar'' on
-a graphical desktop.)
+do so if @samp{off}. @xref{Icons X}, for a description of the icon.
address@hidden
@item @code{borderColor} (class @code{BorderColor})
-Color name for the external border.
+Color of the frame's external border. This has no effect if Emacs is
+compiled with GTK+ support.
address@hidden
@item @code{borderWidth} (class @code{BorderWidth})
-Width in pixels of the external border.
+Width of the frame's external border, in pixels. This has no effect
+if Emacs is compiled with GTK+ support.
@end ifnottex
@item @code{cursorColor} (class @code{Foreground})
-Color name for text cursor (point).
+Text cursor color. If this resource is specified when Emacs starts
+up, Emacs sets its value as the background color of the @code{cursor}
+face (@pxref{Faces}).
address@hidden
@item @code{cursorBlink} (class @code{CursorBlink})
-Specifies whether to make the cursor blink. The default is @samp{on}. Use
address@hidden or @samp{false} to turn cursor blinking off.
address@hidden ifnottex
+If the value of this resource is @samp{off} or @samp{false} or
address@hidden at startup, Emacs disables Blink Cursor mode (@pxref{Cursor
+Display}).
@item @code{font} (class @code{Font})
-Font name for the @code{default} font. @xref{Fonts}. You can also
+Font name for the @code{default} face (@pxref{Fonts}). You can also
specify a fontset name (@pxref{Fontsets}).
@item @code{fontBackend} (class @code{FontBackend})
-The backend(s) to use for drawing fonts; if multiple backends are
-specified, they must be comma-delimited and given in order of
-precedence. On X, for instance, the value @samp{x,xft} tells Emacs to
+Comma-delimited list of backend(s) to use for drawing fonts, in order
+of precedence. For instance, the value @samp{x,xft} tells Emacs to
draw fonts using the X core font driver, falling back on the Xft font
-driver if that fails. Normally, you can leave this resource unset, in
-which case Emacs tries using all font backends available on your
-graphical device.
+driver if that fails. Normally, you should leave this resource unset,
+in which case Emacs tries using all available font backends.
@item @code{foreground} (class @code{Foreground})
-Color name for text.
+Default foreground color for text.
@item @code{geometry} (class @code{Geometry})
-Window size and position. Be careful not to specify this resource as
address@hidden, because that may affect individual menus as well
-as the Emacs frame itself.
-
-If this resource specifies a position, that position applies only to the
-initial Emacs frame (or, in the case of a resource for a specific frame
-name, only that frame). However, the size, if specified here, applies to
-all frames.
-
address@hidden
+Window size and position. The value should be a size and position
+specification, of the same form as in the @samp{-g} or
address@hidden command-line option (@pxref{Window Size X}).
+
+The size applies to all frames in the Emacs session, but the position
+applies only to the initial Emacs frame (or, in the case of a resource
+for a specific frame name, only that frame).
+
+
+Be careful not to specify this resource as @samp{emacs*geometry}, as
+that may affect individual menus as well as the main Emacs frame.
+
@item @code{fullscreen} (class @code{Fullscreen})
The desired fullscreen size. The value can be one of @code{fullboth},
address@hidden, @code{fullwidth} or @code{fullheight}, which correspond to
-the command-line options @samp{-fs}, @samp{-mm}, @samp{-fw}, and @samp{-fh}
-(@pxref{Window Size X}).
-
-Note that this applies to the initial frame only.
address@hidden ifnottex
-
address@hidden, @code{fullwidth} or @code{fullheight}, which
+correspond to the command-line options @samp{-fs}, @samp{-mm},
address@hidden, and @samp{-fh} (@pxref{Window Size X}). Note that this
+applies to the initial frame only.
+
address@hidden
@item @code{iconName} (class @code{Title})
Name to display in the icon.
@item @code{internalBorder} (class @code{BorderWidth})
-Width in pixels of the internal border.
+Width of the internal frame border, in pixels.
address@hidden ifnottex
@item @code{lineSpacing} (class @code{LineSpacing})
@cindex line spacing
address@hidden leading
-Additional space (@dfn{leading}) between lines, in pixels.
+Additional space between lines, in pixels.
@item @code{menuBar} (class @code{MenuBar})
@cindex menu bar
-Give frames menu bars if @samp{on}; don't have menu bars if @samp{off}.
address@hidden
address@hidden Resources}, and @ref{LessTif Resources},
address@hidden ifnottex
address@hidden
address@hidden Resources},
address@hidden iftex
-for how to control the appearance of the menu bar if you have one.
+If the value of this resource is @samp{off} or @samp{false} or
address@hidden, Emacs disables Menu Bar mode at startup (@pxref{Menu Bars}).
@ifnottex
@item @code{minibuffer} (class @code{Minibuffer})
-If @samp{none}, don't make a minibuffer in this frame.
-It will use a separate minibuffer frame instead.
+If @samp{none}, Emacs will not make a minibuffer in this frame; it
+will use a separate minibuffer frame instead.
@item @code{paneFont} (class @code{Font})
@cindex font for menus
@@ -261,7 +232,9 @@
@end ifnottex
@item @code{pointerColor} (class @code{Foreground})
-Color of the mouse cursor.
+Color of the mouse cursor. This has no effect in many graphical
+desktop environments, as they do not let Emacs change the mouse cursor
+this way.
@ifnottex
@item @code{privateColormap} (class @code{PrivateColormap})
@@ -271,7 +244,6 @@
@item @code{reverseVideo} (class @code{ReverseVideo})
Switch foreground and background default colors if @samp{on}, use colors as
specified if @samp{off}.
address@hidden ifnottex
@item @code{screenGamma} (class @code{ScreenGamma})
@cindex gamma correction
@@ -281,7 +253,9 @@
@item @code{scrollBarWidth} (class @code{ScrollBarWidth})
@cindex scrollbar width
The scroll bar width in pixels, equivalent to the frame parameter
address@hidden
address@hidden Do not set this resource if Emacs is
+compiled with GTK+ support.
address@hidden ifnottex
@ifnottex
@item @code{selectionFont} (class @code{SelectionFont})
@@ -306,24 +280,16 @@
@item @code{toolBar} (class @code{ToolBar})
@cindex tool bar
-Number of lines to reserve for the tool bar. A zero value suppresses
-the tool bar. For the Emacs tool bar (i.e.@: not Gtk+), if the value
-is non-zero and @code{auto-resize-tool-bars} is address@hidden, the
-tool bar's size will be changed automatically so that all tool bar
-items are visible. If the value of @code{auto-resize-tool-bars} is
address@hidden, the tool bar expands automatically, but does not
-contract automatically. To contract the tool bar, you must redraw the
-frame by entering @kbd{C-l}. For the Gtk+ tool bar, any non-zero
-value means on and @code{auto-resize-tool-bars} has no effect.
+If the value of this resource is @samp{off} or @samp{false} or
address@hidden, Emacs disables Tool Bar mode at startup (@pxref{Tool Bars}).
@item @code{useXIM} (class @code{UseXIM})
@cindex XIM
@cindex X input methods
@cindex input methods, X
-Turn off use of X input methods (XIM) if @samp{false} or @samp{off}.
-This is only relevant if your Emacs is actually built with XIM
-support. It is potentially useful to turn off XIM for efficiency,
-especially slow X client/server links.
+Disable use of X input methods (XIM) if @samp{false} or @samp{off}.
+This is only relevant if your Emacs is built with XIM support. It
+might be useful to turn off XIM on slow X client/server links.
@item @code{verticalScrollBars} (class @code{ScrollBars})
Give frames scroll bars if @samp{on}; don't have scroll bars if
@@ -331,143 +297,51 @@
@ifnottex
@item @code{visualClass} (class @code{VisualClass})
-Specify the ``visual'' that X should use. This tells X how to handle
-colors.
-
-The value should start with one of @samp{TrueColor},
address@hidden, @samp{DirectColor}, @samp{StaticColor},
address@hidden, and @samp{StaticGray}, followed by
address@hidden@var{depth}}, where @var{depth} is the number of color planes.
-Most terminals only allow a few ``visuals,'' and the @samp{dpyinfo}
-program outputs information saying which ones.
+The @dfn{visual class} for X color display. If specified, the value
+should start with one of @samp{TrueColor}, @samp{PseudoColor},
address@hidden, @samp{StaticColor}, @samp{GrayScale}, and
address@hidden, followed by @address@hidden, where @var{depth}
+is the number of color planes.
@end ifnottex
@end table
address@hidden Face Resources
address@hidden X Resources for Faces
-
- You can use resources to customize the appearance of particular
-faces (@pxref{Faces}):
-
address@hidden @code
address@hidden @var{face}.attributeForeground
-Foreground color for face @var{face}.
address@hidden @var{face}.attributeBackground
-Background color for face @var{face}.
address@hidden @var{face}.attributeUnderline
-Underline flag for face @var{face}. Use @samp{on} or @samp{true} for
-yes.
address@hidden @var{face}.attributeStrikeThrough
address@hidden @var{face}.attributeOverline
address@hidden @var{face}.attributeBox
address@hidden @var{face}.attributeInverse
-Likewise, for other boolean font attributes.
address@hidden @var{face}.attributeStipple
-The name of a pixmap data file to use for the stipple pattern, or
address@hidden to not use stipple for the face @var{face}.
address@hidden @var{face}.attributeBackgroundPixmap
-The background pixmap for the face @var{face}. Should be a name of a
-pixmap file or @code{false}.
address@hidden @var{face}.attributeFont
-Font name (full XFD name or valid X abbreviation) for face @var{face}.
-Instead of this, you can specify the font through separate attributes.
address@hidden table
-
- Instead of using @code{attributeFont} to specify a font name, you can
-select a font through these separate attributes:
-
address@hidden @code
address@hidden @var{face}.attributeFamily
-Font family for face @var{face}.
address@hidden @var{face}.attributeHeight
-Height of the font to use for face @var{face}: either an integer
-specifying the height in units of 1/address@hidden, or a floating point
-number that specifies a scale factor to scale the underlying face's
-default font, or a function to be called with the default height which
-will return a new height.
address@hidden @var{face}.attributeWidth
address@hidden @var{face}.attributeWeight
address@hidden @var{face}.attributeSlant
-Each of these resources corresponds to a like-named font attribute,
-and you write the resource value the same as the symbol you would use
-for the font attribute value.
address@hidden @var{face}.attributeBold
-Bold flag for face @var{face}---instead of @code{attributeWeight}. Use
@samp{on} or @samp{true} for
-yes.
address@hidden @var{face}.attributeItalic
-Italic flag for face @var{face}---instead of @code{attributeSlant}.
address@hidden table
-
+ You can also use X resources to customize individual Emacs faces
+(@pxref{Faces}). For example, setting the resource
address@hidden@var{face}.attributeForeground} is equivalent to customizing the
address@hidden attribute of the face @var{face}. However, we
+recommend customizing faces from within Emacs, instead of using X
+resources. @xref{Face Customization}.
+
address@hidden
@node Lucid Resources
@appendixsec Lucid Menu And Dialog X Resources
@cindex Menu X Resources (Lucid widgets)
@cindex Dialog X Resources (Lucid widgets)
@cindex Lucid Widget X Resources
address@hidden
- If the Emacs installed at your site was built to use the X toolkit
-with the Lucid menu widgets, then the menu bar is a separate widget and
-has its own resources. The resource names contain @samp{pane.menubar}
-(following, as always, the name of the Emacs invocation, or @samp{Emacs},
-which stands for all Emacs invocations). Specify them like this:
-
address@hidden
address@hidden: @var{value}
address@hidden example
-
address@hidden
-For example, to specify the font @samp{Courier-12} for the menu-bar items,
-write this:
address@hidden ifnottex
address@hidden
- If the Emacs installed at your site was built to use the X toolkit
-with the Lucid menu widgets, then the menu bar is a separate widget
-and has its own resources. The resource specifications start with
address@hidden instance, to specify the font
address@hidden for the menu-bar items, write this:
address@hidden iftex
-
address@hidden
-Emacs.pane.menubar.font: Courier-12
address@hidden example
-
address@hidden
-To specify a font, use fontconfig font names as values to the @code{font}
-resource, or old style names:
-
address@hidden
-Emacs.pane.menubar.font: lucidasanstypewriter-10
address@hidden example
-
address@hidden
-Emacs first tries to open the font as an old style font, and if that fails
-as an fontconfig font. In rare cases, Emacs might do the wrong thing.
-
address@hidden
-The Lucid menus can display multilingual text in your locale with old style
-fonts. For more information about fontsets see the man page for
address@hidden To enable multilingual menu text you specify a
address@hidden resource instead of the font resource. If both
address@hidden and @code{fontSet} resources are specified, the
address@hidden resource is used.
-
address@hidden
-Resources for @emph{non-menubar} toolkit pop-up menus have
address@hidden instead of @samp{pane.menubar}. For example, to specify
-the font @samp{8x16} for the pop-up menu items, write this:
-
address@hidden
-Emacs.menu*.font: 8x16
address@hidden example
-
address@hidden
-For dialog boxes, use @samp{dialog*}:
-
address@hidden
-Emacs.dialog*.font: Sans-12
address@hidden example
-
- Here is a list of the specific resources for menu bars and pop-up menus:
+ If Emacs is compiled with the X toolkit support using Lucid widgets,
+you can use X resources to customize the appearance of the menu bar,
+pop-up menus, and dialog boxes. The resources for the menu bar fall
+in the @samp{pane.menubar} class (following, as always, either the
+name of the Emacs executable or @samp{Emacs} for all Emacs
+invocations). The resources for the pop-up menu are in the
address@hidden class. The resources for dialog boxes are in the
address@hidden class.
+
+ For example, to display menu bar entries with the @samp{Courier-12}
+font (@pxref{Fonts}), write this:
+
address@hidden
+Emacs.pane.menubar.font: Courier-12
address@hidden example
+
address@hidden
+Lucid widgets can display multilingual text in your locale. To enable
+this, specify a @code{fontSet} resource instead of a @code{font}
+resource. @xref{Fontsets}. If both @code{font} and @code{fontSet}
+resources are specified, the @code{fontSet} resource is used.
+
+Here is a list of resources for menu bars, pop-up menus, and dialogs:
@table @code
@item font
@@ -475,11 +349,11 @@
@item fontSet
Fontset for menu item text.
@item foreground
-Color of the foreground.
+Foreground color.
@item background
-Color of the background.
+Background color.
@item buttonForeground
-In the menu bar, the color of the foreground for a selected item.
+Foreground color for a selected item.
@ifnottex
@item horizontalSpacing
Horizontal spacing in pixels between items. Default is 3.
@@ -489,59 +363,51 @@
Horizontal spacing between the arrow (which indicates a submenu) and
the associated text. Default is 10.
@item shadowThickness
-Thickness of shadow line around the widget. Default is 1.
-
-Also determines the thickness of shadow lines around other objects,
-for instance 3D buttons and arrows. If you have the impression that
-the arrows in the menus do not stand out clearly enough or that the
-difference between ``in'' and ``out'' buttons is difficult to see, set
-this to 2. If you have no problems with visibility, the default
-probably looks better. The background color may also have some effect
-on the contrast.
+Thickness of shadow lines for 3D buttons, arrows, and other graphical
+elements. Default is 1.
@end ifnottex
@item margin
-The margin of the menu bar, in characters. Default is 1.
+Margin of the menu bar, in characters. Default is 1.
@end table
address@hidden
@node LessTif Resources
@appendixsec LessTif Menu X Resources
@cindex Menu X Resources (LessTif widgets)
@cindex LessTif Widget X Resources
- If the Emacs installed at your site was built to use the X toolkit
-with the LessTif or Motif widgets, then the menu bar, the dialog
-boxes, the pop-up menus, and the file-selection box are separate
-widgets and have their own resources.
+ If Emacs is compiled with the X toolkit support using LessTif or
+Motif widgets, you can use X resources to customize the appearance of
+the menu bar, pop-up menus, and dialog boxes. However, the resources
+are organized differently from Lucid widgets.
- The resource names for the menu bar contain @samp{pane.menubar}
-(following, as always, the name of the Emacs invocation, or
address@hidden, which stands for all Emacs invocations). Specify them
-like this:
+ The resource names for the menu bar are in the @samp{pane.menubar}
+class, and they must be specified in this form:
@smallexample
address@hidden@var{resource}: @var{value}
@end smallexample
- Each individual string in the menu bar is a subwidget; the subwidget's
-name is the same as the menu item string. For example, the word
address@hidden in the menu bar is part of a subwidget named
address@hidden Most likely, you want to specify the
-same resources for the whole menu bar. To do this, use @samp{*} instead
-of a specific subwidget name. For example, to specify the font
address@hidden for the menu-bar items, write this:
address@hidden
+For pop-up menus, the resources are in the @samp{menu*} class, instead
+of @samp{pane.menubar}. For dialog boxes, they are in @samp{dialog}.
+In each case, each individual menu string is a subwidget; the
+subwidget's name is the same as the menu item string. For example,
+the @samp{File} menu in the menu bar is a subwidget named
address@hidden
+
+ Typically, you want to specify the same resources for the whole menu
+bar. To do this, use @samp{*} instead of a specific subwidget name.
+For example, to specify the font @samp{8x16} for all menu bar items,
+including submenus, write this:
@smallexample
Emacs.pane.menubar.*.fontList: 8x16
@end smallexample
address@hidden
-This also specifies the resource value for submenus.
-
- Each item in a submenu in the menu bar also has its own name for X
-resources; for example, the @samp{File} submenu has an item named
address@hidden (current buffer)}. A resource specification for a submenu
-item looks like this:
+ Each item in a submenu also has its own name for X resources; for
+example, the @samp{File} submenu has an item named @samp{Save (current
+buffer)}. A resource specification for a submenu item looks like
+this:
@smallexample
address@hidden@address@hidden: @var{value}
@@ -574,46 +440,23 @@
@noindent
(This should be one long line.)
- It's impossible to specify a resource for all the menu-bar items
-without also specifying it for the submenus as well. So if you want the
-submenu items to look different from the menu bar itself, you must ask
-for that in two steps. First, specify the resource for all of them;
-then, override the value for submenus alone. Here is an example:
+ If you want the submenu items to look different from the menu bar
+itself, you must first specify the resource for all of them, then
+override the value for submenus alone. Here is an example:
@smallexample
Emacs.pane.menubar.*.fontList: 8x16
Emacs.pane.menubar.popup_*.fontList: 8x16
@end smallexample
address@hidden
-For LessTif pop-up menus, use @samp{menu*} instead of
address@hidden For example, to specify the font @samp{8x16} for
-the pop-up menu items, write this:
-
address@hidden
-Emacs.menu*.fontList: 8x16
address@hidden smallexample
-
address@hidden
-For LessTif dialog boxes, use @samp{dialog} instead of @samp{menu}:
-
address@hidden
-Emacs.dialog*.fontList: 8x16
-Emacs.dialog*.foreground: hotpink
address@hidden example
-
-To specify resources for the LessTif file-selection box, use
+ To specify resources for the LessTif file-selection box, use
@samp{fsb*}, like this:
@example
Emacs.fsb*.fontList: 8x16
@end example
address@hidden
address@hidden
address@hidden iftex
- Here is a list of the specific resources for LessTif menu bars and
-pop-up menus:
+ Here is a list of resources for LessTif menu bars and pop-up menus:
@table @code
@item armColor
@@ -638,227 +481,118 @@
@end table
@end ifnottex
-
@node GTK resources
@appendixsec GTK resources
address@hidden
- The most common way to customize the GTK widgets Emacs uses (menus,
-dialogs tool bars and scroll bars) is by choosing an appropriate
-theme, for example with the GNOME theme selector.
-
-You can also do Emacs specific customization by inserting GTK style
-directives in the file @file{~/.emacs.d/gtkrc}, but only if you have a
-Gtk+ version earlier than 3 (i.e.@: 2). Some GTK themes ignore
-customizations in @file{~/.emacs.d/gtkrc} so not everything works with
-all themes. To customize Emacs font, background, faces, etc., use the
-normal X resources (@pxref{Resources}). We will present some examples
-of customizations here, but for a more detailed description, see the
-online manual
-
- The first example is just one line. It changes the font on all GTK widgets
-to courier with size 12:
-
address@hidden
-gtk-font-name = "courier 12"
address@hidden smallexample
-
- The thing to note is that the font name is not an X font name, but a
-Pango font name. A Pango font name is basically of the format "family
-style size", where the style is optional as in the case above. A name
-with a style could be for example:
-
address@hidden
-gtk-font-name = "helvetica bold 10"
address@hidden smallexample
-
- To customize widgets you first define a style and then apply the style to
-the widgets. Here is an example that sets the font for menus, but not
-for other widgets:
-
address@hidden
-# @r{Define the style @samp{menufont}.}
-style "menufont"
address@hidden
- font_name = "helvetica bold 14" # This is a Pango font name
address@hidden
-
-# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{menufont}.}
-widget "*emacs-menuitem*" style "menufont"
address@hidden smallexample
-
-The widget name in this example contains wildcards, so the style will be
-applied to all widgets that match "*emacs-menuitem*". The widgets are
-named by the way they are contained, from the outer widget to the inner widget.
-So to apply the style "my_style" (not shown) with the full, absolute name, for
-the menubar and the scroll bar in Emacs we use:
-
address@hidden
-widget "Emacs.pane.menubar" style "my_style"
-widget "Emacs.pane.emacs.verticalScrollBar" style "my_style"
address@hidden smallexample
-
-But to avoid having to type it all, wildcards are often used. @samp{*}
-matches zero or more characters and @samp{?} matches one character. So "*"
-matches all widgets.
-
- Each widget has a class (for example GtkMenuItem) and a name
(emacs-menuitem).
-You can assign styles by name or by class. In this example we have used the
-class:
-
address@hidden
-style "menufont"
address@hidden
- font_name = "helvetica bold 14"
address@hidden
-
-widget_class "*GtkMenuBar" style "menufont"
address@hidden smallexample
-
address@hidden
-The names and classes for the GTK widgets Emacs uses are:
-
address@hidden address@hidden plus}} address@hidden and some}
address@hidden @code{emacs-filedialog}
address@hidden @code{GtkFileSelection}
address@hidden @code{emacs-dialog}
address@hidden @code{GtkDialog}
address@hidden @code{Emacs}
address@hidden @code{GtkWindow}
address@hidden @code{pane}
address@hidden @code{GtkVHbox}
address@hidden @code{emacs}
address@hidden @code{GtkFixed}
address@hidden @code{verticalScrollBar}
address@hidden @code{GtkVScrollbar}
address@hidden @code{emacs-toolbar}
address@hidden @code{GtkToolbar}
address@hidden @code{menubar}
address@hidden @code{GtkMenuBar}
address@hidden @code{emacs-menuitem}
address@hidden anything in menus
address@hidden multitable
-
- GTK absolute names are quite strange when it comes to menus
-and dialogs. The names do not start with @samp{Emacs}, as they are
-free-standing windows and not contained (in the GTK sense) by the
-Emacs GtkWindow. To customize the dialogs and menus, use wildcards like this:
-
address@hidden
-widget "*emacs-dialog*" style "my_dialog_style"
-widget "*emacs-filedialog* style "my_file_style"
-widget "*emacs-menuitem* style "my_menu_style"
address@hidden smallexample
-
- If you specify a customization in @file{~/.emacs.d/gtkrc}, then it
-automatically applies only to Emacs, since other programs don't read
-that file. For example, the drop down menu in the file dialog can not
-be customized by any absolute widget name, only by an absolute class
-name. This is because the widgets in the drop down menu do not
-have names and the menu is not contained in the Emacs GtkWindow. To
-have all menus in Emacs look the same, use this in
address@hidden/.emacs.d/gtkrc}:
-
address@hidden
-widget_class "*Menu*" style "my_menu_style"
address@hidden smallexample
-
- Here is a more elaborate example, showing how to change the parts of
-the scroll bar:
-
address@hidden
-style "scroll"
address@hidden
- fg[NORMAL] = "red"@ @ @ @ @ # @r{The arrow color.}
- bg[NORMAL] = "yellow"@ @ # @r{The thumb and background around the arrow.}
- bg[ACTIVE] = "blue"@ @ @ @ # @r{The trough color.}
- bg[PRELIGHT] = "white"@ # @r{The thumb color when the mouse is over it.}
address@hidden
-
-widget "*verticalScrollBar*" style "scroll"
address@hidden smallexample
address@hidden iftex
-
address@hidden
address@hidden GTK resources and customization
address@hidden GTK+ resources
@cindex resource files for GTK
@cindex @file{~/.gtkrc-2.0} file
@cindex @file{~/.emacs.d/gtkrc} file
- If Emacs was built to use the GTK widget set, then the menu bar, tool bar,
-scroll bar and the dialogs are customized with the standard GTK
-customization file, @file{~/.gtkrc-2.0}, or with the Emacs specific
-file @file{~/.emacs.d/gtkrc}. We recommend that you use
address@hidden/.emacs.d/gtkrc} for customizations, since @file{~/.gtkrc-2.0}
-seems to be ignored when running GConf with GNOME. These files apply
-only to GTK widget features. To customize Emacs font, background,
-faces, etc., use the normal X resources (@pxref{Resources}).
-
- Some GTK themes override these mechanisms, which means that using
-these mechanisms will not work to customize them.
-
- In these files you first define a style and say what it means; then
-you specify to apply the style to various widget types (@pxref{GTK
-widget names}). Here is an example of how to change the font for
-Emacs menus:
-
address@hidden
-# @r{Define the style @samp{menufont}.}
-style "menufont"
address@hidden
- font_name = "helvetica bold 14" # This is a Pango font name
address@hidden
-
-# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{menufont}.}
-widget "*emacs-menuitem*" style "menufont"
address@hidden smallexample
-
- Here is a more elaborate example, showing how to change the parts of
-the scroll bar:
-
address@hidden
-style "scroll"
address@hidden
- fg[NORMAL] = "red"@ @ @ @ @ # @r{The arrow color.}
- bg[NORMAL] = "yellow"@ @ # @r{The thumb and background around the arrow.}
- bg[ACTIVE] = "blue"@ @ @ @ # @r{The trough color.}
- bg[PRELIGHT] = "white"@ # @r{The thumb color when the mouse is over it.}
address@hidden
-
-widget "*verticalScrollBar*" style "scroll"
address@hidden smallexample
-
- There are also parameters that affect GTK as a whole. For example,
-the property @code{gtk-font-name} sets the default font for GTK. You
-must use Pango font names (@pxref{GTK styles}). A GTK resources file
-that just sets a default font looks like this:
-
address@hidden
-gtk-font-name = "courier 12"
address@hidden smallexample
-
- The GTK resources file is fully described in the GTK API document.
-This can be found in
address@hidden@var{prefix}/share/gtk-doc/html/gtk/gtk-resource-files.html},
-where @file{prefix} is the directory in which the GTK libraries were
-installed (usually @file{/usr} or @file{/usr/local}). You can also
-find the document online, at
+ If Emacs is compiled with GTK+ toolkit support, the simplest way to
+customize its GTK+ widgets (e.g.@: menus, dialogs, tool bars and
+scroll bars) is to choose an appropriate GTK+ theme, for example with
+the GNOME theme selector.
+
+ In GTK+ version 2, you can also use @dfn{GTK+ resources} to
+customize the appearance of GTK+ widgets used by Emacs. These
+resources are specified in either the file @file{~/.emacs.d/gtkrc}
+(for Emacs-specific GTK+ resources), or @file{~/.gtkrc-2.0} (for
+general GTK+ resources). We recommend using @file{~/.emacs.d/gtkrc},
+since GTK+ seems to ignore @file{~/.gtkrc-2.0} when running GConf with
+GNOME. Note, however, that some GTK themes may override
+customizations in @file{~/.emacs.d/gtkrc}; there is nothing we can do
+about this. GTK+ resources do not affect aspects of Emacs unrelated
+to GTK+ widgets, such as fonts and colors in the main Emacs window;
+those are governed by normal X resources (@pxref{Resources}).
+
+ The following sections describe how to customize GTK+ resources for
+Emacs. For details about GTK+ resources, see the GTK+ API document at
@uref{http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html}.
+ In GTK+ version 3, GTK+ resources have been replaced by a completely
+different system. The appearance of GTK+ widgets is now determined by
+CSS-like style files: @file{gtk-3.0/gtk.css} in the GTK+ installation
+directory, and @file{~/.themes/@var{theme}/gtk-3.0/gtk.css} for local
+style settings (where @var{theme} is the name of the current GTK+
+theme). Therefore, the description of GTK+ resources in this section
+does not apply to GTK+ 3. For details about the GTK+ 3 styling
+system, see
address@hidden://developer.gnome.org/gtk3/3.0/GtkCssProvider.html}.
+
@menu
-* GTK widget names:: How widgets in GTK are named in general.
-* GTK Names in Emacs:: GTK widget names in Emacs.
+* GTK Resource Basics:: Basic usage of GTK+ resources.
+* GTK Widget Names:: How GTK+ widgets are named.
+* GTK Names in Emacs:: GTK widgets used by Emacs.
* GTK styles:: What can be customized in a GTK widget.
@end menu
address@hidden GTK widget names
address@hidden GTK Resource Basics
address@hidden GTK Resource Basics
+
+ In a GTK+ 2 resource file (usually @file{~/.emacs.d/gtkrc}), the
+simplest kinds of resource settings simply assign a value to a
+variable. For example, putting the following line in the resource
+file changes the font on all GTK+ widgets to @samp{courier-12}:
+
address@hidden
+gtk-font-name = "courier 12"
address@hidden smallexample
+
address@hidden
+Note that in this case the font name must be supplied as a GTK font
+pattern (also called a @dfn{Pango font name}), not as a
+Fontconfig-style font name or XLFD. @xref{Fonts}.
+
+ To customize widgets you first define a @dfn{style}, and then apply
+the style to the widgets. Here is an example that sets the font for
+menus (@samp{#} characters indicate comments):
+
address@hidden
+# @r{Define the style @samp{my_style}.}
+style "my_style"
address@hidden
+ font_name = "helvetica bold 14"
address@hidden
+
+# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{my_style}.}
+widget "*emacs-menuitem*" style "my_style"
address@hidden smallexample
+
address@hidden
+The widget name in this example contains wildcards, so the style is
+applied to all widgets matching @samp{*emacs-menuitem*}. The widgets
+are named by the way they are contained, from the outer widget to the
+inner widget. Here is another example that applies @samp{my_style}
+specifically to the Emacs menu bar:
+
address@hidden
+widget "Emacs.pane.menubar.*" style "my_style"
address@hidden smallexample
+
+ Here is a more elaborate example, showing how to change the parts of
+the scroll bar:
+
address@hidden
+style "scroll"
address@hidden
+ fg[NORMAL] = "red"@ @ @ @ @ # @r{Arrow color.}
+ bg[NORMAL] = "yellow"@ @ # @r{Thumb and background around arrow.}
+ bg[ACTIVE] = "blue"@ @ @ @ # @r{Trough color.}
+ bg[PRELIGHT] = "white"@ # @r{Thumb color when the mouse is over it.}
address@hidden
+
+widget "*verticalScrollBar*" style "scroll"
address@hidden smallexample
+
address@hidden GTK Widget Names
@appendixsubsec GTK widget names
@cindex GTK widget names
- A GTK widget is specified by its @dfn{widget class} and
address@hidden name}. The widget class is the type of the widget: for
-example, @code{GtkMenuBar}. The widget name is the name given to a
-specific widget. A widget always has a class, but need not have a
-name.
+ A GTK+ widget is specified by a @dfn{widget name} and a @dfn{widget
+class}. The widget name refers to a specific widget
+(e.g.@: @samp{emacs-menuitem}), while the widget class refers to a
+collection of similar widgets (e.g.@: @samp{GtkMenuItem}). A widget
+always has a class, but need not have a name.
@dfn{Absolute names} are sequences of widget names or widget
classes, corresponding to hierarchies of widgets embedded within
@@ -868,55 +602,31 @@
of the menu-bar widget is @code{GtkWindow.GtkVBox.GtkMenuBar}, and
its absolute widget name is @code{top.box.menubar}.
- When assigning a style to a widget, you can use the absolute class
-name or the absolute widget name.
-
- There are two commands to specify changes for widgets:
-
address@hidden @asis
address@hidden @code{widget_class}
-specifies a style for widgets based on the absolute class name.
-
address@hidden @code{widget}
-specifies a style for widgets based on the absolute class name,
-or just the class.
+ GTK+ resource files can contain two types of commands for specifying
+widget appearances:
+
address@hidden @code
address@hidden widget
+specifies a style for widgets based on the class name, or just the
+class.
+
address@hidden widget_class
+specifies a style for widgets based on the class name.
@end table
@noindent
-You must specify the class and the style in double-quotes, and put
-these commands at the top level in the GTK customization file, like
-this:
-
address@hidden
-style "menufont"
address@hidden
- font_name = "helvetica bold 14"
address@hidden
-
-widget "top.box.menubar" style "menufont"
-widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "menufont"
address@hidden smallexample
-
- Matching of absolute names uses shell wildcard syntax: @samp{*}
-matches zero or more characters and @samp{?} matches one character.
-This example assigns @code{base_style} to all widgets:
-
address@hidden
-widget "*" style "base_style"
address@hidden smallexample
-
- Given the absolute class name @code{GtkWindow.GtkVBox.GtkMenuBar}
-and the corresponding absolute widget name @code{top.box.menubar}, all
-these examples specify @code{my_style} for the menu bar:
-
address@hidden
-widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style"
-widget_class "GtkWindow.*.GtkMenuBar" style "my_style"
-widget_class "*GtkMenuBar" style "my_style"
-widget "top.box.menubar" style "my_style"
-widget "*box*menubar" style "my_style"
-widget "*menubar" style "my_style"
-widget "*menu*" style "my_style"
+See the previous subsection for examples of using the @code{widget}
+command; the @code{widget_class} command is used similarly. Note that
+the widget name/class and the style must be enclosed in double-quotes,
+and these commands must be at the top level in the GTK+ resource file.
+
+ As previously noted, you may specify a widget name or class with
+shell wildcard syntax: @samp{*} matches zero or more characters and
address@hidden matches one character. This example assigns a style to all
+widgets:
+
address@hidden
+widget "*" style "my_style"
@end smallexample
@node GTK Names in Emacs
@@ -924,68 +634,52 @@
@cindex GTK widget names
@cindex GTK widget classes
- In Emacs, the top level widget for a frame is a @code{GtkWindow}
-that contains a @code{GtkVBox}. The @code{GtkVBox} contains the
address@hidden and a @code{GtkFixed} widget. The vertical scroll
-bars, @code{GtkVScrollbar}, are contained in the @code{GtkFixed}
-widget. The text you write in Emacs is drawn in the @code{GtkFixed}
-widget.
-
- Dialogs in Emacs are @code{GtkDialog} widgets. The file dialog is a
address@hidden widget.
-
address@hidden
-To set a style for the menu bar using the absolute class name, use:
-
address@hidden
-widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style"
address@hidden smallexample
-
address@hidden
-For the scroll bar, the absolute class name is:
-
address@hidden
-widget_class
- "GtkWindow.GtkVBox.GtkFixed.GtkVScrollbar"
- style "my_style"
address@hidden smallexample
-
address@hidden
-The names for the emacs widgets, and their classes, are:
-
address@hidden address@hidden plus}} address@hidden and some}
address@hidden @code{emacs-filedialog}
address@hidden @code{GtkFileSelection}
address@hidden @code{emacs-dialog}
address@hidden @code{GtkDialog}
address@hidden @code{Emacs}
address@hidden @code{GtkWindow}
address@hidden @code{pane}
address@hidden @code{GtkVHbox}
address@hidden @code{emacs}
address@hidden @code{GtkFixed}
address@hidden @code{verticalScrollBar}
address@hidden @code{GtkVScrollbar}
address@hidden @code{emacs-toolbar}
address@hidden @code{GtkToolbar}
address@hidden @code{menubar}
address@hidden @code{GtkMenuBar}
address@hidden @code{emacs-menuitem}
address@hidden anything in menus
address@hidden multitable
-
address@hidden
-Thus, for Emacs you can write the two examples above as:
-
address@hidden
-widget "Emacs.pane.menubar" style "my_style"
-widget "Emacs.pane.emacs.verticalScrollBar" style "my_style"
address@hidden smallexample
-
- GTK absolute names are quite strange when it comes to menus
-and dialogs. The names do not start with @samp{Emacs}, as they are
-free-standing windows and not contained (in the GTK sense) by the
-Emacs GtkWindow. To customize the dialogs and menus, use wildcards like this:
+ The GTK+ widgets used by an Emacs frame are listed below:
+
address@hidden @asis
address@hidden @code{Emacs} (class @code{GtkWindow})
address@hidden @asis
address@hidden @code{pane} (class @code{GtkVBox})
address@hidden @asis
address@hidden @code{menubar} (class @code{GtkMenuBar})
address@hidden @asis
address@hidden [menu item widgets]
address@hidden table
address@hidden [unnamed widget] (class @code{GtkHandleBox})
address@hidden @asis
address@hidden @code{emacs-toolbar} (class @code{GtkToolbar})
address@hidden @asis
address@hidden [tool bar item widgets]
address@hidden table
address@hidden table
address@hidden @code{emacs} (class @code{GtkFixed})
address@hidden @asis
address@hidden @code{verticalScrollBar} (class @code{GtkVScrollbar})
address@hidden table
address@hidden table
address@hidden table
address@hidden table
+
address@hidden
+The contents of Emacs windows are drawn in the @code{emacs} widget.
+Note that even if there are multiple Emacs windows, each scroll bar
+widget is named @code{verticalScrollBar}.
+
+ For example, here are two different ways to set the menu bar style:
+
address@hidden
+widget "Emacs.pane.menubar.*" style "my_style"
+widget_class "GtkWindow.GtkVBox.GtkMenuBar.*" style "my_style"
address@hidden smallexample
+
+ For GTK+ dialogs, Emacs uses a widget named @code{emacs-dialog}, of
+class @code{GtkDialog}. For file selection, Emacs uses a widget named
address@hidden, of class @code{GtkFileSelection}.
+
+ Because the widgets for pop-up menus and dialogs are free-standing
+windows and not ``contained'' in the @code{Emacs} widget, their GTK+
+absolute names do not start with @samp{Emacs}. To customize these
+widgets, use wildcards like this:
@smallexample
widget "*emacs-dialog*" style "my_dialog_style"
@@ -993,14 +687,7 @@
widget "*emacs-menuitem* style "my_menu_style"
@end smallexample
- If you specify a customization in @file{~/.emacs.d/gtkrc}, then it
-automatically applies only to Emacs, since other programs don't read
-that file. For example, the drop down menu in the file dialog can not
-be customized by any absolute widget name, only by an absolute class
-name. This is because the widgets in the drop down menu do not
-have names and the menu is not contained in the Emacs GtkWindow. To
-have all menus in Emacs look the same, use this in
address@hidden/.emacs.d/gtkrc}:
+ If you want to apply a style to all menus in Emacs, use this:
@smallexample
widget_class "*Menu*" style "my_menu_style"
@@ -1010,15 +697,7 @@
@appendixsubsec GTK styles
@cindex GTK styles
- In a GTK style you specify the appearance widgets shall have. You
-can specify foreground and background color, background pixmap and
-font. The edit widget (where you edit the text) in Emacs is a GTK
-widget, but trying to specify a style for the edit widget will have no
-effect. This is so that Emacs compiled for GTK is compatible with
-Emacs compiled for other X toolkits. The settings for foreground,
-background and font for the edit widget is taken from the X resources;
address@hidden Here is an example of two style declarations,
address@hidden and @samp{ruler}:
+ Here is an example of two GTK+ style declarations:
@smallexample
pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps"
@@ -1128,9 +807,8 @@
@item font_name = "@var{font}"
This specifies the font for text in the widget. @var{font} is a
-Pango font name, for example @samp{Sans Italic 10}, @samp{Helvetica
-Bold 12}, @samp{Courier 14}, @samp{Times 18}. See below for exact
-syntax. The names are case insensitive.
+GTK-style (or Pango) font name, like @samp{Sans Italic 10}.
address@hidden The names are case insensitive.
@end table
There are three ways to specify a color: a color name, an RGB
@@ -1138,60 +816,6 @@
of color names and RGB triplets. Color names should be enclosed with
double quotes, e.g.@: @samp{"red"}. RGB triplets should be written
without double quotes, e.g.@: @samp{#ff0000}. GTK-style RGB triplets
-have the form
-
address@hidden
address@hidden@{ @var{r}, @var{g}, @var{b} @}}
address@hidden smallexample
-
address@hidden
-where @var{r}, @var{g} and @var{b} are either integers in the range
-0-65535 or floats in the range 0.0-1.0.
-
- Pango font names have the form address@hidden @var{style-options}
address@hidden''
address@hidden Pango font name
address@hidden
address@hidden is a comma separated list of font families optionally
-terminated by a comma. This way you can specify several families and the
-first one found will be used. @var{family} corresponds to the second part in
-an X font name, for example in
-
address@hidden
--adobe-times-medium-r-normal--12-120-75-75-p-64-iso10646-1
address@hidden smallexample
-
address@hidden
-the family name is @samp{times}.
-
address@hidden
address@hidden is a whitespace separated list of words where each word
-is a style, variant, weight, or stretch. The default value for all of
-these is @code{normal}.
-
address@hidden
-A `style' corresponds to the fourth part of an X font name. In X font
-names it is the character @samp{r}, @samp{i} or @samp{o}; in Pango
-font names the corresponding values are @code{normal}, @code{italic},
-or @code{oblique}.
-
address@hidden
-A `variant' is either @code{normal} or @code{small-caps}.
-Small caps is a font with the lower case characters replaced by
-smaller variants of the capital characters.
-
address@hidden
-Weight describes the ``boldness'' of a font. It corresponds to the third
-part of an X font name. It is one of @code{ultra-light}, @code{light},
address@hidden, @code{bold}, @code{ultra-bold}, or @code{heavy}.
-
address@hidden
-Stretch gives the width of the font relative to other designs within a
-family. It corresponds to the fifth part of an X font name. It is one of
address@hidden, @code{extra-condensed}, @code{condensed},
address@hidden, @code{normal}, @code{semi-expanded},
address@hidden, @code{extra-expanded}, or @code{ultra-expanded}.
-
address@hidden
address@hidden is a decimal number that describes the font size in points.
address@hidden ifnottex
+have the form @address@hidden@{ @var{r}, @var{g}, @var{b} @}}}, where
address@hidden, @var{g} and @var{b} are either integers in the range 0-65535
+or floats in the range 0.0-1.0.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r106871: Update X Resources chapter of Emacs manual.,
Chong Yidong <=