--- rxvt-unicode/doc/rxvt.7.pod 2006/01/11 23:08:54 1.77 +++ rxvt-unicode/doc/rxvt.7.pod 2006/01/18 21:00:39 1.89 @@ -26,6 +26,46 @@ =over 4 +=item The new selection selects pieces that are too big, how can I select +single words? + +Yes. For example, if you want to select alphanumeric words, you can use +the following resource: + + URxvt.selection.pattern-0: ([[:word:]]+) + +If you click more than twice, the selection will be extended +more and more. + +To get a selection that is very similar to the old code, try this pattern: + + URxvt.selection.pattern-0: ([^"&'()*,;<=>?@[\\\\]^`{|})]+) + +Please also note that the I combination also +selects words like the old code. + +=item I don't like the new selection/popups/hotkeys/perl, how do I +change/disable it? + +You can disable the perl extension completely by setting the +B resource to the empty string, which also keeps +rxvt-unicode from initialising perl, saving memory. + +If you only want to disable specific features, you first have to +identify which perl extension is responsible. For this, read the section +B in the @@RXVT_NAME@@perl(3) manpage. For +example, to disable the B and B, specify +this B resource: + + URxvt.perl-ext-common: default,-selection-popup,-option-popup + +This will keep the default extensions, but disable the two popup +extensions. Some extensions can also be configured, for example, +scrollback search mode is triggered by B. You can move it to any +other combination either by setting the B resource: + + URxvt.searchable-scrollback: CM-s + =item Isn't rxvt supposed to be small? Don't all those features bloat? I often get asked about this, and I think, no, they didn't cause extra @@ -121,20 +161,21 @@ =item I am using Debian GNU/Linux and have a problem... The Debian GNU/Linux package of rxvt-unicode in sarge contains large -patches that considerably change the behaviour of rxvt-unicode. Before -reporting a bug to the original rxvt-unicode author please download and -install the genuine version (L) -and try to reproduce the problem. If you cannot, chances are that the -problems are specific to Debian GNU/Linux, in which case it should be -reported via the Debian Bug Tracking System (use C to report -the bug). +patches that considerably change the behaviour of rxvt-unicode (but +unfortunately this notice has been removed). Before reporting a bug to +the original rxvt-unicode author please download and install the genuine +version (L) and try to reproduce +the problem. If you cannot, chances are that the problems are specific to +Debian GNU/Linux, in which case it should be reported via the Debian Bug +Tracking System (use C to report the bug). For other problems that also affect the Debian package, you can and probably should use the Debian BTS, too, because, after all, it's also a bug in the Debian version and it serves as a reminder for other users that might encounter the same issue. -=item I am maintaining rxvt-unicode for distribution/OS XXX, any recommendation? +=item I am maintaining rxvt-unicode for distribution/OS XXX, any +recommendation? You should build one binary with the default options. F now enables most useful options, and the trend goes to making them @@ -156,22 +197,20 @@ =item I need to make it setuid/setgid to support utmp/ptys on my OS, is this safe? -Likely not. While I honestly try to make it secure, and am probably not -bad at it, I think it is simply unreasonable to expect all of freetype -+ fontconfig + xft + xlib + perl + ... + rxvt-unicode itself to all be -secure. Also, rxvt-unicode disables some options when it detects that it -runs setuid or setgid, which is not nice. Besides, with the embedded perl -interpreter the possibility for security problems easily multiplies. - -Elevated privileges are only required for utmp and pty operations on some -systems (for example, GNU/Linux doesn't need any extra privileges for -ptys, but some need it for utmp support). It is planned to mvoe this into -a forked handler process, but this is not yet done. - -So, while setuid/setgid operation is supported and not a problem on your -typical single-user-no-other-logins unix desktop, always remember that -its an awful lot of code, most of which isn't checked for security issues -regularly. +It should be, starting with release 7.1. You are encouraged to properly +install urxvt with privileges necessary for your OS now. + +When rxvt-unicode detects that it runs setuid or setgid, it will fork +into a helper process for privileged operations (pty handling on some +systems, utmp/wtmp/lastlog handling on others) and drop privileges +immediately. This is much safer than most other terminals that keep +privileges while running (but is more relevant to urxvt, as it contains +things as perl interpreters, which might be "helpful" to attackers). + +This forking is done as the very first within main(), which is very early +and reduces possible bugs to initialisation code run before main(), or +things like the dynamic loader of your system, which should result in very +little risk. =item When I log-in to another system it tells me about missing terminfo data? @@ -578,7 +617,7 @@ You can specify separate locales for the input method and the rest of the terminal, using the resource C: - URxvt*imlocale: ja_JP.EUC-JP + URxvt.imlocale: ja_JP.EUC-JP Now you can start your terminal with C and still use your input method. Please note, however, that you will not be able to @@ -634,7 +673,7 @@ some editors prematurely may leave the mouse in mouse report mode. I've heard that tcsh may use mouse reporting unless it otherwise specified. A quick check is to see if cut/paste works when the Alt or Shift keys are -depressed. See @@RXVT_NAME@@(7) +depressed. =item What's with this bold/blink stuff? @@ -733,7 +772,7 @@ $ stty erase ^? $ @@RXVT_NAME@@ -Toggle with C / C as documented in @@RXVT_NAME@@(7). +Toggle with C / C. For an existing rxvt-unicode: @@ -861,8 +900,8 @@ The rest of this document describes various technical aspects of B. First the description of supported command sequences, -followed by menu and pixmap support and last by a description of all -features selectable at C time. +followed by pixmap support and last by a description of all features +selectable at C time. =head1 Definitions @@ -1440,15 +1479,6 @@ =end table -=item B<< C >> (B) - -=begin table - - B<< C >> menuBar visible - B<< C >> menuBar invisible - -=end table - =item B<< C >> =begin table @@ -1640,14 +1670,13 @@ B<< C >> Change colour of highlight characters to B<< C >> B<< C >> Change colour of bold characters to B<< C >> [deprecated, see 706] B<< C >> Change colour of underlined characters to B<< C >> [deprecated, see 707] - B<< C >> Change default background to B<< C >> + B<< C >> Change background pixmap parameters (see section XPM) (Compile XPM). B<< C >> Change default foreground colour to B<< C >>. B<< C >> Change Log File to B<< C >> I B<< C >> Change default background colour to B<< C >>. B<< C >> Set fontset to B<< C >>, with the following special values of B<< C >> (B) B<< C<#+n> >> change up B<< C >> B<< C<#-n> >> change down B<< C >> if B<< C >> is missing of 0, a value of 1 is used I change to font0 B<< C >> change to font B<< C >> B<< C >> Log all scrollback buffer and all of screen to B<< C >> B<< C >> Change current locale to B<< C >>, or, if B<< C >> is B<< C >>, return the current locale (Compile frills). - B<< C >> Menubar command B<< C >> (Compile menubar). B<< C >> Change colour of italic characters to B<< C >> B<< C >> Change background pixmap tint colour to B<< C >> (Compile transparency). B<< C >> Change colour of bold characters to B<< C >> @@ -1664,472 +1693,6 @@ =back -X - -=head1 menuBar - -B<< The exact syntax used is I solidified. >> -In the menus, B try to use menuBar commands that add or remove a -menuBar. - -Note that in all of the commands, the B<< I >> I be -omitted: use B<./> to specify a menu relative to the current menu. - -=head2 Overview of menuBar operation - -For the menuBar XTerm escape sequence C, the syntax -of C can be used for a variety of tasks: - -At the top level is the current menuBar which is a member of a circular -linked-list of other such menuBars. - -The menuBar acts as a parent for the various drop-down menus, which in -turn, may have labels, separator lines, menuItems and subMenus. - -The menuItems are the useful bits: you can use them to mimic keyboard -input or even to send text or escape sequences back to rxvt. - -The menuBar syntax is intended to provide a simple yet robust method of -constructing and manipulating menus and navigating through the -menuBars. - -The first step is to use the tag B<< [menu:I] >> which creates -the menuBar called I and allows access. You may now or menus, -subMenus, and menuItems. Finally, use the tag B<[done]> to set the -menuBar access as B to prevent accidental corruption of the -menus. To re-access the current menuBar for alterations, use the tag -B<[menu]>, make the alterations and then use B<[done]> - -X - -=head2 Commands - -=over 4 - -=item B<< [menu:+I] >> - -access the named menuBar for creation or alteration. If a new menuBar -is created, it is called I (max of 15 chars) and the current -menuBar is pushed onto the stack - -=item B<[menu]> - -access the current menuBar for alteration - -=item B<< [title:+I] >> - -set the current menuBar's title to I, which may contain the -following format specifiers: - - B<%n> rxvt name (as per the B<-name> command-line option) - B<%v> rxvt version - B<%%> literal B<%> character - -=item B<[done]> - -set menuBar access as B. -End-of-file tag for B<< [read:+I] >> operations. - -=item B<< [read:+I] >> - -read menu commands directly from I (extension ".menu" will be -appended if required.) Start reading at a line with B<[menu]> or B<< -[menu:+I >> and continuing until B<[done]> is encountered. - -Blank and comment lines (starting with B<#>) are ignored. Actually, -since any invalid menu commands are also ignored, almost anything could -be construed as a comment line, but this may be tightened up in the -future ... so don't count on it!. - -=item B<< [read:+I;+I] >> - -The same as B<< [read:+I] >>, but start reading at a line with -B<< [menu:+I] >> and continuing until B<< [done:+I] >> or -B<[done]> is encountered. - -=item B<[dump]> - -dump all menuBars to the file B in a format suitable for -later rereading. - -=item B<[rm:name]> - -remove the named menuBar - -=item B<[rm] [rm:]> - -remove the current menuBar - -=item B<[rm*] [rm:*]> - -remove all menuBars - -=item B<[swap]> - -swap the top two menuBars - -=item B<[prev]> - -access the previous menuBar - -=item B<[next]> - -access the next menuBar - -=item B<[show]> - -Enable display of the menuBar - -=item B<[hide]> - -Disable display of the menuBar - -=item B<< [pixmap:+I] >> - -=item B<< [pixmap:+I;I] >> - -(set the background pixmap globally - -B<< A Future implementation I make this local to the menubar >>) - -=item B<< [:+I:] >> - -ignore the menu readonly status and issue a I to or a menu or -menuitem or change the ; a useful shortcut for setting the quick arrows -from a menuBar. - -=back - -X - -=head2 Adding and accessing menus - -The following commands may also be B<+> prefixed. - -=over 4 - -=item B - -access menuBar top level - -=item B<./+> - -access current menu level - -=item B<../+> - -access parent menu (1 level up) - -=item B<../../> - -access parent menu (multiple levels up) - -=item B<< Imenu >> - -add/access menu - -=item B<< Imenu/* >> - -add/access menu and clear it if it exists - -=item B<< I{-} >> - -add separator - -=item B<< I{item} >> - -add B as a label - -=item B<< I{item} action >> - -add/alter I with an associated I - -=item B<< I{item}{right-text} >> - -add/alter I with B as the right-justified text -and as the associated I - -=item B<< I{item}{rtext} action >> - -add/alter I with an associated I and with B as -the right-justified text. - -=back - -=over 4 - -=item Special characters in I must be backslash-escaped: - -B<\a \b \E \e \n \r \t \octal> - -=item or in control-character notation: - -B<^@, ^A .. ^Z .. ^_, ^?> - -=back - -To send a string starting with a B (B<^@>) character to the -program, start I with a pair of B characters (B<^@^@>), -the first of which will be stripped off and the balance directed to the -program. Otherwise if I begins with B followed by -non-+B characters, the leading B is stripped off and the -balance is sent back to rxvt. - -As a convenience for the many Emacs-type editors, I may start -with B (eg, B is equivalent to B<\E$>) and a B will be -appended if missed from B commands. - -As a convenience for issuing XTerm B sequences from a menubar (or -quick arrow), a B (B<^G>) will be appended if needed. - -=over 4 - -=item For example, - -B is equivalent to B<\Exapropos\r> - -=item and - -B<\E]703;mona;100> is equivalent to B<\E]703;mona;100\a> - -=back - -The option B<< {I} >> will be right-justified. In the -absence of a specified action, this text will be used as the I -as well. - -=over 4 - -=item For example, - -B is equivalent to B - -=back - -The left label I necessary, since it's used for matching, but -implicitly hiding the left label (by using same name for both left and -right labels), or explicitly hiding the left label (by preceeding it -with a dot), makes it possible to have right-justified text only. - -=over 4 - -=item For example, - -B - -=item or hiding it - -B - -=back - -X - -=head2 Removing menus - -=over 4 - -=item B<< -/*+ >> - -remove all menus from the menuBar, the same as B<[clear]> - -=item B<< -+Imenu+ >> - -remove menu - -=item B<< -+I{item}+ >> - -remove item - -=item B<< -+I{-} >> - -remove separator) - -=item B<-/path/menu/*> - -remove all items, separators and submenus from menu - -=back - -X - -=head2 Quick Arrows - -The menus also provide a hook for I to provide easier -user access. If nothing has been explicitly set, the default is to -emulate the curror keys. The syntax permits each arrow to be altered -individually or all four at once without re-entering their common -beginning/end text. For example, to explicitly associate cursor actions -with the arrows, any of the following forms could be used: - -=over 4 - -=item B<< +I >> - -=item B<< +I >> - -=item B<< +I >> - -=item B<< +I >> - -Define actions for the respective arrow buttons - -=item B<< +I >> - -=item B<< +I >> - -Define common beginning/end parts for I which used in -conjunction with the above constructs - -=back - -=over 4 - -=item For example, define arrows individually, - - \E[A - - \E[B - - \E[C - - \E[D - -=item or all at once - - \E[AZ<>\E[BZ<>\E[CZ<>\E[D - -=item or more compactly (factoring out common parts) - - \E[AZ<>BZ<>CZ<>D - -=back - -X - -=head2 Command Summary - -A short summary of the most I commands: - -=over 4 - -=item [menu:name] - -use an existing named menuBar or start a new one - -=item [menu] - -use the current menuBar - -=item [title:string] - -set menuBar title - -=item [done] - -set menu access to readonly and, if reading from a file, signal EOF - -=item [done:name] - -if reading from a file using [read:file;name] signal EOF - -=item [rm:name] - -remove named menuBar(s) - -=item [rm] [rm:] - -remove current menuBar - -=item [rm*] [rm:*] - -remove all menuBar(s) - -=item [swap] - -swap top two menuBars - -=item [prev] - -access the previous menuBar - -=item [next] - -access the next menuBar - -=item [show] - -map menuBar - -=item [hide] - -unmap menuBar - -=item [pixmap;file] - -=item [pixmap;file;scaling] - -set a background pixmap - -=item [read:file] - -=item [read:file;name] - -read in a menu from a file - -=item [dump] - -dump out all menuBars to /tmp/rxvt-PID - -=item / - -access menuBar top level - -=item ./ - -=item ../ - -=item ../../ - -access current or parent menu level - -=item /path/menu - -add/access menu - -=item /path/{-} - -add separator - -=item /path/{item}{rtext} action - -add/alter menu item - -=item -/* - -remove all menus from the menuBar - -=item -/path/menu - -remove menu items, separators and submenus from menu - -=item -/path/menu - -remove menu - -=item -/path/{item} - -remove item - -=item -/path/{-} - -remove separator - -=item BeginRightLeftUpDownEnd - -menu quick arrows - -=back X =head1 XPM @@ -2466,12 +2029,6 @@ Add support for tinting of transparent backgrounds (requires C<--enable-transparency>). -=item --enable-menubar (default: off) [DEPRECATED] - -Add support for our menu bar system (this interacts badly with dynamic -locale switching currently). This option is DEPRECATED and will be removed -in the future. - =item --enable-rxvt-scroll (default: on) Add support for the original rxvt scrollbar. @@ -2490,11 +2047,6 @@ is the favourite of the rxvt-unicode author, having used it for many years. -=item --enable-half-shadow (default: off) - -Make shadows on the scrollbar only half the normal width & height. -only applicable to rxvt scrollbars. - =item --enable-ttygid (default: off) Change tty device setting to group "tty" - only use this if @@ -2513,14 +2065,6 @@ Removes any support for resource checking. -=item --enable-strings (default: off) - -Add support for our possibly faster memset() function and other -various routines, overriding your system's versions which may -have been hand-crafted in assembly or may require extra libraries -to link in. (this breaks ANSI-C rules and has problems on many -GNU/Linux systems). - =item --disable-swapscreen Remove support for secondary/swap screen.