Почему мы используем команду sleep перед xset dpms?

Вы можете копировать и вставлять, используя следующий метод для терминала:

Выберите / выделите текст и нажмите кнопку мыши Middle-Click, чтобы вставить его в терминал или где-нибудь еще в Ubuntu. Выберите текст и скопируйте (i) Ctrl + C из другого приложения (ii) Ctrl + Shift + C из терминала и вставьте Ctrl + Shift + v в терминал.
1
задан 12 May 2017 в 21:14

6 ответов

Когда вы запускаете свою команду, происходят два события: «KeyPress» и «KeyRelease».

Итак, когда вы запускаете эту команду с нажатием клавиши Enter.

xset dpms force standby

Сначала происходит «KeyPress», это приведет к немедленному запуску команды и помещению монитора в режим сна, когда вы отпустите клавишу Enter , тогда происходит «KeyRelease», и это активность пользователя, поэтому монитор возвращается для работы.

Если вы выполняете работу очень быстро (нажав Enter и вернув ее перед запуском команды), ваш монитор остается в состоянии «сна».

Чтобы проверить это, установите пакет x11-xserver-utils.

sudo apt install x11-xserver-utils

затем запустите xev.

Теперь нажмите Enter , чтобы посмотреть, что бывает; вы должны увидеть что-то более или менее похожее:

KeyPress event, serial 48, synthetic NO, window 0x2600001,
...

KeyRelease event, serial 48, synthetic NO, window 0x2600001,
...

Поэтому мы используем sleep, чтобы убедиться, что оба события происходят до запуска команды.

2
ответ дан 22 May 2018 в 22:41
  • 1
    Ты прав. При быстром нажатии клавиши ввода дисплей остается выключенным. Таким образом, sleep 1 должен убедиться, что xset не регистрирует keyrelease при нажатии клавиши ввода. Спасибо. – zindarod 13 May 2017 в 21:32

Когда вы запускаете свою команду, происходят два события: «KeyPress» и «KeyRelease».

Итак, когда вы запускаете эту команду с нажатием клавиши Enter.

xset dpms force standby

Сначала происходит «KeyPress», это приведет к немедленному запуску команды и помещению монитора в режим сна, когда вы отпустите клавишу Enter , тогда происходит «KeyRelease», и это активность пользователя, поэтому монитор возвращается для работы.

Если вы выполняете работу очень быстро (нажав Enter и вернув ее перед запуском команды), ваш монитор остается в состоянии «сна».

Чтобы проверить это, установите пакет x11-xserver-utils.

sudo apt install x11-xserver-utils

затем запустите xev.

Теперь нажмите Enter , чтобы посмотреть, что бывает; вы должны увидеть что-то более или менее похожее:

KeyPress event, serial 48, synthetic NO, window 0x2600001, ... KeyRelease event, serial 48, synthetic NO, window 0x2600001, ...

Поэтому мы используем sleep, чтобы убедиться, что оба события происходят до запуска команды.

2
ответ дан 18 July 2018 в 13:25

Когда вы запускаете свою команду, происходят два события: «KeyPress» и «KeyRelease».

Итак, когда вы запускаете эту команду с нажатием клавиши Enter.

xset dpms force standby

Сначала происходит «KeyPress», это приведет к немедленному запуску команды и помещению монитора в режим сна, когда вы отпустите клавишу Enter , тогда происходит «KeyRelease», и это активность пользователя, поэтому монитор возвращается для работы.

Если вы выполняете работу очень быстро (нажав Enter и вернув ее перед запуском команды), ваш монитор остается в состоянии «сна».

Чтобы проверить это, установите пакет x11-xserver-utils.

sudo apt install x11-xserver-utils

затем запустите xev.

Теперь нажмите Enter , чтобы посмотреть, что бывает; вы должны увидеть что-то более или менее похожее:

KeyPress event, serial 48, synthetic NO, window 0x2600001, ... KeyRelease event, serial 48, synthetic NO, window 0x2600001, ...

Поэтому мы используем sleep, чтобы убедиться, что оба события происходят до запуска команды.

2
ответ дан 24 July 2018 в 20:10

Я думаю, что это, вероятно, связано с тем, что система считает «пользовательской деятельностью».

Если система обнаруживает активность клавиатуры, она возвращается из сна. Тот факт, что вы нажимаете enter для отправки команды standby силы, считается некоторой «текущей» активностью и поэтому сразу же не засчитывается.

sleep 1 гарантирует, что клавиатура не записала активность за 1 секунду до сна команда отправляется, поэтому режим ожидания продолжается.

0
ответ дан 22 May 2018 в 22:41
  • 1
    Есть потенциально 2 события человеческой деятельности, возникающие при нажатии клавиши ввода. key down, comand run, key up. Если вы задерживаете задержку в ключе, вы всегда видите, как экран возвращается. – teknopaul 12 May 2017 в 20:14

Я думаю, что это, вероятно, связано с тем, что система считает «пользовательской деятельностью».

Если система обнаруживает активность клавиатуры, она возвращается из сна. Тот факт, что вы нажимаете enter для отправки команды standby силы, считается некоторой «текущей» активностью и поэтому сразу же не засчитывается.

sleep 1 гарантирует, что клавиатура не записала активность за 1 секунду до сна команда отправляется, поэтому режим ожидания продолжается.

0
ответ дан 18 July 2018 в 13:25

Я думаю, что это, вероятно, связано с тем, что система считает «пользовательской деятельностью».

Если система обнаруживает активность клавиатуры, она возвращается из сна. Тот факт, что вы нажимаете enter для отправки команды standby силы, считается некоторой «текущей» активностью и поэтому сразу же не засчитывается.

sleep 1 гарантирует, что клавиатура не записала активность за 1 секунду до сна команда отправляется, поэтому режим ожидания продолжается.

0
ответ дан 24 July 2018 в 20:10
  • 1
    Есть потенциально 2 события человеческой деятельности, возникающие при нажатии клавиши ввода. key down, comand run, key up. Если вы задерживаете задержку в ключе, вы всегда видите, как экран возвращается. – teknopaul 12 May 2017 в 20:14

Другие вопросы по тегам:

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