Spanning Virtual Desktops for Visually Impaired Users
Linux - DesktopThis forum is for the discussion of all Linux Software used in a desktop context.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
Spanning Virtual Desktops for Visually Impaired Users
I am currently trying to impress my girlfriend (who has a moderate vision impairment), with the power and flexibility of Linux. She doesn't like using those Lupe / magnifier style programs because they get in the way and are awquard to use. Her main needs are for a word processor and a web browser. She prefers to use the application by itself, and set the text to large.
The problem with this idea is that the layout of a normal page is often compromised with all of the text at greater than 15 points. I hit on the idea of putting the multi-desktop power of Linux to use. If only I could find a window manager that allowed an application window to span multiple desktops.
After playing around I found that Enlightenment would do this quite easily. Unfortunately there is no setting in enlightenment (that I can find) which allows one to scroll the view-port gradually. What I mean is, access to virtual desktops is limited to discrete fixed areas. What we really need, is one big desktop that can be scrolled across smoothly, allowing the view-port to come to rest over any chosen portion. This way, you can spread your word processor, say, out over the equivalent of nine desk top areas and scroll around it freely.
I am now using E-KDE which I assume is the Enlightenment window manager set up to serve the K Desktop Environment. I am hopping this will still permit use of the KDE DCOP server (haven't checked yet), because I like to write dialogs in Kommander.
Another problem I am having is to control and remember the specific location and size of the windows when they are auto opened. I hope somebody will be able to tell me how to launch an application, via some window manager component, that can specify desktop geometry.
I am thinking that with little modification, Linux and E-KDE could become a very powerful OS alternative for the visually impaired. Any advice or thoughts you can provide are greatfully appreciated.
I don't think that your issue is really relevant to window managers at all, just use a viewport setting in your xorg.conf, indeed this *may* already be happening. if i'm right, you want one normal sized desktop to exist, but to be zommed in on, double or triple size. you can then push the mouse in any direction on the edge of the screen and move the desktop area in that direction? that's what will happen by default if your viewport is different from your screen size, and if your xorg.conf is already configured for different sizes of screen, then if you hit Ctrl+Alt+Plus you'll cycle through them. so if you have a 1600x1200 screen and the second mode in xorg.conf is 640x480 then you'll see about 1/4 of the desktop at any one time.
Thanks for the advice Chris. I once knew about switching video modes with Ctrl+Alt+Plus. Forgot about that, so thanks.
Originally Posted by acid_kewpie
I don't think that your issue is really relevant to window managers at all, just use a viewport setting in your xorg.conf, indeed this *may* already be happening.
There was no viewport setting in my xorg.conf, so I checked out the man page for it and found this:
Virtual xdim ydim
This optional entry specifies the virtual screen resolution to
be used. xdim must be a multiple of either 8 or 16 for most
drivers, and a multiple of 32 when running in monochrome mode.
The given value will be rounded down if this is not the case.
Video modes which are too large for the specified virtual size
will be rejected. If this entry is not present, the virtual
screen resolution will be set to accommodate all the valid video
modes given in the Modes entry. Some drivers/hardware combina‐
tions do not support virtual screens. Refer to the appropriate
driver-specific documentation for details.
ViewPort x0 y0
This optional entry sets the upper left corner of the initial
display. This is only relevant when the virtual screen resolu‐
tion is different from the resolution of the initial video mode.
If this entry is not given, then the initial display will be
centered in the virtual display area.
It seems from this, that the 'virtual' entry sets the virtual resolution, while 'viewport' actually sets the initial position of the viewport on the virtual desktop.
Originally Posted by acid_kewpie
if i'm right, you want one normal sized desktop to exist, but to be zommed in on, double or triple size. you can then push the mouse in any direction on the edge of the screen and move the desktop area in that direction?
Not deliberately trying to be difficult or fussy of course, but that is not quite it. I would still like two or three extra desktops as you would normally get in any window manager. You are right as to the effect I want to achieve though. When you zoom with Ctrl+Alt+Plus you can pan around the current desktop. The view is a magnified section of a larger desktop which pans with the mouse at the edge of the screen. OK, I have seen this before, but it never seems to go more than about double magnification, I would like to achieve at least three or four times magnification.
The reason I went to try other window managers is because I have seen some of them provide like 24 virtual desktops, so I assume they are not just relying on video memory to do this; that some video pages must be swapped out to conventional memory. I wanted to find one which allowed the application to be spread across multiple virtual desktops.
In Enlightenment, you have numerous virtual desktops, within a large, contiguous desktop area. You also have the option of extra desktops. That is to say, that there are multiple 'virtual desktops', within multiple 'actual desktops'. I find this quite amazing that this WM can provide such powerful video resourcing and screen real-estate.
While the virtual desktops of enlightenment are contegious and spannable, the viewport is still stuck to discrete virtual desktops, so your viewport must jump completely from one to the other. This is a pity otherwise it would be a perfect solution. Please correct me if I am wrong, but I have been under the impression that any extra magnification you get out of the Ctrl+Alt+Plus zooming trick, is at the entire discresion of your video hardware and if this is modest to low-end, I am guessing you won't get much more than 2X zoom say 640 X 480 aperture over a 1280 X 960 desktop.
Originally Posted by acid_kewpie
that's what will happen by default if your viewport is different from your screen size, and if your xorg.conf is already configured for different sizes of screen, then if you hit Ctrl+Alt+Plus you'll cycle through them. so if you have a 1600x1200 screen and the second mode in xorg.conf is 640x480 then you'll see about 1/4 of the desktop at any one time.
That would be really nice to get that much real estate that way, so I have begun to experiment. I edited the xorg.conf file to include:
virtual 640 480
viewport 100 150
Just mucking about with a guess for now, but I think I should have gone the other way with the virtual, say, 1920 x 1440. The problem is when I make a change in xorg.conf like this, it is system wide, so when I log in as myself, I also have the modified settings to contend with. My girlfriend has a separate account and her screen resolution (640 X 480) is set somewhere else (you know I don't actually recall how I did this?), so she can login and load the E-KDE window manager and have all those contigious, spanning desktops, while I can log into KDE with the normal KWM, and have my nice high res.
Even if I could get 4X zoom just with the Ctrl+Alt+Plus trick after setting my virtual resolution, it doesn't actually compare with the Enlightenment V-desktops. As it is, I have only one desktop and pager, but this is divided into three rows and four columns. I set Open Orifice Writer, sprawled across the three by three square, on the right hand side, Zoom the document itself to 200% and in the KDE settings, I set a minimum font size of higher than 15. Having the application spread over the 3 X 3 square means that it is actually 9 times larger. I then still have three V-desktops to play with and can open Firefox on one of them.
With a video resolution of 480 X 650, this very pleasing to my girlfriends limited eyes. Despite all this, the font inside the application is normal, as is the layout etc. All the menus and title bars also, have nice big letters. So it is all great this way, except that the screen must be completely inside one V-desktop or the other.
Do you still think I am going about it the wrong way? It would be nice to work out more than a kludge. A desktop that worked as enlightenment does, but with arbitrary panning by degrees, would I believe, be a boon to visually impaired people everywhere. That, plus the idea to have the viewport follow an insertion point / cursor, a la' follow me as I type, right across the virtual desktops would be great. I am still trying to work out how to specify the geometry of an auto-opening application, as sizing a window across multiple V-desktops sux.
I think a special visual impairment Ubuntu distro would be great, with E-KDE as the default WM / DTE combo, default to low res (640 X 480), default icons for other visual accessibility apps like Ksayit etc etc...
I have heard about other distros for visually impaired people, but they all seem targeted at the profoundly blind, or very nearly so. Rather than optimize and enhance the GUI, they seem to supplant it with non-graphical alternatives like Braille or text to speech. These are nice, but some partially sighted people go the other way, and want to make the most of what vision they have. I am still amassed at the versatility and power of Linux. Just to have gotten this close, without writing a single line of code, Huh... Eat that Mr Gates!!!
PS: The alternative my girlfriend is considering, is to use her old Winblows box (poor thing she doesn't know any better) and buy another piece of proprietary software called zoomtext. This is still a lupe / magnifier, but it is the least invasive and most intuitive. At AU$900, though, it aught to write her work as well as magnify it and make her breakfast in bed too. 'If there isn't an open source alternative' I said, 'I will eat my hat' I would rather pay a professional programmer $1000 for modifiying some existing FOSS code and give the result back to the whole community.
in myself i don't have any knowledge of specific accessibility tools, and i'm just going on what i know already happens. the management in enlightenment isn't anything to do with hardware capabilities at all, there's nothing impressive in it's abilities in that respect, but certainly if it's useful to you then that's great. I don't really see how you would natually flow bewtween multiple desktops without descrete jumps, as without that they wouldn't be seperate desktops in the first place. Terms like magnification are a bit misleading here, as with the viewport stuff there is no actual magnification as far as the software is concerned. so you'd need to look at how big you want the end result, and how much overall real estate you want, and sure you can then pull a multiplication factor out the back if you want but it's pretty nominal. just work out how many pixels you want on the screen and seperately pick a viewport size. i'm not sure if either of these factors really have any limitations as you get bigger here, only thing is having a video mode low enough, which should be a given. the bigger the workspace the, more in memory, but that won't affect the graphics card itself.
the management in enlightenment isn't anything to do with hardware capabilities at all, there's nothing impressive in it's abilities in that respect, but certainly if it's useful to you then that's great.
I think we may be talking at cross purposes here. I wasn't trying to imply that there is anything special about enlightenments hardware capabilities, only that I assume it must use more than just video memory to produce that much screen 'real estate'. But yes, the design which allows for application windows to be spanned across multiple adjacent desktops, is particularly useful in the context of what I am trying to achieve. On the other hand, to achieve the results that enlightenment has, I suspect there has been some quite clever video resourcing and dynamic memory allocation in its code.
Originally Posted by acid_kewpie
I don't really see how you would natually flow bewtween multiple desktops without descrete jumps, as without that they wouldn't be seperate desktops in the first place.
Quite true. I am not looking for extra desktops though, but rather, extra screen real estate. In one sense, the enlightenment virtual desktops are not separate desktops at all; That is, in the sense you can span application windows across them. If it were not for the discrete (full screen) jumps, then it most certainly would be just one big scrollable desktop. Perhaps I didn't make myself clear, but that is what I want to achieve, albeit with some extra desktop space to open one or two other applications, in the more conventional full-screen (but not more than full-screen) manner. From my original post:
Originally Posted by Scepticus
What we really need, is one big desktop that can be scrolled across smoothly, allowing the view-port to come to rest over any chosen portion.
Unlike other window managers though, enlightenment still allows you to have completely separate desktops, each of them having numerous virtual desktops within them. From what you have said Chris, I am not so sure you understand this. I can't help wondering if you have actually installed and played with Enlightenment, or perhaps you may be confusing it with one of the other window managers.
Originally Posted by acid_kewpie
Terms like magnification are a bit misleading here, as with the viewport stuff there is no actual magnification as far as the software is concerned.
I really do hate to sound disagreeable Chris, but I just don't feel privy to your confusion. My idea of magnification (as a noun), is simply 'the apparent size of something', in this case on the screen. There are several methods of increasing this, all involving software. When you say "there is no actual magnification as far as the software is concerned", I get the feeling you are talking specifically about application software. In this case I would point out that in Open Office, I have used the applications zoom level, to increase the magnification of the document itself. I can also use an applications configuration settings wherever possible, to increase the magnification (relative size) of the toolbar buttons widgets and such like. In the window manager and desktop environment software, there may also be configurations to change the values of scroll bar size, title bar and frame thickness etc etc...
In the case of my project, I have chosen a theme with chunkier widget / window proportions, selected a giant pointer and insertion bar and set all the system fonts to 16 pt instead of 10 pt, and used a low resolution video mode. The effect this has, is to effectively magnify all of the graphical elements. If I were to do all this, and leave Open Office maximized on the area of one desktop, I would have a crowded mess and only a partial view of my menus and toolbars. Furthermore, only a small portion of the document would be visible in the editing area, and it would be very hard to work with.
My approach so far, is to use the Enlightenment WM, so that I can take that crowded application and spread it out over nine desktops and by so doing, I am effectively "magnifying" the application area also. The consequence of this, is that everything returns to a fair measure of proportionality, while the document is formated with the regular size of font and all other document elements remain proportional.
Having said that, I think I know what you are saying. If I weren't adjusting the "magnification" of everything (applications, desktop elements etc.), using their intrinsic properties, then the magnification of the application and GUI, by setting the initial resolution etc., would be seamless and incidental, from the GUI POV. This all seems to be hearkening back to the assumption, that the only/best/correct way to create my big scrollable desktop, is by manipulating the video mode and virtual settings in xorg.conf. There are so far, three problems with this approach.
System Wide Result
As I have previously mentioned. The xorg.conf seems to be effective at changing the video resolution, regardless of who is logging on. As I am creating a separate account for my girlfriend, for whom I need to select a low screen resolution, while I require a high resolution, I do not wish to implement this with a system wide setting.
Limits To Size
I have also mentioned that I have not seen a virtual-display set in xorg.conf, do anything like 4X screen real estate, even on the lowest resolution video modes. I have always understood that this trade off is set by the available memory of the video hardware. You have gone into this below, but you seem to contradict this, and don't seem to understand that appropriate software (such as a window manager), can overcome this limitation, by swapping out data in video memory, for data in ram, swap partition or disk cache.
Results Over Ridden By Window Manager
In any case, it appears to me, that xorg.conf sets up the display as we have configured it, and this may remain in force only up until the login manager passes control over to the Window Manager. I think Enlightenment allowed xorg.conf to determine the resolution, and I have had (in one experiment at least) a scrollable viewport in the X-login screen, but when entering E-Gnome and/or E-KDE, the resolution & viewport settings changed. When I set up my girlfriends account, I chose her resolution using a GUI config tool, and as a result her video settings are 640 X 480 after she has logged in. The obvious conclusion is that the window manager has a separate config that overrides the display settings in xorg.conf. Now perhaps I can disable the WM settings and let xorg.conf remain in charge, but that just gets us back to the first problem, we will both have the same settings.
Sorry Chris, I just can't understand why we would wrest control from the config files and software of the GUI and try implementing a modification at such a low level. There is, we should suppose, a good reason why the WM has it's own settings, and I would suggest that this, probably has a lot to do with why it can render so much screen real estate.
Originally Posted by acid_kewpie
so you'd need to look at how big you want the end result, and how much overall real estate you want, and sure you can then pull a multiplication factor out the back if you want but it's pretty nominal.
I think you might just have a few things ass backward here. This sentence apart from sounding very confusing, sounds like the approach you might take, if you were trying to decide what size video card you were going to buy. i.e. Ask yourself what resolution etc. you want first. "...then pull a multiplication factor out of the back..." Out of the back of what? "...but it's pretty nominal." What's pretty nominal?
I have my desired resolution 640 X 480, now what? "just work out how many pixels you want on the screen..." Well that's the same as choosing a resolution and colour depth isn't it? We'll say 32 bit colour. I can't tell you how many pixels that is off hand, but It requires a minimum 1 Meg of video memory. "...and seperately pick a viewport size." Are you serious? The viewport is just the visible area of the virtual display. You don't directly set the size of that. You set the initial resolution and the virtual resolution. As I pointed out from the documentation, the viewport setting, is to determine the position of the initial display.
Originally Posted by acid_kewpie
i'm not sure if either of these factors really have any limitations as you get bigger here, only thing is having a video mode low enough, which should be a given.
OF COURSE they do!!! The limitation is how much memory your video card has on it. Besides which; The trade off you have illustrated, consists of: "how many pixels you want on the screen" (the initial resolution) vs "a viewport size" (consequence of the initial resolution), which rest assured (by you) should be unlimited, provided you select a video mode (the initial resolution) which is low enough. No second guesses as to why that "should be a given", tautologies usually are.
Originally Posted by acid_kewpie
the bigger the workspace the, more in memory, but that won't affect the graphics card itself.
Are you so spoiled by specifications, that you have never met the limits of your video hardware... and, do you mean to tell me that you are unaware that a video card has it's own memory? The method you advocate, of implementing the scrolling viewport effect, is entirely hardware dependent, specifically on the video card and even more specifically on its memory. Furthermore, this approach provides no way to offset the compromise between screen resolution, virtual resolution and available video memory.
The whole point of using the window manager software is that it is clever enough to dynamically swap the video memory out for RAM or disk cache. Apart from that, I intend to use a desktop GUI anyway (however my virtual workspace may be implemented) so, wouldn't it make sense to implement the virtual desktop, within the GUI? The fact is, the virtual desktop is already implemented for me, albeit that it has one annoying restriction, vis the discrete whole-screen movement. My reasoning is that it makes sense to start with an existing virtual desktop and try to configure, modify or workaround its intrinsic limitations, under the premise that it may be a simple thing to fix. This may as yet, sill be true. I think there is something to be said, for implementing modifications at the highest level of abstraction possible, as this way the result tends to be more portable and backwardly compatible.
I came to LQ hoping that somebody might be able to advise me how to configure (or modify) Enlightenment to eliminate the whole screen jumps between virtual desktops and/or how to set the geometry of application windows so that they will automatically open in a specific place within the virtual desktops. The diversion into experimenting with xorg.conf settings has been a waste of time. Despite your technical confidence and willingness to help Chris, I think you may be inclined to send people on wild goose chases.
I will re-post my question about application geometry, as a separate post as it seems to have gone unnoticed. As for the 'whole screen jumps' in Enlightenment, it seems that this is hardwired in code. I have submitted a feature request to the Enlightenment developers, and they have responded that they have listed it "as [an] enhancement which may get added at a later date." Here's hopping.
I am happy to announce the release of Vibuntu 1.0 (aka Vinux) a remaster of the Intrepid Ibex live CD customised to the needs of blind and partially sighted users! It is designed to boot from a live cd or USB memory stick, log you in automatically and then start up the Orca screen-reader. Full-screen magnification can then be activated with a simple keystroke.
The type of magnification on offer depends upon whether you downloaded the 2D or 3D version of Vibuntu. The 2D version only offers basic options but will run on any computer, while the 3D version offers advanced features but requires a powerful 3D graphics card. If you are in any doubt as to which version is best for you or do not require magnification at all I recommend you download the safer 2D version. Vibuntu is available from the following URL's:
Inside the zip file you will find iso image and a text file containing the md5sum of the iso image (not the zip file).
You can use Vibuntu as a live CD, a portable operating system on a USB memory stick* or you can install it to your hard drive either alongside or as a replacement for Windows. In order to fit all of the accessibility settings on the CD I have had to remove some applications including: The GIMP graphical image manipulation program, the F-Spot photo-manager and the Ekiga voice over IP package. You can easily reinstall these and many more open-source applications if you choose to install it on your hard-drive. I used the RemasterSys package to create Vibuntu and I have included this package on the CD incase you want to make your own customised live CD. N.B. The default username and password is 'orca', and this will be retained even if you install it to your hard-drive, no matter what you type in during the installation process.
I would of course appreciate any feedback on Vibuntu. What do you think of the name? Is it corny enough? Would Vinux be better? Post any feedback good or bad on this thread.
P.S. What follows is a list of keystrokes you can use to control the screen-reader and magnification software. I will only provide a few basic keystrokes for Orca to get you started as they are all listed in the preferences window and are unchanged from the default settings. I have provided an exaustive list of the magnification keystrokes as I have customised them to make them easier to remember!
Open Preferences Window: insert+space
Open Main Menu: alt+F1
Move Through Menu/Text: up, down, left and right
Move Through Form: tab, shift+tab
Toggle Voice On/Off: insert+s
Quit Orca: insert+q
At the moment the Orca Screen-Reader does not support the Ubuntu Installer GUI (Ubiquity). Therefore for the time being to install Vibuntu to the hard-drive of your computer you will either need sighted assistance or you can try the following step by step instructions. N.B. These instructions will wipe your hard-drive and install Vibuntu with the English language, USA keyboard settings and the New York time zone.
1. Press Alt+F2 to open the Run dialogue
2. Type in the password 'orca' then press Enter
2. Type 'ubiquity' then press Enter
3. Press Alt+F to accept the default language (English)
4. Press Alt+F again to accept the default time zone (New York)
5. Press Alt+F again to accept the default keyboard layout (USA)
6. Press Down twice then Alt+F to partition the whole disk
7. Type in your name then press Tab
8. Type in your username the press Tab
9. Type in your password then press Tab
10. Type in your password again and then press Tab
11. Type in the name of the computer then press Tab
12. Press space bar to select automatic login then press Alt+F
13. Press enter to start the installation.
N.B. You can press Alt+B to go back a step at any time, or Alt+F4 to abandon the process.
The installation will take 10-20 minutes to complete
When the CD and Hard-Drive has stopped spinning press Enter to restart the computer
When the CD ejects remove it from the drive and press Enter again to restart the computer.
If you have any problems please port in the Vibuntu thread on the Ubuntu Forums.