gdm 起動遅かったので HDMI1 無効にしてる

ThinkPad X220 で Gentoo を使ってるんですけど、以前から gdm の起動がも
のすごく遅かったんですよ。(xdm なら早かった。)

このあたり
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/855124
には phantom output みたいな話があって、(使用されていない) HDMI1が遅い
ので無効化するとひとまずよい、みたいな対処法があったのでためしてみまし
た。

たしかにうちの環境だと xrandr すると、LVDS1 (ノートの液晶)、VGA1、
HDMI1、HDMI2、HDMI3、DP1DP2、DP3 と、でたらめにたくさんの output が
表示されていました。(そして xrandr 自体の結果が返るのにも少しもたつく。)

モニターを外付けで使用するときにはドックを使っていて、そのときの
output は HDMI2 と HDMI3 なので、使用しない HDMI1 と、ついでに DP1
DP3 を /etc/X11/xorg.conf で無効化しました。

# dummy section
Section "Monitor"
  Identifier "HDMI1"
  Option "Ignore" "True"
EndSection
Section "Monitor"
  Identifier "DP1"
  Option "Ignore" "True"
EndSection
Section "Monitor"
  Identifier "DP2"
  Option "Ignore" "True"
EndSection
Section "Monitor"
  Identifier "HDMI1"
  Option "Ignore" "True"
EndSection
Section "Monitor"
  Identifier "DP1"
  Option "Ignore" "True"
EndSection
Section "Monitor"
  Identifier "DP2"
  Option "Ignore" "True"
EndSection
Section "Monitor"
  Identifier "DP3"
  Option "Ignore" "True"
EndSection

これで gdm を再起動すると、起動時のもたつきがまったくなくなりました!

あと、たぶん同じく intel ドライバまわりの問題だと思うんですが、たまに
画面が固まってしまってキーも効かなくなり電源ボタンで落とすしかなくなっ
ていたのですが、その症状もその後は出てないです。(こちらはもう少し様子
を見なくてはいけないかもしれません。)

追記 (2012-05-04)

画面固まる問題については、けっきょくこれではぜんぜん解決されてませんでしたー。

追記 (2012-05-25)

Linuxカーネルを 3.4.0 にしたんですけど、それ以降画面も固まらなくなった気がする。
まだ2、3日だけど。

メニューバーを非表示にする

僕は(今でも) Emacs は横幅80文字で使っているのですが、最近勝手に85文字とかに増えてしまうようになってしまって困っていました。(改行位置が分からなくなる!)

なんなんだろうと思っていたら、どうも Gnus を立ち上げたタイミングで増えてしまっているようで、どうやらメニューバーにメニューが納まらなくなってしまって、表示できるサイズまでフレーム幅が広げられてしまっていたようです。最近 Anything とか YASnippet とか、使うパッケージを増やしたので、その影響なのだと思います。

基本的に Gnus のメニューの使い方はぜいたくすぎる(全部 Gnus メニューの中に折り込んでくれればいいのに、Group メニュー、Topic メニューとか別々につくりやがる)ので、これなんとかならないの? と思っていたのですが、僕にはどうにもなりそうにないので悩んでいたのですが、結局メニューバー自体を非表示にすることにしました。

Emacs では .emacs または .emacs.d/init.el に

(tool-bar-mode 0)

と書いておくとツールバーが、また

(menu-bar-mode 0)

と書けばメニューバーが消えるようになってます。

それで、以前からツールバーは非表示に使っていたのですが、メニューバーはたまーに役にたつことがあるので表示のままで残しておいたのですね。

ただどうやら Emacs 21 以降であれば、メニューバー非表示のときには CTRL + 右クリックでのポップアップメニューで、メニューバー相当のものが表示できる(http://www.emacswiki.org/emacs/MenuBar)と分かって、安心して非表示にできたのでした。

リダイレクト先URLの取得方法いろいろ

t.coなどから本当のURLを取り出す方法という記事で、短縮 URL などでのリダイレクト先 URL をチェックする方法を扱っていました。

僕もよくリダレクト先を調べようとして、そのたびにやり方を調べなおしたりしていたので、これに乗じてメモしておこうと思います。(ここでは goo.gl を使用して、http://google.com/ にリダイレクトしています。)

まずは記事にあった telnet を使うやりかた。

$ telnet goo.gl 80
GET /EbHzJ HTTP/1.0
Host: goo.gl

※ goo.gl や tinyurl.com では、GET だけでなく Host も必要なようです。

telnet はあまり環境を選ばないのですが、コマンド1行で書ける(なのでヒストリーも使える)ほうが好みです。

netcat (nc) は便利です。

$ (echo "GET /EbHzJ HTTP/1.0"; echo "Host: goo.gl"; echo) | nc goo.gl 80

あるいは、テキストブラウザやファイル取得ツールを使うことも多いです。その場合には自動リダイレクトを無効にし、また応答ヘッダを出力するように指定して使用します。Host 指定などが不要で、便利ですね。

wget の場合

$ wget -q --max-redirect=0 -S -O - http://goo.gl/EbHzJ

w3m の場合

$ w3m -o follow_redirection=0 -dump_head http://goo.gl/EbHzJ

curl の場合

$ curl -D - http://goo.gl/EbHzJ

curl はデフォルト動作でリダイレクトを辿らないのですが、以下のように書いても同じです。

$ curl -L --max-redirs 0 -D - http://goo.gl/EbHzJ

これらは最大リダイレクト回数を指定できるので、多段のリダイレクト時のチェックにも便利です。


lynx の場合は、リダイレクト回数の指定はできないようです。
(なぜ "mime_header" なの?)

$ lynx -dump -mime_header -noredir http://goo.gl/EbHzJ

はてダ まじめに書くことにしました

MacBook Air 欲しさに登録してほったらかしにしていたはてなダイアリー(「はてダ」ってこれのことですよね?)を、まじめに書いてみるか!と思いました。

えーと、近いうちに書く。

ちなみに Air 11" は当選しなかったので、結局買いました。

Emacsの地力を感じているところ

先週開催された Fukuoka Emacs #0x03 に参加してきました。Emacs で人があつまるなんて、福岡すごい! 都会だわぁ。参加メンバーもすてきでした。

僕が Emacs を使いはじめたのは大学入る前後だったので、もう16年以上も使いつづけてることになります。*1
メールも、プログラミングも、HTML 書きも、テキストエディットは専ら Emacs なのですが、使い方は昔からちっとも進歩してないかんじで、相変わらず elisp 書けないし、最近話題の anythingなどもまったく使えてないし、フレーム幅も80文字固定だし、ということで、先進的な使い方を勉強させても
らおうと期待して行きました。

デモで印象深かったのは org-mode で、使いこなしたいなー、って思いました。僕もいちおう使ってはいるんですが、どう設定してどう操作してるのか全然わかりませんでした。勉強しなおさないといけないですね。

また、emacsclient を使って、Emacs と別のターミナルとで相互にカレントディレクトリを交換するのもすばらしかったです。https://gist.github.com/1244467

それから、主に開発環境としての Emacs のための拡張機能としては、

などが挙げれられていました。今週はこれらを使ってコード書いてたんですが、実に強力! マシンリソースも贅沢に使ってるかんじで、これがモダン Emacs か! と感心しっぱなしです。

Emacs やっぱりいいですよ!

*1:本当の一番最初は、高校のころ、FM TOWNS 用に移植された ng だったはずですが、そのときは、ちっともいいとは思えなかったです。