… | |
… | |
17 | |
17 | |
18 | This document contains the FAQ, the RXVT TECHNICAL REFERENCE documenting |
18 | This document contains the FAQ, the RXVT TECHNICAL REFERENCE documenting |
19 | all escape sequences, and other background information. |
19 | all escape sequences, and other background information. |
20 | |
20 | |
21 | The newest version of this document is also available on the World Wide Web at |
21 | The newest version of this document is also available on the World Wide Web at |
22 | L<http://cvs.schmorp.de/browse/*checkout*/rxvt-unicode/doc/rxvt.7.html>. |
22 | L<http://cvs.schmorp.de/browse/rxvt-unicode/doc/rxvt.7.html>. |
23 | |
23 | |
24 | =head1 RXVT-UNICODE/URXVT FREQUENTLY ASKED QUESTIONS |
24 | =head1 RXVT-UNICODE/URXVT FREQUENTLY ASKED QUESTIONS |
25 | |
25 | |
26 | |
26 | |
27 | =head2 Meta, Features & Commandline Issues |
27 | =head2 Meta, Features & Commandline Issues |
… | |
… | |
73 | =head3 How can I start @@URXVT_NAME@@d in a race-free way? |
73 | =head3 How can I start @@URXVT_NAME@@d in a race-free way? |
74 | |
74 | |
75 | Try C<@@URXVT_NAME@@d -f -o>, which tells @@URXVT_NAME@@d to open the |
75 | Try C<@@URXVT_NAME@@d -f -o>, which tells @@URXVT_NAME@@d to open the |
76 | display, create the listening socket and then fork. |
76 | display, create the listening socket and then fork. |
77 | |
77 | |
78 | =head3 How can I start @@URXVT_NAME@@d automatically when I run URXVT_NAME@@c? |
78 | =head3 How can I start @@URXVT_NAME@@d automatically when I run @@URXVT_NAME@@c? |
79 | |
79 | |
80 | If you want to start @@URXVT_NAME@@d automatically whenever you run |
80 | If you want to start @@URXVT_NAME@@d automatically whenever you run |
81 | @@URXVT_NAME@@c and the daemon isn't running yet, use this script: |
81 | @@URXVT_NAME@@c and the daemon isn't running yet, use this script: |
82 | |
82 | |
83 | #!/bin/sh |
83 | #!/bin/sh |
… | |
… | |
90 | This tries to create a new terminal, and if fails with exit status 2, |
90 | This tries to create a new terminal, and if fails with exit status 2, |
91 | meaning it couldn't connect to the daemon, it will start the daemon and |
91 | meaning it couldn't connect to the daemon, it will start the daemon and |
92 | re-run the command. Subsequent invocations of the script will re-use the |
92 | re-run the command. Subsequent invocations of the script will re-use the |
93 | existing daemon. |
93 | existing daemon. |
94 | |
94 | |
95 | =head3 How do I distinguish wether I'm running rxvt-unicode or a regular xterm? I need this to decide about setting colors etc. |
95 | =head3 How do I distinguish whether I'm running rxvt-unicode or a regular xterm? I need this to decide about setting colors etc. |
96 | |
96 | |
97 | The original rxvt and rxvt-unicode always export the variable "COLORTERM", |
97 | The original rxvt and rxvt-unicode always export the variable "COLORTERM", |
98 | so you can check and see if that is set. Note that several programs, JED, |
98 | so you can check and see if that is set. Note that several programs, JED, |
99 | slrn, Midnight Commander automatically check this variable to decide |
99 | slrn, Midnight Commander automatically check this variable to decide |
100 | whether or not to use color. |
100 | whether or not to use color. |
… | |
… | |
125 | fi |
125 | fi |
126 | |
126 | |
127 | =head3 How do I compile the manual pages on my own? |
127 | =head3 How do I compile the manual pages on my own? |
128 | |
128 | |
129 | You need to have a recent version of perl installed as F</usr/bin/perl>, |
129 | You need to have a recent version of perl installed as F</usr/bin/perl>, |
130 | one that comes with F<pod2man>, F<pod2text> and F<pod2html>. Then go to |
130 | one that comes with F<pod2man>, F<pod2text> and F<pod2xhtml> (from |
131 | the doc subdirectory and enter C<make alldoc>. |
131 | F<Pod::Xhtml>). Then go to the doc subdirectory and enter C<make alldoc>. |
132 | |
132 | |
133 | =head3 Isn't rxvt-unicode supposed to be small? Don't all those features bloat? |
133 | =head3 Isn't rxvt-unicode supposed to be small? Don't all those features bloat? |
134 | |
134 | |
135 | I often get asked about this, and I think, no, they didn't cause extra |
135 | I often get asked about this, and I think, no, they didn't cause extra |
136 | bloat. If you compare a minimal rxvt and a minimal urxvt, you can see |
136 | bloat. If you compare a minimal rxvt and a minimal urxvt, you can see |
… | |
… | |
144 | 98398 1664 24 15695 1824 rxvt --disable-everything |
144 | 98398 1664 24 15695 1824 rxvt --disable-everything |
145 | 188985 9048 66616 18222 1788 urxvt --disable-everything |
145 | 188985 9048 66616 18222 1788 urxvt --disable-everything |
146 | |
146 | |
147 | When you C<--enable-everything> (which I<is> unfair, as this involves xft |
147 | When you C<--enable-everything> (which I<is> unfair, as this involves xft |
148 | and full locale/XIM support which are quite bloaty inside libX11 and my |
148 | and full locale/XIM support which are quite bloaty inside libX11 and my |
149 | libc), the two diverge, but not unreasnobaly so. |
149 | libc), the two diverge, but not unreasonably so. |
150 | |
150 | |
151 | text data bss drs rss filename |
151 | text data bss drs rss filename |
152 | 163431 2152 24 20123 2060 rxvt --enable-everything |
152 | 163431 2152 24 20123 2060 rxvt --enable-everything |
153 | 1035683 49680 66648 29096 3680 urxvt --enable-everything |
153 | 1035683 49680 66648 29096 3680 urxvt --enable-everything |
154 | |
154 | |
… | |
… | |
241 | |
241 | |
242 | @@URXVT_NAME@@ -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc |
242 | @@URXVT_NAME@@ -depth 32 -fg grey90 -bg rgba:0000/0000/4444/cccc |
243 | |
243 | |
244 | This requires XFT support, and the support of your X-server. If that |
244 | This requires XFT support, and the support of your X-server. If that |
245 | doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't |
245 | doesn't work for you, blame Xorg and Keith Packard. ARGB visuals aren't |
246 | there yet, no matter what they claim. Rxvt-Unicode contains the neccessary |
246 | there yet, no matter what they claim. Rxvt-Unicode contains the necessary |
247 | bugfixes and workarounds for Xft and Xlib to make it work, but that |
247 | bugfixes and workarounds for Xft and Xlib to make it work, but that |
248 | doesn't mean that your WM has the required kludges in place. |
248 | doesn't mean that your WM has the required kludges in place. |
249 | |
249 | |
250 | 4. Use xcompmgr and let it do the job: |
250 | 4. Use xcompmgr and let it do the job: |
251 | |
251 | |
… | |
… | |
268 | however: Xft fonts often draw glyphs larger than their acclaimed bounding |
268 | however: Xft fonts often draw glyphs larger than their acclaimed bounding |
269 | box, and rxvt-unicode has no way of detecting this (the correct way is to |
269 | box, and rxvt-unicode has no way of detecting this (the correct way is to |
270 | ask for the character bounding box, which unfortunately is wrong in these |
270 | ask for the character bounding box, which unfortunately is wrong in these |
271 | cases). |
271 | cases). |
272 | |
272 | |
273 | It's not clear (to me at least), wether this is a bug in Xft, freetype, |
273 | It's not clear (to me at least), whether this is a bug in Xft, freetype, |
274 | or the respective font. If you encounter this problem you might try using |
274 | or the respective font. If you encounter this problem you might try using |
275 | the C<-lsp> option to give the font more height. If that doesn't work, you |
275 | the C<-lsp> option to give the font more height. If that doesn't work, you |
276 | might be forced to use a different font. |
276 | might be forced to use a different font. |
277 | |
277 | |
278 | All of this is not a problem when using X11 core fonts, as their bounding |
278 | All of this is not a problem when using X11 core fonts, as their bounding |
… | |
… | |
314 | |
314 | |
315 | =head3 Why do italic characters look as if clipped? |
315 | =head3 Why do italic characters look as if clipped? |
316 | |
316 | |
317 | Many fonts have difficulties with italic characters and hinting. For |
317 | Many fonts have difficulties with italic characters and hinting. For |
318 | example, the otherwise very nicely hinted font C<xft:Bitstream Vera Sans |
318 | example, the otherwise very nicely hinted font C<xft:Bitstream Vera Sans |
319 | Mono> completely fails in it's italic face. A workaround might be to |
319 | Mono> completely fails in its italic face. A workaround might be to |
320 | enable freetype autohinting, i.e. like this: |
320 | enable freetype autohinting, i.e. like this: |
321 | |
321 | |
322 | URxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true |
322 | URxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true |
323 | URxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true |
323 | URxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true |
324 | |
324 | |
… | |
… | |
330 | memory and also speeds up rendering considerably. |
330 | memory and also speeds up rendering considerably. |
331 | |
331 | |
332 | =head3 Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong? |
332 | =head3 Rxvt-unicode doesn't seem to anti-alias its fonts, what is wrong? |
333 | |
333 | |
334 | Rxvt-unicode will use whatever you specify as a font. If it needs to |
334 | Rxvt-unicode will use whatever you specify as a font. If it needs to |
335 | fall back to it's default font search list it will prefer X11 core |
335 | fall back to its default font search list it will prefer X11 core |
336 | fonts, because they are small and fast, and then use Xft fonts. It has |
336 | fonts, because they are small and fast, and then use Xft fonts. It has |
337 | antialiasing disabled for most of them, because the author thinks they |
337 | antialiasing disabled for most of them, because the author thinks they |
338 | look best that way. |
338 | look best that way. |
339 | |
339 | |
340 | If you want antialiasing, you have to specify the fonts manually. |
340 | If you want antialiasing, you have to specify the fonts manually. |
… | |
… | |
512 | circumstances, it will move your cursor around when you click into the |
512 | circumstances, it will move your cursor around when you click into the |
513 | line that contains it. It tries hard not to do this at the wrong moment, |
513 | line that contains it. It tries hard not to do this at the wrong moment, |
514 | but when running a program that doesn't parse cursor movements or in some |
514 | but when running a program that doesn't parse cursor movements or in some |
515 | cases during rlogin sessions, it fails to detect this properly. |
515 | cases during rlogin sessions, it fails to detect this properly. |
516 | |
516 | |
517 | You can permamently switch this feature off by disabling the C<readline> |
517 | You can permanently switch this feature off by disabling the C<readline> |
518 | extension: |
518 | extension: |
519 | |
519 | |
520 | URxvt.perl-ext-common: default,-readline |
520 | URxvt.perl-ext-common: default,-readline |
521 | |
521 | |
522 | =head3 My numerical keypad acts weird and generates differing output? |
522 | =head3 My numerical keypad acts weird and generates differing output? |
523 | |
523 | |
524 | Some Debian GNUL/Linux users seem to have this problem, although no |
524 | Some Debian GNUL/Linux users seem to have this problem, although no |
525 | specific details were reported so far. It is possible that this is caused |
525 | specific details were reported so far. It is possible that this is caused |
526 | by the wrong C<TERM> setting, although the details of wether and how |
526 | by the wrong C<TERM> setting, although the details of whether and how |
527 | this can happen are unknown, as C<TERM=rxvt> should offer a compatible |
527 | this can happen are unknown, as C<TERM=rxvt> should offer a compatible |
528 | keymap. See the answer to the previous question, and please report if that |
528 | keymap. See the answer to the previous question, and please report if that |
529 | helped. |
529 | helped. |
530 | |
530 | |
531 | =head3 My Compose (Multi_key) key is no longer working. |
531 | =head3 My Compose (Multi_key) key is no longer working. |
… | |
… | |
557 | depressed. |
557 | depressed. |
558 | |
558 | |
559 | =head3 What's with the strange Backspace/Delete key behaviour? |
559 | =head3 What's with the strange Backspace/Delete key behaviour? |
560 | |
560 | |
561 | Assuming that the physical Backspace key corresponds to the |
561 | Assuming that the physical Backspace key corresponds to the |
562 | BackSpace keysym (not likely for Linux ... see the following |
562 | Backspace keysym (not likely for Linux ... see the following |
563 | question) there are two standard values that can be used for |
563 | question) there are two standard values that can be used for |
564 | Backspace: C<^H> and C<^?>. |
564 | Backspace: C<^H> and C<^?>. |
565 | |
565 | |
566 | Historically, either value is correct, but rxvt-unicode adopts the debian |
566 | Historically, either value is correct, but rxvt-unicode adopts the debian |
567 | policy of using C<^?> when unsure, because it's the one only only correct |
567 | policy of using C<^?> when unsure, because it's the one and only correct |
568 | choice :). |
568 | choice :). |
569 | |
569 | |
570 | Rxvt-unicode tries to inherit the current stty settings and uses the value |
570 | Rxvt-unicode tries to inherit the current stty settings and uses the value |
571 | of `erase' to guess the value for backspace. If rxvt-unicode wasn't |
571 | of `erase' to guess the value for backspace. If rxvt-unicode wasn't |
572 | started from a terminal (say, from a menu or by remote shell), then the |
572 | started from a terminal (say, from a menu or by remote shell), then the |
… | |
… | |
694 | directory and also tells urxvt to use a large number of extensions. I |
694 | directory and also tells urxvt to use a large number of extensions. I |
695 | develop for myself mostly, so I actually use most of the extensions I |
695 | develop for myself mostly, so I actually use most of the extensions I |
696 | write. |
696 | write. |
697 | |
697 | |
698 | The selection stuff mainly makes the selection perl-error-message aware |
698 | The selection stuff mainly makes the selection perl-error-message aware |
699 | and tells it to convert pelr error mssages into vi-commands to load the |
699 | and tells it to convert perl error messages into vi-commands to load the |
700 | relevant file and go tot he error line number. |
700 | relevant file and go tot he error line number. |
701 | |
701 | |
702 | URxvt.scrollstyle: plain |
702 | URxvt.scrollstyle: plain |
703 | URxvt.secondaryScroll: true |
703 | URxvt.secondaryScroll: true |
704 | |
704 | |
705 | As the documentation says: plain is the preferred scrollbar for the |
705 | As the documentation says: plain is the preferred scrollbar for the |
706 | author. The C<secondaryScroll> confgiures urxvt to scroll in full-screen |
706 | author. The C<secondaryScroll> configures urxvt to scroll in full-screen |
707 | apps, like screen, so lines scorlled out of screen end up in urxvt's |
707 | apps, like screen, so lines scrolled out of screen end up in urxvt's |
708 | scrollback buffer. |
708 | scrollback buffer. |
709 | |
709 | |
710 | URxvt.background: #000000 |
710 | URxvt.background: #000000 |
711 | URxvt.foreground: gray90 |
711 | URxvt.foreground: gray90 |
712 | URxvt.color7: gray90 |
712 | URxvt.color7: gray90 |
… | |
… | |
763 | urxvt.boldFont: -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-15 |
763 | urxvt.boldFont: -xos4-terminus-bold-r-normal--14-140-72-72-c-80-iso8859-15 |
764 | urxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true |
764 | urxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true |
765 | urxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true |
765 | urxvt.boldItalicFont: xft:Bitstream Vera Sans Mono:bold:italic:autohint=true |
766 | |
766 | |
767 | I wrote rxvt-unicode to be able to specify fonts exactly. So don't be |
767 | I wrote rxvt-unicode to be able to specify fonts exactly. So don't be |
768 | overwhelmed. A special note: the C<9x15bold> mentioend above is actually |
768 | overwhelmed. A special note: the C<9x15bold> mentioned above is actually |
769 | the version from XFree-3.3, as XFree-4 replaced it by a totally different |
769 | the version from XFree-3.3, as XFree-4 replaced it by a totally different |
770 | font (different glyphs for C<;> and many other harmless characters), |
770 | font (different glyphs for C<;> and many other harmless characters), |
771 | while the second font is actually the C<9x15bold> from XFree4/XOrg. The |
771 | while the second font is actually the C<9x15bold> from XFree4/XOrg. The |
772 | bold version has less chars than the medium version, so I use it for rare |
772 | bold version has less chars than the medium version, so I use it for rare |
773 | characters, too. Whene ditign sources with vim, I use italic for comments |
773 | characters, too. When editing sources with vim, I use italic for comments |
774 | and other stuff, which looks quite good with Bitstream Vera anti-aliased. |
774 | and other stuff, which looks quite good with Bitstream Vera anti-aliased. |
775 | |
775 | |
776 | Terminus is a quite bad font (many very wrong glyphs), but for most of my |
776 | Terminus is a quite bad font (many very wrong glyphs), but for most of my |
777 | purposes, it works, and gives a different look, as my normal (Non-bold) |
777 | purposes, it works, and gives a different look, as my normal (Non-bold) |
778 | font is already bold, and I want to see a difference between bold and |
778 | font is already bold, and I want to see a difference between bold and |
… | |
… | |
829 | Also consider the form resources have to use: |
829 | Also consider the form resources have to use: |
830 | |
830 | |
831 | URxvt.resource: value |
831 | URxvt.resource: value |
832 | |
832 | |
833 | If you want to use another form (there are lots of different ways of |
833 | If you want to use another form (there are lots of different ways of |
834 | specifying resources), make sure you understand wether and why it |
834 | specifying resources), make sure you understand whether and why it |
835 | works. If unsure, use the form above. |
835 | works. If unsure, use the form above. |
836 | |
836 | |
837 | =head3 When I log-in to another system it tells me about missing terminfo data? |
837 | =head3 When I log-in to another system it tells me about missing terminfo data? |
838 | |
838 | |
839 | The terminal description used by rxvt-unicode is not as widely available |
839 | The terminal description used by rxvt-unicode is not as widely available |
840 | as that for xterm, or even rxvt (for which the same problem often arises). |
840 | as that for xterm, or even rxvt (for which the same problem often arises). |
841 | |
841 | |
842 | The correct solution for this problem is to install the terminfo, this can |
842 | The correct solution for this problem is to install the terminfo, this can |
843 | be done like this (with ncurses' infocmp): |
843 | be done like this (with ncurses' infocmp and works as user and admin): |
844 | |
844 | |
845 | REMOTE=remotesystem.domain |
845 | REMOTE=remotesystem.domain |
846 | infocmp rxvt-unicode | ssh $REMOTE "cat >/tmp/ti && tic /tmp/ti" |
846 | infocmp rxvt-unicode | ssh $REMOTE "mkdir -p .terminfo && cat >/tmp/ti && tic /tmp/ti" |
847 | |
847 | |
848 | ... or by installing rxvt-unicode normally on the remote system, |
848 | ... or by installing rxvt-unicode normally on the remote system, |
|
|
849 | |
|
|
850 | One some systems you might need to set C<$TERMINFO> to the full path of |
|
|
851 | F<$HOME/.terminfo> for this to work. |
849 | |
852 | |
850 | If you cannot or do not want to do this, then you can simply set |
853 | If you cannot or do not want to do this, then you can simply set |
851 | C<TERM=rxvt> or even C<TERM=xterm>, and live with the small number of |
854 | C<TERM=rxvt> or even C<TERM=xterm>, and live with the small number of |
852 | problems arising, which includes wrong keymapping, less and different |
855 | problems arising, which includes wrong keymapping, less and different |
853 | colours and some refresh errors in fullscreen applications. It's a nice |
856 | colours and some refresh errors in fullscreen applications. It's a nice |
… | |
… | |
876 | One reason you might want this is that some distributions or operating |
879 | One reason you might want this is that some distributions or operating |
877 | systems still compile some programs using the long-obsoleted termcap |
880 | systems still compile some programs using the long-obsoleted termcap |
878 | library (Fedora Core's bash is one example) and rely on a termcap entry |
881 | library (Fedora Core's bash is one example) and rely on a termcap entry |
879 | for C<rxvt-unicode>. |
882 | for C<rxvt-unicode>. |
880 | |
883 | |
881 | You could use rxvt's termcap entry with resonable results in many cases. |
884 | You could use rxvt's termcap entry with reasonable results in many cases. |
882 | You can also create a termcap entry by using terminfo's infocmp program |
885 | You can also create a termcap entry by using terminfo's infocmp program |
883 | like this: |
886 | like this: |
884 | |
887 | |
885 | infocmp -C rxvt-unicode |
888 | infocmp -C rxvt-unicode |
886 | |
889 | |
… | |
… | |
908 | :vs=\E[?25h: |
911 | :vs=\E[?25h: |
909 | |
912 | |
910 | =head3 Why does C<ls> no longer have coloured output? |
913 | =head3 Why does C<ls> no longer have coloured output? |
911 | |
914 | |
912 | The C<ls> in the GNU coreutils unfortunately doesn't use terminfo to |
915 | The C<ls> in the GNU coreutils unfortunately doesn't use terminfo to |
913 | decide wether a terminal has colour, but uses it's own configuration |
916 | decide whether a terminal has colour, but uses its own configuration |
914 | file. Needless to say, C<rxvt-unicode> is not in it's default file (among |
917 | file. Needless to say, C<rxvt-unicode> is not in its default file (among |
915 | with most other terminals supporting colour). Either add: |
918 | with most other terminals supporting colour). Either add: |
916 | |
919 | |
917 | TERM rxvt-unicode |
920 | TERM rxvt-unicode |
918 | |
921 | |
919 | to C</etc/DIR_COLORS> or simply add: |
922 | to C</etc/DIR_COLORS> or simply add: |
… | |
… | |
953 | If you encounter strange problems like typing an accented character but |
956 | If you encounter strange problems like typing an accented character but |
954 | getting two unrelated other characters or similar, or if program output is |
957 | getting two unrelated other characters or similar, or if program output is |
955 | subtly garbled, then you should check your locale settings. |
958 | subtly garbled, then you should check your locale settings. |
956 | |
959 | |
957 | Rxvt-unicode must be started with the same C<LC_CTYPE> setting as the |
960 | Rxvt-unicode must be started with the same C<LC_CTYPE> setting as the |
958 | programs. Often rxvt-unicode is started in the C<C> locale, while the |
961 | programs running in it. Often rxvt-unicode is started in the C<C> locale, |
959 | login script running within the rxvt-unicode window changes the locale to |
962 | while the login script running within the rxvt-unicode window changes the |
960 | something else, e.g. C<en_GB.UTF-8>. Needless to say, this is not going to work. |
963 | locale to something else, e.g. C<en_GB.UTF-8>. Needless to say, this is |
|
|
964 | not going to work, and is the most common cause for problems. |
961 | |
965 | |
962 | The best thing is to fix your startup environment, as you will likely run |
966 | The best thing is to fix your startup environment, as you will likely run |
963 | into other problems. If nothing works you can try this in your .profile. |
967 | into other problems. If nothing works you can try this in your .profile. |
964 | |
968 | |
965 | printf '\33]701;%s\007' "$LC_CTYPE" |
969 | printf '\33]701;%s\007' "$LC_CTYPE" # $LANG or $LC_ALL are worth a try, too |
966 | |
970 | |
967 | If this doesn't work, then maybe you use a C<LC_CTYPE> specification not |
971 | If this doesn't work, then maybe you use a C<LC_CTYPE> specification not |
968 | supported on your systems. Some systems have a C<locale> command which |
972 | supported on your systems. Some systems have a C<locale> command which |
969 | displays this (also, C<perl -e0> can be used to check locale settings, as |
973 | displays this (also, C<perl -e0> can be used to check locale settings, as |
970 | it will complain loudly if it cannot set the locale). If it displays something |
974 | it will complain loudly if it cannot set the locale). If it displays something |
… | |
… | |
991 | The reasons is that there exists a perfectly fine mechanism for selecting |
995 | The reasons is that there exists a perfectly fine mechanism for selecting |
992 | the encoding, doing I/O and (most important) communicating this to all |
996 | the encoding, doing I/O and (most important) communicating this to all |
993 | applications so everybody agrees on character properties such as width |
997 | applications so everybody agrees on character properties such as width |
994 | and code number. This mechanism is the I<locale>. Applications not using |
998 | and code number. This mechanism is the I<locale>. Applications not using |
995 | that info will have problems (for example, C<xterm> gets the width of |
999 | that info will have problems (for example, C<xterm> gets the width of |
996 | characters wrong as it uses it's own, locale-independent table under all |
1000 | characters wrong as it uses its own, locale-independent table under all |
997 | locales). |
1001 | locales). |
998 | |
1002 | |
999 | Rxvt-unicode uses the C<LC_CTYPE> locale category to select encoding. All |
1003 | Rxvt-unicode uses the C<LC_CTYPE> locale category to select encoding. All |
1000 | programs doing the same (that is, most) will automatically agree in the |
1004 | programs doing the same (that is, most) will automatically agree in the |
1001 | interpretation of characters. |
1005 | interpretation of characters. |
… | |
… | |
1059 | =item - Make sure your XIM server is actually running. |
1063 | =item - Make sure your XIM server is actually running. |
1060 | |
1064 | |
1061 | =item - Make sure the C<XMODIFIERS> environment variable is set correctly when I<starting> rxvt-unicode. |
1065 | =item - Make sure the C<XMODIFIERS> environment variable is set correctly when I<starting> rxvt-unicode. |
1062 | |
1066 | |
1063 | When you want to use e.g. B<kinput2>, it must be set to |
1067 | When you want to use e.g. B<kinput2>, it must be set to |
1064 | C<@im=kinput2>. For B<scim>, use C<@im=SCIM>. Youc an see what input |
1068 | C<@im=kinput2>. For B<scim>, use C<@im=SCIM>. You can see what input |
1065 | method servers are running with this command: |
1069 | method servers are running with this command: |
1066 | |
1070 | |
1067 | xprop -root XIM_SERVERS |
1071 | xprop -root XIM_SERVERS |
1068 | |
1072 | |
1069 | =item |
1073 | =item |
… | |
… | |
1114 | |
1118 | |
1115 | =head3 I am maintaining rxvt-unicode for distribution/OS XXX, any recommendation? |
1119 | =head3 I am maintaining rxvt-unicode for distribution/OS XXX, any recommendation? |
1116 | |
1120 | |
1117 | You should build one binary with the default options. F<configure> |
1121 | You should build one binary with the default options. F<configure> |
1118 | now enables most useful options, and the trend goes to making them |
1122 | now enables most useful options, and the trend goes to making them |
1119 | runtime-switchable, too, so there is usually no drawback to enbaling them, |
1123 | runtime-switchable, too, so there is usually no drawback to enabling them, |
1120 | except higher disk and possibly memory usage. The perl interpreter should |
1124 | except higher disk and possibly memory usage. The perl interpreter should |
1121 | be enabled, as important functionality (menus, selection, likely more in |
1125 | be enabled, as important functionality (menus, selection, likely more in |
1122 | the future) depends on it. |
1126 | the future) depends on it. |
1123 | |
1127 | |
1124 | You should not overwrite the C<perl-ext-common> snd C<perl-ext> resources |
1128 | You should not overwrite the C<perl-ext-common> snd C<perl-ext> resources |
… | |
… | |
1147 | This forking is done as the very first within main(), which is very early |
1151 | This forking is done as the very first within main(), which is very early |
1148 | and reduces possible bugs to initialisation code run before main(), or |
1152 | and reduces possible bugs to initialisation code run before main(), or |
1149 | things like the dynamic loader of your system, which should result in very |
1153 | things like the dynamic loader of your system, which should result in very |
1150 | little risk. |
1154 | little risk. |
1151 | |
1155 | |
1152 | =head3 On Solaris 9, many line-drawing characters are too wide. |
|
|
1153 | |
|
|
1154 | Seems to be a known bug, read |
|
|
1155 | L<http://nixdoc.net/files/forum/about34198.html>. Some people use the |
|
|
1156 | following ugly workaround to get non-double-wide-characters working: |
|
|
1157 | |
|
|
1158 | #define wcwidth(x) wcwidth(x) > 1 ? 1 : wcwidth(x) |
|
|
1159 | |
|
|
1160 | =head3 I am on FreeBSD and rxvt-unicode does not seem to work at all. |
1156 | =head3 I am on FreeBSD and rxvt-unicode does not seem to work at all. |
1161 | |
1157 | |
1162 | Rxvt-unicode requires the symbol C<__STDC_ISO_10646__> to be defined |
1158 | Rxvt-unicode requires the symbol C<__STDC_ISO_10646__> to be defined |
1163 | in your compile environment, or an implementation that implements it, |
1159 | in your compile environment, or an implementation that implements it, |
1164 | wether it defines the symbol or not. C<__STDC_ISO_10646__> requires that |
1160 | whether it defines the symbol or not. C<__STDC_ISO_10646__> requires that |
1165 | B<wchar_t> is represented as unicode. |
1161 | B<wchar_t> is represented as unicode. |
1166 | |
1162 | |
1167 | As you might have guessed, FreeBSD does neither define this symobl nor |
1163 | As you might have guessed, FreeBSD does neither define this symbol nor |
1168 | does it support it. Instead, it uses it's own internal representation of |
1164 | does it support it. Instead, it uses its own internal representation of |
1169 | B<wchar_t>. This is, of course, completely fine with respect to standards. |
1165 | B<wchar_t>. This is, of course, completely fine with respect to standards. |
1170 | |
1166 | |
1171 | However, that means rxvt-unicode only works in C<POSIX>, C<ISO-8859-1> and |
1167 | However, that means rxvt-unicode only works in C<POSIX>, C<ISO-8859-1> and |
1172 | C<UTF-8> locales under FreeBSD (which all use Unicode as B<wchar_t>. |
1168 | C<UTF-8> locales under FreeBSD (which all use Unicode as B<wchar_t>. |
1173 | |
1169 | |
… | |
… | |
1187 | |
1183 | |
1188 | The rxvt-unicode author insists that the right way to fix this is in the |
1184 | The rxvt-unicode author insists that the right way to fix this is in the |
1189 | system libraries once and for all, instead of forcing every app to carry |
1185 | system libraries once and for all, instead of forcing every app to carry |
1190 | complete replacements for them :) |
1186 | complete replacements for them :) |
1191 | |
1187 | |
1192 | =head3 I use Solaris 9 and it doesn't compile/work/etc. |
|
|
1193 | |
|
|
1194 | Try the diff in F<doc/solaris9.patch> as a base. It fixes the worst |
|
|
1195 | problems with C<wcwidth> and a compile problem. |
|
|
1196 | |
|
|
1197 | =head3 How can I use rxvt-unicode under cygwin? |
1188 | =head3 How can I use rxvt-unicode under cygwin? |
1198 | |
1189 | |
1199 | rxvt-unicode should compile and run out of the box on cygwin, using |
1190 | rxvt-unicode should compile and run out of the box on cygwin, using |
1200 | the X11 libraries that come with cygwin. libW11 emulation is no |
1191 | the X11 libraries that come with cygwin. libW11 emulation is no |
1201 | longer supported (and makes no sense, either, as it only supported a |
1192 | longer supported (and makes no sense, either, as it only supported a |
… | |
… | |
1204 | old libW11 emulation. |
1195 | old libW11 emulation. |
1205 | |
1196 | |
1206 | At the time of this writing, cygwin didn't seem to support any multi-byte |
1197 | At the time of this writing, cygwin didn't seem to support any multi-byte |
1207 | encodings (you might try C<LC_CTYPE=C-UTF-8>), so you are likely limited |
1198 | encodings (you might try C<LC_CTYPE=C-UTF-8>), so you are likely limited |
1208 | to 8-bit encodings. |
1199 | to 8-bit encodings. |
|
|
1200 | |
|
|
1201 | =head3 Character widths are not correct. |
|
|
1202 | |
|
|
1203 | urxvt uses the system wcwidth function to know the information about |
|
|
1204 | the width of characters, so on systems with incorrect locale data you |
|
|
1205 | will likely get bad results. Two notorious examples are Solaris 9, |
|
|
1206 | where single-width characters like U+2514 are reported as double-width, |
|
|
1207 | and Darwin 8, where combining chars are reported having width 1. |
|
|
1208 | |
|
|
1209 | The solution is to upgrade your system or switch to a better one. A |
|
|
1210 | possibly working workaround is to use a wcwidth implementation like |
|
|
1211 | |
|
|
1212 | http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c |
1209 | |
1213 | |
1210 | =head1 RXVT-UNICODE TECHNICAL REFERENCE |
1214 | =head1 RXVT-UNICODE TECHNICAL REFERENCE |
1211 | |
1215 | |
1212 | The rest of this document describes various technical aspects of |
1216 | The rest of this document describes various technical aspects of |
1213 | B<rxvt-unicode>. First the description of supported command sequences, |
1217 | B<rxvt-unicode>. First the description of supported command sequences, |
… | |
… | |
2197 | |
2201 | |
2198 | =head1 CONFIGURE OPTIONS |
2202 | =head1 CONFIGURE OPTIONS |
2199 | |
2203 | |
2200 | General hint: if you get compile errors, then likely your configuration |
2204 | General hint: if you get compile errors, then likely your configuration |
2201 | hasn't been tested well. Either try with C<--enable-everything> or use |
2205 | hasn't been tested well. Either try with C<--enable-everything> or use |
2202 | the F<./reconf> script as a base for experiments. F<./reconf> is used by |
2206 | the default configuration (i.e. C<--enable-xxx> or C<--disable-xxx>). Of |
2203 | myself, so it should generally be a working config. Of course, you should |
2207 | course, you should always report when a combination doesn't work, so it |
2204 | always report when a combination doesn't work, so it can be fixed. Marc |
2208 | can be fixed. Marc Lehmann <rxvt@schmorp.de>. |
2205 | Lehmann <rxvt@schmorp.de>. |
|
|
2206 | |
2209 | |
2207 | All |
2210 | All |
2208 | |
2211 | |
2209 | =over 4 |
2212 | =over 4 |
2210 | |
2213 | |
… | |
… | |
2242 | |
2245 | |
2243 | =begin table |
2246 | =begin table |
2244 | |
2247 | |
2245 | all all available codeset groups |
2248 | all all available codeset groups |
2246 | zh common chinese encodings |
2249 | zh common chinese encodings |
2247 | zh_ext rarely used but very big chinese encodigs |
2250 | zh_ext rarely used but very big chinese encodings |
2248 | jp common japanese encodings |
2251 | jp common japanese encodings |
2249 | jp_ext rarely used but big japanese encodings |
2252 | jp_ext rarely used but big japanese encodings |
2250 | kr korean encodings |
2253 | kr korean encodings |
2251 | |
2254 | |
2252 | =end table |
2255 | =end table |
… | |
… | |
2266 | requirements per character from 2 to 4 bytes. X11 fonts do not yet |
2269 | requirements per character from 2 to 4 bytes. X11 fonts do not yet |
2267 | support these extra characters, but Xft does. |
2270 | support these extra characters, but Xft does. |
2268 | |
2271 | |
2269 | Please note that rxvt-unicode can store unicode code points >65535 |
2272 | Please note that rxvt-unicode can store unicode code points >65535 |
2270 | even without this flag, but the number of such characters is |
2273 | even without this flag, but the number of such characters is |
2271 | limited to a view thousand (shared with combining characters, |
2274 | limited to a few thousand (shared with combining characters, |
2272 | see next switch), and right now rxvt-unicode cannot display them |
2275 | see next switch), and right now rxvt-unicode cannot display them |
2273 | (input/output and cut&paste still work, though). |
2276 | (input/output and cut&paste still work, though). |
2274 | |
2277 | |
2275 | =item --enable-combining (default: on) |
2278 | =item --enable-combining (default: on) |
2276 | |
2279 | |
… | |
… | |
2322 | |
2325 | |
2323 | Write user and tty to lastlog file (used by programs like |
2326 | Write user and tty to lastlog file (used by programs like |
2324 | F<lastlogin>) at start of rxvt execution. This option requires |
2327 | F<lastlogin>) at start of rxvt execution. This option requires |
2325 | --enable-utmp to also be specified. |
2328 | --enable-utmp to also be specified. |
2326 | |
2329 | |
2327 | =item --enable-xpm-background (default: on) |
2330 | =item --enable-afterimage (default: on) |
2328 | |
2331 | |
2329 | Add support for XPM background pixmaps. |
2332 | Add support for libAfterImage to be used for transparency and background |
|
|
2333 | images. It adds support for many file formats including JPG, PNG, |
|
|
2334 | SVG, TIFF, GIF, XPM, BMP, ICO, XCF, TGA and AfterStep image XML |
|
|
2335 | (L<http://www.afterstep.org/visualdoc.php?show=asimagexml>). |
|
|
2336 | |
|
|
2337 | This option also adds such eye candy as blending an image over the root |
|
|
2338 | background, as well as dynamic scaling and bluring of background images. |
|
|
2339 | |
|
|
2340 | Note that with this option enabled, @@RXVT_NAME@@'s memory footprint might |
|
|
2341 | increase by a few megabytes even if no extra features are used (mostly due |
|
|
2342 | to third-party libraries used by libAI). Memory footprint may somewhat be |
|
|
2343 | lowered if libAfterImage is configured without support for SVG. |
2330 | |
2344 | |
2331 | =item --enable-transparency (default: on) |
2345 | =item --enable-transparency (default: on) |
2332 | |
2346 | |
2333 | Add support for inheriting parent backgrounds thus giving a fake |
2347 | Add support for inheriting parent backgrounds thus giving a fake |
2334 | transparency to the term. |
2348 | transparency to the term. |
2335 | |
2349 | |
2336 | =item --enable-fading (default: on) |
2350 | =item --enable-fading (default: on) |
2337 | |
2351 | |
2338 | Add support for fading the text when focus is lost (requires C<--enable-transparency>). |
2352 | Add support for fading the text when focus is lost. |
2339 | |
2353 | |
2340 | =item --enable-tinting (default: on) |
2354 | =item --enable-tinting (default: on) |
2341 | |
2355 | |
2342 | Add support for tinting of transparent backgrounds (requires C<--enable-transparency>). |
2356 | Add support for tinting of transparent backgrounds (requires C<--enable-transparency>). |
2343 | |
2357 | |
… | |
… | |
2390 | A non-exhaustive list of features enabled by C<--enable-frills> (possibly |
2404 | A non-exhaustive list of features enabled by C<--enable-frills> (possibly |
2391 | in combination with other switches) is: |
2405 | in combination with other switches) is: |
2392 | |
2406 | |
2393 | MWM-hints |
2407 | MWM-hints |
2394 | EWMH-hints (pid, utf8 names) and protocols (ping) |
2408 | EWMH-hints (pid, utf8 names) and protocols (ping) |
|
|
2409 | urgency hint |
2395 | seperate underline colour (-underlineColor) |
2410 | seperate underline colour (-underlineColor) |
2396 | settable border widths and borderless switch (-w, -b, -bl) |
2411 | settable border widths and borderless switch (-w, -b, -bl) |
2397 | visual depth selection (-depth) |
2412 | visual depth selection (-depth) |
2398 | settable extra linespacing /-lsp) |
2413 | settable extra linespacing /-lsp) |
2399 | iso-14755-2 and -3, and visual feedback |
2414 | iso-14755 5.1 (basic) support |
2400 | tripleclickwords (-tcw) |
2415 | tripleclickwords (-tcw) |
2401 | settable insecure mode (-insecure) |
2416 | settable insecure mode (-insecure) |
2402 | keysym remapping support |
2417 | keysym remapping support |
2403 | cursor blinking and underline cursor (-cb, -uc) |
2418 | cursor blinking and underline cursor (-cb, -uc) |
2404 | XEmbed support (-embed) |
2419 | XEmbed support (-embed) |
… | |
… | |
2409 | |
2424 | |
2410 | It also enables some non-essential features otherwise disabled, such as: |
2425 | It also enables some non-essential features otherwise disabled, such as: |
2411 | |
2426 | |
2412 | some round-trip time optimisations |
2427 | some round-trip time optimisations |
2413 | nearest color allocation on pseudocolor screens |
2428 | nearest color allocation on pseudocolor screens |
2414 | UTF8_STRING supporr for selection |
2429 | UTF8_STRING support for selection |
2415 | sgr modes 90..97 and 100..107 |
2430 | sgr modes 90..97 and 100..107 |
2416 | backindex and forwardindex escape sequences |
2431 | backindex and forwardindex escape sequences |
2417 | view change/zero scorllback esacpe sequences |
2432 | view change/zero scrollback escape sequences |
2418 | locale switching escape sequence |
2433 | locale switching escape sequence |
2419 | window op and some xterm/OSC escape sequences |
2434 | window op and some xterm/OSC escape sequences |
2420 | rectangular selections |
2435 | rectangular selections |
2421 | trailing space removal for selections |
2436 | trailing space removal for selections |
2422 | verbose X error handling |
2437 | verbose X error handling |
… | |
… | |
2431 | =item --enable-keepscrolling (default: on) |
2446 | =item --enable-keepscrolling (default: on) |
2432 | |
2447 | |
2433 | Add support for continual scrolling of the display when you hold |
2448 | Add support for continual scrolling of the display when you hold |
2434 | the mouse button down on a scrollbar arrow. |
2449 | the mouse button down on a scrollbar arrow. |
2435 | |
2450 | |
|
|
2451 | =item --enable-selectionscrolling (default: on) |
|
|
2452 | |
|
|
2453 | Add support for scrolling when the selection moves to the top or |
|
|
2454 | bottom of the screen. |
|
|
2455 | |
2436 | =item --enable-mousewheel (default: on) |
2456 | =item --enable-mousewheel (default: on) |
2437 | |
2457 | |
2438 | Add support for scrolling via mouse wheel or buttons 4 & 5. |
2458 | Add support for scrolling via mouse wheel or buttons 4 & 5. |
2439 | |
2459 | |
2440 | =item --enable-slipwheeling (default: on) |
2460 | =item --enable-slipwheeling (default: on) |
2441 | |
2461 | |
2442 | Add support for continual scrolling (using the mouse wheel as an |
2462 | Add support for continual scrolling (using the mouse wheel as an |
2443 | accelerator) while the control key is held down. This option |
2463 | accelerator) while the control key is held down. This option |
2444 | requires --enable-mousewheel to also be specified. |
2464 | requires --enable-mousewheel to also be specified. |
2445 | |
2465 | |
2446 | =item --disable-new-selection |
|
|
2447 | |
|
|
2448 | Remove support for mouse selection style like that of xterm. |
|
|
2449 | |
|
|
2450 | =item --enable-dmalloc (default: off) |
|
|
2451 | |
|
|
2452 | Use Gray Watson's malloc - which is good for debugging See |
|
|
2453 | L<http://www.letters.com/dmalloc/> for details If you use either this or the |
|
|
2454 | next option, you may need to edit src/Makefile after compiling to point |
|
|
2455 | DINCLUDE and DLIB to the right places. |
|
|
2456 | |
|
|
2457 | You can only use either this option and the following (should |
|
|
2458 | you use either) . |
|
|
2459 | |
|
|
2460 | =item --enable-dlmalloc (default: off) |
|
|
2461 | |
|
|
2462 | Use Doug Lea's malloc - which is good for a production version |
|
|
2463 | See L<http://g.oswego.edu/dl/html/malloc.html> for details. |
|
|
2464 | |
|
|
2465 | =item --enable-smart-resize (default: on) |
2466 | =item --enable-smart-resize (default: off) |
2466 | |
2467 | |
2467 | Add smart growth/shrink behaviour when changing font size via hot |
2468 | Add smart growth/shrink behaviour when resizing. |
2468 | keys. This should keep the window corner which is closest to a corner of |
2469 | This should keep the window corner which is closest to a corner of |
2469 | the screen in a fixed position. |
2470 | the screen in a fixed position. |
2470 | |
2471 | |
2471 | =item --enable-pointer-blank (default: on) |
2472 | =item --enable-pointer-blank (default: on) |
2472 | |
2473 | |
2473 | Add support to have the pointer disappear when typing or inactive. |
2474 | Add support to have the pointer disappear when typing or inactive. |
2474 | |
2475 | |
2475 | =item --enable-perl (default: on) |
2476 | =item --enable-perl (default: on) |
2476 | |
2477 | |
2477 | Enable an embedded perl interpreter. See the B<@@RXVT_NAME@@perl(3)> |
2478 | Enable an embedded perl interpreter. See the B<@@RXVT_NAME@@perl(3)> |
2478 | manpage (F<doc/rxvtperl.txt>) for more info on this feature, or the files |
2479 | manpage (F<doc/rxvtperl.txt>) for more info on this feature, or the |
2479 | in F<src/perl-ext/> for the extensions that are installed by default. The |
2480 | files in F<src/perl-ext/> for the extensions that are installed by |
2480 | perl interpreter that is used can be specified via the C<PERL> environment |
2481 | default. The perl interpreter that is used can be specified via the |
2481 | variable when running configure. |
2482 | C<PERL> environment variable when running configure. Even when compiled |
|
|
2483 | in, perl will I<not> be initialised when all extensions have been disabled |
|
|
2484 | C<-pe "" --perl-ext-common "">, so it should be safe to enable from a |
|
|
2485 | resource standpoint. |
|
|
2486 | |
|
|
2487 | =item --with-afterimage-config=DIR |
|
|
2488 | |
|
|
2489 | Look for the libAfterImage config script in DIR. |
2482 | |
2490 | |
2483 | =item --with-name=NAME (default: urxvt) |
2491 | =item --with-name=NAME (default: urxvt) |
2484 | |
2492 | |
2485 | Set the basename for the installed binaries, resulting |
2493 | Set the basename for the installed binaries, resulting |
2486 | in C<urxvt>, C<urxvtd> etc.). Specify C<--with-name=rxvt> to replace with |
2494 | in C<urxvt>, C<urxvtd> etc.). Specify C<--with-name=rxvt> to replace with |
… | |
… | |
2496 | PATH. |
2504 | PATH. |
2497 | |
2505 | |
2498 | =item --with-x |
2506 | =item --with-x |
2499 | |
2507 | |
2500 | Use the X Window System (pretty much default, eh?). |
2508 | Use the X Window System (pretty much default, eh?). |
2501 | |
|
|
2502 | =item --with-xpm-includes=DIR |
|
|
2503 | |
|
|
2504 | Look for the XPM includes in DIR. |
|
|
2505 | |
|
|
2506 | =item --with-xpm-library=DIR |
|
|
2507 | |
|
|
2508 | Look for the XPM library in DIR. |
|
|
2509 | |
|
|
2510 | =item --with-xpm |
|
|
2511 | |
|
|
2512 | Not needed - define via --enable-xpm-background. |
|
|
2513 | |
2509 | |
2514 | =back |
2510 | =back |
2515 | |
2511 | |
2516 | =head1 AUTHORS |
2512 | =head1 AUTHORS |
2517 | |
2513 | |