[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-commit] Changes to emacs/man/xresources.texi,v
From: |
Jan Djärv |
Subject: |
[Emacs-commit] Changes to emacs/man/xresources.texi,v |
Date: |
Sat, 18 Nov 2006 14:46:40 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Jan Djärv <jhd> 06/11/18 14:46:40
Index: xresources.texi
===================================================================
RCS file: /cvsroot/emacs/emacs/man/xresources.texi,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- xresources.texi 24 Jul 2006 17:48:52 -0000 1.40
+++ xresources.texi 18 Nov 2006 14:46:40 -0000 1.41
@@ -8,15 +8,25 @@
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}. Likewise, the Mac Carbon port emulates X
address@hidden Registry}. Likewise, Emacs on MacOS Carbon emulates X
resources using the Preferences system. @xref{Mac Environment Variables}.
- 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
+ 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
-`GTK resources', which we will also describe.
address@hidden
+``GTK resources'', which we will also describe.
address@hidden ifnottex
address@hidden
+``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.
address@hidden iftex
+
@menu
* Resources:: Using X resources with Emacs (in general).
@@ -57,6 +67,18 @@
Panel. You can also set resources using the @samp{-xrm} command line
option (see below.)
address@hidden
+ Applications such as Emacs look for resources with specific names
+and their particular meanings. Case distinctions are significant in
+these names. Each resource specification in @file{~/.Xdefaults}
+states the name of the program and the name of the resource. For
+Emacs, the program name is @samp{Emacs}. It looks like this:
+
address@hidden
+Emacs.borderWidth: 2
address@hidden example
address@hidden iftex
address@hidden
Programs define named resources with particular meanings. They also
define how to group resources into named classes. For instance, in
Emacs, the @samp{internalBorder} resource controls the width of the
@@ -95,9 +117,12 @@
emacs.BorderWidth: 2
emacs.borderWidth: 4
@end example
address@hidden ifnottex
The order in which the lines appear in the file does not matter.
Also, command-line options always override the X resources file.
+
address@hidden
Here is a list of X command-line options and their corresponding
resource names.
@@ -145,13 +170,19 @@
One way to experiment with the effect of different resource settings
is to use the @code{editres} program. Select @samp{Get Tree} from the
address@hidden ifnottex
address@hidden
+ You can experiment with the effect of different resource settings
+with the @code{editres} program. Select @samp{Get Tree} from the
address@hidden iftex
@samp{Commands} menu, then click on an Emacs frame. This will display
a tree showing the structure of X toolkit widgets used in an Emacs
frame. Select one of them, such as @samp{menubar}, then select
@samp{Show Resource Box} from the @samp{Commands} menu. This displays
-a list of all the meaningful X resources and allows you to edit them.
-Changes take effect immediately if you click on the @samp{Apply} button.
-(See the @code{editres} man page for more details.)
+a list of all the meaningful X resources for that widget, and allows
+you to edit them. Changes take effect when you click on the
address@hidden button. (See the @code{editres} man page for more
+details.)
@node Table of Resources
@appendixsec Table of X Resources for Emacs
@@ -164,25 +195,31 @@
@item @code{background} (class @code{Background})
Background color name.
address@hidden
@item @code{bitmapIcon} (class @code{BitmapIcon})
Use a bitmap icon (a picture of a gnu) if @samp{on}, let the window
manager choose an icon if @samp{off}.
address@hidden ifnottex
@item @code{borderColor} (class @code{BorderColor})
Color name for the external border.
address@hidden
@item @code{borderWidth} (class @code{BorderWidth})
Width in pixels of the external border.
address@hidden ifnottex
@item @code{cursorColor} (class @code{Foreground})
Color name for text cursor (point).
address@hidden
@item @code{cursorBlink} (class @code{CursorBlink})
Specifies whether to make the cursor blink. The default is @samp{on}. Use
@samp{off} or @samp{false} to turn cursor blinking off.
address@hidden ifnottex
@item @code{font} (class @code{Font})
-Font name for text (or fontset name, @pxref{Fontsets}).
+Font name (or fontset name, @pxref{Fontsets}) for @code{default} font.
@item @code{foreground} (class @code{Foreground})
Color name for text.
@@ -197,14 +234,15 @@
name, only that frame). However, the size, if specified here, applies to
all frames.
address@hidden
@item @code{fullscreen} (class @code{Fullscreen})
The desired fullscreen size. The value can be one of @code{fullboth},
@code{fullwidth} or @code{fullheight}, which correspond to
the command-line options @samp{-fs}, @samp{-fw}, and @samp{-fh}
(@pxref{Window Size X}).
-Note that this applies to all frames created, not just the initial
-one.
+Note that this applies to the initial frame only.
address@hidden ifnottex
@item @code{iconName} (class @code{Title})
Name to display in the icon.
@@ -219,10 +257,16 @@
@item @code{menuBar} (class @code{MenuBar})
@cindex menu bar
-Give frames menu bars if @samp{on}; don't have menu bars if
address@hidden @xref{Lucid Resources}, and @ref{LessTif Resources}, for
-how to control the appearance of the menu bar if you have one.
+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.
address@hidden
@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.
@@ -230,10 +274,12 @@
@item @code{paneFont} (class @code{Font})
@cindex font for menus
Font name for menu pane titles, in non-toolkit versions of Emacs.
address@hidden ifnottex
@item @code{pointerColor} (class @code{Foreground})
Color of the mouse cursor.
address@hidden
@item @code{privateColormap} (class @code{PrivateColormap})
If @samp{on}, use a private color map, in the case where the ``default
visual'' of class PseudoColor and Emacs is using it.
@@ -241,12 +287,14 @@
@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
Gamma correction for colors, equivalent to the frame parameter
@code{screen-gamma}.
address@hidden
@item @code{selectionFont} (class @code{SelectionFont})
Font name for pop-up menu items, in non-toolkit versions of Emacs. (For
toolkit versions, see @ref{Lucid Resources}, also see @ref{LessTif
@@ -262,6 +310,7 @@
@cindex synchronous X mode
Run Emacs in synchronous mode if @samp{on}. Synchronous mode is
useful for debugging X problems.
address@hidden ifnottex
@item @code{title} (class @code{Title})
Name to display in the title bar of the initial Emacs frame.
@@ -286,6 +335,7 @@
Give frames scroll bars if @samp{on}; don't have scroll bars if
@samp{off}.
address@hidden
@item @code{visualClass} (class @code{VisualClass})
Specify the ``visual'' that X should use. This tells X how to handle
colors.
@@ -296,6 +346,7 @@
@address@hidden, 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.
address@hidden ifnottex
@end table
@node Face Resources
@@ -358,6 +409,7 @@
@cindex Menu 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}
@@ -371,6 +423,14 @@
@noindent
For example, to specify the font @samp{8x16} 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
@example
Emacs.pane.menubar.font: 8x16
@@ -378,37 +438,43 @@
@noindent
Resources for @emph{non-menubar} toolkit pop-up menus have
address@hidden, in like fashion. For example, to specify the font
address@hidden for the pop-up menu items, write this:
address@hidden instead of @samp{pane.menubar}. For example, to specify
+the font @samp{8x16} for the pop-up menu items, write this:
@example
Emacs.menu*.font: 8x16
@end example
@noindent
-For dialog boxes, use @samp{dialog} instead of @samp{menu}:
+For dialog boxes, use @samp{dialog*}:
@example
Emacs.dialog*.font: 8x16
@end example
@noindent
-The Lucid menus can display multilingual text in your locale. For more
-information about fontsets see the man page for XCreateFontSet. To enable
-multilingual menu text you specify a fontSet resource instead of the font
-resource. If both font and fontSet resources are specified, the fontSet
-resource is used. To specify
address@hidden,*} for both the popup and
-menu bar menus, write this:
+The Lucid menus can display multilingual text in your locale. 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.
+
+ Thus, to specify @samp{-*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*}
+for both the popup and menu bar menus, write this:
@example
-Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*
+Emacs*menu*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*
@end example
@noindent
+The @samp{*menu*} as a wildcard matches @samp{pane.menubar} and
address@hidden@dots{}}.
+
Experience shows that on some systems you may need to add
@samp{shell.}@: before the @samp{pane.menubar} or @samp{menu*}. On
-some other systems, you must not add @samp{shell.}.
+some other systems, you must not add @samp{shell.}. The generic wildcard
+approach should work on both kinds of systems.
Here is a list of the specific resources for menu bars and pop-up menus:
@@ -423,6 +489,7 @@
Color of the background.
@item buttonForeground
In the menu bar, the color of the foreground for a selected item.
address@hidden
@item horizontalSpacing
Horizontal spacing in pixels between items. Default is 3.
@item verticalSpacing
@@ -440,10 +507,12 @@
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.
address@hidden ifnottex
@item margin
The 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)
@@ -576,10 +645,145 @@
@item topShadowColor
The color for the border shadow, on the top and the left.
@end table
address@hidden 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}. 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, like
+-*-helvetica-medium-r-*--*-120-*-*-*-*-*-*, 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
@cindex GTK resources and customization
@cindex resource files for GTK
@cindex @file{~/.gtkrc-2.0} file
@@ -996,6 +1200,7 @@
@noindent
@var{size} is a decimal number that describes the font size in points.
address@hidden ifnottex
@ignore
arch-tag: 9b6ff773-48b6-41f6-b2f9-f114b8bdd97f
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-commit] Changes to emacs/man/xresources.texi,v,
Jan Djärv <=