特殊:Badtitle/NS100:BinaryDriverHowto/DynamicMultiMonitor:修订间差异
小 以内容'{{From|https://help.ubuntu.com/community/BinaryDriverHowto/DynamicMultiMonitor}} {{Languages|UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor}} {{https://help.ubuntu.com/co…'创建新页面 |
小无编辑摘要 |
||
第1行: | 第1行: | ||
{{From|https://help.ubuntu.com/community/BinaryDriverHowto/DynamicMultiMonitor}} | {{From|https://help.ubuntu.com/community/BinaryDriverHowto/DynamicMultiMonitor}} | ||
{{Languages|UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor}} | {{Languages|UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor}} | ||
https://help.ubuntu.com/community/IconsPage?action=AttachFile&do=get&target=info.png Here's a quick little script I wrote to set the proper display when I'm at work. | |||
== The Situation == | == The Situation == | ||
I work at three primary places: home, office one, and office two. | I work at three primary places: home, office one, and office two. | ||
At home, I just use my laptop. At office one I have a 22" monitor and at office two I have a 24" monitor. Obviously, the resolutions are different and when I connect to them I want my displays to be set perfectly. | At home, I just use my laptop. At office one I have a 22" monitor and at office two I have a 24" monitor. Obviously, the resolutions are different and when I connect to them I want my displays to be set perfectly. | ||
My laptop is always to the right of my external monitor. Here is a picture of office one's setup: | My laptop is always to the right of my external monitor. Here is a picture of office one's setup: | ||
https://help.ubuntu.com/community/BinaryDriverHowto/DynamicMultiMonitor?action=AttachFile&do=get&target=itm-desktop-layout.jpg%7CMy+Desktop%7Cwidth%3D%22800%22 | |||
As you can see the laptop is to the left and lower than my external monitor. | As you can see the laptop is to the left and lower than my external monitor. | ||
== XRandR To The Rescue! == | == XRandR To The Rescue! == | ||
第12行: | 第12行: | ||
<pre><nowiki>#!java | <pre><nowiki>#!java | ||
#!/bin/sh | #!/bin/sh | ||
# Sets the secondary display to the proper resolution if attached. | # Sets the secondary display to the proper resolution if attached. | ||
LAPTOP="LVDS" | LAPTOP="LVDS" | ||
HAVE_HDMI="`xrandr | grep 'HDMI-0 connected' | wc -l`" | HAVE_HDMI="`xrandr | grep 'HDMI-0 connected' | wc -l`" | ||
HAVE_DFP="`xrandr | grep 'DFP1 connected' | wc -l`" | HAVE_DFP="`xrandr | grep 'DFP1 connected' | wc -l`" | ||
if [ $HAVE_HDMI = "1" ] ; then | if [ $HAVE_HDMI = "1" ] ; then | ||
EXTERNAL_OUTPUT="HDMI-0" | EXTERNAL_OUTPUT="HDMI-0" | ||
elif [ $HAVE_DFP = "1" ] ; then | elif [ $HAVE_DFP = "1" ] ; then | ||
EXTERNAL_OUTPUT="DFP1" | EXTERNAL_OUTPUT="DFP1" | ||
else | else | ||
EXTERNAL_OUTPUT="" | EXTERNAL_OUTPUT="" | ||
fi | fi | ||
AT_OFFICE1="`ifconfig eth0 | grep 'addr:192.168.15.' | wc -l`" | AT_OFFICE1="`ifconfig eth0 | grep 'addr:192.168.15.' | wc -l`" | ||
AT_OFFICE2="`ifconfig eth0 | grep 'addr:10.0.1.' | wc -l`" | AT_OFFICE2="`ifconfig eth0 | grep 'addr:10.0.1.' | wc -l`" | ||
xrandr --output $LAPTOP --preferred | xrandr --output $LAPTOP --preferred | ||
if [ ! -x $EXTERNAL_OUTPUT ] ; then | if [ ! -x $EXTERNAL_OUTPUT ] ; then | ||
if [ $AT_OFFICE2 = "1" ] ; then | if [ $AT_OFFICE2 = "1" ] ; then | ||
xrandr --output $EXTERNAL_OUTPUT --mode "1680x1050" --pos 1600x0 --primary --output $LAPTOP --mode "1600x900" --pos 0x500 | xrandr --output $EXTERNAL_OUTPUT --mode "1680x1050" --pos 1600x0 --primary --output $LAPTOP --mode "1600x900" --pos 0x500 | ||
fi | fi | ||
if [ $AT_OFFICE1 = "1" ] ; then | |||
xrandr --output $EXTERNAL_OUTPUT --mode "1920x1080" --pos 1600x0 --primary --output $LAPTOP --mode "1600x900" --pos 0x500 | if [ $AT_OFFICE1 = "1" ] ; then | ||
fi | xrandr --output $EXTERNAL_OUTPUT --mode "1920x1080" --pos 1600x0 --primary --output $LAPTOP --mode "1600x900" --pos 0x500 | ||
fi | |||
fi | fi | ||
</nowiki></pre> | </nowiki></pre> |
2010年5月19日 (三) 21:41的最新版本
![]() |
文章出处: |
{{#if: | {{{2}}} | https://help.ubuntu.com/community/BinaryDriverHowto/DynamicMultiMonitor }} |
![]() |
点击翻译: |
English {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/af | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|Afrikaans| [[::BinaryDriverHowto/DynamicMultiMonitor/af|Afrikaans]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/ar | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|العربية| [[::BinaryDriverHowto/DynamicMultiMonitor/ar|العربية]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/az | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|azərbaycanca| [[::BinaryDriverHowto/DynamicMultiMonitor/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/bcc | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|جهلسری بلوچی| [[::BinaryDriverHowto/DynamicMultiMonitor/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/bg | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|български| [[::BinaryDriverHowto/DynamicMultiMonitor/bg|български]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/br | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|brezhoneg| [[::BinaryDriverHowto/DynamicMultiMonitor/br|brezhoneg]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/ca | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|català| [[::BinaryDriverHowto/DynamicMultiMonitor/ca|català]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/cs | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|čeština| [[::BinaryDriverHowto/DynamicMultiMonitor/cs|čeština]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/de | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|Deutsch| [[::BinaryDriverHowto/DynamicMultiMonitor/de|Deutsch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/el | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|Ελληνικά| [[::BinaryDriverHowto/DynamicMultiMonitor/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/es | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|español| [[::BinaryDriverHowto/DynamicMultiMonitor/es|español]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/fa | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|فارسی| [[::BinaryDriverHowto/DynamicMultiMonitor/fa|فارسی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/fi | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|suomi| [[::BinaryDriverHowto/DynamicMultiMonitor/fi|suomi]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/fr | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|français| [[::BinaryDriverHowto/DynamicMultiMonitor/fr|français]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/gu | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|ગુજરાતી| [[::BinaryDriverHowto/DynamicMultiMonitor/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/he | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|עברית| [[::BinaryDriverHowto/DynamicMultiMonitor/he|עברית]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/hu | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|magyar| [[::BinaryDriverHowto/DynamicMultiMonitor/hu|magyar]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/id | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|Bahasa Indonesia| [[::BinaryDriverHowto/DynamicMultiMonitor/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/it | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|italiano| [[::BinaryDriverHowto/DynamicMultiMonitor/it|italiano]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/ja | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|日本語| [[::BinaryDriverHowto/DynamicMultiMonitor/ja|日本語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/ko | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|한국어| [[::BinaryDriverHowto/DynamicMultiMonitor/ko|한국어]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/ksh | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|Ripoarisch| [[::BinaryDriverHowto/DynamicMultiMonitor/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/mr | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|मराठी| [[::BinaryDriverHowto/DynamicMultiMonitor/mr|मराठी]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/ms | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|Bahasa Melayu| [[::BinaryDriverHowto/DynamicMultiMonitor/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/nl | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|Nederlands| [[::BinaryDriverHowto/DynamicMultiMonitor/nl|Nederlands]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/no | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|norsk| [[::BinaryDriverHowto/DynamicMultiMonitor/no|norsk]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/oc | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|occitan| [[::BinaryDriverHowto/DynamicMultiMonitor/oc|occitan]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/pl | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|polski| [[::BinaryDriverHowto/DynamicMultiMonitor/pl|polski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/pt | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|português| [[::BinaryDriverHowto/DynamicMultiMonitor/pt|português]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/ro | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|română| [[::BinaryDriverHowto/DynamicMultiMonitor/ro|română]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/ru | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|русский| [[::BinaryDriverHowto/DynamicMultiMonitor/ru|русский]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/si | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|සිංහල| [[::BinaryDriverHowto/DynamicMultiMonitor/si|සිංහල]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/sq | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|shqip| [[::BinaryDriverHowto/DynamicMultiMonitor/sq|shqip]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/sr | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|српски / srpski| [[::BinaryDriverHowto/DynamicMultiMonitor/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/sv | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|svenska| [[::BinaryDriverHowto/DynamicMultiMonitor/sv|svenska]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/th | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|ไทย| [[::BinaryDriverHowto/DynamicMultiMonitor/th|ไทย]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/tr | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|Türkçe| [[::BinaryDriverHowto/DynamicMultiMonitor/tr|Türkçe]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/vi | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|Tiếng Việt| [[::BinaryDriverHowto/DynamicMultiMonitor/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/yue | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|粵語| [[::BinaryDriverHowto/DynamicMultiMonitor/yue|粵語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/zh | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|中文| [[::BinaryDriverHowto/DynamicMultiMonitor/zh|中文]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/zh-hans | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|中文(简体)| [[::BinaryDriverHowto/DynamicMultiMonitor/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor | {{#if: | :}}BinaryDriverHowto/DynamicMultiMonitor}}/zh-hant | • {{#if: UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|中文(繁體)| [[::BinaryDriverHowto/DynamicMultiMonitor/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:UbuntuHelp:BinaryDriverHowto/DynamicMultiMonitor|:BinaryDriverHowto/DynamicMultiMonitor|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :BinaryDriverHowto/DynamicMultiMonitor/zh | | {{#ifexist: BinaryDriverHowto/DynamicMultiMonitor/zh | | {{#ifeq: {{#titleparts:BinaryDriverHowto/DynamicMultiMonitor|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:BinaryDriverHowto/DynamicMultiMonitor|1|-1|}} | zh | | }}
Here's a quick little script I wrote to set the proper display when I'm at work.
The Situation
I work at three primary places: home, office one, and office two. At home, I just use my laptop. At office one I have a 22" monitor and at office two I have a 24" monitor. Obviously, the resolutions are different and when I connect to them I want my displays to be set perfectly. My laptop is always to the right of my external monitor. Here is a picture of office one's setup: https://help.ubuntu.com/community/BinaryDriverHowto/DynamicMultiMonitor?action=AttachFile&do=get&target=itm-desktop-layout.jpg%7CMy+Desktop%7Cwidth%3D%22800%22 As you can see the laptop is to the left and lower than my external monitor.
XRandR To The Rescue!
XRandR is a powerful little utility, and with the proper amount of psychology, and extreme violence, I was able to have it do my bidding. What follows is the small shell script I wrote to control, dynamically, the external monitor settings.
#!java #!/bin/sh # Sets the secondary display to the proper resolution if attached. LAPTOP="LVDS" HAVE_HDMI="`xrandr | grep 'HDMI-0 connected' | wc -l`" HAVE_DFP="`xrandr | grep 'DFP1 connected' | wc -l`" if [ $HAVE_HDMI = "1" ] ; then EXTERNAL_OUTPUT="HDMI-0" elif [ $HAVE_DFP = "1" ] ; then EXTERNAL_OUTPUT="DFP1" else EXTERNAL_OUTPUT="" fi AT_OFFICE1="`ifconfig eth0 | grep 'addr:192.168.15.' | wc -l`" AT_OFFICE2="`ifconfig eth0 | grep 'addr:10.0.1.' | wc -l`" xrandr --output $LAPTOP --preferred if [ ! -x $EXTERNAL_OUTPUT ] ; then if [ $AT_OFFICE2 = "1" ] ; then xrandr --output $EXTERNAL_OUTPUT --mode "1680x1050" --pos 1600x0 --primary --output $LAPTOP --mode "1600x900" --pos 0x500 fi if [ $AT_OFFICE1 = "1" ] ; then xrandr --output $EXTERNAL_OUTPUT --mode "1920x1080" --pos 1600x0 --primary --output $LAPTOP --mode "1600x900" --pos 0x500 fi fi
First a disclaimer: I am no shell script expert.
My laptop's display is called LVDS. My external monitor is DFP1. However, when using the open source ATI drivers, it is called HDMI-0. Since I've been known to switch between the proprietary and open-source drivers, this script handles both. Obviously, if your external display name is different, just change it.
The script queries XRandR for the state of both HDMI-0 and DFP1. If either are in a connected state, the associated variable is set to a value of "1". I never learned sed and awk so I use the poor man's version: grep and wc
.
Since both my monitors are named the same at both offices, I rely on my ethernet connection's IP address to determine where I am. Here I query ifconfig eth0
for the currently assigned IP address. Each office uses a different subnet so I'm safe.
Checking these values, I'm able to determine where I am and what display is connected. Now the fun begins. Well, it's not really fun...
If my external output is connected $EXTERNAL_OUTPUT
I run an XRandR command to set it up the way I like it.
My laptop is 1600x900 at all times. Therefore my external output offset is 1600. This is set in the --pos 1600x0
statement. I also tell XRandR that this is my primary monitor with the --primary
command.
Next, my laptop is always below my external monitor's viewport. I like my virtual space to mimic reality. Therefore I set my laptop display to be 500 pixels below the top of my external monitor's viewport. This is done with the --pos 0x500
in the second half of the XRandR call.
And that is it. I named this script setDisplay.sh
and placed it in my ~/.kde/Autostart
directory.
If you have several users who need to share this script, place it in your /usr/local/bin
directory.
The final step is to make it executable:
#!java jablan@lucifurious:~/.kde/Autostart$ chmod +x ./setDisplay.sh
or, if it's in /usr/local/bin
:
#!java jablan@lucifurious:~/.kde/Autostart$ chmod +x /usr/local/bin/setDisplay.sh