Переключение вывода с ноутбука на монитор

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

slant
Сообщения: 4504
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1992 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#21

10 апр 2021, 12:22

demonlibra писал(а):
10 апр 2021, 11:33
У меня идеи закончились.
В ссылке что я вам кинул вызов выглядит не так:
KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/username/.Xauthority", RUN+="/usr/bin/arandr"
И я подозреваю, что отсутствие у вас в конфиге удава ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/username/.Xauthority" - это ключевая проблема. Когда вы дергаете удава из консоли - это все равно происходит из вашей сессии иксов, там переменные наследуются. А вот когда удав сам возбуждается - у ему этих данных не хватает. Да, вы пытаетесь это задать в самом скрипте, но там уже поздно. Они нужны раньше чем скрипт запускается, в самом вызове, иначе скрипт попадает в другую сессию/ветку процессов. Изолированную.

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#22

10 апр 2021, 12:32

Код: Выделить всё

demonlibra@demonlibra-Extensa-2540:~$ cat /etc/udev/rules.d/hdmi.rules
KERNEL=="card0-HDMI-A-1", SUBSYSTEM=="drm", ATTR{status}=="connected", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/demonlibra/.Xauthority", RUN+="/usr/bin/script -c '/usr/local/bin/hdmi.sh true' /tmp/hdmi.log"
KERNEL=="card0-HDMI-A-1", SUBSYSTEM=="drm", ATTR{status}=="disconnected", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/demonlibra/.Xauthority", RUN+="/usr/bin/script -c '/usr/local/bin/hdmi.sh false' /tmp/hdmi.log"

demonlibra@demonlibra-Extensa-2540:~$ cat /usr/local/bin/hdmi.sh
#!/bin/bash

echo $1 > /tmp/hdmi

Ситуация не изменилась.
Вручную выполняется. Автоматом ничего не происходит.
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#23

10 апр 2021, 12:43

Мне думается, что проблема в этой части
KERNEL=="card0-HDMI-A-1", SUBSYSTEM=="drm", ATTR{status}=="connected",
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

slant
Сообщения: 4504
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1992 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#24

10 апр 2021, 12:55

demonlibra писал(а):
10 апр 2021, 12:43
Мне думается, что проблема в этой части
Возможно. Вот card0-HDMI-A-1 откуда взялось? В выводе udevadm monitor -k -u -p его нету. Вообще-то, насколько я удава помню/понимаю ни один из параметров не является обязательным. Так что часть KERNEL можно вообще выкинуть - удав просто сверяет те параметры что в правиле есть. Совпало все, что есть - исполняет. Так что имя устройства можно просто выкинуть - останется SUBSYSTEM как признак. drm это видеокарта, практически однозначно.

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#25

10 апр 2021, 13:03

Нашёл как-то лазая по каталогам /devices/pci0000:00/0000:00:02.0/drm

У card0-HDMI-A-1 есть атрибут ATTR{status},
который отображает текущее подключение кабеля
ATTR{status}=="disconnected"
и
ATTR{status}=="connected"

Код: Выделить всё

udevadm info -a /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1

  looking at device '/devices/pci0000:00/0000:00:02.0/drm/card0/card0-HDMI-A-1':
    KERNEL=="card0-HDMI-A-1"
    SUBSYSTEM=="drm"
    DRIVER==""
    ATTR{enabled}=="disabled"
    ATTR{edid}==""
    ATTR{modes}==""
    ATTR{dpms}=="Off"
    ATTR{status}=="disconnected"
Последний раз редактировалось пользователем 1 demonlibra; всего редактировалось раз: 10
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#26

10 апр 2021, 14:38

anbore писал(а):
08 апр 2021, 23:28
Можно ли сделать так, чтобы при подключении hdmi переключение происходило само?
Нашёл рабочий вариант в статье https://frdmtoplay.com/i3-udev-xrandr-h ... switching/
Итого получилось следующее решение:

