MacにWindows 8をインストールした後にすること

長らくWindows 7を使っていましたが、とうとうWindows 8にアップグレードしました。

色々と使い勝手が悪くなったり動かなくなるアプリとかありますけど、Windows 8について学習するためと割りきりました。

今回は設定に四苦八苦したので、Windows 8をインストールした後にするべき作業をまとめてみます。

1. Windows Update

まずはアップデート。何度か再起動を挟みます。

2. AMD Catalyst Control Centerの設定

マルチディスプレイにしていて尚且つHDMI接続していると、サブディスプレイのスケールが小さくなって黒枠が出る場合があるので、その場合もAMD Catalyst Control Centerでオーバースキャンすれば正常になります。

  1. デスクトップを右クリックしてAMD Catalyst Control Centerを選択、起動します。無事に起動できたら成功。スケーリングを調整する場合は更に下記の手順を実行します。
  2. 閉じるボタンのやや下あたりのPreferencesでAdvanced Viewに切り替えます。
  3. My Digital Flat-Panels→Scaling optionでスケールを調整してApply。

3. キーボードの調整

Apple Wireless Keyboardを使う場合は調整が必要になります。

F1~F12を標準のファンクションキーとして使用する場合

  1. タスクトレイのBootCamp(菱型のアイコン)を右クリックして、BootCampコントロールパネルを開きます。
  2. キーボードタブに切り替えます。
  3. F1、F2などのすべてのキーを標準のファンクションキーとして使用にチェックを入れて、OK。

Apple Wireless Keyboard HelperのインストールとIMEの設定

Apple Wireless Keyboard を Windows で使うを参考にしてApple Wireless Keyboard Helperを導入して、IMEの設定もします。

4. 各種フォーマット対応ドライバのインストール

先日、無償化したParagon HFS+ for Window 8/8.1Paragon ExtFS for Windowsをインストールします。

5. 色々とインストール

Java RuntimeやらFlashPlayerやら色々とインストールします。Chocolateyを使ってコマンドプロンプトからインストールすると捗ります。cinst app1 app2....みたいな感じで一気にインストールできますよ!

6. フォント周りの改善

MacTypeの導入

フォントレンダリングを綺麗にするためにMacTypeを導入します。Chocolateyからでもインストールできます。

レジストリモード以外で調整して、完成したらレジストリモードかサービスモードにすれば良いと思います。

GoogleChromeのフォントがおかしくなったらこんな感じで調整します。設定ファイルはメモ帳などのエディタを管理者権限で開いてやると編集できます。

[General@chrome.exe]
RenderWeight=2
AntiAliasMode=1
HintingMode=1
HintSmallFont=1
GammaValue=1.5
Contrast=0.9
NormalWeight=0
BoldWeight=0
FontSubstitutes=0

Meiryo UIを駆逐

Tatsu's room on the Webで公開されている「Meiryo UIも大っきらい!!」で代替フォントを設定します。(カスタムフォント選択ダイアログ版のが動作が軽いです。)

僕の場合は等幅フォントを指定しなくても全然いけると思ったので、先日公開されたSource Han Sans(源ノ角ゴシック JP Normal)にしてみました。今のところ良い感じ。

7. ディスプレイのカラープロファイルの設定

BootCampでWindows 7を使う際、内蔵液晶ディスプレイの色がおかしいのを直すを参考にカラープロファイルを設定します。

8. Windowsの設定

あとは自分好みにWindowsの設定をいじってやります。プロフィール画像やらデスクトップやスタート画面の背景やら何やら色々と。

コマンドプロンプトからリンクに属性を設定できない

アプリケーション毎の設定ファイルがドキュメントフォルダ下に設置されていくのが、精神衛生上悪いので、

settingsフォルダを作ってその中に設定ファイルを移動、各設定ファイルへのリンクをドキュメントフォルダに貼って、リンクに隠しファイル属性を付与。

というようなことをバッチでしようとしていたんですけど、どうもattrib +hしてもリンク先のファイルに隠しファイル属性が付くだけでリンク自体に隠しファイル属性が付与されません。

エクスプローラーで手動でちまちま設定するしかないんでしょうかね。。。


追記:

仕方ないのでPowerShellとVBSで試してみたら出来ました。

PowerShell

Set-ItemProperty "リンクのPATH" Attributes ([System.IO.FileAttributes]::Hidden)

VBS

CreateObject("Scripting.FileSystemObject").GetFile("リンクのPATH").Attributes = 2

結果、PowerShellのが動作もっさりする上にジャンクション作ろうとすると何かおかしいのでVBSに落ち着きました。

