Простой способ вставки строк из одного файла в другой [дубликат]

Я думаю, вы, возможно, неправильно понимаете, что означает "выключено" DPMS. Посмотрите на таблицу в Википедии, что на самом деле DPMS сигнализирует о состоянии энергосбережения, отключая сигналы горизонтальной и вертикальной синхронизации (или эквивалент HDMI) и отключая ЦАП в видеокарте, в то время как остальная часть видеокарты продолжает работать. Таким образом, вы не отключаете все полностью, вы входите в «самый глубокий» возможный режим энергосбережения.

OTOH, использование xrandr --off действительно полностью отключает вывод и отключает все в графической карте, которая используется для создания вывода, как если бы монитор вообще ни к чему не был подключен. И, конечно же, если это ваш единственный монитор, это не сработает, так как тогда больше не будет графического дисплея, на котором можно что-то рисовать. Это действительно для включения и отключения дополнительных вторых или третьих мониторов.

Таким образом, вы не хотите, чтобы он был «полностью выключен», вам нужно самое глубокое состояние энергосбережения DPMS, которое называется «выключено».

Ваша команда busctl указывает Wayland использовать PowerSaveMode, то есть DPMS. И Wayland, похоже, не включает DPMS повторно, когда обнаруживает ввод с помощью мыши или клавиатуры, поэтому он остается выключенным.

Таким же образом xset dpms указывает X-серверу использовать DPMS.Это совершенно одно и то же. Разница в том, что X-сервер повторно включает DPMS при обнаружении входных данных.

Что касается «почему», так разработчики решили, как это должно работать. В X xset dpms работает даже тогда, когда нет дополнительной заставки, поэтому способ повторного включения экрана был встроен в X-сервер. Что касается Wayland, дизайнеры, похоже, решили, что вам всегда нужна дополнительная программа-заставка (чья работа заключается в том, чтобы сообщать Wayland желаемый PowerSaveMode), поэтому она оставляет экранной заставке следить за вводом и переключать экран снова. То, что вы можете притворяться программой-заставкой, используя busctl, более или менее случайно.

Это не баг, это другой дизайн.

Как я уже сказал, попробуйте захватить ввод с клавиатуры и мыши с помощью evtest --grab /dev/input/eventX (используйте просто evtest, чтобы узнать, какое устройство какое. Осторожно, числа не должны оставаться одинаковыми при загрузке, посмотрите на символические ссылки udev) или эквивалент ioctl, если вы пишете свою собственную программу-заставку. Если вы хотите контролировать входы для определенной комбинации, вам все равно нужно это сделать.

0
25.06.2018, 13:30
3 ответа

Используйтеfile descriptors

открыть два файловых дескриптора и прочитать из них

while read -r -u 4 l1 && read -r -u 5 l2 ; do
echo $l1
echo $l2
done 4<file1 5<file2 > new_file

прочитать человека

0
28.01.2020, 02:23

Просто командойpaste:

paste -d'\n' file1 file2 > result
  • -d'\n'-использовать символ новой строки \nв качестве разделителя между соответствующими объединенными элементами/строками

$ cat result
line a
line 1
line b
line 2
line c
line 3
2
28.01.2020, 02:23

Использованиеawk:

$ awk '1; { getline <"file1" } 1' file2
line a
line 1
line b
line 2
line c
line 3

или, более подробно,

$ awk '{ print; getline <"file1"; print }' file2
line a
line 1
line b
line 2
line c
line 3
1
28.01.2020, 02:23

Теги

Похожие вопросы