I picked up an odd tip the other day, by way of questions about window managers. falconindy pointed out that, rather than looking for a lightweight option, perhaps better route is to open another instance of X.
It’s something that I knew I could do, but didn’t really want — or need — to. After all, I’m normally I’m opposed to X in general, on account of the weight it has put on in recent months (years?). But something as quick and easy as this actually might prove … well, quicker and easier. š
#!/bin/bash DISPLAY=:1 X :1 -ac -terminate & sleep 2 $*
Copy, paste, mark as executable. Call it from the terminal and suffix it with the name of the application you want to run. Switch between them by way of the CTRL+ALT+F# keys, with successive servers getting successive numbers.
Memorywise, I don’t know if it is a wise idea, or at least a wise idea for something as slow as this. On the other hand, it’s a dwindling population that uses machines with those specifications, so it might be perfectly acceptable for anyone using something built after 1999.
I gave it a try on a machine running Arch and had no real issues; whether or not you use it may depend on how practical it works out for you. After all, most window managers support multiple “desktops,” and so adding a whole different instance of X may be overcomplicating things to an unwieldy degree. You’re the best judge of that though. š
you have a display error in your script. the & in the third line is displayed as is.
by the way, try using newer hardware. i can see why you do this, but it comes to a point when it just isn’t practical anymore. just an opinion š
Thanks, got it.
Yes, I suppose its going to be practical or impractical, depending on the person. For me, it’s not something I would probably use often, regardless of the hardware.
Extra X servers have their uses- for instance, trying out new WMs without closing out all your open applications, or running full screen games like World of Warcraft in Wine without having to close it every time you want to switch programs.
Do you have to be root (or sudo) to do this? I tried it out from a terminal whilst in Xubuntu 9.04 and needed to sudo the command to get the new display. Cute trick though š
I’ve never had to be sudo to use it… but then again, I do not open a new X with the same user either. I have a few different users, and occasionally use this sort of thing to switch to them.
Since startx doesn’t work for a second user, you could just use the command: xinit — :X
(X= number of running X’s plus one. So xinit — :1 would be a second display, xinit — :2 would be the third and so on.)
In theory you can make as many as you like, but switching between them with the Ctrl+Alt+Fn keys is limited. If you have F1-F6 as consoles, then you have F7-F12 left as easy switches. There is probably a way around this, but I don’t know it right off.
xinit ā :1 also requires sudo.
When run as sudo, it fails
This is on Xubuntu 9.04 – no funny business on the install š
Oh, and I am trying to run the commands in xfce4-terminal. KMandla’s original command created an new instance of X using sudo.
Look at file Xwrapper.config. You find allowed_users=console there. It means only users from console can run new X. You can chenge it to allow anyone to start X. I do not know if it is good or bad idea.
this should be ok memory-wise since most of the memory should be in shared libs, so already loaded with the first instance of X. have a look at top’s SHR field.
newx() { DISPLAY=:1.0; xinit $* — :1; };
in your .bashrc
then just: newx foo
alot simpler
Really nice idea! Works fine. I use it to launch mplayer (playback in framebuffer doesn’t work with my setup).
This is great for me since Awesome just can’t handle java apps (they look as an empty grey window).
So, when I need one of them I call it this way. Thanks. š