diff options
author | Simon Rettberg | 2017-04-07 14:08:01 +0200 |
---|---|---|
committer | Simon Rettberg | 2017-04-07 14:08:01 +0200 |
commit | aec01fb315d54bbd572e293db9bebe679afba5c4 (patch) | |
tree | 7a2cc434ecbdafe4aec2c19c925b2628940b379a /core/modules/hardware-stats | |
parent | [beamergui] Don't remove spaces from screen model name (diff) | |
download | mltk-aec01fb315d54bbd572e293db9bebe679afba5c4.tar.gz mltk-aec01fb315d54bbd572e293db9bebe679afba5c4.tar.xz mltk-aec01fb315d54bbd572e293db9bebe679afba5c4.zip |
[hardware-stats] Report screen meta data
Diffstat (limited to 'core/modules/hardware-stats')
-rw-r--r-- | core/modules/hardware-stats/data/etc/X11/Xsetup.d/99-detect-screens | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/core/modules/hardware-stats/data/etc/X11/Xsetup.d/99-detect-screens b/core/modules/hardware-stats/data/etc/X11/Xsetup.d/99-detect-screens new file mode 100644 index 00000000..879cfe96 --- /dev/null +++ b/core/modules/hardware-stats/data/etc/X11/Xsetup.d/99-detect-screens @@ -0,0 +1,39 @@ +#!/bin/sh +# XXX: This file is actually sourced, so the shebang above doesn't do anything. +# Thus we explicitly call bash below to get our echo -e -n support + +( +bash <<"HEREDOC" + + mkdir -p "/run/openslx" + [ -f "/run/openslx/screen-report-done" ] && exit 0 + touch "/run/openslx/screen-report-done" + + . /opt/openslx/config + [ -z "$SLX_REMOTE_LOG" ] && exit 0 + UUID=$( cat /run/system-uuid ) + [ -z "$UUID" ] && exit 0 + XRANDR=$( mktemp ) + TMP=$( mktemp ) + TF=$( mktemp ) + xrandr --verbose > "$XRANDR" + + OUTPUTNAMES=$( < "$XRANDR" grep -E "[[:digit:]]+mm x [[:digit:]]+mm" | awk '{print $1}' ) + + declare -a POSTDATA + for output in ${OUTPUTNAMES}; do + < "$XRANDR" grep -Pzo "\n${output}\N*connected\N*\n(\s+\N*\n)+" > "$TMP" + echo -e -n "$( < "$TMP" grep -Eao '[0-9a-f]{32}' | sed -r ':a;N;$!ba;s/[^0-9a-f]//gI;s/([0-9a-f]{2})/\\x\1/gI' )" > "$TF" + MODEL_NAME=$( < "$TF" parse-edid | grep -m 1 -E '^\s*ModelName' | sed -r 's/^[^"]*"(.*)"[^"]*$/\1/;s/^\s+//;s/\s+$//' ) + NATIVE_RES=$( < "$TMP" grep -Fa ' +preferred' | awk '{print $1}' ) + POSTDATA+=( "-dscreen[${output}][name]=${MODEL_NAME}" "-dscreen[${output}][resolution]=${NATIVE_RES}" ) + done + + rm -f -- "$TF" "$XRANDR" "$TMP" + curl --data "uuid=$UUID" --data "type=~screens" "${POSTDATA[@]}" "$SLX_REMOTE_LOG" + +HEREDOC +) & + +true + |