Создаём файл /etc/udev/rules.d/hdmi.rules

Код: Выделить всё

KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="change", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/demonlibra/.Xauthority", RUN+="/usr/local/bin/hdmi.sh"
Создаём сценарий /usr/local/bin/hdmi.sh

Код: Выделить всё

#!/bin/bash

if xrandr | grep "HDMI-1" | grep "disconnected"
	then
		xrandr --output "eDP-1" --auto --output "HDMI-1" --off
	else
		xrandr --output "eDP-1" --off --output "HDMI-1" --auto
fi
Делаем сценарий исполняемым: sudo chmod +x /usr/local/bin/hdmi.sh
Обновляем список правил udev: sudo udevadm control --reload-rules; sudo systemctl daemon-reload

Проверено. Работает.
Жаль самому себе нельзя лайк поставить.
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

rogoznik
Сообщения: 10042
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1956 раз
Контактная информация:

Переключение вывода с ноутбука на монитор

#27

10 апр 2021, 17:09

demonlibra писал(а):
10 апр 2021, 14:38
Жаль самому себе нельзя лайк поставить.
Мы тебе поставим :thumbs:
ИзображениеИзображение

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#28

10 апр 2021, 18:00

Балин, мне не даёт покоя, почему это запускается вручную командой sudo udevadm trigger -s drm
KERNEL=="card0-HDMI-A-1", SUBSYSTEM=="drm", ATTR{status}=="connected", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/demonlibra/.Xauthority", RUN+="/usr/local/bin/hdmi.sh"
но не работает самостоятельно

Может быть структуру /drm/card0/card0-HDMI-A-1 надо как-то по другому описать.
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

slant
Сообщения: 4504
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1992 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#29

10 апр 2021, 18:46

demonlibra писал(а):
10 апр 2021, 18:00
Может быть структуру /drm/card0/card0-HDMI-A-1 надо как-то по другому описать.
Судя по этому вопросу ты не совсем понял что и как удав делает. Я конечно тоже не совсем эксперт по нему, но изучить кое что пришлось.

Работает он в принципе довольно просто: смотрит в правила по принципу "одна строка - одно правило" и при каждом событии выполняет те правила которые подходят. Причем сам процесс анализа/выполнения тоже прост. Ключи в строке разделены запятыми, а вот знак между ключом и значением определяет, является ли пара условием, или это требуемое действие.
Если это "==" - то пара обозначает проверку условия. А если "=" - установку значения. (ATTR{}=="" - условие, ATTR{}="" - поменять значение если правило сработало.) Правило считается применимым, если все пары с условиями совпали. А что будет проверяться - можно посмотреть через udevadm monitor - смотрим там вывод событий, и выбираем характерные ключи для правила.
Никакого /drm/card0/card0-HDMI-A-1 он у тебя не выводил, и просто card0-HDMI-A-1 тоже. Что же касается udevadm info - там все вместе, скопом. И ключи и расширенная информация про устройство. Но по ней ориентироваться не стоит, т.к. не все ключи присутствуют в актуальном событии которое удав и будет анализировать. info - это все хотя бы теоретически возможное от устройства. А monitor - практика, то что есть на самом деле. И на практике у тебя никакого ключа card0-HDMI-A-1 не генерируется в событиях.

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#30

10 апр 2021, 18:52

Кое как в голове сошлось.

Вероятно, меня результат команды sudo udevadm trigger -s drm сбил с толку.
Но со стороны ядра подходящих событий для запуска не происходило. В общем потому, что гладиолус.
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

no avatar

Автор темы
anbore
Сообщения: 9
Зарегистрирован: 04 апр 2021, 20:57
Благодарил (а): 6 раз
Контактная информация:

Переключение вывода с ноутбука на монитор

#31

11 апр 2021, 15:32

demonlibra,
demonlibra писал(а):
09 апр 2021, 04:16
Покажите вывод команд

Код: Выделить всё

eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
HDMI-1 connected (normal left inverted right x axis y axis)
eDP-1 connected (normal left inverted right x axis y axis)
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
demonlibra писал(а):
09 апр 2021, 04:16
Выполните в терминале команду acpi_listen
Нажмите на F10 и Fn+F10.
Он не реагирует. Переходит на строку меню терминала.
demonlibra писал(а):
09 апр 2021, 04:16
Покажите вывод udevadm monitor после подключения кабеля HDMI.

Код: Выделить всё

KERNEL[2980.856818] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
UDEV  [2980.884163] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
KERNEL[2980.888619] add      /kernel/slab/:A-0000256/cgroup/filp(1451:autorandr.service) (cgroup)
KERNEL[2980.888693] add      /kernel/slab/dentry/cgroup/dentry(1451:autorandr.service) (cgroup)
KERNEL[2980.888740] add      /kernel/slab/inode_cache/cgroup/inode_cache(1451:autorandr.service) (cgroup)
KERNEL[2980.888783] add      /kernel/slab/:A-0000128/cgroup/pid(1451:autorandr.service) (cgroup)
KERNEL[2980.888827] add      /kernel/slab/sock_inode_cache/cgroup/sock_inode_cache(1451:autorandr.service) (cgroup)
KERNEL[2980.888869] add      /kernel/slab/:A-0001024/cgroup/PING(1451:autorandr.service) (cgroup)
KERNEL[2980.888907] add      /kernel/slab/skbuff_head_cache/cgroup/skbuff_head_cache(1451:autorandr.service) (cgroup)
KERNEL[2980.888945] add      /kernel/slab/kmalloc-512/cgroup/kmalloc-512(1451:autorandr.service) (cgroup)
KERNEL[2980.889063] add      /kernel/slab/:A-0000192/cgroup/cred_jar(1451:autorandr.service) (cgroup)
KERNEL[2980.889152] add      /kernel/slab/kmalloc-64/cgroup/kmalloc-64(1451:autorandr.service) (cgroup)
KERNEL[2980.889219] add      /kernel/slab/mm_struct/cgroup/mm_struct(1451:autorandr.service) (cgroup)
KERNEL[2980.889366] add      /kernel/slab/:A-0000208/cgroup/vm_area_struct(1451:autorandr.service) (cgroup)
KERNEL[2980.889459] add      /kernel/slab/:A-0000064/cgroup/anon_vma_chain(1451:autorandr.service) (cgroup)
KERNEL[2980.889516] add      /kernel/slab/anon_vma/cgroup/anon_vma(1451:autorandr.service) (cgroup)
UDEV  [2980.892687] add      /kernel/slab/:A-0000256/cgroup/filp(1451:autorandr.service) (cgroup)
UDEV  [2980.894636] add      /kernel/slab/dentry/cgroup/dentry(1451:autorandr.service) (cgroup)
UDEV  [2980.897487] add      /kernel/slab/inode_cache/cgroup/inode_cache(1451:autorandr.service) (cgroup)
UDEV  [2980.898594] add      /kernel/slab/skbuff_head_cache/cgroup/skbuff_head_cache(1451:autorandr.service) (cgroup)
UDEV  [2980.899307] add      /kernel/slab/sock_inode_cache/cgroup/sock_inode_cache(1451:autorandr.service) (cgroup)
UDEV  [2980.899413] add      /kernel/slab/:A-0000192/cgroup/cred_jar(1451:autorandr.service) (cgroup)
UDEV  [2980.899499] add      /kernel/slab/:A-0000128/cgroup/pid(1451:autorandr.service) (cgroup)
UDEV  [2980.902979] add      /kernel/slab/:A-0000064/cgroup/anon_vma_chain(1451:autorandr.service) (cgroup)
UDEV  [2980.903676] add      /kernel/slab/:A-0001024/cgroup/PING(1451:autorandr.service) (cgroup)
UDEV  [2980.904782] add      /kernel/slab/kmalloc-512/cgroup/kmalloc-512(1451:autorandr.service) (cgroup)
UDEV  [2980.905498] add      /kernel/slab/anon_vma/cgroup/anon_vma(1451:autorandr.service) (cgroup)
UDEV  [2980.905714] add      /kernel/slab/mm_struct/cgroup/mm_struct(1451:autorandr.service) (cgroup)
UDEV  [2980.907737] add      /kernel/slab/:A-0000208/cgroup/vm_area_struct(1451:autorandr.service) (cgroup)
UDEV  [2980.908713] add      /kernel/slab/kmalloc-64/cgroup/kmalloc-64(1451:autorandr.service) (cgroup)
KERNEL[2980.946145] add      /kernel/slab/proc_inode_cache/cgroup/proc_inode_cache(1451:autorandr.service) (cgroup)
UDEV  [2980.947007] add      /kernel/slab/proc_inode_cache/cgroup/proc_inode_cache(1451:autorandr.service) (cgroup)
KERNEL[2980.948340] add      /kernel/slab/task_struct/cgroup/task_struct(1451:autorandr.service) (cgroup)
KERNEL[2980.948360] add      /kernel/slab/:A-0000080/cgroup/task_delay_info(1451:autorandr.service) (cgroup)
KERNEL[2980.948485] add      /kernel/slab/:A-0000704/cgroup/files_cache(1451:autorandr.service) (cgroup)
KERNEL[2980.948506] add      /kernel/slab/sighand_cache/cgroup/sighand_cache(1451:autorandr.service) (cgroup)
KERNEL[2980.948517] add      /kernel/slab/:A-0001152/cgroup/signal_cache(1451:autorandr.service) (cgroup)
UDEV  [2980.949330] add      /kernel/slab/sighand_cache/cgroup/sighand_cache(1451:autorandr.service) (cgroup)
UDEV  [2980.949568] add      /kernel/slab/:A-0000080/cgroup/task_delay_info(1451:autorandr.service) (cgroup)
UDEV  [2980.949601] add      /kernel/slab/task_struct/cgroup/task_struct(1451:autorandr.service) (cgroup)
KERNEL[2980.949619] add      /kernel/slab/kmalloc-8/cgroup/kmalloc-8(1451:autorandr.service) (cgroup)
UDEV  [2980.949673] add      /kernel/slab/:A-0001152/cgroup/signal_cache(1451:autorandr.service) (cgroup)
UDEV  [2980.949998] add      /kernel/slab/:A-0000704/cgroup/files_cache(1451:autorandr.service) (cgroup)
UDEV  [2980.950436] add      /kernel/slab/kmalloc-8/cgroup/kmalloc-8(1451:autorandr.service) (cgroup)
KERNEL[2980.985276] add      /kernel/slab/kmalloc-192/cgroup/kmalloc-192(1451:autorandr.service) (cgroup)
KERNEL[2980.985307] add      /kernel/slab/kmalloc-1k/cgroup/kmalloc-1k(1451:autorandr.service) (cgroup)
UDEV  [2980.986139] add      /kernel/slab/kmalloc-192/cgroup/kmalloc-192(1451:autorandr.service) (cgroup)
UDEV  [2980.986237] add      /kernel/slab/kmalloc-1k/cgroup/kmalloc-1k(1451:autorandr.service) (cgroup)
KERNEL[2981.789950] change   /devices/pci0000:00/0000:00:1c.0/0000:01:00.0/drm/card1 (drm)
UDEV  [2981.795927] change   /devices/pci0000:00/0000:00:1c.0/0000:01:00.0/drm/card1 (drm)
KERNEL[2982.403907] add      /kernel/slab/kmalloc-4k/cgroup/kmalloc-4k(1451:autorandr.service) (cgroup)
UDEV  [2982.407589] add      /kernel/slab/kmalloc-4k/cgroup/kmalloc-4k(1451:autorandr.service) (cgroup)
KERNEL[2982.888882] remove   /kernel/slab/:A-0001024/cgroup/PING(1451:autorandr.service) (cgroup)
KERNEL[2982.888999] remove   /kernel/slab/sock_inode_cache/cgroup/sock_inode_cache(1451:autorandr.service) (cgroup)
KERNEL[2982.889069] remove   /kernel/slab/skbuff_head_cache/cgroup/skbuff_head_cache(1451:autorandr.service) (cgroup)
KERNEL[2982.889130] remove   /kernel/slab/:A-0000080/cgroup/task_delay_info(1451:autorandr.service) (cgroup)
KERNEL[2982.889288] remove   /kernel/slab/:A-0000256/cgroup/filp(1451:autorandr.service) (cgroup)
KERNEL[2982.889356] remove   /kernel/slab/inode_cache/cgroup/inode_cache(1451:autorandr.service) (cgroup)
KERNEL[2982.889674] remove   /kernel/slab/:A-0000208/cgroup/vm_area_struct(1451:autorandr.service) (cgroup)
KERNEL[2982.889776] remove   /kernel/slab/mm_struct/cgroup/mm_struct(1451:autorandr.service) (cgroup)
KERNEL[2982.889899] remove   /kernel/slab/:A-0000704/cgroup/files_cache(1451:autorandr.service) (cgroup)
KERNEL[2982.889988] remove   /kernel/slab/:A-0001152/cgroup/signal_cache(1451:autorandr.service) (cgroup)
KERNEL[2982.890127] remove   /kernel/slab/sighand_cache/cgroup/sighand_cache(1451:autorandr.service) (cgroup)
KERNEL[2982.890254] remove   /kernel/slab/task_struct/cgroup/task_struct(1451:autorandr.service) (cgroup)
KERNEL[2982.890374] remove   /kernel/slab/:A-0000192/cgroup/cred_jar(1451:autorandr.service) (cgroup)
KERNEL[2982.890463] remove   /kernel/slab/:A-0000064/cgroup/anon_vma_chain(1451:autorandr.service) (cgroup)
KERNEL[2982.890544] remove   /kernel/slab/anon_vma/cgroup/anon_vma(1451:autorandr.service) (cgroup)
KERNEL[2982.890623] remove   /kernel/slab/:A-0000128/cgroup/pid(1451:autorandr.service) (cgroup)
KERNEL[2982.890708] remove   /kernel/slab/kmalloc-4k/cgroup/kmalloc-4k(1451:autorandr.service) (cgroup)
KERNEL[2982.890786] remove   /kernel/slab/kmalloc-1k/cgroup/kmalloc-1k(1451:autorandr.service) (cgroup)
KERNEL[2982.890867] remove   /kernel/slab/kmalloc-512/cgroup/kmalloc-512(1451:autorandr.service) (cgroup)
KERNEL[2982.890942] remove   /kernel/slab/kmalloc-192/cgroup/kmalloc-192(1451:autorandr.service) (cgroup)
KERNEL[2982.891011] remove   /kernel/slab/kmalloc-64/cgroup/kmalloc-64(1451:autorandr.service) (cgroup)
KERNEL[2982.891078] remove   /kernel/slab/kmalloc-8/cgroup/kmalloc-8(1451:autorandr.service) (cgroup)
UDEV  [2982.892565] remove   /kernel/slab/sock_inode_cache/cgroup/sock_inode_cache(1451:autorandr.service) (cgroup)
UDEV  [2982.892709] remove   /kernel/slab/skbuff_head_cache/cgroup/skbuff_head_cache(1451:autorandr.service) (cgroup)
UDEV  [2982.892826] remove   /kernel/slab/:A-0000080/cgroup/task_delay_info(1451:autorandr.service) (cgroup)
UDEV  [2982.894054] remove   /kernel/slab/:A-0000208/cgroup/vm_area_struct(1451:autorandr.service) (cgroup)
UDEV  [2982.894148] remove   /kernel/slab/inode_cache/cgroup/inode_cache(1451:autorandr.service) (cgroup)
UDEV  [2982.894184] remove   /kernel/slab/:A-0000256/cgroup/filp(1451:autorandr.service) (cgroup)
UDEV  [2982.894219] remove   /kernel/slab/:A-0000704/cgroup/files_cache(1451:autorandr.service) (cgroup)
UDEV  [2982.894246] remove   /kernel/slab/:A-0001024/cgroup/PING(1451:autorandr.service) (cgroup)
UDEV  [2982.894268] remove   /kernel/slab/sighand_cache/cgroup/sighand_cache(1451:autorandr.service) (cgroup)
UDEV  [2982.894464] remove   /kernel/slab/mm_struct/cgroup/mm_struct(1451:autorandr.service) (cgroup)
UDEV  [2982.894490] remove   /kernel/slab/:A-0001152/cgroup/signal_cache(1451:autorandr.service) (cgroup)
UDEV  [2982.894858] remove   /kernel/slab/:A-0000192/cgroup/cred_jar(1451:autorandr.service) (cgroup)
UDEV  [2982.895663] remove   /kernel/slab/task_struct/cgroup/task_struct(1451:autorandr.service) (cgroup)
UDEV  [2982.895712] remove   /kernel/slab/:A-0000064/cgroup/anon_vma_chain(1451:autorandr.service) (cgroup)
UDEV  [2982.895755] remove   /kernel/slab/anon_vma/cgroup/anon_vma(1451:autorandr.service) (cgroup)
UDEV  [2982.895790] remove   /kernel/slab/:A-0000128/cgroup/pid(1451:autorandr.service) (cgroup)
UDEV  [2982.895822] remove   /kernel/slab/kmalloc-4k/cgroup/kmalloc-4k(1451:autorandr.service) (cgroup)
UDEV  [2982.895852] remove   /kernel/slab/kmalloc-1k/cgroup/kmalloc-1k(1451:autorandr.service) (cgroup)
UDEV  [2982.895881] remove   /kernel/slab/kmalloc-512/cgroup/kmalloc-512(1451:autorandr.service) (cgroup)
UDEV  [2982.895926] remove   /kernel/slab/kmalloc-192/cgroup/kmalloc-192(1451:autorandr.service) (cgroup)
UDEV  [2982.896386] remove   /kernel/slab/kmalloc-8/cgroup/kmalloc-8(1451:autorandr.service) (cgroup)
UDEV  [2982.896515] remove   /kernel/slab/kmalloc-64/cgroup/kmalloc-64(1451:autorandr.service) (cgroup)

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#32