Paragon HFS+が一部無償化

BootcampでWindows8以降を動かしている人には朗報です。

Windows上でMachintoshのファイルフォーマット形式HFS+でフォーマットされたディスクにフルアクセスできるようになるソフトウェア「Paragon HFS+」のWindows 8/8.1版が無償化されました。


使用にはシリアルが必要になるわけですが、どういうわけか、Internet Explorer以外を既定のブラウザにしていると、ボタンを押してもリンクが開かない現象が起きます。というわけで、シリアルの取得ページは下記になります。

http://www.paragon-software.com/home/hfs-windows-free/registration.html

Sassで入れ子にしないで複数の子要素を指定する

追記(2014-07-16):
Sass v3.4.0からselector-nest関数が実装され、標準で本記事と同じようなことが出来るようになります。

タイトル見てもよく分からないと思うので次のコードを見てください。

a {
  &.hoge, &.foo, &.bar {
    color: #000;
  }
}

↑みたく、同じ親に対して複数の子要素を指定する場合があると思います。 無駄にインデントが一段増えて気持ち悪いですね!

a (.hoge, .foo, .bar) {
  color: #000;
}

こんな感じに書けたら最高なんだけど現状無理なので、@mixin@functionで書いてる人いないかなと調べてみたら、普通にCompassnest関数として実装されていて絶望した。全然知りませんでした。。

でもこれ、毎回interpolation(#{$var})で書かないといけなくて気持ち悪いので、ラップして@mixinにしてみたコードが↓です。

@mixin nest($args...) {
  #{nest($args...)} {
    @content;
  }
}

// function
#{nest("a", ".hoge, .foo, .bar")} {
  color: #000;
}

// mixin
@include nest("a", ".hoge, .foo, .bar") {
  color: #000;
}

読みやすい文字色を作る

背景色を決めるのにはそれほど困らないけど、それに対する文字色を選ぶのはなかなか大変だと個人的には思ってます。

上記の記事によると、(白内障の人も含めて)読みやすい文字色っていうのは背景色とのコントラストがパーセンテージで言うと62%以上になるそうです。

というわけで、コントラストを考えて色を算出してくれる関数を2つと、デバッグ用にコントラストをチェックしてくれる関数を作ってみました。

単色から対となる読みやすい色を作る関数(Compass依存)

@function readable-color($color, $contrast: 62%, $invert-contrast: false, $complement: false) {
  $invert-contrast: if($invert-contrast, -1, 1);
  $base: if($complement, complement($color), mix(contrast-color($color), $color, 50%));
  $lightness: lightness($color);
  $lightness: min(100%, max(0%, $lightness + $contrast * $invert-contrast * if($lightness < 50%, 1, -1)));

  @return change-color($base, $lightness: $lightness);
}

$colorに背景色を指定してやれば、$contrastで指定したコントラスト差になるように明度を調整して色を作ってくれます。

同色寄りでなく補色寄りの色にしたい場合は$complementtrueにすればOKです。

背景色の明度が50%付近で、何も指定しないと暗くなるけど、どうしても明るくしたい、とかの場合には$invert-contrasttrueにしてやってください。

contrast-color関数だけCompass依存なのでCompassを使わない場合は適当にでっち上げてくれれば良いと思います。

基本色と背景色から読みやすい色を作る関数(Compass依存)

@function readable-mix-color($base, $bg, $contrast: 62%, $invert-contrast: false) {
  $invert-contrast: if($invert-contrast, -1, 1);
  $base: mix($base, $bg, 50%);
  $lightness: lightness($bg);
  $lightness: min(100%, max(0%, $lightness + $contrast * $invert-contrast * if($lightness < 50%, 1, -1)));

  @return change-color($base, $lightness: $lightness);
}

ベースとなる色と背景色を合成・明度調整して良い感じになった色を返します。

この関数を使ってリンク色とかを作ったりするなら、コントラストを調節しないと、普通の文字色とリンク色とでコントラストが近すぎて区別が付きづらくなるので、少しコントラストを減らしたほうが良いです。

コントラストのチェック用の関数

@function check-contrast($color1, $color2) {
  $contrast: abs(lightness($color1) - lightness($color2));

  @if $contrast >= 50% and $contrast < 62% {
    @warn "Contrast is somewhat low. It recommends 62% or more. (Contrast: #{$contrast})";
    @return false;
  } @else if $contrast < 50% {
    @warn "Contrast is too low. (Contrast: #{$contrast})";
    @return false;
  }

  @return true;
}

50%未満で低すぎ、62%未満でやや低いとの旨の警告を出します。