MRXVT(1)
π NAME π
Okay so this is the mrxvt(1) manual, and the whole vibe is: mrxvt β A tabbed VT102 terminal emulator for X Window System. π»β¨
πΈ SYNOPSIS πΈ
mrxvt [options] [-e cmd]
β¨ DESCRIPTION β¨
Bestie, the mrxvt program is a terminal emulator for X Window System. It provides DEC VT102 compatible terminals for programs that cannot use the window system directly. π«Ά
mrxvt is based on rxvt(1) version 2.7.11 CVS, and features most of functionality of rxvt, with a few major enhancements (namely multiple tabs, and transparency). Like rxvt, mrxvt aims to be light, fast, flexible and desktop independent, thus KDE or GNOME are not required. π
The primary features of mrxvt include (but are not limited to) multiple tabs, dynamically changeable tab titles, customizable command for each tab, input broadcasting, true translucent window, fast pseudo transparency with tinting, user supplied background images (XPM, JPEG, PNG), off-focus fading, text shadow, multiple style (NeXT, Rxvt, Xterm, SGI, Plain) scrollbars, XIM, multi-language support (Chinese, Korean, Japanese), freetype font, logging and (in-)activity monitoring. π
The default mrxvt behaviour can be set using the resource configuration file ~/.mrxvtrc. For backward compatibility, if ~/.mrxvtrc is not found, mrxvt tries to load configuration settings from the files ~/.Xdefaults or ~/.Xresources. Alternately, you can specify which config file to load using the -cf command line option. π
π OPTIONS π
Okay so this section describes the commandline options mrxvt accepts. To disable an option, prefix it with a + instead of a -. Most options can be set from your ~/.mrxvtrc file using the option name listed in brackets as [option_name]. The option name can also be used as a "long option" from the command line (i.e. by prefixing it with -- or ++ as appropriate). For example:
mrxvt -tr -shade 85 +trt
is the same as:
mrxvt --transparent --shading 85 ++transparentTabbar
which is the same as putting the lines:
Mrxvt.transparent: True
Mrxvt.shading: 85
Mrxvt.transparentTabbar: False
in your ~/.mrxvtrc.
All options are case sensitive. Some options are similar to those of other terminals, so if you find the explanation given here insufficient, we strongly recommend you look in the rxvt(1) and xterm(1) manpages. π
π Terminal name and display options π
-display,-ddisplayname β X display name, the X server to contact. π-geometry,-ggeometry β geometry at startup[geometry].-icfile[;geometry] β application icon file.[appIcon]-iconic,+iconicβ start iconic[iconic].-inname β Icon name for window[iconName].-intoWinID β If given an X window identifier,mrxvtwill reparent its top-level shell widget to that window. This is used to embedmrxvtwithin other applications.-namename β Client instance, icon, and title strings[clientName].-titlestring β title name of the window[title].-tntermname β The type of terminalmrxvtshould emulate. The value of theTERMenvironment variable is set to this value for all child processes launched bymrxvt. Note thatrxvtand mostrxvtclones includingmrxvt, have slightly different terminal capabilities than those ofxterm(1). Thusmrxvtwill not always work properly with the terminal set toxterm, and we recommend setting this value torxvtinstead. However some systems have incorrect (or even missing)terminfo(1)ortermcap(1)entries for the terminalrxvt. If you experience problems with this, the ideal solution would be to correct your systems termcap and terminfo entries. If you are unable to do that, then you can try setting your terminal toxtermand hope everything works properly.[termName]π
π¦ Transparency related options π¦
-o%d β Translucent window (true transparent) background opacity degree. %d is an integer between0and100. This option needs translucent support by the X server, e.g.,Xorg 6.8, and overrides the pseudo-transparency.[opacity]-od-%d β Translucent window opacity degree increase/decrease interval. %d is an integer between0and100[opacityDegree].-tr,+trβ Enable / disable background pseudo-transparency. To use this feature you must set your desktop wallpaper using anEsetrootcompatible program (i.e. a program that publishes the wallpaper using the_XROOTPMAP_IDatom). Some programs that will do this areEsetroot(1),feh(1),fvwm-root(1)with the--retain-pixmapoption, or KDE. Note: To use your preciousbackgroundFade, tinting or shading options, you MUST set the desktop wallpaper in an Esetroot way.[transparent]π-trf,+trfβ If you choose NOT to set the background in an Esetroot compatible way, then you can still have transparency using this option. (You must also enable thetransparentoption). Background changes made byFvwmBacker,xsetbg(xli) or Esetroot compatible programs, will be automatically detected. However changes made byxv(1),xsetroot(1)or other non-Esetroot compatible programs will not be detected. If you're hell bent on non-Esetroot compatible programs to set your background, then do something like:
xsetroot -solid "#202040" && fvwm-root -d
Note: To use your precious backgroundFade, tinting or shading options, you MUST set the desktop wallpaper in an Esetroot way. [transparentForce]
-trm,+trmβ Enable / disable pseudo-transparent menubar. Pseudo-transparency must be turned on.[transparentMenubar]-trs,+trsβ Enable / disable pseudo-transparent scrollbar. Pseudo-transparency must be turned on.[transparentScrollbar]-trt,+trtβ Enable / disable pseudo-transparent tabbar. Pseudo-transparency must be turned on.[transparentTabbar]
π§ Background image related options π§
-mbpixmapfile[;geometry] β Menubar background image. Pseudo-transparency must be turned off.[menubarPixmap]-pixmapfile[;geometry] β Background image for all terminals if not set individually. Pseudo-transparency must be turned off.[Pixmap]-sbpixmapfile[;geometry] β Scrollbar background image. Pseudo transparency must be turned off.[scrollbarPixmap]-tbpixmapfile[;geometry] β Tabbar background image. Pseudo transparency must be turned off.[tabbarPixmap]-tupixmap,+tupixmapβ Apply tabbar background image to tabs.[tabUsePixmap]
π Scrolling related options π
-mp,+mpβ scroll one page when press mouse wheel button[mouseWheelScrollPage].-samode β Scrollbar alignment (top|bottom)[scrollbarAlign].-sb,+sbβ Hide / show scrollbar[scrollBar].-sbtwidth β Scrollbar thickness/width[scrollbarThickness].-si,+siβ Inhibit scrolling on tty output.[scrollTtyOutputInhibit]-sk,+skβ scroll-on-keypress[scrollTtyKeypress].-sln β The number of scrolled lines to save (for all tabs) if not set individually. The maximal number of saved lines is65535.[saveLines]-sr,+srβ Scrollbar on right[scrollbarRight].-ssmode β Scrollbar style. mode should be one ofplain,xterm,rxvt,nextorsgi.[scrollbarStyle]-st,+stβ Draw floating scrollbar (i.e. without a trough).[scrollbarFloating]
πΈ Color related options πΈ
-bgcolor β Background color[background].-bdcolor β Border color[borderColor].-bgfade%d β β οΈ (Obsolete) Make colors %d darker for background image or pseudo-transparent background. %d is an integer between0and100. This is like tinting the background with black. This option is obsolete, and you should use the tint and shade options instead.[backgroundFade]-bgtypetype β Transformation type for background pixmap (not implemented yet).-crcolor β color of cursor[cursorColor].-fade%d β Make colors %d darker whenmrxvtlooses focus. %d is an integer between0and100[fading].-fgcolor β Foreground color.[foreground]-itabbgcolor β Background color of inactive tabs and tabbar.[itabBackground]-itabfgcolor β Foreground color of inactive tabs.[itabForeground]-prcolor β color of pointer[pointerColor].-shade%d β Shade background to %d degree when tinting the background. %d is an integer between0and100. You must also define a color using the tint option. When compiled with XRender support, the tabbar, menubar and scroll bar are tinted with their respective background colors for pseudo-transparent terminals.[shading]-tabbgcolor β background color of active tab.[tabBackground]-tabfgcolor β Foreground color of tabbar[tabForeground].-tintcolor β Color tinted on background image or pseudo-transparent background. This works differently depending on the tint type: With XRender (when compiled with--enable-xrender), color is the color you want to tint your background to. The brighter the color, the less transparent it will be (regardless of the shade degree specified by-shade). For example, if you want your background tinted black, set color to#000000, however if you want a white tinted transparent background, set color to some level of grey (e.g.#808080) but NOT to#ffffff. When compiled without XRender support, color works like a color mask. Thus if you want a black tinted background, set color to#ffffff. The shade degree (using-shade) must be defined as well.[tintColor]β¨-tinttypetype β Function applied for background tinting (not implemented yet).-tscolor β color of text shadow[textShadow].-tsmmode β Text shadow mode, specify shadow position of text:left|right|top|bottom|topleft|topright|botleft|botright|none.[textShadowMode]-txttype-type β Function applied for text drawing (not implemented yet).-ufbgcolor β Default background color when the terminal window looses focus.[ufBackground]π«Ά
π Font related options π
okay bestie, this section is the glow-up zone β it's all about how your text looks. X11 fonts and freetype fonts, pick your fighter β¨
-fbfontname β the X11 font name for bold text, i.e. the bold glow-up. Config key:[boldFont].-fmfontname β the X11 font name used for multichar text. Config key:[mfont].-fnfontname β the normal-text X11 font name, your everyday font bestie. Config key:[font].-xft|+xftβ use a freetype font instead of an X11 font. This one is like the main character β it controls all the other freetype font related options, so if it's off, none of the xft girlies below do anything. Config key:[xft].-xftaa|+xftaaβ enable / disable antialiasing of the freetype font. Lowkey makes the font look much nicer, but it significantly slows down the rendering speed (the tradeoff is real π). The-xftoption must be enabled. Config key:[xftAntialias].-xftah|+xftahβ enable / disable autohint of the freetype font. The-xftoption must be enabled. Config key:[xftAutoHint].-xftfmfontname β the freetype font family for multichar text. The-xftoption must be enabled. Config key:[xftmFont].-xftfnfontname β the freetype font family for normal text. The-xftoption must be enabled. Config key:[xftFont].-xftga|+xftgaβ enable / disable global advance of the freetype font. The-xftoption must be enabled. Config key:[xftGlobalAdvance].-xftht|+xfthtβ enable / disable hinting of the freetype font. The-xftoption must be enabled. Config key:[xftHinting].-xftmszsize β freetype multichar font size, in pixels. The-xftoption must be enabled. Config key:[xftmSize].-xftnfm|+xftnfmβ do not load the freetype mfont, and use the freetype font instead. This can avoid a large line space if the size offontandmfontare very different. The-xftoption must be enabled. Config key:[xftNomFont].-xftpfnfont β specify a proportionally spaced font to use for drawing tab titles. If it's set, the tab bar behaves like Firefox's tab-bar: all tabs have the same width, and the widths are shrunk / expanded to keep the number of tabs specified byminVisibleTabsvisible. The active tab title is drawn in a bold font. (Your colors are still used, don't worry π ). Config key:[xftPFont].-xftrgbstyle β the freetype font sub-pixel order, one of:rgb|bgr|vrgb|vbgr|none. The-xftoption must be enabled. Config key:[xftRGBA].-xftslow|+xftslowβ display freetype multichar strings in slow mode for a better display effect. Thexftoption must be enabled. Config key:[xftSlowOutput].-xftststyle β the freetype font slant, one of:roman|italic|oblique. The-xftoption must be enabled. Config key:[xftSlant].-xftsznumber β freetype font size, in pixels. The-xftoption must be enabled. Config key:[xftSize].-xftbwtstyle β the freetype bold font weight, one of:light|medium|demibold|bold|black. The-xftoption must be enabled. Config key:[xftBoldWeight].-xftwdstyle β the freetype font width, one of:ultracondensed|condensed|normal|expanded|ultraexpanded. The-xftoption must be enabled. Config key:[xftWidth].-xftwtstyle β the freetype font weight, one of:light|medium|demibold|bold|black. The-xftoption must be enabled. Config key:[xftWeight].
π Tabs and command related options π
this is the tab girlies section and ngl it's kinda the best part. tabs, commands, titles, whole vibe π¦
-ahtβ automatically hide or show the tab bar depending on the number of tabs. On startup, the tabbar is shown only if there are more than one tabs present. If there is only one tab, and a new one is created, then the tabbar is shown. If there are two tabs and one is closed, then the tabbar is hidden. A keyboard shortcut can be used at any time to hide / show the tabbar. Config key:[autohideTabbar].-at|+atβ run the command specified with-eon all tabs (by default, the command specified with-eis only used for the first tab opened). This causes the profile optioncommandto be ignored. However, a command specified via theNewTabmacro is honored. Config key:[cmdAllTabs].-bt|+btβ show the tabbar at the bottom. Config key:[bottomTabbar].-e[arguments ...] β specifies the program (and its command line arguments) to be run in the mrxvt window. By default this command is only run initially, and all tabs created after startup will run the default shell (or the program supplied by-profile%d). This behaviour can be overridden with the-atoption. Config key:[command].-hb|+hbβ hide the buttons in the tabbar. Config key:[hideButtons].-hetstring β the message to display in tabs after the child process exits. (This string is escape and percent interpolated β iykyk). Config key:[holdExitText].-heTstring β set the title of tabs to string after the process in the tab exits. (This string is escape and percent interpolated too). Config key:[holdExitTitle]. And yes,-heTwith a capital T is a different option from-hetβ they're siblings, not twins π.-holdmask β hold the tab open after the child process in it exits. mask is the mask of flags which control whether the tab will be held open based on the exit status of the child process:- if the lowest bit (
0x01) of mask is set, then the tab will always be held open after the child exits. - if the next bit (
0x02) is set, then the tab will only be held open if the child exits abnormally (e.g. viaabort(1)). - if the third bit (
0x04) is set, then the tab will be held open if the child exits with non-zero status.
- if the lowest bit (
NOTE: in previous versions of mrxvt this was a boolean option. For backward compatibility, the value ofTrue,On,Yeswill be treated as1and anything illegal will be treated as0. The default is0x06. π¨
Config key: [holdExit].
-ht|+htβ hide the tabbar on initialization. Config key:[hideTabbar].-htb|+htbβ highlight inactive tabs only when the bell sounds. Default is to highlight inactive tabs whenever they produce output. Config key:[highlightTabOnBell].-ipprofiles β profiles is a comma separated list of profile numbers. On startup, mrxvt opens each of these profiles in a tab. Config key:[initProfileList].-ls|+lsβ indicates that the shell started in the mrxvt window will be a login shell (i.e., the first character ofargv[0]will be a dash, indicating to the shell that it should read the user's.loginor.profile). Config key:[loginShell].-mtwwidth β the maximum width (in characters) of the displayed tabs. This can not be larger than40. If you use Xft, then you might want to use theminVisibleTabsoption instead. Config key:[maxTabWidth].-mvtn β when usingxftPFontto display tabs, keep at least n tabs visible. Config key:[minVisibleTabs].-profileN.optionvalue β setoptiontovaluein profileN. When a new tab is created with profileNit uses all options that are set for this profile. Currently the only options that can be set per profile arePixmap,background,command,foreground,saveLines,holdExit,holdExitText,holdExitTitle,tabTitle,titleFormat,winTitleFormatandworkingDirectory. Then all the settings from that profile number are used.
N can be any integer between 0 and the compiled in maximum (default 5). The profile number 0 is special, and contains default settings which are used for all profiles where this option is not set (e.g. -profile0.tt mrxvt sets the tab title to mrxvt for all profiles where the tab title has not been set). In this case the -profile0. can be omitted entirely (i.e. -profile0.tt is equivalent to -tt).
This option is intended to replace the -vt%d.xx options from mrxvt version 0.5.0. The old -vt%d.xx would set options for the *%d*th tab. This causes inconsistent behaviour when the user moves / closes tabs. The behaviour of the -profile option is to set options for a particular profile, and then these settings can be associated (on demand) to newly created tabs. Config key: [profileN.option].
-ps|+psβ protect a tab from being closed if it is using the secondary screen β for example, when the user is runningvim(1)ormutt(1), this can prevent the terminal from being accidentally closed. lifesaver fr π Config key:[protectSecondary].-sti|+stiβ synchronize the icon name with the tab title when switching to a new tab, or when the title of the active tab changes. Config key:[syncTabIcon].-stt|+sttβ synchronize the terminal title with the tab title when switching to a new tab, or when the title of the active tab changes. (See also the-wtfoption.) Config key:[syncTabTitle].-tnumN β OBSOLETE. Opens N tabs on startup. For backward compatibility, the tabs are opened with profile0,1, ...N-1. Config key:[initTermNumber].-ttstring β the title of the tab. Config key:[tabTitle].-tfformat β if set, this controls the displayed title of each tab. format is % interpolated, and the result is displayed as the tab title.
NOTE: currently this option requires the tab titles to be drawn with a proportionally spaced font (which is currently only possible with Xft). Also, this option only affects the displayed tab title, and thus%twill still expand to the actual tab title, as set via an escape sequence, or macro. For example, setting this option to'%n. %t'will cause all the tabs to be numbered. π―
Config key: [titleFormat].
-ut|+utβ Utmp inhibit. Config key:[utmpInhibit].-vbf|+vbfβ if unset, colored bold text will not be rendered using overstrike / bold font. See alsoboldColorsandveryBright. Config key:[veryBoldFont].-wdβ working directory of the child process. If non-empty, then the child process is started in this directory. If set to'.'then the child process is run in the working directory of the current tab if possible. On Linux, this is the default.
NOTE: it is not always possible to find the working directory of the current tab. This works fine on Linux, but causes problems on other systems [e.g. OpenBSD], which is why it is only enabled by default on Linux. π
Config key: [workingDirectory].
-wtfformat β controls the format of the window title. If set, and the option-sttis used, then the window title is set to format (after % interpolation), instead of the tab title. Config key:[winTitleFormat].
π Multichar and multi-language support π
for my multilingual besties β encoding, input methods, keyboard maps, the whole global girlie package π«Ά
-mcc|+mccβ multichar cursor movement. Config key:[multibyte_cursor].-kmmode β multichar encoding mode. Config key:[multichar_encoding].-imname β name of the X Input Method (XIM). Config key:[inputMethod].-ptmode β XIM input style, one of:OverTheSpot|OffTheSpot|Root. Config key:[preeditType].-thai|+thaiβ Thai support. Config key:[thai].-grkmode β Greek keyboard mapping, one of:iso|ibm. Config key:[greek_keyboard].
π Menu related options π
-menufilename[;tag] β menubar definition file. Config key:[menu].-showmenu|+showmenuβ show the menubar. Config key:[showMenu].
π Keyboard and window related options π
Okay bestie, this whole cluster is about how your window looks and how your keyboard behaves β borders, bells, blinkies, the whole aesthetic. Let's get into it. β¨
-b numberβ the internal border width, aka the little breathing room inside the window. [internalBorder]-bc,+bcβ turn the blinking cursor ON / OFF. Yes, the little cursor can vibe. [cursorBlink]-bcst,+bcstβ enable / disable broadcasting your input to all the terminals at once. Use responsibly, bestie π [broadcast]-bci numberβ how fast the cursor blinks, in milliseconds. [cursorBlinkInterval]-bl,+blβ use a borderless window. Clean girl aesthetic, no border. [borderLess]-blc cmdβ a bell command instead of the regular beep. Here's the tea:- if
cmdbegins with!, it gets passed to/bin/sh -cfor execution. - otherwise it's split into words at spaces or tabs only, and executed via
execvp(3). - if you don't want a space or tab to cause word splitting, put a
\in front of it. - if you want to pass
\as an argument, double the\. - Note: only backslashes (or chains of backslashes) that come right before a space or tab character are treated specially. So
\\astays untouched, but\\expands to a\and thecauses a word break, while\expands to athat does not cause a word break. [bellCommand]
- if
-bw number,-w numberβ the external border width. [externalBorder]-ctvb,+ctvbβ use a visual bell only for the current tab (that's the active tab of a currently focused window, iykyk). [currentTabVBell]-desktop numberβ which desktop to place the window on, for gnome-compatible window managers. The number starts from 0, NOT 1! π¨ [desktop]-dm,+dmβ enable / disable all keyboard macros. You can also toggle this at runtime via a pop-up menu or theToggleMacroskeyboard shortcut. NOTE: when keyboard macros are disabled, theToggleMacroskeyboard macro still works β so you can re-enable your keyboard macros from the keyboard using this function. Iconic, honestly. [disableMacros]-fs,+fsβ start in fullscreen. Use it together with [smoothResize] to really make it full screen. Requires an EWMH compatible window manager. [fullscreen]-lk,+lkβ enable Linux console style Home/End keys. [linuxHomeEndKey]-mod modeβ the Meta modifier:alt|meta|hyper|super|mod1|...|mod5. [modifier]-lsp numberβ line space between rows, for when you want your terminal looking airy. [lineSpace]-m,+mβ start maximized (requires an EWMH compatible window manager). [maximized]-m8,+m8β enable / disable meta8. [meta8]-nsc,+nscβ enable / disable reading the system-wide configuration file. Only the default keyboard macros are defined in this file, so this option can effectively disable all the default keyboard shortcuts. [noSysConfig]-or,+orβ override redirect. [overrideRedirect]-pb,+pbβ pointer blank β also peeppointerBlankDelay. [pointerBlank]-rv,+rvβ reverse video. [reverseVideo]-tcw,+tcwβ triple click word selection. [tripleclickwords]-vb,+vbβ visual bell. [visualBell]
π«Ά Miscellaneous options π«Ά
The grab-bag section, and honestly it's giving backstage pass. π
-Cβ intercept console messages.-dmask namelistβ print out debug messages defined by a comma-separated name list. Available names include:command,screen,ptytty,init,main,logging,macros,menubar,tabbar,scrollbar,images,pixmap,transparent,encoding,gkrelot,memory,session,string,resource,xftacs,misc, andall.-dlevel verboselevelβ print out debug messages defined byverboselevel. Available levels are:fatal,error,warn,info,verbose, anddebug. The latter the level, the more information gets printed. π-cf filenameβ X resource configuration file.-cfs filenameβ X resource configuration file to save the current configuration to. [confFileSave]-path pathβ a colon-delimited list of directories to search for background images and menu files. mrxvt first searches for the file in the current directory, then in the directories specified bypath, then in the directories specified by the environment variablePATH_ENV, and finally tries the user configuration directory~/.mrxvtand the (compiled in) system-wide configuration directory/etc/mrxvt. [path]-sid stringβ client identity of mrxvt for X session management. [smClientID]-sm,+smβ enable X session management. [sessionMgt]
π Long options π
Plot twist: these ones do not have a "short" form. If you're using them on the command line, they must be prefixed with a -- (or ++ for boolean options). But of course you can also use them in the mrxvt configuration file. π
answerBackString stringβ the reply mrxvt sends to the shell when an ENQ (control-E) character is passed through. It may contain escape values as described in the entry onkeysymfollowing.backspaceKey stringβ the string to send when the backspace key is pressed. If set toDECor unset, it will send Delete (code127) or, if shifted, Backspace (code8) β which can be reversed with the appropriate DEC private mode escape sequence.bgRefreshInterval delayβ the delay (ms) to wait before refreshing the background in pseudo-transparency. Generally tinting and refreshing the background is slow (especially with XRender) and causes lags while dragging the window. This delay lets the window be dragged smoothly. If you have a fast system, you can reduce it or disable it completely (by setting it to0). The default value is100ms.boldFontN fontβ specifies the bold font to use along with fontset N.boldColors True|Falseβ ifFalse, the bold primary colors (0--7) will be rendered using the brighter analogues (8--15) in a regular font. IfTrue, a bold font will be used. See alsoveryBright.colorN colorβ use the specified colour for the colour value N, where0-7corresponds to low-intensity (normal) colours and8-15corresponds to high-intensity colours.colorBD colorβ the color to use to display bold text. If unspecified, the text will be displayed using a bold font / overstrike.colorRV colorβ the color to use to display reverse video text. If unspecified, the text will be displayed as reverse video.colorUL colorβ the color to use to display underlined text. If unspecified, the text will be displayed as underlined.cursorColor2 colorβ the second color of the cursor.cutChars stringβ a string containing all the characters to be treated as one word for double click selection. If you want double clicks to select URL's, set this to a string containing all letters (both upper and lower case), digits, and punctuation you find in urls. πdeleteKey stringβ the string to send when the delete key (not the keypad delete key) is pressed. If unset, it will send the sequence traditionally associated with the Execute key.focusDelay msecβ the time interval (in milliseconds) to wait after getting / losing focus, before fading the colors and changing the background color as specified by the-fadeand-ufbgoptions. Set it to0if you want your colors faded immediately on focus change events.
This option is mainly there to work around a bug in some window managers which send focus in immediately followed by focus out events when moving windows, or pressing Alt+Tab (e.g. fvwm-2.5.16). π
fontN fontβ specify alternative font n. n can be1,2,3,4or5.greektoggle_key keysymβ the key to toggle into greek keyboard mapping. SeeREADME.greekfor details.highlightColor colorβ the color to use for selection. If not specified, reverse video is used. (Note: blinking text is also displayed with this color.) β¨mapAlert True|Falseβ ifTrue, de-iconifies the window when a bell is received.mfontn fontβ specify alternative multiple character font n.pointerBlankDelay delayβ delay (ms) to blank the pointer after.printPipe cmdβ specify a command pipe for the vt100 printer.refreshLimit Nβ this option andskipPagesare here to replace the 'jump scroll' behaviour of other terminal emulators (and previous versions of mrxvt). So basically: when data is available from a tab, mrxvt reads as much of it as is available (up to the buffer size) and processes it. After that's done (generally takes a fraction of a millisecond), it looks for more data from the tab. If it gets not more than N characters, it requests a screen refresh (which takes a while, especially with Xft and anti-aliasing). If it gets more than N characters from the tab, it delays the screen refresh until the tab eventually has either N or fewer characters of output, or the tab has (cumulatively) produced at leastskipPagesof data.
The default value is 0. On new fast machines, this is probably the best. If you find screen refreshes laggy on slow older machines, increase this value a little (say to 10). Setting it to something enormous (say BUFSIZ) will cause mrxvt to request screen refreshes every time the active tab has data, and effectively disable the so-called 'jump scrolling'. β‘
scrollColor colorβ the color of the scrollbar (see alsotroughColor).selectStyle modeβ set the mouse selection style toold(which is2.20),oldword(which is xterm style with2.20old word selection), or anything else, which gives xterm style selection.skipPages Nβ this option andrefreshLimitare here to replace the 'jump scroll' behaviour of other terminal emulators (and previous versions of mrxvt). If the screen refresh is delayed because of therefreshLimitoption, then mrxvt will refresh the screen every N pages of output. The default is25. If you set it to a very large value (sayINT_MAX), then mrxvt will refresh the screen only after the tab has stopped 'flat out' scrolling. πsmartResize True|Falseβ enable / disable smart resize. When the tabbar is shown, or the font size is increased, the resized terminal window could end up partially off screen. IfsmartResizeis enabled, mrxvt tries to move the terminal window so it stays on screen. π«ΆsmoothResize True|Falseβ turns smooth resize on/off β¨. When it's on, themrxvtwindow resizes in pixel increments instead of character increments, which is lowkey the move if you want a full screen / maximized window that actually covers the entire screen (no annoying few-pixel-wide strip left uncovered, we hate to see it π).troughColorβ the color of the scrollbar trough π (peepscrollColortoo, they're besties).useFifo True|Falseβ if enabled,mrxvtcreates afifo(7)at/tmp/.mrxvt-%pidand listens for macros on it π. To run macros, you literally just write them to this fifo. Like:
/bin/echo -e "NewTab\nRaise" >> /tmp/.mrxvt-%pid
which creates a new tab and raises the mrxvt window belonging to process ID %pid. π«Ά
NOTE: the meaning and syntax of this option might change in future versions, so don't get too attached fr.
vBellDuration msβ how long (in milliseconds) the screen flashes when you're using a visual bell πΈ.monitorTimeout msβ how long (in milliseconds) to spend detecting the monitoring type or tab-inactivity. Default value is2000ms β meaningmrxvtwaits 2 seconds after you invoke theMonitorTabmacro with argument"AUTO"or"INACTIVITY"before it figures out if/what kind of notification is needed β. Detecting"ACTIVITY"does not use this config value, iykyk.monitorCommand commandβ names a command to execute if an activity or inactivity event is raised by theMonitorTabmacro π . (This string is escape and percent interpolated.)veryBright True|Falseβ if true, and ifboldColorsis false, then bold primary colors get rendered as bright colors with a bold font π (this was the default behaviour in0.5.2and earlier versions, for the history girlies).
π CONFIGURATION FILE SYNTAX π
A line in the config file generally looks like this π:
ClassName.OptionName: Value
Blank lines, and lines beginning with # are ignored (those are comments, bestie π¬).
The ClassName is the name specified via the -name option (by default mrxvt). When mrxvt starts up, it ONLY reads options with ClassName Mrxvt, XTerm, or the class specified via the -name option π. See /etc/mrxvt/mrxvtrc.sample for how this feature can be used β¨.
The OptionName is the long name of the option you want to set. It can be any long option (listed under the βLong Optionsβ sub section), or is specified in brackets as [option_name] alongside regular options in this man page π¦. Finally Value is the value of this option, obviously π
.
π Example π
The following is an example ~/.mrxvtrc file, or in a configuration file you will load with the -cf option at startup π₯. You can consult the doc/mrxvtrc.sample in the directory for more details π
Mrxvt.profile0.tabTitle: term1
Mrxvt.profile1.tabTitle: term2
Mrxvt.profile2.tabTitle: term3
Mrxvt.profile0.saveLines: 600
Mrxvt.profile1.saveLines: 600
Mrxvt.profile2.saveLines: 600
# Mrxvt.profile0.Pixmap: /home/images/vt0bg.xpm
# Mrxvt.profile1.Pixmap: /home/images/vt1bg.xpm
# Mrxvt.profile2.Pixmap: /home/images/vt2bg.xpm
Mrxvt.scrollbarStyle: next
Mrxvt.initTermNumber: 3
Mrxvt.transparent: True
Mrxvt.transparentScrollbar: True
Mrxvt.transparentTabbar: False
Mrxvt.transparentMenubar: False
Mrxvt.tintColor: #ffffff
Mrxvt.shading: 85
Mrxvt.foreground: white
Mrxvt.background: black
π§ MENUS π§
The menu system is similar to rxvt's menus (see the included file rxvtRef.txt) with a few enhancements, and a few notable exceptions π:
- The menus can use a proportionally spaced font under Xft (
-xftpfn) which is significantly less ugly than a mono-spaced font π . Not me saying the quiet part out loud. mrxvtsupports pop-up menus π«Ά. If you create a menu namedPopupButtonN (where N is1,2, or3) then that menu is popped up when you control click (with the appropriate mouse button) on the terminal window. Additionally if you right click on the Tab bar, then the menuPopupButton1is popped up β¨.- To create a menu containing a list of all open tabs, create an empty menu called
PopupButtonN (which will be popped on control click's as described above) π. To include a list of all open tabs as a sub menu, create a sub-menu called βSwitch to tabβ. - Menu actions are completely different in
mrxvtthan the original implementation inrxvt(1)π. The menu actions are exactly the same as macro actions, and are described in the section βDefining custom shortcutsβ β. - On startup
mrxvtreads the filedefault.menuwhich contains the default menu definitions π. The file is searched for in your search path (specified by option-path).
π KEYBOARD AND MOUSE SHORTCUTS π
You have several default keyboard shortcuts to ease the use of mrxvt πΈ. The default gnome-terminal, Konsole, rxvt shortcuts are predefined for you π«Ά. You can also define your own shortcuts as described in βDefining custom shortcutsβ β¨.
π Default keyboard shortcuts π
The following key combinations are defined by default π
. These are defined in the system configuration file /etc/mrxvt/mrxvtrc, and can be disabled using the option -nsc π. See the next section for instructions on defining your own custom keyboard shortcuts.
Gnome-terminal style shortcuts:
Ctrl+Shift+tβ create a new tabCtrl+Shift+qβ Close all tabs and exitCtrl+Shift+wβ Close active tab, and do not hold it open if it exits abnormally.Ctrl+PgUpβ activate left tabCtrl+PgDnβ activate right tabMeta+1β activate 1st tab...Meta+0β activate 10th tabCtrl+equalβ increase font size (next font)Ctrl+Shift+plusβ increase font size by 2Ctrl+minusβ decrease font size (previous font)Ctrl+Shift+underscoreβ decrease font size by 2
Konsole style default shortcuts:
Ctrl+Shift+Leftβ move active tab to leftCtrl+Shift+Right:β active tab to rightShift+Leftβ Activate left tab (Primary only)Shift+Rightβ Activate right tab (Primary only)Ctrl+Shift+nβ Create a new tab with the same profile as the current tab.
Vi style default shortcuts:
Ctrl+Shift+hβ activate left tabCtrl+Shift+lβ activate right tab
Screen style default shortcuts:
Ctrl+Shift+pβ activate previous active tab
Mrxvt default shortcuts:
Ctrl+Shift+1β Move tab to 1st position...Ctrl+Shift+0β Move tab to 10th positionCtrl+Tabβ activate previous active tabCtrl+Shift+less_thanβ Move active tab leftCtrl+Shift+greater_thanβ Move active tab rightCtrl+Shift+oβ Change opacity of terminal to make it more transparent.Ctrl+Shift+uβ Change opacity of terminal to make it less transparent.Ctrl+Shift+jβ Change shading of terminal to make it more transparent.Ctrl+Shift+kβ Change shading of terminal to make it less transparent.Ctrl+Shift+rβ Toggle psdudo-transparencyCtrl+Shift+iβ Hide/show tabbarCtrl+Shift+sβ Hide/show scrollbarCtrl+Shift+mβ Hide/show menubarCtrl+Shift+aβ Hide/show tabbar buttonsCtrl+Shift+bβ Toggle very bold fontCtrl+Shift+zβ Open amrxvtconsole in a new tab, and enable theuseFifooption if necessary π₯. Anything typed in this console will be executed as a macro. On clean exit theuseFifooption will be disabled.Ctrl+Shift+dβ Toggle input broadcasting (unbound by default)Ctrl+Shift+eβ Toggle holding exited tabCtrl+Shift+fβ Toggle full screen modeCtrl+Shift+xβ Save current configurationShift+Delβ Set title of active tab to selection.Shift+Insertβ Paste X selection into active tab.Ctrl+Shift+vβ Paste X selection into active tab.Ctrl+Shift+cβ Paste clipboard into active tab.Shift+Upβ Scroll up one line (Primary screen only)Shift+Dnβ scroll down one line (Primary screen only)Shift+PgUpβ scroll up one page (Primary screen only)Shift+PgDnβ scroll down one page (Primary screen only)Shift+Homeβ Scroll to beginning of scroll-back buffer (Primary screen only)Shift+Endβ Scroll to end of scroll-back buffer (Primary screen only)Shift+KeypadPlusβ Increase font sizeShift+KeypadMinusβ Decrease font sizeCtrl+Shift+F1β Openmrxvtman page in a new tab. π§Ctrl+Shift+F12β Enable / disable all keyboard macros (except this one of course π).
π¦ Defining custom shortcuts π¦
NOTE: The βhotkeyβ mechanism used in versions0.4.2and earlier is now obsolete π. It has been replaced by the βmacroβ functionality (described below) as of version0.5.0.
You can define your own keyboard shortcuts in your configuration file by using the following syntax β¨:
Mrxvt.macro.[modifiers+]keyname: action
Here βmodifiersβ is a + separated list of modifiers Ctrl, Alt, Meta, Shift. Primary. and Add π. The first four refer to the respective modifier keys. Primary tells mrxvt to make the macro available ONLY when the primary screen is displayed (e.g. Primary macros will not be effective when you are running vim(1), but will be effective when you are at the shell prompt) πΈ. Finally Add tells mrxvt to add the macro action to any previous action associated to that particular key π
. For instance:
Mrxvt.macro.Primary+Shift+Return: Esc \ec
Mrxvt.macro.Primary+Add+Shift+Return: Str ^M
will define the macro Shift+Return to first send the escape sequence \ec to mrxvt (which has the effect of clearing the scroll back buffer) and then send Ctrl-M to the child process, but ONLY in the primary screen π«Ά. If you're running a shell, then this effectively clears the scroll back buffer and executes the command. Iconic behaviour, honestly. β
Okay so if the Add modifier is not specified, then the macro action straight-up replaces any previous action (if there was one) tied to that key. And lowkey important: adding a macro to a non-existing macro is an error. Right now one key can have at most 16 actions associated with it (and this might get reduced to 8 in future, so donβt get too attached π).
keyname is the name of the key you want to bind to the specified macro. Non-alphanumeric keys (like punctuation, or cursor/keypad keys) are specified by their keyname, which you can find with xev(1), or by looking directly in the system header file /usr/include/X11/keysymdef.h. Slay.
If you want to unbind a default keyboard macro, just bind the appropriate key to the function Dummy. For example:
Mrxvt.macro.Ctrl+Shift+t: Dummy
will disable the default keyboard shortcut Ctrl+Shift+t. If you want to disable all keyboard macros, use the option -dm (which can also be accessed via a pop-up menu). The default keyboard macros are defined in the system configuration file /etc/mrxvt/mrxvtrc, so if you only want to disable all default shortcut keys, donβt read the system configuration file by using the -nsc option.
Notice that keyboard shortcut definitions are incompatible with X Windowsβ own resource parsing API, i.e., XGetDefaults. So, to enable the keyboard shortcuts, you will need to enable resources but disable xgetdefault when you configure mrxvt.
Finally, action is the action you want bound to the specified macro key. The available actions you can bind to macros are:
Dummyβ clears an existing keyboard shortcut.Esc strβ sends the escape sequence str to mrxvt.Str strβ sends the string str to the child process.Exec commandβ executes command asynchronously. The command runs without any controlling shell or TTY. This is generally used to launch X11 programs (e.g. open the selected text infirefox). If you want a command run in a new tab, see theNewTabmacro.
The argument command is word split exactly as described in the -blc option (thus for instance beginning it with ! will pass it to /bin/sh -c for word splitting and execution). However keep in mind that, like all macro arguments, command is first \ interpolated. Thus if on the rare occasion you want \ to be part of command, then you will have to do something like \\\\\\ and not \\\ as you would with the argument of -blc.
NewTab [-N] ["title"] [[!]command]β opens a new tab.Nspecifies the profile number. If omitted, profile0is used. If only-(with no number) is specified, then the profile of the current active tab is used (i.e. this can be used to duplicate the current tab). If title is specified (needs to be double quoted), use that for the tab title. If command is specified, execute that command in the new tab (instead of the one specified by the resource file, or the shell).
command is word split as described in the Exec macro. However if command begins with an ! then run a shell first, and execute the command in the shell as if the user had typed command at the shell prompt. If instead you want command to be passed to /bin/sh -c for word splitting and execution, then begin command with \!.
Close [N]β closes a tab. If no argument is specified, close all tabs and exit. IfNis0, close the active tab. Otherwise close theNth tab.GotoTab [N]β goto tab. IfNis omitted or0, then goto the previous active tab. Otherwise goto theNth tab. IfNbegins with a+or-thenNis relative to the current tab.MoveTab Nβ move active tab to positionN. IfNbegins with a+or-thenNis relative to the current tab.Scroll amountβ scroll the active tab by amount lines (negative values mean scroll backward). If amount ends withpthen scroll amount pages instead of lines.Copyβ copy selection into clipboard (not implemented). πPaste [selection-buffer]β paste selection into active tab. The value selection-buffer specifies the name of the buffer to be pasted. If not specified the first used buffer in the orderPRIMARY,SECONDARYandCLIPBOARDwill be used.PasteFile filenameβ paste the content of the file specified by filename to the currently active tab. This can be used to input text-snippets to a shell or any other terminal based program (i.e. something like a bash-profile or sequence of administration commands).MonitorTab [ACTIVITY|INACTIVITY|AUTO]β monitor the current tab-window forACTIVITYorINACTIVITYor automatically detect the type of monitoring using theAUTOoption. The amount of time which is used to detect the type of monitoring or tab-inactivity can be specified by themonitorTimeoutoption. The detection of activity or inactivity is signaled by highlighting the tab of the event and ringing the system bell. Additionally it is possible to execute a dedicated command using themonitorCommandoption.ToggleSubwin [[+|-][b|m|s|t]]β toggle visibility of sub-windows. If the argument begins with a+the subwindow is shown. If it begins with a-the subwindow is hidden. Otherwise it is toggled. The lettersb,m,sandtrepresent the tabbar buttons, menubar, scrollbar and tabbar respectively. NOTE: Currently you can only toggle one subwindow at a time.ResizeFont [+|-]Nβ resize the font. With Xft,Nrepresents the size increment of the xft font. Without Xft,Nrepresents the index of the X11 fonts specified by thefontNresources.ToggleVeryBoldβ toggle use of bold font for colored text.ToggleTransparencyβ toggle pseudo transparency.ToggleBroadcast [status]β if status is omitted or-1, then input broadcasting to all tabs is toggled. If it is1, input broadcasting is enabled. If it is0, it is disabled.ToggleHold [mask]β if mask is not specified, then just close all tabs whose child processes have exited. (This is almost compatible with the behaviour of mrxvt0.5.1and earlier). If mask is specified, then change the hold status of the current tab. mask must begin with+,-, or!and be followed by a bit mask (as in theholdExitoption).+will add bits to theholdExitoption for this tab,-will subtract, and!will toggle. Remember that if the lowest bit of the current tabβsholdExitoption is set, then the tab will always be held open and everything else will be ignored.ToggleFullscreenβ toggle between full screen and regular mode. Also enable--smoothResizeto get true full screen. This will only work if you are running an EWMH compatible window manager (e.g.Fvwm/OpenBox/KDE/Gnome).Raiseβ raise the mrxvt window.SetTitleβ set title of active tab to selection. (The selection must be owned by mrxvt)UseFifo statusβ enable or disable using afifo(1)to listen for macros on (see theuseFifooption). The argument status should be0,1,-1to disable, enable or toggle respectively.PrintScreen [-psn] [command]β dump screen to printer (or command). If-pis specified, then the output is pretty printed (i.e. escape sequences are used to get the same color in the output as on your screen). If-sis specified, then the entire scroll back is printed (instead of just the current screen). If-nis specified, then every screen line is terminated with a newline char (by default screen lines that wrap to the next line are not terminated with a newline). Finally, if command is specified it is used as the printer pipe (if not the value ofprintPipeor the compiled in default is used).SaveConfig [filename]β save config to file. If no filename is specified, save to~/.mrxvtrc.save.ToggleMacrosβ toggle the use of keyboard shortcuts. When macros are disabled (either by using this macro, or by the-dmoption), then this is the only keyboard shortcut that will work. Thus you can re-enable your keyboard shortcuts via the keyboard using this function.
Additionally, the argument to any of the above macros gets \ and % interpolated, like this:
\aβ Bell\bβ Backspace\E,\eβ Escape\nβ Newline\rβ Carriage return\tβ Tab\dddβ Char with octal ASCII codeddd.^@, ^A .. ^Z .. ^_, ^?β Control-@, Control-A ...%Gβ Global (static) tab number.%pβ PID of child process in current tab.%Pβ PID of mrxvt%nβ Tab number.%Nβ Expands tonormallyif the process exited normally (e.g. by callingexit(1)) orabnormallyotherwise. (Note this is independent of the exit status).%sβ Text selected in the mrxvt window.%Sβ If the process in this tab is dead, then it expands to the exit status of the child process. Otherwise left unchanged.%tβ Tab title.%Tβ Total number of tabs created in mrxvt lifetime.
π±οΈ Mouse shortcuts
Changing tab titles β¨
This mouse shortcut can be used to dynamically change the tab title as follows: Select text in the terminal window. Then middle click on a tab to change the tabβs title. If you middle click on the tabbar background, then the title of the active tab is changed.
ποΈ Tab list menu ποΈ
Okay so bestie, by default, if you right click on the tab bar, or Ctrl-left-click on the terminal window, a popup menu with a list of currently open tabs pops up. The actual menu popped up can be customized as described under the section βMENUSβ. π
π¬ Popup menus π¬
If you Ctrl-click on the terminal window (with any mouse button), it pops up a menu. The actual menu popped up can be customized as described under the section βMENUSβ. No cap, itβs that simple. β¨
π Moving tabs π
Click and drag a tab to some other location on the tab-bar to move it. Literally grab and go, main character energy. π«Ά
β¨ ESCAPE SEQUENCES β¨
Okay so you have several escape sequences to control mrxvt. All default rxvt(1) escape sequences are supported by mrxvt. A few extra escape sequences have been added to improve DEC compatibility, and allow interaction with extra mrxvt features (e.g. tabs). The supported escape sequences are listed in the file mrxvt_seq.txt included in the distribution. π
For omissions in the documentation, and a more complete reference to escape sequences you should look at the file ctlseqs.txt that comes with the xterm package, console_codes(4) and the original rxvt documentation in the file rxvtRef.txt. Bestie, if the docs are leaving you on read, those are the receipts. π
For basic interaction with mrxvt (e.g. changing the tab title etc.) you should also look at the programs share/scripts/settitle.c and share/scripts/mrxvtset.pl that are supplied with the mrxvt distribution. Iconic little helpers, fr fr. π
π ENVIRONMENT π
These are the env vars mrxvt uses and sets β know them, love them:
COLORFGBGβ set to the terminal foreground and background colors. πCOLORTERMβ sets to the terminal sub-name that indicates its color. π¨DISPLAYβ used (and set) to the X display being used. π₯οΈPATH_ENVβ path to look for menu / background files (see-pathoption). πTERMβ set to the terminal name in the window you have created. πͺMRXVT_TABTITLEβ set to the initial tab title of each terminal. Notice that its value will not be altered if the user uses a shortcut or escape sequence to change the tab title. The user must modify it manually after doing that. So donβt expect it to auto-update, iykyk. πWINDOWIDβ set to the X window id number of themrxvtwindow. π
π FILES π
The actual pathnames given may differ on your system. Lowkey always check, bestie. π
default.menuβ the default menu file loaded at startup (searched for in your-path). π~/mrxvtβ directory in which to look for user menu and image files. πΌοΈ~/.mrxvtrcβ this is the default configuration file (since 0.3.9). If present, resources read from this file override existing resources. β¨~/.Xdefaultsβ (OBSOLETE) this was the default configuration file (before 0.3.9). If present, resources read from this file override existing resources. π°οΈ~/.Xresourcesβ (OBSOLETE) if both.mrxvtrcand.Xdefaultsare not found, try this one. π§/etc/mrxvtβ system wide directory in which to look for user menu and image files. π/etc/mrxvt/default.menuβ default menu file read on startup. π/etc/mrxvt/mrxvtrcβ system wide configuration file. (By default this file only defines the default keyboard macros) β¨οΈ/etc/utmpβ system file for login records. π/usr/lib/X11/rgb.txtβ color names. πΈ/usr/X11R6/lib/X11/app-defaults/XTermβ (OBSOLETE) ifenable xgetdefaultsat compiled time, this is the first configuration file read. π¦
π BUGS π
π¬ Reporting bugs π¬
Please report bugs using the sourceforge bug tracker system at
http://sourceforge.net/projects/materm
Alternately you can send your bug report to the mrxvt developer mailing list at
materm-devel@lists.sourceforge.net
Be sure you give us enough details to reproduce the bug ourselves, and check to see if your bug still exists in the current CVS version. Help us help you, bestie. π
π Known bugs π
- Tabs don't work properly when running under
Xnest. - Transparency and tinting are global, not specific to a terminal.
- The
transparentForceoption does not work well with all window managers (e.g.OpenBox).
Not me exposing the lore, but now you know. π
π SEE ALSO π
Okay so go read these, bestie:
rxvt(1)xterm(1)resize(1)mrxvt_seq.txt- Xterm control sequences (this is the file
ctlseqs.msorctlseqs.txt) console_codes(4)
Also the homepage is http://materm.sourceforge.net β periodt. π
π AUTHORS π
These iconic humans made it happen:
- Terminator
<jimmyzhou@users.sourceforge.net> - Gautam Iyer
<gi1242@users.sourceforge.net> - Marc Schoechlin
<mschoechlin@users.sourceforge.net>
And that's the whole mrxvt(1) page, bestie! This absolute legend is from X Version 11, dated January 10, 2006 β slay. π
β¨
π¦ where this page comes from
- alpine 3.24: mrxvt-doc 0.5.4-r13 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms