0815burner
Commander
- Registriert
- Nov. 2006
- Beiträge
- 2.689
H,
ich nutze Lubuntu und bin fleißig am "Individualisieren". Nun habe ich einen tolles Skript gefunden, das auch bei mir funktioniert:
http://sgaul.de/2011/08/20/zwischen-monitor-und-fernseher-hin-und-herschalten/
Nun dachte ich mir, ändere ich die Funktion ab, so dass entweder beide Monitore an sind (Erweitert, extern ist links von Intern) oder eben nur der Externe läuft. Das Ziel zu definieren war ja noch einfach;-)
Jetzt habe ich ein wenig gelesen, kam aber nicht weiter, da ich vieles nicht verstehe..
Im Moment ist das mein Stand, der aber nicht funktioniert:
Ich möchte die Funktion xrandr ausführen und dort den Zustand des externen Monitors auslesen. Dementsprechend will ich dann die Monitore schalten. Die variable Namensübergabe der Monitore habe ich in der IF-Anweisung weggelassen zwecks Fehlervermeidung.
Vielleicht kann mir jmd. auch die ersten beiden If-Anweisungen erläutern: Die erste liest doch "nur" den Nutzernamen aus, sodass ich später einen Befehl ausführen kann innerhab der Bedingung?
Quasi so:
-> ($SU xrandr | grep ^$INTERNAL_OUTPUT...
Die zweite (ausgeklammerte) liest den Zusatnd, aber was machen die ganzen sed-Anweisungen??
Im sehr guten ubuntuuser-Wiki wurde ich in diesem Fall leider nicht schlauer/ schlau genug.
Danke schon mal fürs lesen und vielleicht sogar für die Hilfe!
ich nutze Lubuntu und bin fleißig am "Individualisieren". Nun habe ich einen tolles Skript gefunden, das auch bei mir funktioniert:
http://sgaul.de/2011/08/20/zwischen-monitor-und-fernseher-hin-und-herschalten/
Nun dachte ich mir, ändere ich die Funktion ab, so dass entweder beide Monitore an sind (Erweitert, extern ist links von Intern) oder eben nur der Externe läuft. Das Ziel zu definieren war ja noch einfach;-)
Jetzt habe ich ein wenig gelesen, kam aber nicht weiter, da ich vieles nicht verstehe..
Im Moment ist das mein Stand, der aber nicht funktioniert:
Code:
#!/bin/bash
EXTERNAL_OUTPUT="VGA1"
INTERNAL_OUTPUT="LVDS1"
X_USER=$(w -h -s | grep ":[0-9]\W" | head -1 | awk '{print $1}')
export DISPLAY=$(w -h -s | grep ":[0-9]\W" | head -1 | awk '{print $3}')
# Switch to X user if necessary
if [ "$X_USER" != "$USER" ]; then
SU="su $X_USER -c"
else
SU="sh -c"
fi
#INTERNAL_STATE=$($SU xrandr | grep ^$INTERNAL_OUTPUT | grep " con" | sed "s/.*connected//" | sed "s/ //" | sed "s/ .*//g"| sed "s/(normal//g" )
#EXTERNAL_STATE=$($SU xrandr | grep ^$EXTERNAL_OUTPUT | grep " con" | sed "s/.*connected//" | sed "s/ //" | sed "s/ .*//g"| sed "s/(normal//g" )
if [ xrandr | grep 'LVDS1 connected' ]; then
INTERNAL_STATE=True
elif [xrandr | grep 'LVDS1 connected' ]; then
INTERNAL_STATE=False
else echo "Bearbeitungsfehler"
fi
echo "Umschaltbedingung: $INTERNAL_STATE"
if [ INTERNAL_STATE==1 ]; then
echo "2 Monitorbetrieb"
xrandr --output $EXTERNAL_OUTPUT --auto --left-of $INTERNAL_OUTPUT --output $INTERNAL_OUTPUT --auto
elif [ INTERNAL_STATE==0 ]; then
echo "1 Monitorbetrieb"
xrandr --output $EXTERNAL_OUTPUT --auto --output $INTERNAL_OUTPUT --off
fi
Ich möchte die Funktion xrandr ausführen und dort den Zustand des externen Monitors auslesen. Dementsprechend will ich dann die Monitore schalten. Die variable Namensübergabe der Monitore habe ich in der IF-Anweisung weggelassen zwecks Fehlervermeidung.
Vielleicht kann mir jmd. auch die ersten beiden If-Anweisungen erläutern: Die erste liest doch "nur" den Nutzernamen aus, sodass ich später einen Befehl ausführen kann innerhab der Bedingung?
Quasi so:
-> ($SU xrandr | grep ^$INTERNAL_OUTPUT...
Die zweite (ausgeklammerte) liest den Zusatnd, aber was machen die ganzen sed-Anweisungen??
Im sehr guten ubuntuuser-Wiki wurde ich in diesem Fall leider nicht schlauer/ schlau genug.
Danke schon mal fürs lesen und vielleicht sogar für die Hilfe!