11 апр 2021, 16:02

События при подключении HDMI как у меня. Решение из сообщения 26 должно сработать для автоматического выполнения сценария при подключении/отключении кабеля HDMI. Пробуйте.
anbore писал(а):
11 апр 2021, 15:32
Он не реагирует. Переходит на строку меню терминала.
Терминал -> Правка -> Параметры -> Основное
Вложения
изображение_2021-04-11_180220.png
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

no avatar

Автор темы
anbore
Сообщения: 9
Зарегистрирован: 04 апр 2021, 20:57
Благодарил (а): 6 раз
Контактная информация:

Переключение вывода с ноутбука на монитор

#33

11 апр 2021, 22:24

demonlibra писал(а):
11 апр 2021, 16:02
Пробуйте
Да, сработало. Благодарность улетела.
demonlibra писал(а):
11 апр 2021, 16:02
Терминал -> Правка -> Параметры -> Основное
Он код для F10 выводит.
Для Fn+F10 не реагирует.
Сам код: Как теперь сделать переключение вручную?
По F10 хотя бы?

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#34

12 апр 2021, 06:25

Создайте отдельный сценарий. Используйте как основу сценарий из сообщений 11.

В настройках клавиатуры (Комбинации клавиш -> Дополнительные комбинации) назначьте ему нужную горячую клавишу.
Команда запуска будет такой: bash -c "путь_к_сценарию"
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#35

16 апр 2021, 23:25

У получилось?

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

Например, у меня это

Код: Выделить всё

pactl set-card-profile 0 output:hdmi-stereo-extra1 #Звук через HDMI
pactl set-card-profile 0 output:analog-stereo #Звук через колонки ноутбука
Имя устройства можно определить командой pacmd list-sinks | grep -e 'name:' -e 'index:'

Код: Выделить всё

pacmd list-sinks | grep -e 'name:' -e 'index:'
  * index: 21
	name: <alsa_output.pci-0000_00_1f.3.analog-stereo>

pacmd list-sinks | grep -e 'name:' -e 'index:'
  * index: 23
	name: <alsa_output.pci-0000_00_1f.3.hdmi-stereo-extra1>
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#36

23 апр 2021, 19:38

У меня получился такой сценарий

Код: Выделить всё

#!/bin/bash

# Сценарий переключения разрешения экрана и вывода изображения/звука в HDMI

# Если HDMI отключен, переключаем разрешение экрана ноутбука
if xrandr | grep "HDMI-1" | grep "disconnected"
	then
		if xrandr | grep "eDP-1" | grep 1920
			then
				# Если текущее разрешение 1920, переключаем на 1368
				xrandr --output "eDP-1" --primary --mode 1368x768 --pos 0x0 --rotate normal --output HDMI-1 --off
				
		elif xrandr | grep "eDP-1" | grep 1368
			then
				# Если текущее разрешение 1368, переключаем на 1920
				xrandr --output "eDP-1" --primary --mode 1920x1080 --pos 0x0 --rotate normal
		fi
fi

# Если HDMI подключен, переключаем устройство вывода изображения и звука
if xrandr | grep "HDMI-1" | grep " connected"
	then
		if xrandr | grep "eDP-1" | grep "primary"
			then
				echo "Использовать экран и колонки ТВ"
				xrandr --output "eDP-1" --off --output "HDMI-1" --auto
				pactl set-card-profile 0 output:hdmi-stereo-extra1 #Звук через HDMI
			else
				echo "Использовать экран и колонки ноутбука"
				xrandr --output "HDMI-1" --off --output "eDP-1" --primary --mode 1368x768 --pos 0x0 --rotate normal
				pactl set-card-profile 0 output:analog-stereo #Звук через колонки ноутбука
		fi
fi
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

no avatar

Автор темы
anbore
Сообщения: 9
Зарегистрирован: 04 апр 2021, 20:57
Благодарил (а): 6 раз
Контактная информация:

Переключение вывода с ноутбука на монитор

#37

24 апр 2021, 23:57

demonlibra, я не сильно силен в bash скриптах и некоторые моменты не особо понимаю. Так что не судите строго.

Код: Выделить всё

#!/bin/bash 

if xrandr | grep "eDP-1"
	then
		xrandr --output eDP-1 --auto --output HDMI-1 --off
else
		xrandr --output eDP-1 --off --output HDMI-1 --auto
