emacs-commit
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]