Предотвращение пробуждения дисплея мышью (тестирование пользовательского интерфейса)

Еще один заезд на этой старой лошадке:

function random_free_tcp_port {
  local ports="${1:-1}" interim="${2:-2048}" spacing=32
  local free_ports=( )
  local taken_ports=( $( netstat -aln | egrep ^tcp | fgrep LISTEN |
                         awk '{print $4}' | egrep -o '[0-9]+$' |
                         sort -n | uniq ) )
  interim=$(( interim + (RANDOM % spacing) ))

  for taken in "${taken_ports[@]}" 65535
  do
    while [[ $interim -lt $taken && ${#free_ports[@]} -lt $ports ]]
    do
      free_ports+=( $interim )
      interim=$(( interim + spacing + (RANDOM % spacing) ))
    done
    interim=$(( interim > taken + spacing
                ? interim
                : taken + spacing + (RANDOM % spacing) ))
  done

  [[ ${#free_ports[@]} -ge $ports ]] || return 2

  printf '%d\n' "${free_ports[@]}"
}

В этом коде используются исключительно переносимые коды netstat, egrep, awkи др. Обратите внимание, что для внешних команд выдается только вызов, чтобы получить список занятых портов в начале. Можно запросить один или несколько свободных портов:

:;  random_free_tcp_port
2070
:;  random_free_tcp_port 2
2073
2114

и начать с произвольного порта:

:;  random_free_tcp_port 2 10240
10245
10293
0
08.10.2019, 11:00
1 ответ

Это то, что я использую каждый день, которое проходит через обычный драйвер X11, а не через VGA BIOS, root-доступ не требуется:

xrandr --output LVDS1 --off
  • Если ваш дисплей не является встроенным -ЖК-экраном, замените LVDS1соответствующим портом из простой команды xrandrбез параметров. Обычно это что-то вроде VGA1, HDMI1или DP1.

Это не переводит экран в режим ожидания в смысле энергосбережения в стиле DPMS -; он фактически отключает указанный видеовыход и отсоединяет его от вашего сервера отображения.

Побочным эффектом этого безголового состояния является то, что ваш «рабочий стол» сожмется до крошечного размера; около 320x200 пикселей; Вы можете нажать клавишу PrintScreen , чтобы увидеть, как это выглядит. Вероятно, это не сработает для ваших юзабилити-тестов, так что...


Для предотвращения усадки; добавить опцию --fbдля установки размера виртуального «рабочего стола» после отключения видеовыхода:

xrandr --output LVDS1 --off --fb 1024x768
  • Замените LVDS1соответствующим выходным портом и 1024x768вашим текущим разрешением.

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

Когда вы захотите вернуться, повторно -включите свой выход:

xrandr --output LVDS1 --auto
  • Замените LVDS1соответствующим выходным портом.
  • Это установит вывод на по умолчанию монитор -родное разрешение. Если вы хотите восстановить его до определенного разрешения, замените --autoчем-то вроде--mode 1024x768(замените 1024x768на желаемое разрешение ).

П.С. Мой ответ проверен на Debian 7.0 32 -битная система GNU / Linux, сервер отображения Xorg 1.12.4, графика Intel i915.

1
28.04.2021, 23:28

Теги

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