fi
Проблема в том, что у меня дисплей ноутбука не отключается.
То есть я хотел такую схему:
1 нажатие
Моник отключается, ноут включается.
2 нажатие
Моник включается, ноут отключается.
3 нажатие
Оба включены. И так по кругу.
А получается так:
1 нажатие
Моник отключается, ноут включается.
2 нажатие
Моник включается, ноут включается.
3 нажатие
Моник отключается, ноут включается. И так по кругу.
И еще: как поменять правило для udev, чтобы при включении ноута уже с присоедененным hdmi кабелем, после загрузки системы, экран ноута отключался, а экран монитора включался?

Аватара пользователя

slant
Сообщения: 4504
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1992 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#38

25 апр 2021, 01:59

anbore писал(а):
24 апр 2021, 23:57
То есть я хотел такую схему:
ключ --auto в подобном случае может давать не тот результат который хочется. Лучше использовать не его а явное указание параметров режима, как минимум --mode и --pos. Проще всего через arandr настроить желаемое - он при сохранении в файл выдает туда строку команды xrandr для получения такого же результата.

Аватара пользователя

demonlibra
Сообщения: 844
Зарегистрирован: 12 авг 2017, 09:09
Решено: 13
Откуда: Ростов-на-Дону
Благодарил (а): 29 раз
Поблагодарили: 204 раза
Контактная информация:

