まずシェルスクリプトって何?というやつですが、複数の処理を連続実行するものです。
Windowsの前身、MS-DOSでいうAUTOEXEC.BATといったバッチファイルってやつ。
便利なコマンドがたくさんあり、全部を把握しているわけじゃないのですが
自分がやりたいことを複数のコマンドを組み合わせて実現することができます。


xrandr
http://ja.wikipedia.org/wiki/XRandR
これで画面を回転させたりできます。

これを引数なしで実行すると、現在の状態が表示されます。私の環境だと、
$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096
LVDS1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 246mm x 185mm
1024x768 50.0*+ 60.0 40.0
800x600 60.3 56.2
640x480 60.0 59.9
VGA1 disconnected (normal left inverted right x axis y axis)

こんな感じ。
もっと大きなディスプレイ、もっと性能の良いものならもっとたくさん出てくるでしょう。


で。
$ xrandr -o right
とかってやると、画面が横向き(縦長)になって2行目の1024x768という数値が768x1024になります。
$ xrandr -o normal
これで元通り。


ふむ。
実行名は一緒で、プログラムが画面の状態を読み取ってどちらに向けるか判断する、
そんなシェルスクリプトがほしいなぁ。
実現するかどうかはおいといて、なにかがほしいと考える、この発想ってとても大切だと思います。
そして作ったのが下記のxrandr_nr.shです。
normalとrightのトグルだからnrね。どうでもいいけど。


xrandr_nr.sh
---------------------------------------------------------------------------
#!/bin/bash
# xrandr normal <-> right

#画面サイズ取得
displaysize=`xrandr | awk 'NR==2' | awk '{print $3}'`
tate=`echo ${displaysize} | sed -e 's/^[^x]*.//' | sed -e 's/\+.*$//'`
yoko=`echo ${displaysize} | sed -e 's/[x].*//'`

#トグル判別
if [ ${tate} -le ${yoko} ] ;then
xrandr -o right
else
xrandr -o normal
fi
---------------------------------------------------------------------------


xrandr | awk 'NR==2'
これで必要な2行目だけが取り出せますが、まだ必要のないものもある。
xrandr | awk 'NR==2' | awk '{print $3}'
2行目だけ、要素の3つ目だけという組み合わせ。
これで
1024x768+0+0
という文字だけ取り出せます。

yokoはx行頭からxが出てくるまで。これは簡単。
tateは行頭からxまでが不要、+から行末までも不要。
もっとシンプルな方法があるのかも知れないけどねー。

で、tateとyokoの数値を比較して分岐。
これで実行するたびに状態を勝手に読み取って、必ず現在と違う向きにしてくれます。
xrandr_nr.shに実行権限を与えてthunarからダブルクリックでぐるぐる。いいねー。
rightが嫌ならleftでも。お好みで。


ちょっと前までシェルスクリプトなんてさっぱり分からなかったんですけどねー。
そこそこ出来るようになった気がします。
上手な人から見れば不恰好なんだろうけどね。(^^;
Windowsならフリーソフトを探すところ。
LinuxならCUIでコマンドをもりもり打ち込んでなんぼ…というのも面倒。(笑
ぬるLinux使いですね。(笑




Linux、Windows、Macの熱狂的な各ユーザーがお互いをどのように見ているのかを表した図
http://gigazine.net/news/20091221_linux_windows_mac/

八方美人じゃないけど、私はどれも好きだからなぁ。(笑