Bugfixes:
* Handle EIO errors (got when tcsh / fish exit) properly. Patch by
Zoltan Szalontai.
* Disabled Shift+Enter shortcut by default, since it may confuse new
users.
* Make Alt+Enter behave like Xterm.
. Added %T,%G,%P flags for percent interpolation (useful for dtach).
* Bold colored text is rendered in BOTH bold font, and bright color.
Use only bold font.
* r->num_fds is properly reduced when tabs are closed
* Ignore focus events of type NotifyGrab and NotifyUngrab. This
caused an annoying blinking when focussing other windows via the
keyboard. (Thanks to Roman Po???zka for pointing this out).
* Removed the --focusDelay option (no longer necessary with above
bugfix).
Enhancements:
* Added --titleFormat and --winTitleFormat options to control display
of tab and window titles.
* Added options --veryBright and --boldColors to control how bold
primary colors are rendered.
* Added --useFifo option, to make mrxvt listen for macros on a fifo.
Code based on patch by Jozef Vesely.
* Added Raise macro to "raise" the mrxvt window. Thanks to Jozef
Vesely for the patch.
* Added a UseFifo macro to enable / disable --useFifo at runtime.
* Defined a macro that opens a "mrxvt console" in a new tab (bound to
Ctrl+Shift+c by default).
* Added --enable-use-fifo compile time option for people paranoid about
security.
* Added BOLD_BRIGHTENS_256_COLORS option in feature.h which attempts
to brighten even non-primary colors instead of drawing them in
bold. (Respects boldColors and veryBright).
* Made winTitleFormat a profile option.
* Added -ic option to set the application icon. (Adapted from patch
#1656294 by Stanislav Mekhanoshin)
* Check locale for encoding method if it is not specified by -km
option or multichar_encoding resource.
* Add new debugging facility such that a user can specify the
message type and verbose level by command line options. Run
`mrxvt -dmask whatever -dlevel something' for details.
* Fix compile error when use Sun Studio 10. Thanks to Quintin
Beukes for the patch.
0.5.1 to 0.5.2
\-----------------------------------
Gautam Iyer <gi1242@sf>
* Bug Fixes:
0. Did a HUGE REWRITE of the multi-tab code base. Incomplete escape
sequences longer cause lockups. Really busy tabs no longer starve
everything else!
1. Fixed detecting xft support if xft-config is missing.
2. Fixed segfault obtained when the last macro in r->macros is executed
4. Convert sources from ts=8 to ts=4. Yes ts=8 was a bug :). Added a
script ts4to8.pl to do this.
3. Make text under cursor visible if cursorcolor2 is not defined.
5. Added "Exec" macro to execute external programs
6. Added % expansion to macros. %s=selection, %t=tab title, %n=tab#.
7. Added a menu option to open the selection in a new tab in mutt /
w3m, or in firefox.
8. Implemented a "-into" option to embed mrxvt into. Thanks to Bruno
Deferrari <utizoc@gmail.com> for the patch.
9. Fix buffer overflow. Thanks to Frederik Deweerdt <deweerdt@free.fr>
for the patch.
10. Made -ufbg and -fade options work under Xft ;).
11. Font specified with --boldFont is correctly handled (even if it's
of a different dimension).
12. Exited tabs are now correctly held. Output from them is not lost
even if they exit very quickly.
13. Rewrote the -ufbg and focus fading code completely. Now works
correctly if tabs are switched on on unfocussed window, or if the
bg is changed (via an escape sequence) from an inactive tab /
unfocussed window.
14. Removed round trip to server when allocing Xft colors. (Reduces
protocol requests by about 750 on startup, which should speed
things up on a slow connection).
15. Defined CURSOR_COLOR_IS_RENDITION_COLOR by default in
src/feature.h. This makes the cursor better visible when the cursor
color is not defined, and makes the behaviour similar to the
default behaviour of Xterm.
16. BugFix: Str and Esc macros caused a beep on execution.
17. Updated examples / menus to use new word splitting.
18. When user closes the mrxvt window, don't forcefully exit. Instead
send SIGHUP to all child processes, and wait for childs to exit.
Previous behaviour caused problems if the child produced some
output on SIGHUP, or took a few seconds to exit.
* Enhancements:
0. Really busy tabs (even with Xft+anti aliasing) no longer starves
anything else!
1. Reduced memory footprint by roughly 5kb.
2. Converted all source files to use the standard ts=8 for easier
diffing / online viewing.
3. Added a --focusDelay option to collect focus changes events over an
interval. This is mainly to work around a bug in some window
managers.
4. Xft bold fonts now actually use the bold font, instead of over
striking.
5. Added a --xftBoldWeight option to control the weight of the Xft
bold font.
6. Made --holdExit a string option, so that tabs can be held based on
the exit status of the child.
7. Added --holdExitTitle and --holdExitText options to specify the
title of an exited tab, and the text printed in the tab of an
exited child process.
8. Removed the "jumpScroll" option, and replaced it with
--refreshLimit and --skipPages (see man page).
9. Changed word splitting of commands executed via NewTab and exec
macros. Now words are split only at spaces or tabs (unless
backslashed). If command starts with "!", it is passed to /bin/sh
-c, which does all the word splitting / executing. For the old
behaviour define INERNAL_WORD_SPLIT in src/feature.h.
Jimmy Zhou <jimmyzhou@sf>
* Bug Fixes:
1. Fix mrxvtset.pl as pointed by Avi Yagodnick.
2. Fix mouse button 4/5 behavior. Make it the same as firefox
as pointed out by Yoshihiko Kashio.
3. Fix reverse video when foreground/background colors are not
defined. Thanks to Yoshihiko Kashio.
4. Disable slave macros in the macro chains if the first (master)
macro is defined as dummy.
5. Fix off-focus fading. Thanks to Ken Zalewski for the report.
6. Add macros to check and set options. Extend the number of
options.
7. Add macros to check and unset X resources.
8. Add macros to check and set NULL pointers.
9. Fix some freeing NULL pointer issues.
10.Fix black and white icons. Thanks to William Poetra Yoga
Hadisoeseno for the patch!
11.Lots of code cleanup in command.c:rxvt_cmd_getc. Previously
it is lengthy and nearly unmaintenanble.
12.Fix round-robin algorithm of command.c:rxvt_find_cmd_child.
13.Fix crash if click on empty space of menubar. Thanks to Zhu
Qunying for the patch.
14.Fix severl compile error - we must call DBG_MSG after variable
declaration in functions as we are using C, not C++. Thanks to
lzl@mitbbs.com for bringing this issue to me and provide patch.
15.Fix unclosed file descriptors in child process.
16.Fix session support. We actually did not listen on it because
the number of open file descriptor is small - we did not count
it!
* Enhancements:
1. Add --with-max-profiles to configure script as suggested
by Avi Yagodnick.
2. Add experimental fast (hopefully) memory management code. It
is disabled by default.
0.5.0 to 0.5.1
\-----------------------------------
Jimmy Zhou <jimmyzhou@sf>
* Bug Fixes:
1. Compile error at rxvt_free_clipping (screen.c) when XFT
support is not enabled.
2. Fix typo in acute acent. Thanks to Benedikt Magnusson
for the bug report.
3. Fix file descriptor leakage - we should close /dev/ptmx
after forking. Thanks to Edgar Toernig for the report
and patch.
4. Always show cursor while mrxvt loses focus. Thanks to
Edgar Toernig for the patch.
5. Adjust several limits, e.g., max border width and min
blink time according to Edgar Toernig's patch.
6. Fix rpmbuild (Sourceforge Bug #1482311)
7. Fix crash on OpenBSD 3.9 when MULTI_CHAR is enabled -
the variable morecur (defined as char) in screen.c is
treated as unsigned (WtF!).
8. Fix compile error on OpenBSD 3.9 when MULTI_CHAR is
enabled (OpenBSD keeps playing game with us!).
9. Saving session behavior now conforms to profile support.
10. Apply patches from FreeBSD ports.
11. Fix crash on Solaris when calling XLookupString. Xlib
manual states that a portable program should pass NULL
to the last (compose) parameter.
12. Add mrxvt 0.4.x compatible keyboard combinations to
mrxvtrc. They are disabled by default though. Thanks to
Mihail Zenkov for the report and Dimitri AT sun.com for
the solution.
* Enhancements:
1. Enable multiple bold fonts. Thanks to Edgar Toernig for
the patch.
2. Add Fink package build. Thanks to Jeremy Anthony for the
submission.
Gautam Iyer <gi1242@sf>
* Bug Fixes:
1. Macros now ignore the state of caps lock (as they should).
2. The highlight flag is now set even if the tabbar is hidden (so
showing the tabbar will show which tab produced the beep).
3. Macros without modifiers did not work. Fixed this.
4. Ignore SIGHUP (caused exit when parent shell is killed).
5. Ignore SIGPIPE (caused exit when print command crashes).
6. Some Xft fonts, e.g., aquafont, report double the actual width.
This cause some text being clustered together while the cursor
and user input have double size. Test, and correct for this.
Notice that this fix will work for fontconfig 2.3.2 (as we have
tested) or later version, and you must run ``fc-cache -f'' after
upgrading fontconfig. It will not work for fontconfig 2.2.3 and
earlier versions due to the bug of fontconfig.
7. Also dump initial tab titles when the --cmdInitTabs options are
given (this used to cause incorrect behaviour when the user closes
tab 0, and opens a new tab).
8. Fixed bug #1473987. (Jagged edges of screen fonts)
9. Fixed bug #1357219. (Made bg changes via escape sequences sticky)
10. Saved configuration file is now profile compliant.
11. Setting the tab title via \e]0 behaves like \e]2 (i.e. honors the
macros SET_TAB_TITLE_ON_XTERM_SEQUENCE & SET_TAB_TITLE_NOT_WIN_TITLE
defined in feature.h). Previously only \e]2 would honor these
macros. To only set the window title, the new escape sequence \e]60
has been added.
* Code cleanup:
1. Made coding & comment style similar to that of Vim (works well with
Vim7's syntax folding).
2. Removed --confFileSave option. It's no longer needed as the
SaveConfig macro accepts an argument.
* Enhancements:
1. Warn if closing mrxvt with multiple tabs (and the tabbar is
hidden).
2. Code cleanup (OK. That's not really an enhancement for users)
3. Update documentation.
* New features:
1. Changed the behaviour of the --vt%d.xx resources. The settings are
now tied to profile %d (as opposed to the %d'th tab). A new tab
with profile %d can be opened on demand, or on startup.
2. Added option --initProfileList to replace -tnum. (Marked -tnum as
obsolete).
3. Removed option --cmdInitTabs as it is no longer meaningful with
profiles.
4. When the command specified via the --profile%d.command option is
prefixed with an '!', run the shell first and then execute the
command. Removed the --tabShell option (as the prefix with '!' is
more flexible).
5. Macros can now be chained (i.e. you can execute upto 16 actions in
sequence with any macro).
6. Made the print screen macro take a command argument. You can use
this to define a macro to open the scroll back buffer in less (for
instance) in a new tab, and search regexp's to your heart's content
:).
7. Made the extra height of active tabs, and radius of tab corners
compile time options.
8. Added a --workingDirectory (profile) option to set the working
directory of new tabs. Set to "." to use the cwd of the active tab.
9. Added a ToggleFullscreen macro. (Use with --smoothResize enabled).
0.4.2 to 0.5.0
\-----------------------------------
Gautam Iyer <gi1242@sf>
* Bug Fixes:
1. Bug #1301269: Make ACS graphics / line drawing characters work
under Xft.
2. Bug #1337635: Made ColorBD/HL work under Xft.
3. Fixed pseudo-transparency when the root background is tiled on the
desktop.
4. Numerous fixes to options to match the documentation (see CVS
logs).
5. Partially fixed "transparentForce" option (see man page).
6. Enabled pointer blank under Xft.
7. Fixed text shadow.
8. Enabled Xft with menus.
9. If we're unable to exec the shell (or command specified), print an
error message and exit gracefully. (Thanks to Eygene Ryabinkin).
10. Fix crash after XIM quits. (Thanks to Gary Zhang for pointing it to
us, and attach the patch).
11. Fix XIM preedit problems (Thanks to Yoshihiko Kashio for the
patch), including:
- wrong calculation of the preedit area size with hide/show
bars
- updating the size of the preedit area with resizing window
- updating the fontset of the preedit area with changing
font size
- the linespace of the preedit area is not configured
- the preedit character is not drawn on the font baseline
- clean up codes related to XIM
13. Fix compile on cygwin by implementing strcasestr.
14. Added a macro XTERM_KEYS to feature.h. If defined, then modified
function keys will send the same escape sequences as Xterm.
15. Fixed DEC sequences sent by the numeric keypad.
* Enhancements (Performance):
1. Reduced memory (xresource) usage under pseudo-transparency.
2. Made performance improvement to expose events (especially under
Xft). Dragging some other window over mrxvt no longer causes
any flicker :).
3. Decreased CPU usage when not focused.
4. Rewrote tabbar drawing routines to eliminate flicker on expose.
5. Optimized screen drawing routine with "caching": Causes notable
performance improvement under Xft.
* Enhancements (Appearance / Features):
1. Updated documentation! (Includes shiny new almost complete man
page).
2. Make tabbar apearence more intuitive: Use itabBackground instead of
tabBackground for the background of the tabBar so that the active
tab stands out better.
3. Make highlighted tabs stay highlighted until activated.
4. Fixed borderless windows (thanks to Jonathan Black for the patch).
5. Added popup menus. Ctrl left/right click pops up menus.
6. Right click on tabbar now pops a menu listing all tabs.
7. Rewrote tabbar drawing routines. Tabs now have rounded tops. Also
made the active tab bigger than the others (like Konsole).
8. When clearing the primary screen, we move the text into the
scrollback buffer (instead of discarding the information
completely). Thanks to Sabit Sayeed for the suggestion.
* New features:
1. Added option -htb (--highlightTabOnBell) to highlight inactive tabs
only when a bell sounds.
2. Added option -mtw (--maxTabWidth) to set the maximum displayed with
of each tab.
3. Added option --smoothResize to resize the window in pixel
increments instead of by char. Useful for fullscreen / maximizing.
Requires frills.
4. Added option --fullScreen to make window fullscreen.
5. Made feature --enable-smartresize into option --smartResize. Make
smart resize aware of window manager decorations. Requires frills.
6. Added option -aht (--autohideTabbar) to automatically hide the
tabbar if there is only one tab, and show it if there are more than
one tabs open.
7. Added a "hard reset" hotkey. Thanks to Pavel Gorshkov for the
patch.
8. Added --enable-xrender compile time option to use XRender alpha
blending to tint the background under pseudo transparency.
9. Enabling tinting transparent tabbar / menubar with their background
colors. Requires XRender.
10. Added --bgRefreshInterval option specifying how long we should wait
before refreshing our background. This avoids laggy delays while
dragging the window.
11. Added hotkeys ScrollHome and ScrollEnd to scroll to the beginning
and end of the scrollback buffer. Bound these by default to
Shift+Home and Shift+End.
12. Added option -xftpfn and -xftpsz to specify the name and size of a
propotionally spaced font for the tabbar / menubar.
13. Added support for Firefox like tabs: All tabs have the same width,
and they shrink as tabs are added. Requires xftpfn
14. Added option -mvt to determine the minimum number of tabs to keep
visible.
15. Added CloseWindow hotkey and escape sequence.
16. New tabs now open in the current working directory of the active
tab.
17. The "hotkey" feature from mrxvt-0.4.2 has now been replaced with
a "macro" feature. This reduces the code size slightly, and
provides added functionality.
18. Implemented a "ToggleMacros" function to toggle using keyboard
macros. Renamed options "-dh" and "-ddh" to "-dm" and "-nsc"
respectively.
19. Added feature to move tabs by dragging.
* Code cleanup:
1. Removed the SCROLL_ON_* features. These can all now be implemented
using hotkeys.
2. Cleaned up menubar code.
3. With -xftpfn the menus now look good :). And you have your precious
Control right click menu from Xterm.
4. Changed default scroll bindings to only work on the primary screen.
5. Fixed code indent (and added lots of comments) in lots of places.
6. Removed compiled in keyboard shortcuts (e.g. Ctrl-+ font resizing).
This can be done with macros, and the macros method provides added
flexibility.
7. Removed support for getting resources using the X resource
database. Now resources are only read using ~/.mrxvtrc.
* Incompatible Changes:
1. Tinting works differently with XRender. See -tint in the man page.
2. The default terminal is now "rxvt" instead of "xterm". This causes
trouble on some systems where the "rxvt" termcap / terminfo entries
are not correctly setup.
3. The old "hotkey" feature has been removed. Use the "macro" feature
instead.
4. Mrxvt menus are now incompatible with rxvt. Mainly because the
menu-action works similar to the macro actions, which extends the
functionality of the old rxvt menus.
5. Quite a few escape sequences controling tabs have been disabled for
security concerns (e.g. creating, closing and moving tabs). All
these functions can be accessed through macros, and menus. (The
idea is that only interactive users should have access to these
functions. 'cat'ing a text file with these escape sequences should
not produce such effects.
6. A few default bindings were changed for consistency (and might be
changed again).
Jimmy Zhou <jimmyzhou@sf>
fix bug under XFT that ColorBD/ColorHL are ignored (Sourceforge
Bug ID# 1337635). Thanks Gautam Iyer for the patch.
fix screen flicker behavior when pseudo-transparency is enabled
and mrxvt is off-screen. Also fix a BadMatch error. Thanks
a lot to Gautam Iyer for the clear explanation of the problem
and his nice patch.
fix code of highlighting inactive tabs when they receive some
output. Add an compile option HIGHLIGHT_TAB_ON_BELL into
feature.h (disabled by default) so that inactive tabs are
only highlighted when they receive bell. Also make highlight
bold. Thanks Joshua Wise for the suggestion and patch.
fix hot key parsing. Primary flag should not be checked like
ctrl/meta/shift flag.
fix button click action on tabbar based on Mark Olesen's patch.
Now scroll-up and scroll-down clicks (Button4 and Button5)
will active the previous/next tab. In addition, only clicks
of Button1 will activate the button functions.
fix hotkey handler to kill a tab according to Mark Olesen's
suggestion. That says, if there is only one tab left, we
shall not kill it to quite the entire terminal. This behavior
is the same as gnome-terminal.
0.4.1 to 0.4.2
\-----------------------------------
Jimmy Zhou <jimmyzhou@sf>
add question of emacs hotkey and answer in FAQ.
add option to load application icon, not implemented yet.
fix display problem when both bottomTabbar and hideTabbar are
enabled (Sourceforge Bug ID 1299309).
fix signal sent to child process when quit a page. We now send
SIGHUP instead of SIGKILL to be more graceful.
fix compile error on OpenBSD 3.7.
fix missing iconv library on OpenBSD 3.7.
fix prematurely stop of tab title sequences on ^C. Thanks to
Johann 'Myrrkraverk' for the report and patch [Sourceforge
Bug ID 1211691]. If any of you dislike the patch, please
blame Johann instead of me. ;-)
fix default 256 colors. When XTERM_COLORS is defined, we use the
same colors as xterm. Thanks to Gautam Iyer for the patch.
fix trailing space in selection by porting Marius Gedminas's
patch for rxvt - we will not copy trailing space in mouse
selection. Thanks to Mun Johl for pointing me the patch.
fix 64-bit bugs reported on debian
fix default maximal number of tabs to 15.
fix configure.ac. Revert back the LINUX_KEYS check (disable it)
since it causes lots of complaints. :p I think LINUX_KEYS
mean to use Home/End keys as Linux console. But X terminals
like mrxvt are different.
add a new configurable X resource for Linux console style Home/End
keys instead of fixing it in the source code.
fix rxvt_process_hotkey interface, simplify it by eliminating the
three mask variables.
fix escape sequence of F1 - F4. Now we introduce a *magic* check
to determine the terminal type at run-time and send correct
escape sequence accordingly. To support this feature, we also
introduce a new escape sequence to let user tell mrxvt that
terminal type has changed at run-time. To be clear, normally
user changes the TERM environment variable in shell. However,
this change is not visible to mrxvt! So the user must tell
mrxvt that the TERM environment variable has been changed using
this new escape sequence. Thanks to Johann Oskarsson for the
report and patch.
packages with the modular Xorg equivalent. Those are falling back
to the old location by default, so this commmit doesn't change
dependencies.
graphics/xpm ==> x11/libXpm
fonts/Xft2 ==> x11/libXft
x11/Xfixes ==> x11/libXfixes
x11/xcursor ==> x11/libXcursor
x11/Xrender ==> x11/libXrender
x11/Xrandr ==> libXrandr
Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
Mrxvt (previously named as materm) is a lightweight and powerful
multi-tabbed X terminal emulator based on the popular rxvt and aterm.
It implements many useful features seen in some modern X terminal
emulators, like gnome-terminal and konsole, but keeps to be
lightweight and independent from the GNOME and KDE desktop
environment.