urxvt(1)
π urxvt(1) β RXVT-UNICODE, bestie edition π
okay so we're doing the urxvt manpage, which is technically about urxvtd (the daemon one), and the manual name is urxvt(1) from the RXVT-UNICODE family. sit down, grab a boba, this is gonna be good π§β¨
β¨ NAME β¨
urxvtd β the urxvt terminal daemon. yes queen, it's the same terminal emulator energy but it runs as a whole background diva instead of one little window. π
πΈ SYNOPSIS πΈ
urxvtd [-q|--quiet] [-o|--opendisplay] [-f|--fork] [-m|--mlock]
[-e|--eval perlstring]
urxvtd -q -o -f # for .xsession use
π¦ DESCRIPTION π¦
so this manpage is all about the urxvtd daemon. it's the exact same vt102 terminal emulator as urxvt, but instead of being one singular icon, it runs as a daemon that can open multiple terminal windows inside the same process. it's giving main character with a whole entourage. π
you can launch it from your X startup scripts if you want, but here's the thing β it does not need a working DISPLAY, and honestly? it can open windows on multiple X displays at the same time. multitasking legend. β¨
the glow-up (advantages):
- terminal windows get created way faster πβοΈπ¨
- you save a lot of memory
the catch (disadvantage):
possible impact on stability, bestie. if the main program crashes, all the processes in the terminal windows get terminated. like, all of them. gone. π and because there's no clean way to react to abnormal connection closes,xkilland server resets/restarts will kill theurxvtdinstance including every window it ever opened. rip.
π OPTIONS π
urxvtd currently understands only a few options. bundling of options is not yet supported β so no stacking them like friendship bracelets, one at a time please. π
-q,--quietβ normallyurxvtdsays the message"rxvt-unicode daemon listening on <path>"after it binds to its control socket. this option shuts that up. (errors and warnings still get logged tho, we're not hiding the tea π)-o,--opendisplayβ forcesurxvtdto open a connection to the current$DISPLAYand keep it open. this is the move if you want to tie an instance ofurxvtdto the lifetime of a specific display/server. if the server does a reset,urxvtdgets killed automatically. it's a ride-or-die situation fr fr. π-f,--forkβ makesurxvtdfork after it has bound itself to its control socket. bye, you're on your own now βοΈ-m,--mlockβ makesurxvtdcallmlockall(2)on itself. this locksurxvtdin RAM and stops it from being swapped out to disk... at the cost of consuming a lot more memory on most operating systems. luxury comes with a price tag, no cap. πΈ
Note: to use this feature, your system administrator must have set your user'sRLIMIT_MEMLOCKto a size greater than or equal to the size of theurxvtdbinary (or to unlimited). see/etc/security/limits.conf.
Note 2: there's a known bug in glibc (possibly fixed in 2.8 and later versions) wherecallocreturns non-zeroed memory whenmlockallis in effect. if you experience crashes or other odd behaviour while using--mlock, try it without it. not me getting sabotaged by libc π
-e,--eval perlstringβ evaluate the given perl code after basic initialisation (requires perl support to be enabled when compilingurxvtd). you can use this to configure the internal perl interpreter, which is shared between all terminal instances, or to create additional listening sockets for additional protocols. iconic, honestly. β¨
heads up: the code is currently executed before creating the normal listening sockets β this might change in future versions.
π EXAMPLES π
here's a genuinely useful invocation of urxvtd in a .xsession-style script:
urxvtd -q -f -o
what does this serve? it waits till the control socket is available, opens the current display, and forks into the background. and when you log out, the server resets and urxvtd gets killed. clean exit, no mess, we love to see it. π«Ά
π ENVIRONMENT π
RXVT_SOCKETβ bothurxvtcandurxvtduse this env variable to create a listening socket and to contact theurxvtd, respectively. if the variable is missing, then$HOME/.urxvt/urxvtd-<nodename>is used instead. default queen behavior. πLISTEN_PID,LISTEN_FDS,LISTEN_FDNAMESβ if these environment variables are set,urxvtdchecks for a file descriptor passed by the service manager via the systemd native interface. if one is provided,urxvtduses it as its listening socket instead of creating one as specified above. delegation! πDISPLAYβ only used when the"--opendisplay"option is specified. must contain a valid X display name. no valid name, no service. π«
β SEE ALSO β
and that's the whole vibe check, bestie!! this was version 9.31, dated 2023-01-02 β go forth and daemon responsibly πβ¨ππ¦
π¦ where this page comes from
- alpine 3.24: rxvt-unicode-doc 9.31-r9 Β· GPL-3.0-or-later
- arch rolling: rxvt-unicode 9.31-11 Β· GPL-3.0-only
- debian trixie: rxvt-unicode 9.31-3+b2 Β· GPL-2.0-or-later
- epel 9: rxvt-unicode 9.31-1.el9 Β· GPLv3
- fedora 43: rxvt-unicode 9.31-13.fc43 Β· GPL-3.0-or-later
- fedora 44: rxvt-unicode 9.31-15.fc44 Β· GPL-3.0-or-later
- nixos 26.05: rxvt-unicode-unwrapped 9.31
- nixpkgs unstable: rxvt-unicode-unwrapped 9.31
- opensuse-leap 16.0: rxvt-unicode 9.31-bp160.1.13 Β· GPL-3.0-or-later
- opensuse-leap 16.0: rxvt-unicode 9.31-bp160.1.13 Β· GPL-3.0-or-later
- opensuse-leap 16.0: rxvt-unicode 9.31-bp160.1.13 Β· GPL-3.0-or-later
- opensuse-leap 16.0: rxvt-unicode 9.31-bp160.1.13 Β· GPL-3.0-or-later
- ubuntu noble: rxvt-unicode 9.31-3build2 Β· GPL-2.0-or-later
- ubuntu questing: rxvt-unicode 9.31-3build3
- ubuntu resolute: rxvt-unicode 9.31-3build4 Β· GPL-2.0-or-later
- ubuntu stonking: rxvt-unicode 9.31-3build5 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms