Created
April 29, 2021 07:53
-
-
Save Canx/db2692a29e399ee7e2c97aebd837f4c0 to your computer and use it in GitHub Desktop.
Parche para que funcione el control de epoptes en el login en Lliurex19. Sustituir get-display en /usr/share/epoptes-client en clientes. Ver líneas 52-55.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
########################################################################### | |
# Output DISPLAY and XAUTHORITY for the current user's X screen. | |
# A root user can then use those to access the user's display. | |
# Usage: export $(get-display) | |
# | |
# Copyright (C) 2012 Alkis Georgopoulos <[email protected]> | |
# | |
# This program is free software: you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published by | |
# the Free Software Foundation, either version 3 of the License, or | |
# (at your option) any later version. | |
# | |
# This program is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
# GNU General Public License for more details. | |
# | |
# You should have received a copy of the GNU General Public License | |
# along with this program. If not, see <http://www.gnu.org/licenses/>. | |
# | |
# On Debian GNU/Linux systems, the complete text of the GNU General | |
# Public License can be found in `/usr/share/common-licenses/GPL'. | |
########################################################################### | |
exit_if_found() { | |
# Check if DISPLAY/XAUTHORITY are valid. | |
# XAUTHORITY may even be empty, in which case it must not be exported. | |
test -n "$DISPLAY" || return | |
export DISPLAY XAUTHORITY | |
test -n "$XAUTHORITY" || unset XAUTHORITY | |
if xwininfo -root -size >/dev/null 2>&1; then | |
echo "DISPLAY=$DISPLAY" | |
test -n "$XAUTHORITY" && echo "XAUTHORITY=$XAUTHORITY" | |
exit 0 | |
else | |
unset DISPLAY XAUTHORITY | |
fi | |
} | |
# Plan A: check if the variables are already set | |
exit_if_found | |
# Plan B: check if we can get the info from some running process | |
for p in $(pgrep -x 'ldm|gdmgreeter|kdm_greet|lxdm-greeter-gt|dbus-daemon'); do | |
# The first DISPLAY= is only there to prevent a possible syntax error | |
export DISPLAY="$DISPLAY" $(tr '\0' '\n' 2>/dev/null < /proc/$p/environ | | |
egrep '^DISPLAY=|^XAUTHORITY=') | |
exit_if_found | |
done | |
# Plan B2 (by Canx): test sddm Xauthority file if not logged in | |
XAUTHORITY="$(/usr/bin/find /var/run/sddm/ -type f)" | |
DISPLAY=":0" | |
exit_if_found | |
# Plan C: try ck-list-sessions | |
while read var equals value; do | |
case "$var" in | |
Session*) | |
unset USER DISPLAY XAUTHORITY | |
;; | |
unix-user) | |
value=${value%\'} | |
USER=${value#\'} | |
;; | |
x11-display) | |
value=${value%\'} | |
DISPLAY=${value#\'} | |
if [ -n "$DISPLAY" ]; then | |
XAUTHORITY="$(getent passwd "$USER" | cut -d: -f6)/.Xauthority" | |
exit_if_found | |
fi | |
;; | |
esac | |
done <<EOF | |
$(ck-list-sessions) | |
EOF | |
# Plan D: give up! | |
echo "Could not detect or access the active display" >&2 | |
echo "DISPLAY= | |
XAUTHORITY=" | |
exit 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment