Мне часто приходится переносить свой ноутбук с одного рабочего места на другое. Когда я это делаю, Ubuntu реагирует на два события, изменяя настройки монитора:
- Снятие / подключение кабеля VGA
- Закрытие / открытие крышки ноутбука
Хотя отсоединение кабеля VGA дает мне то, что мне нужно (один экран, самое высокое собственное разрешение на внешнем экране, если он подключен; в противном случае самое высокое разрешение на ноутбуке), реакция закрытой / открытой крышки ноутбука не так хороша.
Каждый раз, когда я закрываю или открываю крышку, Ubuntu перенастраивает настройки монитора. Когда я закрываю крышку сейчас ... экран становится черным на несколько секунд и переключается на клонирование с отключенным экраном моего ноутбука. Повторное открытие приводит ... ненадолго к черному экрану, а затем внешний монитор используется в качестве расширения рабочего стола.
Обновление: В последнее время все немного изменилось, теперь поведение более предсказуемо. Закрытие крышки переключается на один дисплей, открытие на двойной экран (не клон). Мой вопрос все еще точен: см. Ниже.
Ubuntu слишком много думает. Мой первый и главный вопрос: есть ли способ позволить Ubuntu игнорировать события закрытия крышки?
В идеале (или когда нет способа решить вышеуказанный вопрос), я бы хотел изменить способ работы с реконфигурацией экрана. Почему Ubuntu переключает конфигурацию экрана между внешним, клонированным и одиночным дисплеем? Разве я не могу просто настроить его так, чтобы он всегда использовал внешний монитор, если он присутствует, в одноэкранном режиме?
Обратите внимание, что подобные вопросы задавались ранее (особенно этот ), но они были закрыты, возможно, неправильно.
Любые идеи очень приветствуются, я не возражаю немного поиграть, чтобы посмотреть, работает ли что-нибудь.
Ответы:
События Lid запускаются
lidbtn
файлом/etc/acpi/events/
, который содержит две активные строки:Вы можете игнорировать события открытия / закрытия крышки, закомментировав вторую строку с помощью a,
#
а затем перезагрузившись.Вы можете посмотреть и попробовать изменить файл
/etc/acpi/lid.sh
и функции / команды, на которые он ссылается.НО (БОЛЬШАЯ ПРОСМОТР): Если BIOS вашего ноутбука использует закрывающую / открывающуюся крышку для включения / выключения портов внутреннего / внешнего видеовыхода, это выходит за пределы возможностей обработчика событий OS ACPI.
источник
lid.sh
файл предполагает , что ручки переключения с экрана (команды типаxscreensaver-command -unthrottle
,xscreensaver-command -deactivate
,/usr/share/acpi-support/screenblank
иxset dpms force on
). Ничего не упоминается о переключении или обнаружении экранов (я ожидалxrandr
или что-то для этого). Есть еще советы?lidbtn
от/etc/acpi/events
куда - нибудь еще, скажем~/
. Это помогает?lid.sh
ни alidbtn
в моей системе (поиск производился с помощьюlocate
) Могу ли я создать одну из них, чтобы добавить некоторые функции (я хочу отключить сенсорный экран при закрытии крышки ноутбука )?Это поведение является функцией Gnome, и оно контролируется настройкой dconf. Вы можете изменить его с помощью
dconf-editor
или напрямую с помощью командной строки:В описании сказано следующее:
Поэтому, если вы хотите использовать только внешний монитор, когда он подключен, используйте
dock
как<value>
.Если вы хотите, чтобы оба монитора работали всегда, независимо от того, закрыта ли крышка или нет, используйте
do-nothing
. (Я часто временно закрывал крышку, чтобы она не светилась в моей темной комнате, я не хотел, чтобы все окна переносились на внешний монитор.)И, наконец, если вы хотите использовать экран ноутбука, но только когда он открыт, используйте
follow-lid
. (Вариант использования: количество свободного места на вашем столе может быть разным, и иногда вам приходится устанавливать ноутбук за монитором, а не рядом с ним.)источник
Я могу ответить на эту часть. Я запускаю Ubuntu 17.10 на Wayland. В
gnome-control-center -> device -> display
, вы можете выбратьsingle display
только с$external_monitor
включенным, затем нажмите «Применить». Это создает$HOME/.confg/monitors.xml
файл. Файл исправляет расположение дисплея при его$external_monitor
подключении и переключается на внутренний монитор после его отключения. Что лучше, вы можете поместить один и тот жеmonitors.xml
по прибытии/var/lib/gdm3/.config/
, в этом случае то же самое справедливо для GDM тоже.источник