Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

A bit of background information: I'm dealing with a piece of software that is part of a larger system. Most pieces of the system have a background process that runs continually, and a GUI that can be open when that piece of functionality is needed. The particular piece of software that is causing me trouble was instead written as a single program containing both the GUI and the background processing. This means that the GUI must always be running, otherwise the associated processing cannot take place. This is not desired (for a number of reasons).

As a workaround, I've looked into various X pseudoservers that will allow me to show/hide the GUI window as appropriate. The three I've looked at specifically are xmove, ximove, and xpra

xmove is really old (hasn't been developed since Nov 1997) and doesn't support 24-bit graphics, which is a non-starter.

I've also found something called ximove. The author, Mark C. Ballew started it with the intent of improving upon xmove (XIMove‚Č°Xmove Improved). But, looking at his website it looks like the last status update was 8/16/04, and it links to http://forum.ximove.com/ which does not appear to exist anymore.

xpra seems like the most promising option, but it hasn't quite worked as hoped. I get a lot of errors complaining about "Cairo" which is something that is not covered in any of the xpra files that discuss dependencies... nonetheless the program does work for small applications, such as a web browser. When I attempt to use it for my problem program though, I get a lot more errors (cairo errors and others). and both xpra and the application itself seem to crash.

I'm looking into trying out a clean install of the newest version of xpra, but I'm wondering whether any of you guys have any insight into some other X pseudoserver applications that I should try.

share|improve this question

migrated from stackoverflow.com May 31 '12 at 21:40

This question came from our site for professional and enthusiast programmers.

    
do you just need to hide windows or you need to be able to run your program without X? Did you try Xvfb? –  Andrey Sidorov May 17 '12 at 2:04
    
I don't need to run it without X, although that would work. I just need some way to run it without being visible so that when the user clicks on a button in a wrapper GUI, it will appear to be launching this app, but really it will just be making it visible. I haven't tried Xcfb, but I briefly looked into it when I saw your reply and I'm not sure that it's what I'm looking for... it doesn't look like after starting the program without X, that I can ever attach it to a real Xserver when I want to. Do you have any experience with it to tell me that's not the case? –  demarcmj May 17 '12 at 12:00
1  
Xvfb is virtual framebuffer X server. You can start it with Xvfb :1 and launch your program with DISPLAY=:1 yourprogram. This way you won't see any UI in your X session and you can still interact with your program UI for example by starting VNC server attached to Xvfb session. Another way to hide UI could be -geometry command line option which is usually parsed by xlib-based programs. –  Andrey Sidorov May 17 '12 at 12:17
    
The problem is if I start the program in that manner, there's no way to ever make it visible without killing it an restarting it. Pseudoservers on the other hand, allow you to fake an XServer when you don't need it, but then forward onto a real display when you do want it. Can I do that with Xcfb? It doesn't seem like I can (but I'm no expert). It seems like a great tool if I always want it hidden, but not if I need to see it sometimes. –  demarcmj May 17 '12 at 12:44
1  
Note: there are various versions of xpra floating around; the ones provided in most distro repositories are woefully outdated. Try the later version from xpra.org –  Piskvor Jan 9 '13 at 13:50
show 5 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.