Asus EeePC laptops sometimes lack screen resolution. Many windows do not fit on the desktop and you have to move them with a mouse to see elements that go beyond its borders. There are also problems with games. And if under Windows with the help of drivers you can expand the desktop with more physical resolution and scroll with the mouse, then under Linux you will have to work a little to get the same opportunity.
Introduction
Some time ago, X.org lost the ability to set the virtual resolution more than the physical one and move the displayed area with the mouse. Therefore, for EeePC, Daniel Fisher and David Griffith have developed a small i810pan utility. This program allows you to move the displayed area of the desktop within the established virtual resolution. It uses the SetVidMode function of the XF86Vidmode extension to move the displayed area. For its work, i810pan requires:
- - X.org 1.3 with the Vidmode extension. Its presence can be checked with the command
$ xdpyinfo | grep "VidMode"
- - RandR 1.2
Getting the program
The source code of the program can be obtained at
http://users.on.net/~dgriffith/i810pan-new.tgz . The archive contains the following files:
- about.txt - this file contains outdated commands for running the old version of the program. It is no longer necessary
- COPYING - license agreement
- i810pan - compiled version of the program. It will not work on all machines, so it's best to build the utility yourself.
- i810pan.c - source code of the program
- Makefile - makefile to simplify the build program
- README - a brief reference
- startpan.sh - a script to start the previous version of the program. It is outdated, so you should not use it.
- xrandr - utility to change the screen resolution. Delivered in case the user does not have one.
If the i810pan is used on the EeePC 701, then you can try to run the assembled version, but for the EeePC 90x you will need to assemble it yourself, since the screen resolution is hard wired in it.
Compilation
To build the program we need three additional files:
- XTest.h
- xf86vmode.h
- libXxf86vm.a
In Debian, they are located in the x11proto-xext-dev, x11proto-xf86vidmode-dev and libxxf86vm-dev packages, to install them, run the following command:
# apt-get install x11proto-xext-dev x11proto-xf86vidmode-dev libxxf86vm-dev
The physical resolution of the screen is strictly specified in the source code of the program. Since it was originally created for the EeePC 701, the owners of the EeePC 90x need to find a couple of lines in i810pan.c
// TODO: figure out real panel dimensions
panel_w = 800;
panel_h = 480;
and change them as follows:
// TODO: figure out real panel dimensions
panel_w = 1024;
panel_h = 600;
Now execute the command
$ make
or (if you decide not to use the makefile)
$ gcc -o i810pan i810pan.c -lX11 -l Xxf86vm
As a result, we got our utility. Let's start setting up the X-server.
X server setup
To use this utility we need to set the required virtual screen resolution. To do this, you have to tweak xorg.conf slightly by inserting the following lines into it:
DefaultDepth 24
SubSection "Display"
Depth 24
Virtual 2048 2048
EndSubSection
in the "Screen" section (this is also useful when connecting an external monitor).
After the changes you made, you need to restart X's (for example, by pressing Ctrl + Alt + BackSpace, after saving all documents).
Finally, you can go to launch the program.
')
Using i810pan
To start the program you need to execute two commands:
$ xrandr --fb 1280x1024
# ./i810pan
The first one sets the virtual screen resolution (in this example equal to 1280x1024), and the second one runs the utility from the current directory. Please note that to run it requires superuser rights.
Now, if you move the mouse to the edge of the screen, it will begin to move, showing the contents beyond its borders.
If we want to return everything as it was, then we need to turn off the utility and return the desktop to its original state. You can restore the desktop to its original state in two ways: set the virtual resolution equal to the physical one (for EeePC it is equal to 800x480):
$ xrandr --fb 1024x600
or simply change the video mode to the required one:
$ xrandr -s 1024x600
Each of them has its drawback. When using the first method, you must first return the screen to the upper left corner. And when you change the video mode, the monitor turns off, which is a bit annoying.
Conclusion
After putting the i810pan on and off on the hotkeys, it became very convenient to use it. The only problem I encountered was inadequate kicker behavior, which did not pay attention to the change of resolution and continued to hang in the middle of the screen. The easiest way to get around this is to move it to the left or upper edge of the screen.