Заставим клавишу Switch Display на ноутбуке работать

Заставим клавишу Switch Display на ноутбуке работать

Заставим клавишу Switch Display на ноутбуке работать по-своему!

Вам нравится как работает gnome-display-properties (это тот, который «Система — Параметры — Мониторы») и клавиша переключения монитора на ноутбуке? Да? Тогда можете проходить мимо, топик не для вас :)

Самое большое неудобство этого аплета — невозможность вручную настроить порядок переключения режимов. current configuration — mirror — extended desktop — laptop only — external only — и снова current configuration. Не слишком удобно, не правда ли. Вот эту задачу мы и будем решать.

— заставить клавишу Switch Display переключать всего два режима:

1) экран ноутбука включен, внешний монитор отключен

2) экран ноутбука отключен, внешний монитор включен

— сделать так, чтобы ноутбук не уходил в режим ожидания по захлопыванию крышки, если включен внешний экран

1. Для начала определимся с переключением мониторов. Делать мы это будем с помощью консольной утилиты xrandr.

— включаем внешний монитор и отключаем внутренний:

xrandr —output VGA —auto xrandr —output LVDS —off

— выключаем внешний и включаем экран ноутбука:

xrandr —output LVDS —auto xrandr —output VGA —off

Обратите внимание что имена VGA и LVDS могут отличатся от системы к системе. Это могут быть: LVDS/VGA, LVDS1/VGA1, LVDS-1/VGA-1 и т.д. Чтобы посмотреть какие имена используются у вас в системе просто наберите xrandr без параметров.

2. Следующим шагом нам нужно повесить эти команды на клавишу переключения мониторов.

В первую очередь мы отключим текущее поведение данной клавиши, которое перехватывается плагином xrandr из gnome-settings-daemon:

gconftool —set /apps/gnome_settings_daemon/plugins/xrandr/active —type bool false

Примечание. тоже самое можно сделать используя графический интерфейс с помощью gconf-editor

Затем создаём новую привязку к клавише XF86Display:

gconftool —set /desktop/gnome/keybindings/switch-display/name —type string switch-display gconftool —set /desktop/gnome/keybindings/switch-display/binding —type string XF86Display gconftool —set /desktop/gnome/keybindings/switch-display/action —type string switch-display.sh

Примечание. тоже самое можно сделать используя графический интерфейс с помощью gnome-keybinding-properties или gconf-editor

Теперь эта клавиша должна запускать switch-display.sh, но ничего не происходит, т.к. скрипта с таким названием пока нет.

3. Создаём скрипт переключения.

Используя тот же xrandr мы будем определять включен ли экран ноутбука и в зависимости от результата выполнять переключение. Здесь же мы будем отключать и включать ждущий режим.

Необходимо создать файл с текстом данного скрипта, назвать его switch-display.sh, поместить в директорию

/bin (если директории

/bin нет, нужно её создать) и дать права на выполнение.

4. Если директории

/bin у вас раньше не было, то перед тем как всё заработает вам необходимо будет завершить сеанс и войти в систему снова.

5. Вот теперь всё готово, можете проверять!

Примечания

— Момет первый — все настройки мы делали для текущего пользователя, это значит, что такое переключение не будет работать как у других пользоватей системы, так и на экране входа в систему. Кроме того, так как мы не используем в данном случае ACPI (как, собственно, это делает и стандартный плагин xrandr), на заблокированном экране клавиша переключения так же работать не будет.

— Момент второй — чтобы вернуть стандартное поведение клавиши необходимо выполнить следующие команды:

gconftool —unset /desktop/gnome/keybindings/switch-display/binding gconftool —unset /desktop/gnome/keybindings/switch-display/action gconftool —unset /desktop/gnome/keybindings/switch-display/name gconftool —unset /apps/gnome_settings_daemon/plugins/xrandr/active

Всё вышеописанное проверено в Ubuntu 10.04 и Ubuntu 11.04.

Заставим клавишу Switch Display на ноутбуке работать