RandR Support on XFree86 4.3
Gentu writes "Great news from our favorite windowing system: [Hewlett-Packard] engineers committed a new extension to XFree86, called RandR. XFree86 4.3 (to be released in late 2002/early 2003), will have the ability to truly resize (not via the pseudo-resize CNTRL+[+/-] command), rotate, reflect and change the refresh rate of each screen of an X display on the fly. And KDE seems to be the first desktop environment to add support for the RandR extension."
I would like to be able to redirect running xwindows applications. Let's say I am running a copy of bzFlag, or some other type of productivity application. Wouldn't it be good to be able to transfer the running application to a different computer if I suddenly have to change terminals?
Is changing bpp on-the-fly also covered by this new (très cool) extension? I skimmed through the announcement but could not find anything about this. Anybody know if color depth switching is planned?
Reminder: find a new sig
The rotation is for people with pivoting monitors which can swap between landscape and portait views, I assume.
Mirroring may be reflection, but it could also be mirrored video for multihead setups.
X is a lot better than many competing efforts. For starters, it works, is in wide distribution, and has a huge suite of apps. Unlike, say, Berlin, or any of the other "Let's replace X" projects (Berlin, to its credit, at least works. Most alternatives are SourceForgeWare with a few Beavis and Buttheads dissing X withou anything to replace it).
X gives you a base. You can reimplement everything X already does to get the features X doesn't have, or you can implement extensions to X, or rewrite core parts, to correct the faults X has. Guess which is less work?
What a rip off! Turns out this rotate feature is not a free rotate but fixed 90 degree increments!
Pfff! And I wanted to have my aterm at a weird angle.
graspee
Why do these "when will we replace X" trolls resurface every time there is an X story? And why do people keep modding them up?
So far, we have great 3D acceleration, direct video, anti-aliasing, and now dynamic sizing/resizing in X. And all with excellent performance that is equal to or better than the performance offered by Windows. And we retain the network-centric features and flexible, modular configuration that make X so powerful. And all of this while maintaining backward compatibility over a decade-and-a-half of software.
We'll replace X when it makes sense to do so and not before. Right now, there is no better (or even close to equal) solution.
STOP . AMERICA . NOW
How did this comment get to a 5? This person does not understand software development. If you need some more information on why we should not "replace the X windowing system alltogether", read this.
It's important to note that these are not just 'ooh, we have a frontend that twiddles X settings'- it's support at the WM and panel level. GTK changes are (I'm told) in too. So GNOME has support that actually works, for the six or so people bold enough to run CVS GNOME on top of CVS X ;)
IAAL,BIANLY
What does Mac OS X use? Something different. Maybe we (the rest of the *nix world) should see HOW MUCH they gained from doing that - it may be that rewriting a lot of apps (or doing some sort of backwards compatibility mode) would be worth it.
My server
They (essentially) use Display PDF, an evolution of Display PostScript. There is no X server. What they gain from that is, well, a pretty GUI. One that does not have many of the useful features of X (no remote windowing, which matters when you're seling Xserves). More importantly, it has none of the X software, which means people have had to hack a working X server onto the platform - Apple refuse to - and run them there. If all you want are the pretty effects you can get from Display PDF, you can go contribute to one of the projects adding Display PostScript to X. There's not much that uses it, but you can have it.
Which means Apple may have a Unixish personality of their Mach core, but out of the box, no Unix GUI tools work.
And if you think Apple, who routinely sue people for producing OS X look-a-like themes would stand for you cloning the Quartz API, you can pass me some of whatever you've got.
Finally X is getting the same features that most other operating systems have had for a decade... It may sound small, but these are the things that make systems easier to use for the average joe, and goes a long way in usability.
Your eteet skills?
The trolls aren't what they used to be.
Games.
Being able to change resolution and color depth dynamicly, you no longer have to see a game designed for a lower resolution than your desktop run with in a small window with a black border around it. Resolution could be changed before, but not on all chipsets.
Also running in a different color depth required emulation wich is slow. And this could'nt be changed dynamicly before.
This is the only thing I've hated about X, so I'm quite happy now.
1) dialog
2) kcontrolmodule
3) notification
4) popup
I then reclicked it, and there is no perceptable painting whatsoever. It's either there or it isn't. I can click over and over on it, and it pops back and forth (if I do it quick enough, I get a flicker effect and I think I can see where it is painting, but I'm not sure if it's just a optical effect of flipping back and forth).
KDE caches it's menu, and does a rebuild when you click it after n seconds of activity (the value is in a Properties panel somewhere, iirc). My guess is that the "repainting" is actually KDE rebuilding its menu after a period of inactivity.
--
Evan
"$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
Reasons why this is good:
Applications that work best in a specific resolution or color depth. Particular examples are any games; Most 3D games, such as Unreal Tournament or Quake 3, give you the option of changing the resolution or color depth; the obvious advantage to this is that if you have a low-end video card, setting the resolution and color depth low will increase the framerate. If you have a high end video card, you obviously will want a higher resolution for greater detail. I keep my desktop at 1280x960, but prefer to run games in 1024x768 with Quincunx antialiasing (I have a GeForce 3).
Another important application is web design. A well-designed web site should look good at any resolution; however, since one can't intuitively know how a page will look at every resolution, when designing a page it is convenient to change your resolution on the fly and take a look at it.
And then, of course, you have applications that *require* a specific resolution. This isn't as much of a problem with UNIX, but in the Windows world you will likely encounter programs designed for older setups that will fail to run if you don't have a specific bit depth or resolution. Even some more recent applications have this restriction; for example, the Windows SNES emulator zSNES requires that you run it with 16-bit color depth (at least, it did the last time I checked). Starcraft requires that it run at 640x480.
So, just because you don't have any reason for this, don't say it's useless. I've been wanting this feature for ages.
Karma: Terrifying (mostly affected by atrocities you've committed)
Dude, you've got it all wrong. People often say that Quartz is almost like Display Postscript, but it's not at all. Display Postscript involved creating actual postscript code and sending it to a postscript intepretor for display on the screen. Quartz does not do that. However, it does share almost the same exact API as Display Postscript did, so I can understand the confusion.
Anyhow, Display Postscript was not intended to be an extension to X11, that came AFTER it was implemented on NeXT. Remember OpenStep on Sun and HP, thise systems only had Xwindows, so a XDPS system was needed for them only.
Another point, XRender works very similarly to how Quartz does. That is, clients draw in a pixmap and ask the Server to draw it (vs. asking the Server to just draw it). The WindowServer in OS X is kinda like a XRender only X11. Drawing commands are not sent to the WindowServer, only the client's pixmap of what their windows should contain is "sent" (shared really) to the Server. Hence, a lightwieght Window Manager.
Cut and paste faults are BUGS in individual applications or toolkits. The XFree86 maintainers cannot fix these bugs by changing X, because X already does the right thing.
/really/ care.
In every serious X app you should be able to do both of the following:
1) Cut, Copy and Paste things through the system clipboard using menu options, keyboard shortcuts etc. as appropriate. e.g. Ctrl-X for cut in most GNOME, KDE apps. This works almost exactly like Windows.
2) Quick copy using the middle mouse button, select text in any application, then press the middle mouse button to paste that text in any other application.
If they don't work in your favourite apps, check for a new version. If that doesn't work either, file a bug, post to the mailing list, write to your democratic representative or complain ABOUT THE SPECIFIC APP on Slashdot. If you aren't specific no-one can help you.
Caveats:
Old KDE (pre 3.0) and Qt (ditto) apps (e.g. Opera and many installs of KOffice) don't work because Trolltech screwed up. Upgrade
Venerable old xterm doesn't have Cut/Copy/Paste menu items (most users don't even know it has a menu) so you can't use the clipboard only the fast copy feature. Use one of the many other modern terminal apps if you
Earlier (e.g. few months old) stable releases of Gnumeric make the same mistake as Qt2.x. Upgrade to the latest release.
GNU Emacs (but not XEmacs) has totally bizarre clipboard behaviour unrelated to any standard, principle or sense of reason. Use XEmacs or complain to your favourite Emacs maintainer.
XML causes global warming.
Which means Apple may have a Unixish personality of their Mach core, but out of the box, no Unix GUI tools work.
Good point. The Mac has no GUI tools and Unix's GUI tools are world-renowned. Mac users are clamoring to use those Unix GUI tools. or was that vice versa?
cpeterso
This extension, together with other X11 features, has a much grander vision: letting applications move seamlessly across displays and devices. This requires defining standard protocols by which different implementations can interoperate and communicate. It also means coming up with standards that work across a wide range of devices.
I frankly don't know when, or even whether, X11 will be able to deliver on this vision--it's hard and there is still a lot of work left. But I do know that few other systems are even trying, and that functionally, X11 is already far ahead of the alternatives. For all their visual glitz, Windows and MacOS, for example, are just minor variations on the "applications running on my desktop" theme.
Rotation is used, for example, on the iPAQ PDA,
so that you can choose either landscape or
portrait mode. It is also useful on tablets,
some other circumstances.
Keith and I discussed mirroring when we originally
designed RandR, but couldn't come up with a
plausible need.
Then at a conference, someone came up to me and
said they wanted to implement a Heads-UP display
using a Laptop on their dashboard.
I said: "Sold!".
So we implemented it.
- Jim
Anyway it was the boss's birthday and the night before he carefully locked his office and set traps in the door so he could tell if anyone had been in .... the next morning he comes in, everything seems OK, he checks the door, his chair, his desk, doesn't find anything ... sits down to work with his computer .... nolthing happens .... about 1/2 an hour later he realises his screen is slowly getting greener and greener ... aha he thinks looks in his system folder, removes a couple of suspicious INITs and reboots, it comes right ..... about 1/2 and hour later kit starts going green again .... he pulls some more stuff, reboots again, but no luck .... he's just about to reformat his disk and reload the OS when lunch came around and we explained ....
Of course reloading everything wouldn't have done him any good ... we'd burned him a custom ROM for his graphics card
In that sort of world, it's a lot easier to specify how big you want things to be than to specify how many pixels anything should be.
There are a lot of people whining about X (myself included). Most people say X is (take your pick) bloated, slow, obsolete, inefficient, or hopeless. Now some of these individual claims may have some truth to them, but the fact is that X despite its knarliness, works, and it works today. There isn't any real alternative, and it can continue to be extended for a long time.
But people who say such things about X are missing the point. X is ugly, in the same way that x86 is ugly. I think the analogy is a very apt one. Both are rather old designs, both are the most prevalent, both have had to be extended numerous times (and successfully), and both work, and work quite well. But neither one will get any design awards: the only thing we're doing at this point with either of these is leveraging the existing code base (i.e., the millions of x86 binaries on the one hand and X applications on the other) and avoiding duplication of past work by building something from scratch. And frankly, I think both are beginning to reach the end of the line: the further we go, the more effort we need to expend for an increasingly marginal return.
For the x86 example, Intel perceives this, and wants to jump ship now, even though its replacement is not as robust, fast, or powerful as its last top of the line. Once again, people who point this fact out are missing the point: Intel is laying down a roadmap, to service a broader goal of an architecture it can grow with for the next decade or more.
Why can't we do the same with X? It's going to get harder and harder to grow with X, so lets lay some groundwork now for a window system we can grow with for the next decade or more.
I am shocked and amazed that more comments are not mentioning Berlin, that is, Fresco. Do people not know about this? This is the only project I've found that has half a chance of being a suitable replacement for X. There's a framework there, a coherent vision, and even a basic running system. This isn't vapor, folks, or are these people a bunch of anti-X whiners with no code to back up their pointless bitching. They're not FUD-mongers; at least listen to their well-balanced (I think) justification as to why they're working on this project. It's quite easy to see that they're not at all motivated by hatred of X, but by a desire to design an elegant and network-transparent window system.
Why don't we have more of that nowadays? Half the OSS movement seems to be driven by hatred of Microsoft (or simply closed-source software), rather than love of elegant, useful, robust code born of honest work. At some point someone is going to have to worry about more than simply getting things done as quickly as possible, be-damned-how-it-works, and think more about design and the way things should be. The former type of attitude breeds stuff like MS Windows. Is that really what you want your windowing system to become? If something isn't done before long, X is going to be just like Windows: pasted and taped together and building on a merely serviceable codebase. This, I think, would be a great injustice to X. Let it die a peaceful and honorable death now, rather than a violent and hate-filled one later when it becomes so horrible, so monstrous, that the issue of replacing it is forced upon us and we throw its head on the guillotine.
Remember that at its inception X itself was merely a design framework by people who wanted to do a windowing system the right way. That X has served so well for so long is a testament to that foresight. But please, let us have the foresight to know when to design something new on that same basis, learning from what we have done. A rejection of the code does not mean a rejection of the vision or of the talent that bore that code.
However, centuries passed (of computer time, which is rapider than the Julian calendar) before this fundamental capability appeared. Microsoft Windows(tm) has done this since 1996 (or earlier?). Apple surely did it long before. The fact that it took so long led me to doubt the soundness of the X11 system design- either no one else noticed those obvious deficienies (unlikely!), or the vast complexity of the protocol prohibited the creation of new functionality without the developer first learning each little secret of the large xfree86 codebase.
We now see that the latter interpretation was somewhat correct, as this paper explains that the creation of RandR was possible only due to new software (TinyX, etc) that isolated the RandR guys from needing to deal with all of the complexities of X itself. Of course, the relentless increase in processing speed (fruit of Moore's Observation) helped too.
I hope that changes like this have "lowered the hackivation energy" enough so that XFree86 can quickly get some other useful improvements added- within a short time, it might be possible to regain a little Wow Factor over the Microsoft and Apple GUI interfaces. I'll list some improvements I'd like to see. The RandR writeup mentioned some of these, hopefully the same team is already planning work on them) Others of these things can be done already, but with awkward, unstable configurations, or through VNC. We need these capabilities in popular linux distributions, and without VNC's least-common-denominator slowness.
- Migrate a program from one Xserver to another We should be able to use a utility program or a window-manager icon to select a window to send elsewhere. This should be possible from a remote command line login as well (so that if I wander into another person's office I can show him either a single program I'm running, or my whole desktop). It should be your option whether or not the program permantently relocates to the new server (or returns when the window is dismissed). This brings up another feature,
- Run the same program on multiple X displays aka xfork. Operator's choice as to whether the remote display is read-only, or also accepts input. The default should be read-only, unless the toolkit has coded support for this feature, in which case it should default to allowing the remote to provided logically read-only input only (scroll around in the window, but not change the document).
- Lock your desktop without locking the Xserver When I run xlock, it shouldn't only allow MY password to reactivate the display- other persons should be able to walk over and login as well. I can either wait for her turn to be up, or find another Xserver and use the above features to migrate my display to my new desk. This is a natural match for X11's capabilities, but one that Microsoft got last year. *nix has to catch up quick!
- Dynamically reassign input devices Now that a user can change his resolution without restarting X, he should be able to do the same with his input devices. Boot your computer without having any mice installed, get to X, run mozilla to see a web-page on how to configure your Wacom table, and get that working, without needing to restart. (Linux does this to some extent with things like symlinks in
/dev and the /dev/input/mice devices, but it could be better).
- Resurrect the multi-headed display In ancient times, one computer would run 16 interactive sessions on terminals attached to its serial ports. Those capabilities were lost as displays became more complicated and PCs and fat clients emerged. But now, with the rise of USB peripherals and multiple active PCI video cards, commidity hardware could again support this functionality. On an Athlon 1500, I should be able to install a 2nd video card, 2 usb mice, and one usb keyboard, and get a fully independent GUI desktop. (Yes, this usage is a geek stunt- its real-life utility will be bounded by the length of a VGA cable)
- Support joysticks in X This should be an easy one, right guys?
- And many more Any ideas?
An interesting consequence of some changes like this is that users might tend to leave X11 programs running for weeks at a time, with virtual memory becoming like a form of application serialization/persistence. That could have negative implications for efficiency and design. ("Oh, I don't need to put XMMS in my startup folder, I just left it running from last year")(I've heard Microsoft's Netmeeting software does something like this. Probably just a screen scraper, but still a workable feature.)