2016年2月、MacをやめてWindowsを久々に使い始めたので、環境構築のためのメモ。

今回買ったマシンはMicrosoftが2月4日に発売したSurface Bookの最上位モデル(SSD 512GB, Intel Core i7, メモリ16GB, nVIDIA GPU付き)。

Windows10 環境設定・アプリケーション等

まずやること

  • Dropbox と Keepass 環境の再構築
  • 職場のプリンタセットアップ

インストールしたもの

  • Adobe Creative Cloud
  • Microsoft Office 2016
  • Chocolatey Gallery ... Windows用のパッケージ管理ソフト
  • Ctrl2cap ... まず最初にやるやつ
  • Thunderbird ... メール
  • Google Chrome
  • Dropbox
  • Kobito for Windows ... この記事を書くように
  • Bitvise SSH client ... SSHクライアント。SSHトンネルを切れるたびに自動で張りなおしてくれるので便利
  • Cygwin ... 言わずもがな
  • OpenVPN
  • VirtualBox ... ver 4.x 系列ではWindows10対応がいまいちという情報も見かけたが、最新の ver 5.0.x では今のところ問題なく動作している
  • Listary ... エクスプローラで文字入力をすることでインクリメンタルにファイル選択を行うことができるようになる。その他便利機能多数
  • Explzh ... 多数の形式に対応した圧縮解凍ソフト
  • KeePassXC ... パスワード管理ソフト。Windows/Mac/Linux/iOS/Androidとマルチプラットフォーム対応しているので、1PasswordのようにOSにロックインされない良さがある
  • Slack
  • Java ... サーバのiDRAC等リモートコンソール起動に必要
  • PicPick ... 高機能なスクリーンキャプチャソフト

Cygwinインストール

下記のパッケージをインストール

  • openssh
  • mosh
  • ruby
  • rubygems
  • vim
  • wget
  • git

~/.minttyrc を下記の内容で作成する。

https://gist.github.com/hayamiz/4725f80d740eb0a6816e49d694035bb2

パッケージ管理ソフト Chocolatey

しらないうちにWindowsにもlinuxのyumやaptに相当するパッケージ管理ソフトが登場していたらしい。Chocolateyをインストールすると、コマンドプロンプトやPowerShellから

choco install git

と実行すればGitがインストール、といったことができる。Chocolatey Gallery | Packagesを見るとGoogle ChromeやFirefox、Node.js、Java、Skype、AutoHotKey、Atom Editorなどメジャーなソフトウェアも並んでいる。といっても、どのくらい信用できるものかわからないので、今のところ恐る恐る使っているという段階。

動きを見ている限り、どうも各パッケージ用にPowerShellスクリプトが用意されていて、それぞれのスクリプトはオフィシャルのインストーラ(exeファイル)を取得して自動でインストーラを実行しているだけのように見える。

下記、インストールしてみたもの。

choco install -y chocolateygui
choco install -y ruby
choco install -y sysinternals
choco install -y vlc
choco install -y procexp
choco install -y audacity
choco install -y terapad
choco install -y 7zip

WindowsのSlack日本語フォント表示問題

WindowsのSlackでは、漢字の表示に中華フォントが割り当てられてしまって残念な見た目になる問題が報告されている。2015年前半に一度修正されたものの、10月頃から再発しており現時点(2016年2月)でいまだに修正されていない。

最近のバージョンに対するバイナリパッチと、ソースから修正してコンパイルする方法が@oboenikuiによって公開されているが、前者のパッチのほうは、現在配布されている最新バージョンには適用できないので、ソースコードを修正してコンパイルするしか今のところ修正方法はない。
ソースコードをコンパイルする際には、electron-compileの ver 1.x 系を使わないといけない。上記の@oboenikui氏の記事の通りに npm で electron-compile をインストールすると、最新の 2.x 系がインストールされてしまうので、

npm install --save -g electron-compile@1
npm install --save-dev -g electron-compilers@1

として明示的に ver 1.x 系をインストールすれば、あとは記事の通りの操作をすればよい。

日本語入力の変換、無変換キーによるトグル

Windowsのデフォルトの日本語入力切替は半角/全角キーだが、Macのようにスペースキーの両隣の変換、無変換キーで日本語入力のON/OFFを操作できるようにしたい。

Windowsの変換・無変換キーでIMEの有効無効をMac風に操作する

上記を参考に、Google IME 用のキーマップファイルを作成した。

  • Google IME プロパティ → 「キー設定の選択」を「カスタム」にして「編集」をクリック→「編集」→「インポート」で上記ファイルをインポートする

Debian 8 環境設定・アプリケーション等

開発環境として、VirtualBox VMWare Workstation 12 Player のゲストOSにDebian 8 jessie をインストールして使用する。

VirtualBox は不安定なので使用を見送り、VMWare Workstation 12 Player へ移行

環境構築当初はVirtualBox 5.0.14を使用していたが、下記のような問題が発生した。

  • ホスト側Windowsがスリープ復帰した直後に VirtualBox がCPU使用率100%になってフリーズすることが1日に2~3回発生
  • Debian 8 (VirtualBoxゲスト)上でEmacs24を使っていると、スクロール時などに画面の一部しか描画が更新されない

後者はEmacsをターミナルで使用することで回避できたが、前者がいかんともしがたい問題で、そのたびにゲストOSを強制再起動させるのはさすがにしんどかったのでVirtualBoxの代替としてVMWare Workstation 12 Playerを使い始めた。

VMWare Workstation 12 Player は、VMWare Workstation 12 の機能制限版で、個人の非商用用途限定で無償利用することが可能。
現在のところ、VirtualBoxで発生していた上記のような問題は起きておらず、GUIアプリケーションもやや機敏に動作している印象。

HiDPI対応の方法

VirtualBox/VMwareでゲストOSを動作させると、初期状態では1ピクセルをそのまま1ピクセルとして表示してしまうので、最近の高解像度ディスプレイ(HiDPI)環境では文字が非常に小さくなってしまって使い物にならない。
何かしら表示倍率を調整してやらないといけないが、方法は2つある。

  • (A) ゲストOSの表示倍率調整機能を使う
  • (B) VirtualBox/VMwareでゲストOSのディスプレイ表示倍率を調整する

(A)の方法を使うと、OSの表示倍率調整に未対応な一部のアプリケーション等では表示が崩れる可能性がある。しかしながら、ベアメタルにインストールした場合にはこれしか方法がないので王道といえば王道。

(B)の方法は、ゲストOSが無調整で描画したイメージを、VirtualBox/VMware側で引き延ばして表示するので表示の崩れの心配はない。しかし画像の引き延ばし処理が行われるため、どうしても表示に滲みが生じてしまう。今回、VirtualBox上でDebian 8をゲストOSとして使ってみたところ目に見えて描画のパフォーマンスが低下した。

(B)の方法を使った場合は、耐えられないレベルでのパフォーマンス低下が生じてしまったので、今回は(A)の方法をつかって、Debian 8 側でHiDPI設定をおこなうことにした。

Debian 8 のHiDPI設定

Debian 8 のデフォルトではデスクトップ環境としてGNOME3が選択されているので、ここではGNOME3での設定方法を記する。

まずは、システムフォントの表示倍率を下記のコマンドで設定する。

gsettings set org.gnome.desktop.interface scaling-factor 2

この設定を行っただけでは、タスクバーやウィンドウバー等のシステム描画領域に関しては表示倍率が設定されているが、アプリケーションウィンドウ内の描画領域では倍率が設定されず文字が小さいままの状態になっている。ただし、FirefoxやGoogle Chromeのようにシステムの表示倍率を継承して描画するようになっている一部アプリケーションでは、この設定だけでも正しく表示されるものもある。

アプリケーション領域の表示倍率は、gnome-tweak-tool を使って設定することができる。

sudo apt-get install gnome-tweak-tool

でインストールして起動し、"Windows" → "HiDPI" → "Window Scaling" を 2 に変更する

ここまで設定すると、大抵のアプリケーションはまともな大きさの文字で表示されるようになる。しかし、LinuxではOS全体で表示倍率を統一して扱うフレームワークが整理されていないので、うまくいかない場合も使っているうちに生じてくる可能性は十分にある。

ネットワーク設定

NAT接続(eth0)と、ホストオンリー接続(eth1)の2つのアダプターを設定したところ、Debian 8のデフォルト設定ではNAT接続(eth0)しか接続されず、eth1の側は「オフ」になっていてGUIで操作しても接続することができなかった。

どうも悪さをしているのがGNOME3の裏側で動いているNetwork Managerらしいので、Network Managerを無効化して、伝統的な /etc/network/interfaces 方式に切り替える。

sudo systemctl disable NetworkManager.service
sudo systemctl stop NetworkManager.service

下記内容を /etc/network/interfacesに保存

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

auto eth1
allow-hotplug eth1
# iface eth1 inet dhcp
iface eth1 inet static
address 192.168.16.100
netmask 255.255.255.0
gateway 192.168.16.1
sudo /etc/init.d/networking restart

参考