У ноутбуков Asus EeePC иногда не хватает разрешения экрана. Многие окна не помещаются на рабочем столе и их приходится перемещать мышкой что бы увидеть элементы, выходящие за его границы. Так же возникают проблемы с играми. И если под Windows с помощью драйверов можно расширить рабочий стол больше физического разрешения и скроллить его с помощью мышки, то в Linux для того что бы получить такую же возможность придется немного потрудится.
Некоторое время назад X.org потерял возможность устанавливать виртуальное разрешение больше чем физическое и перемещать отображаемую область с помощью мышки. Поэтому для EeePC Дэниел Фишер и Дэвид Гриффит разработали небольшую утилиту i810pan. Эта программа позволяет перемещать отображаемую область рабочего стола в пределах установленного виртуального разрешения. Она использует функцию SetVidMode расширения XF86Vidmode для перемещения отображаемой области. Для своей работы i810pan требует:
Исходные тексты программы можно получить по адресу http://users.on.net/~dgriffith/i810pan-new.tgz. В архиве содержатся следующие файлы:
Для сборки программы нам потребуется три дополнительных файла:
Физическое разрешение экрана жестко задано в исходных текстах программы. Так как она изначально создавалась для EeePC 701, то владельцам EeePC 90x надо найти пару строк в i810pan.c
и изменить их следующим образом:
Теперь выполним команду
или (если решили не использовать make-файл)
В результате мы получили нашу утилиту. Приступим к настройке X-сервера.
Что бы использовать эту утилиту нам надо установить требуемое виртуальное разрешение экрана. Для этого придется слегка подправить xorg.conf, вставив в него следующие строки:
в секцию «Screen» (это также пригодится при подключении внешнего монитора).
После внесенных изменений необходимо перезапустить иксы (например, нажав Ctrl+Alt+BackSpace, предварительно сохранив все документы).
Наконец-то можно перейти запуску программы.
Что бы запустить программу надо выполнить две комманды:
Первая устанавливает виртуальное разрешение экрана (в данном примере равное 1280x1024), а вторая запускает утилиту из текущей директории. Обратите внимание что для ее запуска требуются права суперпользователя.
Теперь, если подвести мышку к краю экрана, он начнет перемещаться, показывая содержимое за его границами.
Если мы захотим вернуть все как было, то нам надо выключить утилиту и вернуть рабочий стол в исходное состояние. Вернуть рабочий стол в исходное состояние можно двумя способами — установить виртуальное разрешение равное физическому (для EeePC оно равно 800x480):
или просто сменить видеорежим на требуемый:
У каждого из них есть свой недостаток. При использовании первого способа надо сначала вернуть экран в левый верхний угол. А при смене видеорежима происходит отключение монитора что немного раздражает.
После того как поставил включение и отключение i810pan на горячие клавиши, использовать его стало очень удобно. Единственная проблема с которой я столкнулся — это неадекватное поведение kicker'a, который не обращал внимание на смену разрешения и продолжал висеть по середине экрана. Самый простой способ обойти это — перенести его на левую или верхнюю границу экрана.
Введение
Некоторое время назад X.org потерял возможность устанавливать виртуальное разрешение больше чем физическое и перемещать отображаемую область с помощью мышки. Поэтому для EeePC Дэниел Фишер и Дэвид Гриффит разработали небольшую утилиту i810pan. Эта программа позволяет перемещать отображаемую область рабочего стола в пределах установленного виртуального разрешения. Она использует функцию SetVidMode расширения XF86Vidmode для перемещения отображаемой области. Для своей работы i810pan требует:
- — X.org 1.3 с расширением Vidmode Его наличие можно проверить коммандой
$ xdpyinfo | grep "VidMode"
- — RandR 1.2
Получение программы
Исходные тексты программы можно получить по адресу http://users.on.net/~dgriffith/i810pan-new.tgz. В архиве содержатся следующие файлы:
- about.txt — в этом файле указаны устаревшие команды для запуска старой версии программы. В нем теперь нет необходимости
- COPYING — лицензионное соглашение
- i810pan — скомпилированная версия программы. Будет работать не на всех машинах, поэтому лучше собрать утилиту самому
- i810pan.c — исходные тексты программы
- Makefile — make-файл для упрощения сборки программы
- README — краткая справка
- startpan.sh — скрипт для запуска предыдущей версии программы. Он устарел, поэтому им пользоваться не стоит
- xrandr — утилита для изменения разрешения экрана. Поставляется на тот случай, если у пользователя ее нет
Компиляция
Для сборки программы нам потребуется три дополнительных файла:
- XTest.h
- xf86vmode.h
- libXxf86vm.a
# apt-get install x11proto-xext-dev x11proto-xf86vidmode-dev libxxf86vm-dev
Физическое разрешение экрана жестко задано в исходных текстах программы. Так как она изначально создавалась для EeePC 701, то владельцам EeePC 90x надо найти пару строк в i810pan.c
// TODO: figure out real panel dimensions
panel_w = 800;
panel_h = 480;
и изменить их следующим образом:
// TODO: figure out real panel dimensions
panel_w = 1024;
panel_h = 600;
Теперь выполним команду
$ make
или (если решили не использовать make-файл)
$ gcc -o i810pan i810pan.c -lX11 -l Xxf86vm
В результате мы получили нашу утилиту. Приступим к настройке X-сервера.
Настройка X-сервера
Что бы использовать эту утилиту нам надо установить требуемое виртуальное разрешение экрана. Для этого придется слегка подправить xorg.conf, вставив в него следующие строки:
DefaultDepth 24
SubSection "Display"
Depth 24
Virtual 2048 2048
EndSubSection
в секцию «Screen» (это также пригодится при подключении внешнего монитора).
После внесенных изменений необходимо перезапустить иксы (например, нажав Ctrl+Alt+BackSpace, предварительно сохранив все документы).
Наконец-то можно перейти запуску программы.
Использование i810pan
Что бы запустить программу надо выполнить две комманды:
$ xrandr --fb 1280x1024
# ./i810pan
Первая устанавливает виртуальное разрешение экрана (в данном примере равное 1280x1024), а вторая запускает утилиту из текущей директории. Обратите внимание что для ее запуска требуются права суперпользователя.
Теперь, если подвести мышку к краю экрана, он начнет перемещаться, показывая содержимое за его границами.
Если мы захотим вернуть все как было, то нам надо выключить утилиту и вернуть рабочий стол в исходное состояние. Вернуть рабочий стол в исходное состояние можно двумя способами — установить виртуальное разрешение равное физическому (для EeePC оно равно 800x480):
$ xrandr --fb 1024x600
или просто сменить видеорежим на требуемый:
$ xrandr -s 1024x600
У каждого из них есть свой недостаток. При использовании первого способа надо сначала вернуть экран в левый верхний угол. А при смене видеорежима происходит отключение монитора что немного раздражает.
Заключение
После того как поставил включение и отключение i810pan на горячие клавиши, использовать его стало очень удобно. Единственная проблема с которой я столкнулся — это неадекватное поведение kicker'a, который не обращал внимание на смену разрешения и продолжал висеть по середине экрана. Самый простой способ обойти это — перенести его на левую или верхнюю границу экрана.