VGA väljundi lülitamine Fn klahviga
Moderaator: Moderaatorid
- VoxAmantis
- Pingviini külastaja

- Postitusi: 18
- Liitunud: 19.09.2008, 19:37
VGA väljundi lülitamine Fn klahviga
Seltsimehed, kuidas saada Mandriva 2010.0 ja KDE 4.3 all toimima kuvari ja VGA väljundi ümberlülitus Fn+F5 klahvikombinatsiooniga ? Kurinahk tahab muidu VGA aktiveerimiseks uuesti sisselogimist. Graka on Intel Mobile 915GM.
Sapöörilabidat ja pisargaasi ingliskeelsele elajaskonnale !
- VoxAmantis
- Pingviini külastaja

- Postitusi: 18
- Liitunud: 19.09.2008, 19:37
- VoxAmantis
- Pingviini külastaja

- Postitusi: 18
- Liitunud: 19.09.2008, 19:37
Sain klahvikominatsiooni läbi häda toimima. Mis häirib:
1) kombinatsiooni toimimiseks peab väline ekraan olema ühendatud juba alglaadimisel;
2) töötava arvutiga välise ekraai ühendamisel tuleb kombinatsiooni aktiveerimiseks esiteks juurikana käivitada käsk /etc/init.d/acpid restart
Järelikult ei oska Inteli grakaga Ordi-risu tuvastada käigult ühendatud monitori ja vastav moodul tuleb juurika õigustes käivitada käsitsi. Kas leidub ka muud, automatiseeritud ja mittejuurikana kasutatavat võimalust ?
etc/acpi/events/Fn-F5
event=video GFX0 00000080 00000000
action=sh /etc/acpi/actions/Fn-F5
etc/acpi/actions/Fn-F5
#!/bin/sh
####!/bin/bash
# External output may be "VGA1"
EXTERNAL_OUTPUT="VGA1"
INTERNAL_OUTPUT="LVDS1"
EXTERNAL_LOCATION="right"
# Figure out which user and X11 display to work on
# TODO there has to be a better way to do this?
X_USER=$(w -h -s | grep ":[0-9]" | head -1 | awk '{print $1}')
export DISPLAY=$(w -h -s | grep ":[0-9]" | head -1 | awk '{print $2}')
# Switch to X user if necessary
if [ "$X_USER" != "$USER" ]; then
SU="su $X_USER -c"
fi
case "$EXTERNAL_LOCATION" in
left|LEFT)
EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
;;
right|RIGHT)
EXTERNAL_LOCATION="--right-of $INTERNAL_OUTPUT"
;;
top|TOP|above|ABOVE)
EXTERNAL_LOCATION="--above $INTERNAL_OUTPUT"
;;
bottom|BOTTOM|below|BELOW)
EXTERNAL_LOCATION="--below $INTERNAL_OUTPUT"
;;
*)
EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
;;
esac
# Figure out current state
INTERNAL_STATE=`xrandr | grep ^$INTERNAL_OUTPUT | grep con | sed "s/.*connected //" | sed "s/(.*//"`
EXTERNAL_STATE=`xrandr | grep ^$EXTERNAL_OUTPUT | grep con | sed "s/.*connected //" | sed "s/(.*//"`
if [ -z "$INTERNAL_STATE" ]; then
STATE="external"
elif [ -z "$EXTERNAL_STATE" ]; then
STATE="internal"
else
INTERNAL_STATE=$(echo $INTERNAL_STATE | sed "s/[0-9]*x[0-9]*//")
EXTERNAL_STATE=$(echo $EXTERNAL_STATE | sed "s/[0-9]*x[0-9]*//")
if [ "$INTERNAL_STATE" = "$EXTERNAL_STATE" ]; then
STATE="mirror"
else
STATE="both"
fi
fi
function screen_external(){
$SU `xrandr --output $INTERNAL_OUTPUT --off`
$SU `xrandr --output $EXTERNAL_OUTPUT --auto`
}
function screen_internal(){
$SU `xrandr --output $EXTERNAL_OUTPUT --off`
$SU `xrandr --output $INTERNAL_OUTPUT --auto`
}
function screen_mirror(){
$SU `xrandr --output $INTERNAL_OUTPUT --auto`
$SU `xrandr --output $EXTERNAL_OUTPUT --auto --same-as $INTERNAL_OUTPUT`
}
function screen_both(){
$SU `xrandr --output $INTERNAL_OUTPUT --auto`
$SU `xrandr --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION`
}
function screen_toggle(){
case "$STATE" in
internal)
screen_mirror
;;
mirror)
screen_external
;;
external)
screen_both
;;
both)
screen_internal
;;
*)
screen_internal
;;
esac
}
# What should we do?
DO="$1"
if [ -z "$DO" ]; then
if [ $(basename $0) = "Fn-F5" ]; then
DO="toggle"
fi
fi
case "$DO" in
toggle)
screen_toggle
;;
internal)
screen_internal
;;
external)
screen_external
;;
mirror)
screen_mirror
;;
both)
screen_both
;;
status)
echo "Current 'screen' state is: $STATE"
echo
echo "Attached monitors:"
$SU xrandr | grep "\Wconnected" | sed "s/^/ /"
;;
*)
echo "usage: $0 <command>" >&2
echo >&2
echo " commands:" >&2
echo " status" >&2
echo " internal" >&2
echo " external" >&2
echo " mirror" >&2
echo " both" >&2
echo " toggle" >&2
echo >&2
;;
esac
1) kombinatsiooni toimimiseks peab väline ekraan olema ühendatud juba alglaadimisel;
2) töötava arvutiga välise ekraai ühendamisel tuleb kombinatsiooni aktiveerimiseks esiteks juurikana käivitada käsk /etc/init.d/acpid restart
Järelikult ei oska Inteli grakaga Ordi-risu tuvastada käigult ühendatud monitori ja vastav moodul tuleb juurika õigustes käivitada käsitsi. Kas leidub ka muud, automatiseeritud ja mittejuurikana kasutatavat võimalust ?
etc/acpi/events/Fn-F5
event=video GFX0 00000080 00000000
action=sh /etc/acpi/actions/Fn-F5
etc/acpi/actions/Fn-F5
#!/bin/sh
####!/bin/bash
# External output may be "VGA1"
EXTERNAL_OUTPUT="VGA1"
INTERNAL_OUTPUT="LVDS1"
EXTERNAL_LOCATION="right"
# Figure out which user and X11 display to work on
# TODO there has to be a better way to do this?
X_USER=$(w -h -s | grep ":[0-9]" | head -1 | awk '{print $1}')
export DISPLAY=$(w -h -s | grep ":[0-9]" | head -1 | awk '{print $2}')
# Switch to X user if necessary
if [ "$X_USER" != "$USER" ]; then
SU="su $X_USER -c"
fi
case "$EXTERNAL_LOCATION" in
left|LEFT)
EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
;;
right|RIGHT)
EXTERNAL_LOCATION="--right-of $INTERNAL_OUTPUT"
;;
top|TOP|above|ABOVE)
EXTERNAL_LOCATION="--above $INTERNAL_OUTPUT"
;;
bottom|BOTTOM|below|BELOW)
EXTERNAL_LOCATION="--below $INTERNAL_OUTPUT"
;;
*)
EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
;;
esac
# Figure out current state
INTERNAL_STATE=`xrandr | grep ^$INTERNAL_OUTPUT | grep con | sed "s/.*connected //" | sed "s/(.*//"`
EXTERNAL_STATE=`xrandr | grep ^$EXTERNAL_OUTPUT | grep con | sed "s/.*connected //" | sed "s/(.*//"`
if [ -z "$INTERNAL_STATE" ]; then
STATE="external"
elif [ -z "$EXTERNAL_STATE" ]; then
STATE="internal"
else
INTERNAL_STATE=$(echo $INTERNAL_STATE | sed "s/[0-9]*x[0-9]*//")
EXTERNAL_STATE=$(echo $EXTERNAL_STATE | sed "s/[0-9]*x[0-9]*//")
if [ "$INTERNAL_STATE" = "$EXTERNAL_STATE" ]; then
STATE="mirror"
else
STATE="both"
fi
fi
function screen_external(){
$SU `xrandr --output $INTERNAL_OUTPUT --off`
$SU `xrandr --output $EXTERNAL_OUTPUT --auto`
}
function screen_internal(){
$SU `xrandr --output $EXTERNAL_OUTPUT --off`
$SU `xrandr --output $INTERNAL_OUTPUT --auto`
}
function screen_mirror(){
$SU `xrandr --output $INTERNAL_OUTPUT --auto`
$SU `xrandr --output $EXTERNAL_OUTPUT --auto --same-as $INTERNAL_OUTPUT`
}
function screen_both(){
$SU `xrandr --output $INTERNAL_OUTPUT --auto`
$SU `xrandr --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION`
}
function screen_toggle(){
case "$STATE" in
internal)
screen_mirror
;;
mirror)
screen_external
;;
external)
screen_both
;;
both)
screen_internal
;;
*)
screen_internal
;;
esac
}
# What should we do?
DO="$1"
if [ -z "$DO" ]; then
if [ $(basename $0) = "Fn-F5" ]; then
DO="toggle"
fi
fi
case "$DO" in
toggle)
screen_toggle
;;
internal)
screen_internal
;;
external)
screen_external
;;
mirror)
screen_mirror
;;
both)
screen_both
;;
status)
echo "Current 'screen' state is: $STATE"
echo
echo "Attached monitors:"
$SU xrandr | grep "\Wconnected" | sed "s/^/ /"
;;
*)
echo "usage: $0 <command>" >&2
echo >&2
echo " commands:" >&2
echo " status" >&2
echo " internal" >&2
echo " external" >&2
echo " mirror" >&2
echo " both" >&2
echo " toggle" >&2
echo >&2
;;
esac
Sapöörilabidat ja pisargaasi ingliskeelsele elajaskonnale !
Väga huvitav. Mul ka inteli mobo ja kasutan väga eduliselt krandtry (või midagi sellist) softi. Nii kui läpaka dokki panen tuleb dialog ette, mis küsib, et kas ma tahan monitori seadistada? Ma kasutan kuigi küll Cookerit ka kus on KDE SC 4.4.0
More than once my wife has asked why I don't do Windows, because that's where the money is. Why don't I just sell drugs or produce porn - there's money in those things, right?



