OSX Gripe: Why can't Quartz programs work like X11 programs?

Posted:
in macOS edited January 2014
Ok, here's the situation. My lazy ass is sitting on the couch with my Powerbook while my other Mac is on my desk, hooked up to some decent speakers. I want to log into that Mac and run iTunes remotely, so that I can play music over the speakers without leaving the couch.



Being able to run a graphical program (like iTunes) on another computer through ssh, and have its graphics and windows display on my local computer has been one of the key features of X11/X-Windows since forever. Why can I not do this with Quartz-based programs?



I could write a whole bunch of applescripts, I guess, to play mp3s on my other mac, via my Powerbook, but that is way too much trouble. Do you think Apple will build in the capability to run Quartz programs remotely in this way, or just expect users to shell out for Remote Desktop to do stuff like this.





Alternatively, does anyone know of any good X11 iTunes clones that I could use for this purpose?

Comments

  • Reply 1 of 15
    smirclesmircle Posts: 1,035member
    Quote:

    Originally posted by Wesley Willis

    Ok, here's the situation. My lazy ass is sitting on the couch with my Powerbook while my other Mac is on my desk, hooked up to some decent speakers. I want to log into that Mac and run iTunes remotely, so that I can play music over the speakers without leaving the couch.



    Why don't you use a VNC client/server combination? Or play the files wia mpg123 (command line tool)?
  • Reply 2 of 15
    costiquecostique Posts: 1,084member
    You don't even need to log in graphically: just ssh to another machine and it's fully at your disposal. The open command does wonders.
  • Reply 3 of 15
    No no no. You guys don't understand what Wesley Willis is saying.



    When you ssh into a server with the -X flag, programs that you are *run* on the server are *displayed* on your client computer.



    Here's an example:



    You have Photoshop, BLAST, Logic, Maya, and some other beefy apps on your Dual 2GHz G5 server in your office. You also have an iBook, but none of that software installed on it because it would run so slow. You are roaming around on a wireless connection and you are inspired by a sketch and want to fire up Maya to hash out a model. If you could use the -X flag, you could launch Maya so that it would be running on the G5 server (entirely using its CPU, memory, etc.) but so it would send all display commends to your iBook, acting as if it was right there like a normal app.



    This is *not* the same as VLC. It's far superior. The app in this mode acts like a normal app. It's not rooted inside a display like VNC. It uses far less bandwidth because it has significantly less screen area to refresh and because window transforms (like dragging) can be done on your host computer (the iBook).



    I use this rather frequently with X11 apps. It is a *huge* boon that saves me from having to trek out to a lab across campus in the middle of the night.



    Here you can see I've just opened up MATLAB and Maple remotely from the university's servers onto my Mac:







    I, for one, would **love** for Apple to implement this kind of functionality. However, I suspect the biggest block is Aqua. XWindows interfaces are extremely simplistic and much more coordinate and vector driven. Aqua uses bitmaps for everything (as well as double-buffering it all) and I suspect this would put an incredible strain on bandwidth, making it only suitable for working on a LAN.



    I'm no expert though.
  • Reply 4 of 15
    amorphamorph Posts: 7,112member
    Quote:

    Originally posted by Brad

    I, for one, would **love** for Apple to implement this kind of functionality. However, I suspect the biggest block is Aqua. XWindows interfaces are extremely simplistic and much more coordinate and vector driven. Aqua uses bitmaps for everything (as well as double-buffering it all) and I suspect this would put an incredible strain on bandwidth, making it only suitable for working on a LAN.



    I'm no expert though.




    The main obstacle is the window server, which for time-to-market reasons is only capable of local display. I've heard from here and there that Apple is working on fixing that.



    Bitmaps are no big deal. If an OS X box tells an OS X box to display a window, the latter has all the bitmaps already, and it knows which to put where in the case of the "stoplight"; for the rest it only needs coordinates.
  • Reply 5 of 15
    hobbeshobbes Posts: 1,252member
    Check out "iTunes remote" on, say, MacUpdate.



    http://www.macupdate.com/search.php?...mote&os=macosx



    Quite a few solutions out there...
  • Reply 6 of 15
    dobbydobby Posts: 792member
    Pity apple didn't use the -NXHost parameter available on OPENStep.



    Why don't you buy a Bluetooth usb key (eg Dlink) and buy an Ericsson T68i and run control it from your Mobile. Thats efficient use of technology!



    Other then that try VNC as suggested.



    Dobby.
  • Reply 7 of 15
    kickahakickaha Posts: 8,760member
    There are some sticky problems with making Quartz remotely hostable, and it's not something you want to screw up and then have to go back and patch while keeping backwards compatibility with older apps that assume past incorrect behaviours. :}



    I say let them take their time on this one. It's too core and too important to screw up. The transition to Carbon/CoreFoundation/CoreGraphics *has* to come first... as reliance on Classic apps dies off, it'll be easier to do. (And even then, Carbon, CoreFoundation and CoreGraphics have a bit of work to do to get up to snuff for this sort of abstraction. It's getting there though.)
  • Reply 8 of 15
    dobbydobby Posts: 792member
    Quote:

    Originally posted by Kickaha

    There are some sticky problems with making Quartz remotely hostable, and it's not something you want to screw up and then have to go back and patch while keeping backwards compatibility with older apps that assume past incorrect behaviours. :}



    I say let them take their time on this one. It's too core and too important to screw up. The transition to Carbon/CoreFoundation/CoreGraphics *has* to come first... as reliance on Classic apps dies off, it'll be easier to do. (And even then, Carbon, CoreFoundation and CoreGraphics have a bit of work to do to get up to snuff for this sort of abstraction. It's getting there though.)




    Do you mean they will implement a type of NXHost option (or am should I get another Coffee and re-read the post )?



    Dobby.
  • Reply 9 of 15
    kickahakickaha Posts: 8,760member
    Quote:

    Originally posted by Amorph:

    The main obstacle is the window server, which for time-to-market reasons is only capable of local display. I've heard from here and there that Apple is working on fixing that.



    What he said.
  • Reply 10 of 15
    whisperwhisper Posts: 735member
    I specifically asked an Apple engineer about this back when OS X was first introduced. He said it was certainly possible, but he couldn't or wouldn't comment further.
  • Reply 11 of 15
    g-dogg-dog Posts: 171member
    As was said earlier about the qindowing system being double-buffered and all bitmaps, which is heavy bandwidth stuff to keep up with. Couldn't the "server" first translate all the complex double-buffereing and bitmaps into simple cooridnate maps of all the windows with some vector stuff thrown in, then send it over the lines to the clients which would then display it?
  • Reply 12 of 15
    Quote:

    Originally posted by Hobbes

    Check out "iTunes remote" on, say, MacUpdate.



    http://www.macupdate.com/search.php?...mote&os=macosx



    Quite a few solutions out there...




    Thanks - I'll check them out. Thanks to everyone else who provided information. Hopefully this functionality will arrive at some point if Apple is serious about OS X being "a real Unix."
  • Reply 13 of 15
    Quote:

    Originally posted by dobby

    Pity apple didn't use the -NXHost parameter available on OPENStep.



    Why don't you buy a Bluetooth usb key (eg Dlink) and buy an Ericsson T68i and run control it from your Mobile. Thats efficient use of technology!



    Dobby.




    I have SallingClicker for my bluetooth phone, but as far as I know, I can only go forward and back among songs in a playlist - can't browse the iTunes interface on the phone.
  • Reply 14 of 15
    dfilerdfiler Posts: 3,420member
    Quote:

    Originally posted by G-Dog

    As was said earlier about the qindowing system being double-buffered and all bitmaps, which is heavy bandwidth stuff to keep up with. Couldn't the "server" first translate all the complex double-buffereing and bitmaps into simple cooridnate maps of all the windows with some vector stuff thrown in, then send it over the lines to the clients which would then display it?



    Individual programs don't store their own aqua bitmaps... at least for commonly used widgets from system APIs. Why transmit those bitmaps when the client machine already has a copy? Also, the client should maintain it's own double-buffering, not the server.



    There are technical hurdles to making Aqua a remote windowing system... but they aren't really related to Aqua's heavyweight features. The hurdles are just the more abstracted difficulties of extending any windowing system.



    [EDIT: I just reread my post and realized that I was in fact agreeing agreeing with you. Heheh, Sorry]
  • Reply 15 of 15
    stoostoo Posts: 1,490member
    Sailling Clicker can search by partial name or select an iTunes playlist.
Sign In or Register to comment.