Переключение вывода с ноутбука на монитор

#39

25 апр 2021, 05:48

1. Выполняйте команду xrandr чтобы определить и подставить свои условия в if xrandr | grep ".............."
2. Подставьте свои параметры в команды xrandr --output "eDP-1" ......... --output "HDMI-1" .........

Код: Выделить всё

# Если HDMI подключен, переключаем устройство вывода изображения и звука
if xrandr | grep "HDMI-1" | grep " connected"
	then
		if [[ `xrandr | grep "eDP-1 connected primary 1368"` ]] && [[ `xrandr | grep "HDMI-1 connected 1920"` ]]
			then
				echo "Использовать экран и колонки ТВ"
				xrandr --output "eDP-1" --off --output "HDMI-1" --mode 1920x1080 --pos 0x0 --rotate normal
				pactl set-card-profile 0 output:hdmi-stereo-extra1 #Звук через HDMI
		elif xrandr | grep "HDMI-1" | grep "primary"
			then
				echo "Использовать экран и колонки ноутбука"
				xrandr --output "HDMI-1" --off --output "eDP-1" --primary --mode 1368x768 --pos 0x0 --rotate normal
				pactl set-card-profile 0 output:analog-stereo #Звук через колонки ноутбука
			else
				echo "Использовать экраны ноутбука и ТВ"
				xrandr --output eDP-1 --primary --mode 1368x768 --pos 0x0 --rotate normal --output HDMI-1 --mode 1920x1080 --pos 1368x11 --rotate normal
		fi
fi
anbore писал(а):
24 апр 2021, 23:57
некоторые моменты не особо понимаю
Так Вы спросите, что пояснить.
anbore писал(а):
24 апр 2021, 23:57
при включении ноута уже с присоедененным hdmi кабелем
Для этого надо создать отдельный сценарий, который будет выполняться при запуске системы.
Так как для выполнения команды xrandr не требуются права root, этот сценарий можно просто назначить в автозагрузку.
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD

no avatar

Максимилиан
Сообщения: 1
Зарегистрирован: 05 май 2021, 00:39
Контактная информация:

Переключение вывода с ноутбука на монитор

#40

05 май 2021, 00:56

Я прошу прощения, что в чужую тему влезаю не проблема та же, но есть нюанс..
Купил новый телек и теперь страдаю настройками...
Подскажите умные люди почему у меня в ноутбуке на LMDE при подключении по hdmi телека sony 40RD353 (1920*1080) работают нормально все три режима двух мониторов с кнопки fn+f10, и клонирование, и расширение пространства и только один телек при гаснущем экране ноута, а если вытащить hdmi из соньки и после ребута ноута включить в новый телек 4К то нажатия на кнопку fn+f10 ни чего не меняют, оба экрана гаснут-включаются и висит постоянно дублирование экрана.
Ведь ни чего не менялось в настройках.. В чем разница? Может на телеке какая то поднастройка hdmi не включена? Ведь не может же быть что на одном телеке режимы нормально меняются а на другом нет.
Несколько раз проверил подключая туда-сюда... Новый телек не хочет автоматически с кнопки становится главным моником и гасить экран ноута... А если вручную отменять клонирование, выставлять в ручную разрешение на телеке, мало того что на полке над телеком ноут экран не гасит, так еще разрешение на телеке максимум 1920*1080 получается...

Ответить

Вернуться в «Прочие устройства»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей