Would you be able to survive one full day without using the X server? Linux offers us a wide assortment of CLI based tools which use curses and/or framebuffer for functional user interfaces. There is no reason why you shouldn’t be able look up stuff online, read your email, look at pictures, watch movies and listen to music as you are trying to configure X.
I was inspired by this post on Motho ke motho ka botho and decided to compile a list of useful command line applications myself. I will break them down into categories so that we can cover all the bases. If I’m missing something, or if I omitted some cool applications please let me know.
Web Browsing
The biggest problem in living without X is web browsing. You will be limited to text browsers, which generally do not support CSS and do not play nice with AJAX. The good news is, that most of the AJAX heavy web-pages now have mobile versions which are surprisingly text-browser friendly.
There are quite a few text browsers out there but I will recommend one:
Elinks [elinks.or.cz]
Why elinks? Because it supports both frames and tables, displays nice colorful output, and works great with mouse. Of course you can also use Lynx, Links, or w3m but in my experience elinks beats all of them hands down. Here is how my page looks in Elinks:
There also seems to be a framebuffer browser out there called Zen but it is a bit unstable no longer in active development.
If you are a gmail user like me, you are in luck. Google has a javascript-less version of their interface which actually works beautifully in elinks:
Neat, eh? For everything else there is Mutt:
Mutt [mutt.org]
I previously covered Mutt several times, showing you how to set it up for IMAP and how to send out emails without full blown sendmail or exim setup just using basic SSMTP. There is also Pine which is a damn fine mail client too – if you can deal with editing your messages in pico.
Chat
Chatting without X is pretty easy. It depends on what you are into though. For example, if you are a GTalk user I can recommend the excellent Freetalk which I covered before:
Freetalk [gnu.org/software/freetalk]
If you are on AIM, then naim will probably be the tool for you:
Naim [naim.n.ml.org]
Naim is a little bit funky but once you get used to it just works. It also supports ICQ and IRC protocols. Of course if you want full blown IRC support, there is probably no better client than irssi:
IRSSI [irssi.org]
It is a bare bones but full featured client. I don’t use irc that much, so I can’t tell you how good it is, but it seems perfectly functional – especially if you are a hard core irc junky.
Reading RSS
If you are like me, you subscribe to way to many RSS feeds. Unfortunately neither Google Reader nor Bloglines works in elinks (or for that matter any text based browser) so we have to rely on local clients if we want to survive without X. I recommend raggle:
Raggle [raggle.org]
Raggle has a clean and intuitive interface, is fast and takes up almost no memory. Perfect for a day without X. Go ahead, import your OPML file using a command line switch, and give it a go. You can also try Newsbeuter.
Btw, that feed list in the screenshot is the default set you get after installation. My feed list is way bigger. ;P
File Management
When you are not browsing, chatting, reading feed or writing emails you probably move around files on your hard drive. Midnight Commander will make this task easier with the classic Norton Commander like interface:
Midnight Commander [ibiblio.org/mc]
You young whipper-snappers probably have no clue what Norton Commander was – but I grew up on it. Whenever I use MC I feel nostalgic for the good old days.
Viewing Images
So let’s say you are living your one day without X and someone sends you an awesome picture. For example it might be a picture of a cat with a caption (ZOMG! Invisible bike!). Or maybe it’s one of those demotivational posters. Hell, it can even be some dancing bunnies!
So what do you do? You open it with a framebuffer image viewer like zgv of course:
I have no screenshot for this one because you can’t run it in X, but I can confirm it works. So you will never be without your cat macros!
Watching Video
Sure Luke, but how do I watch my p0rnz you ask? I haven’t personally tested it, but it seems that both Mplayer and VLC are capable of framebuffer output. How well do they actually work in that mode – beats me. Maybe at some point I will test them out, but at this point I don’t have any solid recommendations beyond that.
Text Editing
If you use Linux, you should already have a near religious attachment to a text editor that can be used without X. There are essentially 4 kinds of Linux users: vim/vi users, emacs users, users who can use both editors, but neither of them well, and n00bs. And guess what – if you think that you don’t fit in any of these categories, you are a n00b. Personally – I use both, but I’m more familiar with vim than anything else. Here are my recommendations:
VIM [vim.org]
Emacs [gnu.org/software/emacs]
Playing Music
The fact that you are not running X should not prevent you from listening to your favorite t00nz. Cplay is a lightweight audio player that is perfect for our X-less day:
Cplay [mask.tf.hut.fi/~flu/cplay/]
If you struggling with it, there is an awesome overview of cplay here.
Btw, you can always control your audio volume with alsamixer (if you have ALSA, and you probably do – you have alsamixer installed).
P2P
Luke! I has no Toonz! How I get some without X?
Well, it’s easy my friend. You can do it with rtorrent1:
RTorrent [libtorrent.rakshasa.no]
It’s yet another nifty curses application with negligible memory footprint. RTorrent can easily compete with the windows based uTorrent for size and memory. Unfortunately it is somewhat counter intuitive using Emacs like key bindings. The learning curve is a bit steep, so here is a nice primer to get you started.
Window Management
Yes, you heard me right – window management. The fact that we are not using X does not mean that we can’t have windows. Twin is a nifty curses app which will open sub-terminals inside a curses environment:
Twin actually stands for Textmode Window Environment which is exactly what it is. As you can see from the screenshot, it will allow you to have elinks, mutt, raggle and essentially any other application I mentioned here today open on the same tty. How awesome is that? It removes one of the very annoying issues that we face when working without X – the inability to have multiple “windows” open on the same screen-space at the same time.
Will I actually attempt to survive a day without X? Maybe I will at some point. And if I do, I will definitely blog about it, and tell you about my experience. But it won’t be today because I actually have some relatively time sensitive work to do. ;)
Maybe we can all try this together? Let’s set a date (preferably on the weekend so we don’t struggle at work) and let’s try to survive a day without X. Let’s make it an annual linux geek holiday or something. :mrgreen:
1 – I neither endorse nor condone downloading music. If you are downloading legally, then more power to you. If you are sharing without permission – make sure you don’t get caught.
Note:
If you want to translate this text, please go ahead as long as you give me credit and link back to this post. This work is published under Creative Commons, Non-commercial, Share-alike license.
Y HALO THAR Digg users! Thrilled to have ya here. :mrgreen:
[tags]x, a day without x, curses, ncurses, rtorrent, cplay, twin, elinks, raggle, vim, emacs, zvg, mplayer, vlc, midnight commander, mutt, freetalk, naim, irssi[/tags]
And here I thought I was the only sick bastard that knew how to live in a TTY only world! :-)
I tip my hat to you, sir!
Hehe. We’re not sick – we are just more capable than the rest of them. :mrgreen: So, do you have any cool TTY apps I forgot to add here?
No, I think you got them all . . .
I am one of the few that have watched the movie Tron using mplayer and aalib displayed on a vt100! I am such a geek . . .
Ah, I haven’t seen Tron in ages. My favorite thing in the movie was the floating bit that could only say yes or no. I fucking wanted one of those. :P Then again I was pretty young when I first saw it. Heh…
Cool list… I really like using MPD with one of the many clients (read: ncmpc) to play music though. Definitely worth at least mentioning ;)
Oh, good one Mitch. Thanks! If I get enough of those I will do part two of this post at some point in the future. :)
There is a ncurses version of the instant messaging app Pidgin (formerly known as Gaim), called “Finch” which uses libpurple, and therefore supports all the IM protocols Pidgin does. http://www.whatsbeef.net/wabz/finch.png
Wabz – thanks! Finch looks really cool. I will definitely check it out!
I really recommend screen for text window management. There are lots of benefits to running it. My personal favorite is the persistent connections.
Heh, I use screen so often to manage persistent remote sessions that I totally omitted it in this post. :P
For instant message, i’ll recommend using bitlbee along with irsii. With this couple of app, you can then access all the im networks.
For mpd, you also have mpc, which is command line only (whereas ncmpc is ncurses)
For rss reading, snownews is also worth mentionning, but newsbeuter seems promising.
More sollutions for IMing would be centericq or bitlbee together with any IRC-Client. Most geeks out there use bitlbee together with irssi.
Also, for music there are mp3blaster, orhpeus and last but not least mpd with one of its many console-clients.
Pingback: Eugenia’s rants and thoughts :: Gravatar support :: May :: 2007
I would recommend this application to burn CD/DVDs using Curses” Bashburn.
I would recommend this application to burn CD/DVDs using Curses” Bashburn.
(retrying to post, I got PHP errors earlier)
Thanks for all the suggestions guys! I’m taking notes, and will put them into “A Day Without X: Part 2”
I’ve used mplayer quite a bit on a framebuffer and it works quite nicely. Its got excellent support for the Matrox G550 I was using. For sheer amusement, check out -vo aalib. From a distance its almost not half bad.
& FYI – fbi for images.
links: frames, tables, a bit of color
w3m: frames, tables, a bit of color, unicode, images w/framebuffer or w/xterm
Especially Unicode is important nowadays. Want more?
mplayer -vo cvidix blafasel.avi
or -vo svga. -vo vesa sadly seems to fade out of the working set, since it was/is faster than SVGA. aalib and caca (color AA) is nothing (=fun but can’t really use it).
twin is hard on compilation (it’s just really old).
Xine has an ascii video driver (http://xinehq.de/images/releases/aaxine.jpg). I just tried it in Ubuntu Feisty and it didn’t work, but I have used it in the past. There are also programs to convert images into ascii art. So you don’t even need to resort to the frame buffer.
This is a very practicable post… :-)
Another music player that I’m using is MOC. This music player is my favorite one even while I’m using X.
MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use.
There’s loads more apps;
abcde (cd ripper)
abook (address book)
podget or bashpodder (download podcasts)
wget
lftp
bsd-games
antiword
live-f1 (formula 1 info/results)
shell-fm or lastbash (listen to last.fm streams/radio)
tagger of lltag (id3tag editor)
gnuchess
netris
bc (calculator)
and of course, bash and the coreutils.
mmh .. and what about pdf-reader? It was the only problem I had when using a text-base only terminal.
great job!
Pingback: Estrafalarius — Un día sin X
Pingback: Gultec » Un día sin X
raggle suckz. It doesnt work with national characters (russian in my case)
Don’t wanna be a PITA, but you’re still using an xterm in all your examples :)
you can make screenshot of what you run in a framebufer tty with fbgrab or fbshot
look at http://home.tele2.fr/solsTiCe/img/fbconsole.png that was when i was using slackware
There are essentially 4 kinds of Linux users: vim/vi users, emacs users, users who can use both editors, but neither of them well, and n00bs.
There’s a few of us who don’t like any of that weird stuff and just want a very basic yet intuitive text editor, like nano.
You definitely have forgotten screen. Without it you are doomed to use only one terminal at the time, unless you use different ttys — but how can you do that via ssh?
what distro were u using? i tried to compile twin on debian 4.0 but make failed, too lazy to troubleshoot but i like the idea of twin, i had no idea something like that was possible.
Hi,
Very nice article. I want to blog this !!
What license are you using for your contents ?
send reply to my email-id.
Not something for everyday use, but deserves a mention:
tethereal – a text version of ethereal, the network packet examiner.
Has anybody heard anything new about the supposed framebuffer port of Mozilla Firefox 2.0? Is it useable already?
Another question: is there any WYSIWYG editor with at least RTF support?
music on console: easy than mpd an ncmpc…both ara very good
http://moc.daper.net/
As Instand Messenger, and maybe even for Chat, one can use Finch, the text version of Pidgin (formerly known as Gaim).
Hello! There is most beautiful jabber client: mcabber. It also could be used as gtalk client (w/out voice support).
I recommend centericq as Instant Messendger
and orpheus as Music Player.
Thank you. I did not know about twin. We must try :)
pretty funny – i was reading this in elinks, and tried to respond but couldn’t because of your “security code”.
Great job :-) Mplayer has an ASCII mode that works incredibly well (mplayer -vo aa videofile.xxx) but I’d never thought that all this tasks could be so well covered under the console mode. Uauh.
I’m doing a series of articles/tutorials on Linux in my blog, and I’d like to know if I could translate your post to Spanish on it, without the reference to the source at the beginning and end of the article, of course.
Just let me know, and congrats,
Javi
nice summary! I hope your idea gets into practice. I’ve had my year without X when i blew up my mobo and had to cope with the spare dual pentium for music/browsing/chat, i.e. count me in :)
btw how the **** can I post here using text-mode browser? Can’t see the auth code hehe
I had to load up dillo because of the security code… anyway I do use X for Fluxbox but for the most part I stick using console applications. I will look into Twin though.
And for the brighter side of life — games: NetHack, Slash’EM, ADOM, Crawl, Angband … :)
I hate to pimp myself, but I hate Raggle. I wrote an RSS client about a month ago to specifically avoid using it or Snownews. Try it, if you can’t stand having three “windows” open, or just want to skim headlines.
azureus works in text mode perfectly fine. more memory of course, but works much better..
same, gaim-text (over centericq), don’t forget either aalib-based games (like Quake I with aalib) etc..
finally.. you’re talking about a day without X, yet everything you tested was IN X with a terminal and you didn’t even test framebuffer-aware applications.
How can you call this WITHOUT X ?;)
mplayer -vo vesa is what i need to watch movies. pretty and flawless. the only distro that shipped with vesa-supported mplayer’s binary is mandrake 9.x. tell me if there are/is another distro(s) did it.
and for music, mpd with mpc is more than enough.
and nowadays when X is running in my pc, there are still some command-line apps i can’t live without them: cdrecord, fdisk, lvm, zip, unzip, and rar (hard to believe that there is no good enough front end for them. for example: no gui apps that have ability to repair/fix archives. may be there is a reason behind it? tell me if i’m wrong)
no x no cry
great tips, just though i would add that im using the txt version of pidgin and it works great :)
A few years back I ran Debian, without X, on a very old (then) machine. IIRC, I even had a nice spreadsheet application, but for the life of me, I can’t remember it’s name (no, it wasn’t Lotus 123….)
Anyone remember?
Emacs Lisp soft is better than this junk times infinity.
http://emacswiki.org
For PDFs try… pdf2ascii! ;-)
Again, mplayer -vo aa does not cut it. mplayer -vo caca maybe, but there is currently no caca0.9 patch for mplayer. CVIDIX is just best when it comes to console. _Now_ you know why it is worth to have minimalistic onboard graphic chips in servers.
a>pretty funny – i was reading this in elinks, and tried to respond
b>I had to load up dillo because of the security code…
If you had used w3m (given FB or X)…
PDF: ps2ascii
[quote comment=”4463″]Don’t wanna be a PITA, but you’re still using an xterm in all your examples :)[/quote]
Hehe. I know, but I wasn’t sure how to take screenshots on the TTY.
[quote comment=”4464″]you can make screenshot of what you run in a framebufer tty with fbgrab or fbshot[/quote]
Now I know! Thanks so much for this tip!
[quote comment=”4465″]There’s a few of us who don’t like any of that weird stuff and just want a very basic yet intuitive text editor, like nano.[/quote]
Oh man! You just walking right into it. lol Nano is nice btw – nothing wrong with using it. I was using Pico when I started my adventure with Unix back in the day. I have fond memories of that editor, but at some point I found it was not enough for my needs. :)
[quote comment=”4467″]what distro were u using? i tried to compile twin on debian 4.0 but make failed, too lazy to troubleshoot but i like the idea of twin, i had no idea something like that was possible.[/quote]
Kubuntu Dapper – and twin was in the repositories. I’m pretty sure you can find some deb files of it floating out there.
[quote comment=”4468″]Hi,
Very nice article. I want to blog this !!
What license are you using for your contents ?
send reply to my email-id.[/quote]
As usual, my stuff is under Creative Commons Attribution-Noncommercial-Share Alike License. I will update the post with licensing info. In other words, all I ask is that you link back to me and give me credit when you cite or translate me. :)
[quote comment=”4476″]pretty funny – i was reading this in elinks, and tried to respond but couldn’t because of your “security code”.[/quote]
Yeah, yeah – I know. It helps to cut down the spam though.
[quote comment=”4477″]I’m doing a series of articles/tutorials on Linux in my blog, and I’d like to know if I could translate your post to Spanish on it, without the reference to the source at the beginning and end of the article, of course.[/quote]
Javi, see the reply above. I’m always thrilled when people want to translate
me. All I ask is that you link back to me and give me credit. Thanks!
[quote comment=”4483″]finally.. you’re talking about a day without X, yet everything you tested was IN X with a terminal and you didn’t even test framebuffer-aware applications. How can you call this WITHOUT X ?;)[/quote]
I tested them – just didn’t figure out how to take screenshots in TTY till today.
[quote comment=”4488″]Emacs Lisp soft is better than this junk times infinity.[/quote]
Heh… I’m guessing you meant to post it under the bit about Instiki. Thanks for the tip!
As a sysadmin, java/charva (java UI on curses) and j2ee app support eng I used mc and lynx during two years from time to time. And I say that linux without X is coolest comparing to any winOS console. These tools helps me today too.
Pingback: Linux sin las X
You can actually use a graphical browser without X… links2 has a graphical version that will run under svga.
yes yes oh yey! you is very kewl who can fire up mplayer from a xterm…
Show me some framebuffer stuff and I’ll give you a hug!! =)
How about a perl one-liner?
#!/usr/bin/perl
for(;print"\e[2J";$d--){for$i(0..31){for(0..7){$|=1;$c=cos$d/($P=4*ata n2(1,1));$s=sin$d/$P;(1,2,4,8,16,32,64,128)[$_]&(63,127,63,1,65,1,65,1
,65,1,65,1,65,1,65,1,63,31,63,1,1,1,65,1,1,1,65,1,1,127,65,127)[$i]&&p rint"\e[",25+int$c*($Y=-4+int$i/4)-$s*($X=($i%4-2)*9+$_),";",40+int$s*
$Y+$c*$X,"H*"}}select('','','',.1)}
I use this to keep TTYs open . . . :-)
#!/usr/bin/perl
for(;print"\e[2J";$d--){for$i(0..31){for(0..7){$|=1;$c=cos$d/($P=4*ata n2(1,1));$s=sin$d/$P;(1,2,4,8,16,32,64,128)[$_]&(63,127,63,1,65,1,65,1
,65,1,65,1,65,1,65,1,63,31,63,1,1,1,65,1,1,1,65,1,1,127,65,127)[$i]&&p rint"\e[",25+int$c*($Y=-4+int$i/4)-$s*($X=($i%4-2)*9+$_),";",40+int$s*
$Y+$c*$X,"H*"}}select('','','',.1)}
Lets try that again . . .
Hey Luke, in the email it only says “e[2J” not “\e[2J”.
>You can actually use a graphical browser without X… links2 has a graphical version that will run under svga.
But SVGA requires root – FB does not – kthx
Craig – care to explain your cryptic perl? I tried deciphering it but I think I hurt my brain in the process. What the hell is it supposed to do?
it’s perfectly trivial to set an alternate editor in pine, just set editor and enable-alternate-editor-implicitly
It was one of the first winners in the obfuscated perl contest. It is safe to run, I promise!
Just in case, I put the file on my server so you can download it without typos . . .
http://www.bettssoftware.com/files/rotate-perl
LOL! It’s kinda awesome!
I’m actually in the process of developing a distro. I’m calling it CLIbuntu since it’s based off of Ubuntu-server. I want it to be the easiest command line interface (CLI) distro available, for everything to work ‘out-of-box’, with as much pre-configured and ready to go as possible. I want it to be as comfortable for those new to CLI as possible. I’m also, including some build in tutorials so new users have quick and easy access to get started being productive immediately. I desire for it to focus on everyday apps as discussed in this blog and comments. I’m close to releasing it.
For those who are interested on helping contribute to this project or just want to know more about what I’m trying to accomplish, please feel free to email me at:
jared.bernard (at) gmail.com
Luke, enjoyed the blog and the comments.
You know what else is awesome? Look back at the previous posts. I am amazed at the number of non-windows platforms that are being used to make these posts. Linux, MacOS, Solaris, even BSD! Very awesome! Best of all, no IE!
Way Cool!
[quote comment=”4507″]You know what else is awesome? Look back at the previous posts. I am amazed at the number of non-windows platforms that are being used to make these posts. Linux, MacOS, Solaris, even BSD! Very awesome! Best of all, no IE![/quote]
Oh wow! I just noticed that. Not a single comment posted with IE. Heh. Of course it seems appropriate as this sort of topic would only interest certain type of people. As a rule, most Unix and Linux people do not use IE even when stuck on a windows box. :)
Of course someone will read this comment, and post with IE just to fuck with us within an hour. :P
[quote comment=”4436″]So, do you have any cool TTY apps I forgot to add here?[/quote]
I would add:
screen
centerim
couldn’t imagine my work without them :)
yep!, CenterIM should have been included in the article..
Pingback: links for 2007-05-22 « /tmp
For terminal/console based instant messaging, there is also http://bitlbee.org/ . I have been using it for several days now with BitchX and am very happy with it.
Pingback: un dia sin X’s - zer0’s corner - The Blog
thanks for a very informative (and thorough) list! I was just looking for a browser to replace lynx…..
This is for Xslf: I remenber two of them; the first is a vi-like spreadsheet callec “sc” (debian name); the second, is a emacs-like one, “oleo”.
You definetly forgot cmus [1], the absolute uber-greatest music player in universe. :) It’s pretty much like Vim, but for music. If you spend a lot of time on a tty and listen to music a lot, you really want to try it.
[1] http://onion.dynserv.net/~timo/cmus.html
There are al least two spreadsheets in Debian for the console: “sc” and “oleo” (Debian names).
Good article!
Excellent article. I was wondering how many things could be done through CLI :) Thanks
I spend most of the time under framebuffered tty, and I personally think I wouldn’t be able to survive a whole day under X11 ( ;.
As a web browser the most I use Opera, but under tty I prefer Lynx. Why? Because it’s different — it doesn’t try to clone any of the graphic browsers, concentrating on the content of page. And it’s quite easy to apply image support to it using fbi. But w3m looks also interesting, mostly because of inline image support on fb.
For chatting I prefer EKG2 instant messenger. I just can’t stand any other kind of interface! And I also use it for RSS/ATOM — through my simple perl script XMSGRSS.
Instead of Midnight Commander you can use something more traditional — Necromancer’s Dos Navigator ( ;.
For viewing images, as I mentioned earlier, I use fbi (through framebuffer). For videos there isn’t anything better than using some old DXR3-like card with TV output.
And for P2P I prefer using MLDonkey. It does the thing as a daemon, and with powers of tty it can be controlled through telnet or webinterface.
Pingback: Eric D. Schabell » A day without X
fb = slow :-( , preferring vc or X
And remember, the mouse is only to be used to point at the xterm you want to type in!
No list of essential console programs is complete without Screen. I don’t know anyone who actually uses twin, but I don’t know any console-o-philes who don’t use screen.
Pingback: A decent Linux terminal apps guide « Logand’s Blog
What an outstanding post. Keep it up bud !
Pingback: Linux solo en consola « Deambulando
Among the music player list, I’d like to include Herrie which is very lightweight and includes support for AudioScrobbler. Makes for a great jukebox type player too.
Don’t forget the “joe” package, which provides “jstar” — a Wordstar key-compatible text editor — among other things.
And ‘ mcedit ‘ which comes with MC.
Some pretty cool apps you guys have managed to come up with :)
In my widescreen laptop (1280×768) I can watch widescreen videos (e.g. 624 x 352) with the following:
#echo mplayer configured for console fullscreen playback
mplayer -vo fbdev -fs -zoom -aspect 1.3333 -sws 3 -vf scale=1000:700 movie.avi
It is somewhat obscure because I have to trick mplayer since it thinks that My screen is only 1024×768…
Seriously, it isn’t a big thing to life without X.
Pingback: A day without X « Veronica’s Lore
[quote comment=”4487″]A few years back I ran Debian, without X, on a very old (then) machine. IIRC, I even had a nice spreadsheet application, but for the life of me, I can’t remember it’s name (no, it wasn’t Lotus 123….)
Anyone remember?[/quote]
You’re probably thinking of ‘sc’.
Pingback: TuxJournal.net 2.0 » Blog Archive » Un giorno senza X.Org
Pingback: A day without X « Technology Spot
A day without X is possible. How about a week without X?
IM:
centericq
Window managment:
screen
Image viewing:
fbida
TV:
fbtv
I’m another TTY lover ^_^ thanks for your great review.
Pingback: No es un weblog » Linux en modo Texto
very nice…the web browsing reminds me of these european text info kiosks…i forget what they were called
Is there any way watching videos as a non-root user? Mplayers requires root usage. >.
bmon is a cool bandwidth monitoring tool
http://people.suug.ch/~tgr/bmon/
Pingback: Command line choices « 0ddn1x: tricks with *nix
There are several possibilities:
*) Set up permissions in RBAC (if available)
*) Confugre sudo
*) Make mplayer suid
*) Make the user’s UID zero (not recommended by any means)