Advertisement
Guest User

Untitled

a guest
Apr 10th, 2010
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. # from http://www.thinkwiki.org/wiki/Xorg_RandR_1.2
  2. # and http://www.thinkwiki.org/wiki/Sample_Fn-F7_script
  3.  
  4. INTERNAL_OUTPUT="LVDS"
  5. EXTERNAL_OUTPUT1="HDMI-0"
  6. EXTERNAL_OUTPUT2="VGA-0"
  7. EXTERNAL_LOCATION="above"
  8.  
  9. case "$EXTERNAL_LOCATION" in
  10. left|LEFT)
  11. EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
  12. ;;
  13. right|RIGHT)
  14. EXTERNAL_LOCATION="--right-of $INTERNAL_OUTPUT"
  15. ;;
  16. top|TOP|above|ABOVE)
  17. EXTERNAL_LOCATION="--above $INTERNAL_OUTPUT"
  18. ;;
  19. bottom|BOTTOM|below|BELOW)
  20. EXTERNAL_LOCATION="--below $INTERNAL_OUTPUT"
  21. ;;
  22. *)
  23. EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT"
  24. ;;
  25. esac
  26.  
  27. # Figure out current state
  28. INTERNAL_STATE=$(xrandr | grep ^$INTERNAL_OUTPUT | grep " con" | sed "s/.*connected//" | sed "s/ //" | sed "s/ .*//g"| sed "s/(normal//g" )
  29. EXTERNAL_STATE=$(xrandr | grep ^$EXTERNAL_OUTPUT2 | grep "disconnected" )
  30. if [ -z "$EXTERNAL_STATE" ]; then
  31. EXTERNAL_OUTPUT=$EXTERNAL_OUTPUT2
  32. xrandr --output $EXTERNAL_OUTPUT1 --off
  33. else
  34. EXTERNAL_OUTPUT=$EXTERNAL_OUTPUT1
  35. xrandr --output $EXTERNAL_OUTPUT2 --off
  36. fi
  37. EXTERNAL_STATE=$(xrandr | grep ^$EXTERNAL_OUTPUT | grep " con" | sed "s/.*connected//" | sed "s/ //" | sed "s/ .*//g"| sed "s/(normal//g" )
  38.  
  39. if [ -z "$INTERNAL_STATE" ]; then
  40. STATE="external"
  41. elif [ -z "$EXTERNAL_STATE" ]; then
  42. STATE="internal"
  43. else
  44. INTERNAL_STATE=$(echo $INTERNAL_STATE | sed "s/[0-9]*x[0-9]*//")
  45. EXTERNAL_STATE=$(echo $EXTERNAL_STATE | sed "s/[0-9]*x[0-9]*//")
  46. if [ "$INTERNAL_STATE" = "$EXTERNAL_STATE" ]; then
  47. STATE="mirror"
  48. else
  49. STATE="both"
  50. fi
  51. fi
  52.  
  53. # Set new state
  54. case "$STATE" in
  55. internal)
  56. # both
  57. xrandr --output $INTERNAL_OUTPUT --auto
  58. xrandr --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION
  59. ;;
  60. both)
  61. # external
  62. xrandr --output $INTERNAL_OUTPUT --off
  63. xrandr --output $EXTERNAL_OUTPUT --auto
  64. ;;
  65. external)
  66. # mirror
  67. xrandr --output $INTERNAL_OUTPUT --auto
  68. xrandr --output $EXTERNAL_OUTPUT --auto --same-as $INTERNAL_OUTPUT
  69. ;;
  70. mirror)
  71. # internal
  72. xrandr --output $EXTERNAL_OUTPUT --off
  73. xrandr --output $INTERNAL_OUTPUT --auto
  74. ;;
  75. *)
  76. # internal
  77. xrandr --output $EXTERNAL_OUTPUT --off
  78. xrandr --output $INTERNAL_OUTPUT --auto
  79. ;;
  80. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement