Mac OS XでWindowsと同様にウィンドウ切り替えを行う

実施環境

参考サイト

導入候補アプリ

  • HyperSwitch (0.2.299-dev/beta)
  • Witch (3.9.3/3240) → 採用

両者それぞれ導入してみたが、HyperSwitchは以下の問題があり不採用とした。

  1. 最小化したWindowの選択に2ステップ必要
    • command+tabでアプリを選択すると、最小化されたWindowが表示され、そこからさらに矢印キーで選択が必要。
  2. アクティブウィンドウでないSafariが常に最前面に表示される
    • アクティブウィンドウが他のアプリに切り替わっているのにSafariがなぜか最前面に表示される。

Witchは見た目がシンプルだがWindowsとほぼ同じ感覚で操作が可能だった。

暫く利用してみてみようと思う。

Mac OS X 10.9 (Marvericks) にHomebrewをインストールしたときにはまったこと

インストール環境

はまった内容

巷のサイトにあるようにJREをインストールしても、ターミナルでjavaのパスがうまく通らない。

インストール後も以下のように、インストールされていないよと言われる。

% java -version
No Java runtime present, requesting install.

「システム環境設定」を開くと、最下部にJavaのアイコンがあるため、インストールされていることはわかった。

JREのパスはデスクトップから「システム環境設定」→「Java」→「Javaコントロール・パネル」→「Java」タブ→「表示」から確認できた。

調べてみると、どうやらJREJAVA_HOMEが「/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home」であるため、「/usr/bin/java」で起動できるように一工夫が必要ということが分かった。

以下の手順でターミナル上からjavaコマンドにパスを通すことができた。

% sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home /System/Library/Frameworks/JavaVM.framework/Versions/1.7.0 
Password:

% vi .zshrc
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.7.0

% source .zshrc

% java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

ただ、何か腑に落ちない。

試しに、上記の設定を一旦削除し、JDKをインストールしてみた。 ※JREをインストールしてから1週間程度たっていたため、Versionが1.7.0.u51をインストール。

すると、普通にパスが通った。

javaコマンドのパスを辿ってみる。

% which java                                                                                                                                    
/usr/bin/java

% ls -l /usr/bin/java                                                                                                                           
lrwxr-xr-x  1 root  wheel  74 10 31 15:52 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

% ls -l /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java                                                              
-rwxr-xr-x  1 root  wheel  50432 10 31 15:52 /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

% ls -l /System/Library/Frameworks/JavaVM.framework/Versions/Current                                                                            
lrwxr-xr-x  1 root  wheel  1 10 31 15:52 /System/Library/Frameworks/JavaVM.framework/Versions/Current -> A

% ls -l /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java                                                                    
-rwxr-xr-x  1 root  wheel  50432 10 31 15:52 /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java

% /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java -version                                                                 
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

幾つかのサイトによれば、JDKは「Library/Java/JavaVirtualMachines」配下にVersionを分けてインストールされるようだ。

% ls -l /Library/Java/JavaVirtualMachines                                                                                                       
total 0
drwxr-xr-x  3 root  wheel  102  1 25 15:13 jdk1.7.0_51.jdk

% ls -l /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home                                                                         
total 39768
-rw-rw-r--   1 root  wheel      3339 12 19 12:13 COPYRIGHT
-rw-rw-r--   1 root  wheel        40 12 19 12:13 LICENSE
-rw-rw-r--   1 root  wheel       114 12 19 12:13 README.html
-rw-rw-r--   1 root  wheel    123324 12 19 06:34 THIRDPARTYLICENSEREADME-JAVAFX.txt
-rw-rw-r--   1 root  wheel    173559 12 19 12:13 THIRDPARTYLICENSEREADME.txt
drwxrwxr-x  44 root  wheel      1496 12 19 12:19 bin
drwxrwxr-x   9 root  wheel       306 12 19 12:13 db
drwxrwxr-x   9 root  wheel       306 12 19 12:13 include
drwxrwxr-x  10 root  wheel       340 12 19 12:16 jre
drwxrwxr-x  14 root  wheel       476 12 19 12:17 lib
drwxrwxr-x   5 root  wheel       170 12 19 06:34 man
-rw-rw-r--   1 root  wheel       502 12 19 12:13 release
-rw-rw-r--   1 root  wheel  20039662 12 19 12:13 src.zip

% /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/java -version                                                             
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

確かに動作はするようだが、「/System/Library/Frameworks/JavaVM.framework/Versions」との関連性は見えてこない。

いったいどれが本物なのか。。。

どれもバイナリファイルなので、感覚だけではこの辺が限界だった。

もう少し、調査が必要だ。

初投稿

「思い立ったが吉日」

僕が好きな言葉の一つだ。なぜ好きかと言われれば、自分に足りていない部分だからだと思う。 技術系の情報をまとめるために、wiki、blog、CMSのどれを使うか悩み続けてきた。 悩むのはいいが、数年、決め切れず一歩を踏み出せていなかった。 年を重ねるごとに、腰が重たくなっていることを痛感する。

しかし、今年30歳という大きな節目を迎えることもあり、新しい自分に生まれ変わろう!と新年に改めて決意した。 blogタイトルはそんな自分の思いをgeekっぽく表現したつもりだ。中二病ではないと思いたい。


。。。という日記を2日前にGoogle Bloggerに投稿した。どいうことかって? そう、3日目にして、Bloggerからはてなに乗り換えてしまったということだ!

Bloggerは以下の2点が気に入らなかった。

  1. HTML書くのが非常に面倒。
  2. コードハイライトを実現するのに、言語毎にjavascriptを読み込む必要がある。

それに引き換えはてなではMarkdown記法が使えるのだ。

これは便利。(タグを)閉じなくていとはすばらしい。

という訳でBlogははてなに決定!