Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
> xrandr Screen 0: minimum 320 x 200, current 2048 x 768, maximum 2048 x 1024 VGA connected 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm 1024x768 75.0*+ 74.9 75.1 70.1 60.0 832x624 74.6 800x600 75.0 74.9 60.3 56.2 640x480 75.0 74.8 66.7 60.0 720x400 70.1 LVDS connected 1024x768+1024+0 (normal left inverted right x axis y axis) 286mm x 214mm 1024x768 60.0*+ 50.0 800x600 60.3 640x480 59.9 TMDS-1 disconnected (normal left inverted right x axis y axis) |
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »linuxerr« (02.05.2010, 22:51)
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BorneBjoern« (03.05.2010, 00:12)
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#!/bin/bash SCREEN=(); SCREENNR=""; SCREENVAR=""; SCREENLEN=0; function scan(){ local DUMMY DEVICE; while read LINE do case "$LINE" in Screen\ *:\ *) DUMMY="${LINE#Screen\ }" SCREENNR="${DUMMY%%:*}" SCREEN[${SCREENNR}]="320x200" echo "Screenzeile ${SCREENNR}" ;; *\ connected\ *) DEVICE="${LINE%%\ connected*}" echo "${DEVICE} is on" ;; *\ disconnected\ *) DEVICE="${LINE%%\ disconnected*}" echo "${DEVICE} is off" ;; [0-9][0-9][0-9]*x[0-9][0-9][0-9]*) MODE="${LINE%%\ *}" SCREEN[${SCREENLEN}]=" SCREEN ${SCREENNR}\t DEVICE ${DEVICE}\t MODE ${MODE}" let "SCREENLEN= SCREENLEN + 1" SCREEN[${SCREENLEN}]=" --output ${DEVICE} --mode ${MODE} --screen ${SCREENNR}" let "SCREENLEN= SCREENLEN + 1" echo "ModeLine Mode=${MODE} (${LINE})" ;; *) #echo $LINE | od -c echo "Zeile $LINE unbekannt!" ;; esac done < <( xrandr ) } scan for X in $( seq 0 2 ${SCREENLEN} ) do echo -e "${SCREEN[$X]}" done |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »linuxerr« (03.05.2010, 20:34)
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
#!/bin/bash SCREEN=(); SCREENNR=""; SCREENVAR=""; SCREENLEN=0; function scan(){ local DUMMY DEVICE; while read LINE do case "$LINE" in Screen\ *:\ *) DUMMY="${LINE#Screen\ }" SCREENNR="${DUMMY%%:*}" SCREEN[${SCREENNR}]="320x200" echo "Screenzeile ${SCREENNR}" ;; *\ connected\ *) DEVICE="${LINE%%\ connected*}" echo "${DEVICE} is on" ;; *\ disconnected\ *) DEVICE="${LINE%%\ disconnected*}" echo "${DEVICE} is off" ;; [0-9][0-9][0-9]*x[0-9][0-9][0-9]*) MODE="${LINE%%\ *}" SCREEN[${SCREENLEN}]="SCREEN:${SCREENNR}_DEVICE:${DEVICE}_MODE:${MODE}" let "SCREENLEN= SCREENLEN + 1" SCREEN[${SCREENLEN}]=" --output ${DEVICE} --mode ${MODE} --screen ${SCREENNR}" let "SCREENLEN= SCREENLEN + 1" echo "ModeLine Mode=${MODE} (${LINE})" ;; *) #echo $LINE | od -c echo "Zeile $LINE unbekannt!" ;; esac done < <( xrandr ) } scan DSTRING="" X=0 COUNT=0 for X in $( seq 0 2 $((SCREENLEN-1)) ) do DSTRING="${DSTRING} ${COUNT} ${SCREEN[$X]}" let "COUNT=COUNT + 1" done if RESULT="$( dialog --title Videomodi --menu TEST 20 70 15 ${DSTRING} 3>&1 1>&2 2>&3 3>&- )"; then echo $RESULT let "RESULT= RESULT + RESULT + 1" XRANDROPT="${SCREEN[$RESULT]}" xrandr ${XRANDROPT} fi |
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Zitat
Original von BorneBjoern
hmm ich wollte nicht, dass jemand mir die Loesung auf einem Silbertablett serviert.
Zitat
Auch auf die Gefahr hin, dass meine Fragen sich als zu elementar erweisen, ist stelle sie trotzdem:
Zitat
- hat die Variablendefinition SCREEN=() zur Folge?
Zitat
- warum DUMMY="${LINE#Screen\ } Bezeichnet das die Zeile, die mit Screen beginnt? Wenn ja, warum # und nicht ^?
Zitat
- die doppelten %% bei SCREENNR="${DUMMY%%:*}" Ich habe absolut keine Ahnung, aber ich vermute ein Array.
Zitat
Aber, ich habe auch was verstanden, was ich schon laenger zu verstehen versucht habe. SCREEN[${SCREENLEN}] ergibt eine variable Variable, welche hochzaehlt.
Zitat
Danke dir fuer dein Script und die damit verbundenen Anstoesze.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »linuxerr« (04.05.2010, 00:53)
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
#!/bin/bash SCREEN=(); SCREENLEN=0; function scan(){ local DUMMY DEVICE SCREENNR RETURN; RETURN=0 SCREEN=() SCREENLEN=0 while read LINE do case "$LINE" in Can\'t\ open\ display) RETURN=1 ;; Screen\ *:\ *) DUMMY="${LINE#Screen\ }" SCREENNR="${DUMMY%%:*}" SCREEN[${SCREENNR}]="320x200" echo "Screenzeile ${SCREENNR}" ;; *\ connected\ *) DEVICE="${LINE%%\ connected*}" echo "${DEVICE} is on" SCREEN[${SCREENLEN}]="SCREEN:${SCREENNR}_DEVICE:${DEVICE}_off" let "SCREENLEN= SCREENLEN + 1" SCREEN[${SCREENLEN}]=" --output ${DEVICE} --off --screen ${SCREENNR}" let "SCREENLEN= SCREENLEN + 1" ;; *\ disconnected\ *) DEVICE="${LINE%%\ disconnected*}" echo "${DEVICE} is off" ;; [0-9][0-9][0-9]*x[0-9][0-9][0-9]*[\ ]**[0-9]*\.[0-9]\**) MODE="${LINE%%\ *}" SCREEN[${SCREENLEN}]="SCREEN:${SCREENNR}_DEVICE:${DEVICE}_MODE:${MODE}_aktiv" let "SCREENLEN= SCREENLEN + 1" SCREEN[${SCREENLEN}]=" --output ${DEVICE} --mode ${MODE} --screen ${SCREENNR}" let "SCREENLEN= SCREENLEN + 1" echo "ModeLine Mode=${MODE} (${LINE})" ;; [0-9][0-9][0-9]*x[0-9][0-9][0-9]*) MODE="${LINE%%\ *}" SCREEN[${SCREENLEN}]="SCREEN:${SCREENNR}_DEVICE:${DEVICE}_MODE:${MODE}" let "SCREENLEN= SCREENLEN + 1" SCREEN[${SCREENLEN}]=" --output ${DEVICE} --mode ${MODE} --screen ${SCREENNR}" let "SCREENLEN= SCREENLEN + 1" echo "ModeLine Mode=${MODE} (${LINE})" ;; *) #echo $LINE | od -c echo "Zeile $LINE unbekannt!" ;; esac done < <( xrandr 2>&1 ) return $RETURN } if scan ; then EXIT=0 while [ "${EXIT}" = "0" ] do DSTRING="" X=0 COUNT=0 for X in $( seq 0 2 $((SCREENLEN-1)) ) do DSTRING="${DSTRING} ${COUNT} ${SCREEN[$X]}" let "COUNT=COUNT + 1" done NEWSCAN="${COUNT}" DSTRING="${DSTRING} ${NEWSCAN} Neuscan " if RESULT="$( dialog --title Videomodi --menu F\.Schlaefendorf\ \(C\)2010 20 70 15 ${DSTRING} 3>&1 1>&2 2>&3 3>&- )"; then echo $RESULT if [ "${RESULT}" = "${NEWSCAN}" ]; then if scan ; then EXIT=0 else EXIT=1 fi else let "RESULT= RESULT + RESULT + 1" XRANDROPT="${SCREEN[$RESULT]}" xrandr ${XRANDROPT} scan fi else EXIT=1 fi done else echo "Kein X-Window gefunden!" fi |
Benutzerinformationen überspringen
Prof. Dr. Schlaumeier
Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
#!/bin/bash SCREEN=(); SCREENLEN=0; XRANDR="/usr/bin/xrandr" if [ -x /usr/bin/Xdialog ]; then TDIALOG="/usr/bin/Xdialog" elif [ -x /usr/bin/dialog ]; then TDIALOG="/usr/bin/dialog" else echo "Kein dialog gefunden!" exit 1 fi function scan(){ local DUMMY DEVICE SCREENNR RETURN; RETURN=0 SCREEN=() SCREENLEN=0 while read LINE do case "$LINE" in Can\'t\ open\ display) RETURN=1 ;; Screen\ *:\ *) DUMMY="${LINE#Screen\ }" SCREENNR="${DUMMY%%:*}" ;; *\ connected\ *) DEVICE="${LINE%%\ connected*}" #echo "${DEVICE} is on" SCREEN[${SCREENLEN}]="SCREEN:${SCREENNR}_DEVICE:${DEVICE}_off" let "SCREENLEN= SCREENLEN + 1" SCREEN[${SCREENLEN}]=" --output ${DEVICE} --off --screen ${SCREENNR}" let "SCREENLEN= SCREENLEN + 1" ;; *\ disconnected\ *) DEVICE="${LINE%%\ disconnected*}" #echo "${DEVICE} is off" ;; [0-9][0-9][0-9]*x[0-9][0-9][0-9]*[\ ]**[0-9]*\.[0-9]\**) MODE="${LINE%%\ *}" SCREEN[${SCREENLEN}]="SCREEN:${SCREENNR}_DEVICE:${DEVICE}_MODE:${MODE}_aktiv" let "SCREENLEN= SCREENLEN + 1" SCREEN[${SCREENLEN}]=" --output ${DEVICE} --mode ${MODE} --screen ${SCREENNR}" let "SCREENLEN= SCREENLEN + 1" # echo "ModeLine Mode=${MODE} (${LINE})" ;; [0-9][0-9][0-9]*x[0-9][0-9][0-9]*) MODE="${LINE%%\ *}" SCREEN[${SCREENLEN}]="SCREEN:${SCREENNR}_DEVICE:${DEVICE}_MODE:${MODE}" let "SCREENLEN= SCREENLEN + 1" SCREEN[${SCREENLEN}]=" --output ${DEVICE} --mode ${MODE} --screen ${SCREENNR}" let "SCREENLEN= SCREENLEN + 1" # echo "ModeLine Mode=${MODE} (${LINE})" ;; *) # echo $LINE | od -c echo "Zeile $LINE unbekannt!" ;; esac done < <( ${XRANDR} 2>&1 ) return $RETURN } if scan ; then EXIT=0 while [ "${EXIT}" = "0" ] do DSTRING="" X=0 COUNT=0 for X in $( seq 0 2 $((SCREENLEN-1)) ) do DSTRING="${DSTRING} ${COUNT} ${SCREEN[$X]}" let "COUNT=COUNT + 1" done NEWSCAN="${COUNT}" DSTRING="${DSTRING} ${NEWSCAN} Neuscan " if RESULT="$( ${TDIALOG} --title Videomodi --menu F\.Schlaefendorf\ \(C\)2010 20 70 15 ${DSTRING} 3>&1 1>&2 2>&3 3>&- )"; then # echo $RESULT if [ "${RESULT}" = "${NEWSCAN}" ]; then if scan ; then EXIT=0 else EXIT=1 fi else let "RESULT= RESULT + RESULT + 1" XRANDROPT="${SCREEN[$RESULT]}" ${XRANDR} ${XRANDROPT} scan fi else EXIT=1 fi done else echo "Kein X-Window gefunden!" fi |