Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Xnest tutorial - handy; don't overlook if you're unfamiliar!
View unanswered posts
View posts from last 24 hours

Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks
View previous topic :: View next topic  
Author Message
Tux's lil' helper
Tux's lil' helper

Joined: 16 Jul 2011
Posts: 141
Location: USA/Michigan

PostPosted: Mon Jun 18, 2018 2:12 am    Post subject: Xnest tutorial - handy; don't overlook if you're unfamiliar! Reply with quote

EDIT: This was originally written as a workaround for running REAPER in Qtile, as the UI in REAPER was quite buggy at the time of this writing, but worked well in OpenBox. However, in retrospect, this is more of an Xnest tutorial, so i've updated the language to make REAPER+Qtile more of an example case. I may later further refine this for the wiki, as Xnest is a very handy and interesting tool. Perhaps especially for UI developers. I'm not sure it gets much notice.

Briefly, Xnest runs an X11 server inside a window (or aka "nesting" one X in another). You could then, for example, run a window manager inside a window inside another window manager (and other programs inside of the "child" WM). In this case, I'll be showing how to run REAPER (DAW) in OpenBox inside of Qtile.

I am using Qtile version 0.11.1 and REAPER v593pre2 Linux build as of this writing, for this example.

To enable Xnest, I created /etc/portage/package.use/xorg-server with the following contents:
x11-base/xorg-server xnest

Then I ran the following to enact the new USE flag (which is not recommended, and there is probably a more safe way that you should investigate if you don't know what you're doing like me):
emerge --ask --update --deep --with-bdeps=y --changed-use --newuse @world

The above command is what I normally run to update my system. It's actually overkill for this purpose. Don't use it if you don't know what you're doing. It just happens to be what I used in my case and I don't want to be a dick and not "give the answer" as I run into many times on the net. I just don't have time to look up a better option right now.

Once Xnest is installed, I created the following file in /usr/bin/reaper thusly (where reaper would be whatever you want to type at a command line or run prompt to execute whatever it is you're could put it anywhere really, but somewhere in your PATH is ideal for convenience):
Xnest -geometry 3440x1415 :2 &
export DISPLAY=:2
openbox --startup "/path/to/reaper5"

Note: for this example, I'm running on a 3440x1440 monitor. The adjusted resolution is to compensate for tool bars in the "parent" WM and window decorations in the "child". Set it to whatever works for you.

basically, what the above BASH script does, is start Xnest and assigns it to DISPLAY :2...Then we export :2 to our script's DISPLAY environment variable. Finally, we launch openbox which will use that DISPLAY variable to know it should go on the Xnest-spawned server. That's probably clumsy, but is the best way to paraphrase what I know so far!

So far, I haven't noticed any performance issues, but I'm sure it is reduced.

I hope this helps someone.

As for questions, I'll try, but this all sorta just worked for me (see links below for the full story). If you find/notice error, or have anything else to say, please reply!

The full backstory which lead to this:
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks All times are GMT
Page 1 of 1

Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum