New X Roadmap from Jim Gettys
A reader points to a roadmap on freedesktop.org that provides a good summary of what is out there for *nix desktops, with emphasis on X but also covering some other areas.
← Back to Stories (view on slashdot.org)
...through controlled marketing. The learning curve of Linux aside, people can be sold on the idea of Linux en masse. There are video games that take longer to learn than basic control over the X desktop.
Ah, there's probably a joke in there somewhere about crossroads and hidden treasure, but I can't find it...
Except a long list of associated technologies. For a non X-pert, the article is just a summary of what is there out there. I was expecting some sort of "this is what the future plans are."
Roadmap is a little bit misleading term.
S
I though he was working on all the termcap stuff...
Low level xlib (ie, generic level) support for X session movement from machine to machine.
This sounds a bit like screen implimented for X - you can take apps to work and back again without shutting them down, and keep apps running whilst restarting an X server. (With a bit of luck it will support echoing one app to mutliple windows as well.) It also allows for graceful app shutdown when an X server dies.
Up until now I have been using VNC to do this, but adding it directly into xlib should make it a good deal less clunky. Way to go guys.
Beep beep.
I don't mean to X-Bash- leave that for xterm and Konsole- but I, for one, am ready to welcome our YWindows overlords, whenever they get here. I like the idea of rewriting from scratch once in a while, which is why I love the idea of scrapping X and going with Y. I mean, X is good, no doubt, but it shows its age. Transparent windows, more often than not, only show the underlying wallpaper and not the interlaying windows. Often, X just locks under load. Still, it is, under normal business circumstances, stable and functional.
#define DRM chmod 000
Sigh. And what issues are these? Have you talked to any of the X11 gurus lately, such as Keith Packard. I assure you they very much do "get it" and are doing wonderful things to make an already amazing framework even better. X11 is an amazing piece of work, one that is still working well today, almost 16 years after it was introduced. With the new extensions being worked on to allow compositing and true alpha channel blending, and because of the brilliant way in which is being done, the capacities of X11 can rival or even surpass Apple's Quartz system. No more nasty hacks are needed to simulate transparency. Everything from true live matrix transforms (imagine live windows morphing in real-time, something that even OS X fakes) to 3-d capabilities (the composite manager can map the live windows onto surfaces of polygons and use opengl to render them) without fundementally breaking the X11 protocol. In other words, remote log into an old SGI box and your apps will still run and have these effects.
Dispite all the work that's being done to make X11 better, it's number one killer feature has always been network transparency. Fortunately many of the security concerns of this are being addressed; X11 will probably soon no longer default to tcp/ip connections, but rather use unix-style sockets only and have ssh connect them. (Very few people have a real good reason to not tunnel X11 through ssh anyway).
So things are looking really good for the Linux desktop and X11. I'm excited for the next year and hope to be able to contribute in some small way. We have 2 years to really develop some great features before longhorn comes out. Hopefully with things like the composite extension, we can have more capabilities sooner.
For anyone that doesn't know:
The Xouvert Project
has been set up to help develop experimental extensions to X in an open way, using Free Software.
(It's not a competing X implementation, it is assistance).
(Jim didn't mention this in his paper)
Expert in software patents or patent law? Contribute to the ESP wiki!
A very good overview of the major tools used on Linux desktops.
I've been wondering about menus in Linux/*BSD - not so much the format of menu storage, although that is an issue, but the applications themselves. We have a very large number of applications out there, but that is a problem for end users because installing them does not result in an update of the graphical menus by which they tend to access them. I think this is one of those little things that makes people think Linux isn't desktop ready.
I've been wondering - why not do something like the following:
Create a database of all applications which are or might be deployed on Linux boxes. Define a standard, detailed menu structure into which all these should fit. For example, in the case of science/mathematical applications:
(Sci/Math)
(Math)
(Symbolic)
(Numerical)
(Plotting)
(2D)
(3D)
(Electrical)
(Layout)
(Simulation)
(Chemistry)
(Drawing)
(Simulating)
(Physics)
(Mechanical)
(Electrical)
(Quantum)
(Misc)
Categories exist mainly as examples - they are not suggestions for what they would actually be. Do the same for graphical applications, editors, programming tools, etc, etc, etc. Once the structure is layed out in broad, start with the Debian archives, freshmeat, sf and savannah, and the other usual suspects and begin defining entries for each application. For each app, there will be a category or categories into which they fit - define this in the entry. To avoid duplicates, assign each category ranking a numerical value - 1 if it definitely should be there, two if it works there but someone wanting a smaller menu structure might not want it, etc. down to don't include this unless a full menu tree is specified. Allow arbitary execution techniques, so apps needing options or odd ways of launching can be accomidated.
Then, have a way to scan the system binary directories and update based on new binaries found. If the app needs options defined when starting, the entry in the menu will know that and prompt for them when adding it to the active list. Perhaps with some kind of tripwire style system monitoring the menu system could even be triggered as a new binary appears.
This system would be general and independant, because anybody could write a utility to generate a system's menus based on the database. Then, also, there can be global levels of configuration available. The user could define their own sensitivity - say "Show all Graphics programs but only show level 2 or better text editors". There can even be a "standard" menu structure that doesn't use app names at all, but only generic names and uses the highest ranked app in each category.
Does anyone know of a project like this underway? I know people have made lists of apps before but if a protocal could be defined to add things like a central database, updating based on binary appearance, user configured options as program is added to menu if desired, etc it might really cause a revolution in Linux desktop menus.
"I object to doing things that computers can do." -- Olin Shivers, lispers.org
Reading this document has given me a new respect for the X developers.
You can use a modern X server to talk to an X client on a 1990s vintage machine with no problems at all, yet X is pretty fast on modern machines, has pretty good 3D support and is being updated to add more and more eye candy all the time - without breaking backwards compatibility.
Their aims may not be the same as the ones you think they should have for your own use, but when compared against their aims they are doing very well indeed, and should be recognised for that.
Beep beep.
Back when I first got a PC capable of running X (1993?), I remember having to use Metro-X instead of XFree86. At the time I was blown away by Metro-X since: (a) it actually worked and was easy to configure -- no tweaking resource files all day, and (b) it seemed to cost money, which baffled me since I never figured anyone would pay for Linux software.
Any X "roadmap" is going to have the hungry trolls out in force, mindlessly flailing around with "arguments" that X is badly designed and should be junked at the first opportunity.
My take is this. You can do what you like to the underlying graphics subsystem. I neither know nor care what the protocol-on-the-wire says. However, you can take the network transparency from my cold and bloody fingers once I've shuffled off this mortal coil, and even then you'll have a fight on your hands. This single attribute is the reason I use it, and why it's possible to remotely administer far far more unix machines than windows ones. VNC is cool, but X is built-in. I love it.
Simon.
Physicists get Hadrons!
It isn't.
It's called "The X Window System."
Or simply "X".
"X Windows" is a misnomer.
My posts don't reflect the opinion of my employer, and my employer's opinion doesn't influence the content of my posts.
This is a joke, right ? Time to get new students if not...
Just in case...
"get off the ground" ? Like, oh to pull an example out of the air, running the only graphical user interface common to every computer platform I've ever used ? It runs on just about everything it is possible to get a framebuffer on - I've even used it on an Atari ST....
"get off the ground." HAH!
Simon.
Physicists get Hadrons!
You're basically saying "don't trust anything that isn't copylefted." I'm sure most of us use BSD and X/MIT and similarly licensed software with no qualms about it whatsoever. The problem documented on that page was with the X consortium and Open Group. If you're afraid that the XFree people or the freedesktop.org people are going to take the code and make it non-free, then you're insane. If you're OK with being insane, then checkout CVS reguarly, and if they decide to make it non-free, you can just make your own free fork, or whatever.
What the hell are Blackbox Lite and NVM?
And I find this hilarious:
Uninstall X immediately
(Score:1, Insightful)
Hah! Better find every non-GPL piece of software and uninstall it too.
All that stuff is great, but the clipboard situation still stinks. It's one of the main stumbling blocks whenever I try to get someone interested in using Linux.
Even if you truly believe in selection/middle-mouse, you have to admit that it should at least be *possible* to configure X to use a universal Alt-C/Alt-P.
This is a very interesting article. The thing that I found most interesting is that it demonstrates that the open source community is now in the driver's seat with respect to X development. That's a real change from the old days when the X consortium wouldn't give the XFree86 group the time of day.
I know alot of people are down on the XFree86 group these days, but it looks like they single handedly destroyed the old X consortium.
"Very few people have a real good reason to not tunnel X11 through ssh anyway"
ssh, like lbxproxy and similar software adds significant latency to every operation to the point that our users made us take it out as the default, add to that the fact that on a multi-user server every single little bit of CPU power available is important. Encryption and compression are CPU intensive operations even a small increase in the load on a per process basis can significantly increase the overall load and reduce the number of concurrent users you can host on a box. That adds up to more money on more servers to handle the same number of users.
Basically, we tried ssh tunneling and while it's great on a small scale, i.e. individuals, it's a disaster for performance when hosting tens or hundreds of users, i.e. Linux in a corporate desktop environment.
Government of the people, by corporate executives, for corporate profits.
If my memory serves me correctly, this was several years ago already.
And what basically happened, is the XFree86 guys did a big "fuck you very much, we'll stick with X11R6.3".
The X Consortium, realizing they were no longer in the driver's seat, had to change their licensing so that XFree86 would go along, and it would appear like the Consortium still had authority.
If anyone else recalls the actual events better, please pipe up. But the take away message is that for all intents and purposes, XFree86 is X.
And Stallman is so rabid about his ideology that he often hurts his own cause.
1) (partially linux specific) A way of getting DGA (or DGA2) to work for a non-root program. No sudo-stuff, no suid root, just a way for a completely ordinary user to use DGA without being able to crash the machine.
2) A standard way of getting an equivalent to the MSWindows Alt-tab and alt-enter for programs that run in fullscreen mode.
For example, an extension that the window manager can hook into, that allows fullscreen applications to run in an own workspace, and a xserver enforced keycombination that can bring back the window manager workspaces if the full screen application crashes.
In this scheme, you can specify to what degree a particular pixel is transparent, from 100% (entirely invisible) to 0% (entirely visible).
So alpha channel blending (or more simply, alpha blending) refers to the ability to combine two images in a way that includes transparency. From a user's standpoint, this means you can have windows that can be partially transparent, so you can partially see through them - a cool, but slightly disorienting effect. This is how it's currently done in Apple's OS X, and will be in the next version of Windows.
A matrix transformation is used to represent coordinate transformation. For example, rotations, translations (i.e.shifted along the X, Y or Z axis), or scaling (i.e.resized). Having this available to X11 means that these operations can be performed rapidly.
Of course, it helps if the graphics are in a format that allows these operation in the first place - that is, vector graphics (like Display PostScript, which Apple's OS X uses) instead of the traditional bitmaps. In a nutshell, bitmaps just specify the dots to display on the screen. You can resize them, but the result is you get an image made of big, chunky dots. With vector graphics, you specify the image as a set of points that the computer connects in a dot-to-dot manner. Since th computer draws smooth lines between the dots no matter how far apart they are, vector graphics can be resized and scaled without artifacts (i.e.weird side effects).
I, for one, welcome the spinning, scalable and alpha-blended X11 overlords.
First off, you're an idiot. The GPL in no way means that the software has to be made available free of charge. The GPL simply states that if the software is made available in binary form, the source code has to be freely available as well.
Second, I view the open source development process as much more akin to capitalism than the traditional proprietary development model is. At, say, Microsoft, you have project coordinators who say "okay, you do this, you do this, and you do this." The open-source development model is much more capitalistic in that if you find an area that can use improvement, i.e. a faster algorithm for something, you upload a diff to the CVS server and it gets integrated into the source tree. In this way, the programs are competitive not only with one another, but with themselves as well.
If I'm going to use X, I'm going to want a desktop environment (Gnome or KDE), a graphical e-mail client, web browser, text editor, office software, etc.
I don't understand people that use X like a high-resolution vc. What's the point of it again?
Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
VNC doesn't work at the individual application level; this does. That makes an enormous difference.
You can get some idea of how this will work in XEmacs (which has multi-display support and can be moved from the console). There is also the xmove server, which already implements this functionality via a proxy.
It's amazing that this has taken so long. The members of the X Consortium have really been sitting on their hands: this functionality was intended to be in X11 since pretty much the beginning.
Note that network transparency is really mostly about conventions and standards for applications running on different hosts.
VNC doesn't try to address that issue at all. And, in fact, GDI+ and Quartz can be trivially used as remote display engines, but neither their toolkits nor their applications have any clue how to behave properly.
Unfortunately, Gnome and KDE are eroding network transparency in X11. For example, they use some of their own preferences files, accessed via the file system, which means that preferences come from the remote machine, not the desktop. I think Gnome is trying to address this, I'm not sure about KDE.
Robert Stallman recently published a treatise entitled "The X Window's Trap" on his GNU.org personal homepage.
Stallman (that's Richard Stallman) in that article makes a point about the X Consortium's licensing policies. The X Consortium, in fact, took a position similar to Microsoft: "open source is good only if we can take the source and make it proprietary whenever we like". That's what Stallman disagrees with.
We can't say "Fuck Bill Gates" in one breath and then "I love X" in the other and remain morally sound and forthwith.
You are right if by "X", you mean "the X Consortium". But the X Consortium has been pretty widely disliked in the open source community for a long time for just that reason.
X11 itself, however, is an open network protocol. Stallman doesn't have any objections to open network protocols.
But the take away message is that for all intents and purposes, XFree86 is X.
No, it isn't. X is a protocol and a standard, XFree86 is an implementation. What has happened is that the developers of XFree86 have become so influential that they, rather than the X consortium, set the agenda. But the X standard is, and continues to be, implemented by many different vendors and projects. It would be a sad day when X became synonymous with the XFree86 implementation.
I think it's much more common to use *almost* all text-based apps. Every window I have open is an xterm, except firebird. I also use gimp sometimes, nicotine, and maybe a couple other gui apps once in a while. But browsing is the big one. Pretty much every browser sucks IMO, and firebird is the closest to not sucking. Text browsers are definitely not my cup of tea (nor is elinks running in framebuffer or whatever).
:) In console you're fairly limited to how you can navigate and view things.
So I make the decision that using X is a good idea. I don't understand why that means you'd automatically want to use all GUI apps along with it.
And even if I only used text-based apps, X is still nice, because I just like a windowed GUI. I like being able to move and resize windows, and manipulate them in whichever way I want. I like being able to use the keyboard for directional focus and viewport switching, and at the same time, i can lean back and surf with the mouse and flip viewports with that too by clicking on the screen edge. Stuff like that. Must be why I work on a window manager.
Sigh. It's not X Windows. Never has been, never will be. It's a window system called X, or it's X11R6, or X11, or X, or The X Window System.
-russ
Don't piss off The Angry Economist
You are talking about Colormaps, while the paper is talking about the CMS (color management) stuff added to the X standard
Ooh. Never mind.
Colormaps and Visuals were (and still are) a serious error in X. They have no place in modern graphics and make it very difficult to get a desired color.
Actually, I take that "never mind" back. You seem to be defining "modern graphics" as that subset of computer display graphics that concerns itself with making images and graphic layouts look "correct" so that what you see on the screen is what you'll get on the page when it's printed (or TV or theatre screen when it's rendered to media for those).
Like I said, that's a subset of what people use graphic computer displays for. Aside from the pretty picture industry, the computer display is a communication tool to present information in the computer to a human user in the most rapidly undestandable manner. An air traffic controller doesn't want photorealistic pictures of aircraft flitting over the screen, that's too distracting, he just wants a symbolic representation of the specific information he's interested in. A GIS analyst doesn't care if the mixed raster and vector image he's looking at matches what the ground outside really looks like, or even what a printed copy would look like (and while a cartographer might care about the latter, he's only going to want to use a small color palette). The GIS guy does care if the 4,327 features his query selected are going to highlight quickly, and whether or not he'll be able to distinguish them from the various other colored features on the display (this is the advantage of blinking).
Colormaps were a serious detriment to advancement of graphics.
Your particular branch of graphics, perhaps, but not that of countless others. Changing a colormap value can be simulated by redrawing all the relevant pixels in a different color, but at what a senseless waste of CPU cycles and memory bandwidth.
Sun was forced to add several bits to each pixel of their full-color display just to store "which color map"
A nicer approach than just letting the windows with a different color map look strange, but not the only way they could have done it. But bits are cheap. Another megabyte of RAM? BFD.
most programs that required colormaps are gone, mostly due to the fact that XFree86 did not support them.
Not gone, not by a long shot. Just not ported to Linux, at least not without requiring a commercial X11 package.
-- Alastair
YesTool, a GUI interface to the classic powerful Unix utility " yes ", written by the great hacker and University of Maryland alumni David MacKenzie!
YesTool will be totally user configable, just like the permissive command-line " yes ". It will be written in object oriented reusable code using parameterizable C++ templates, so you can easily subclass it to make your own tools like NoTool, MaybeTool and ExecutiveDecisionMakerTool. It will support drag-and-drop in single-answer or streaming mode. Also an emacs support package is in the works, with a special command called "psychoanalyze-yes"! And of course it will support gestures, and video input so you can nod and shake your head.
For more information on " yes ", type "man yes". If you don't have enough men in your life, type "yes man".
I've written up a design spec in Star Open Office, made some concept screen mock-ups in Gimp, hacked up a prototype in GTK-Perl, but I still just can't seem to get drag-and-drop to work on X-Windows. I'm going to put the prototype up on SourceForge so everyone else can contribute, as soon as I can figure out how to get the damn autoconf file to work.
-Don
Take a look and feel free: http://www.PieMenu.com