ぷろじぇくと、みすじら。

Filtered by Tag: Windows

コマンドプロンプトの新しいカラースキームを設定する

Created at: | Tag: Windows

Windows 10 Fall Creators Updateからコマンドプロンプトのカラースキームが新しくなるという発表があり、すでにInsider Preview Build 16257以降ではデフォルトで新しいカラースキームになっています。

しかし先のエントリーにもあるのですが If you clean-install a new build of Windows 10 >= 16257, you'll get the new colors as the default Console scheme. ということでクリーンインストールしたとき以外は既存のカラースキームのままですよということになっています。

幸いエントリーには新しいカラースキームのカラーコードが乗っているので、手でちくちくと設定すればCreators Update以降であれば再現可能です。とはいえやってみるとわかりますが割となかなか面倒です。エントリーをよく読むと We'll soon be publishing a tool that will help you apply this new scheme and a selection of alternative color schemes to your Windows Console. とあり、その後設定ツールがリリースされました。

ColorTool

GitHubのMicrosoft/consoleColorToolというツールが放流されています。このツールはカラースキームをコマンド一発で設定ファイルから読み込んで設定するツールです。

とりあえず使ってみるにはReleasesにColor Tool Initial Releaseのようにコンパイル済みのもの置かれているのでこちらをダウンロードするのがお勧めです(もしかしたら最新は更新されているかもしれません)。

現在のカラースキームを確認

ダウンロードしたzipを展開するとcolortool.exeというツールが出てくるので、まずは現在の設定状態を表示してみましょう。-c オプションを付けて実行すると現在のカラースキームでプレビューが表示されます。

C:\> colortool -c

カラースキームを設定する

現在のカラースキームを確認したところでカラースキームを変更するには colortool.exe にオプションなしでスキーム名を指定します。指定できるカラースキームは schemes フォルダにある ini ファイルまたは plist ファイルの名前(拡張子なし)となっています。

C:\> colortool campbell

ここで設定したものはこのコンソールのセッションに適用されるものなので、全く新しいセッションを始めた時や別な設定を持つショートカットから起動すると元のままになります。

設定を保存する

ColorToolには設定を永続化する機能も用意されています。

とりあえずは -b オプションを付けてデフォルトの設定を変更しておくとよいかと思います。

C:\> colortool -b campbell

カラースキームいろいろ

同梱されているカラースキームの他にもiTerm向けのカラースキームを使えるようになっているので、iTerm2-Color-Schemeからダウンロードしてきて適用することもできます。というか、同梱されているOneHalfやsolarizedはiTerm形式です。

campbell

campbell-legacy

deuteranopia

OneHalfDark

OneHalfLight

solarized_dark

solarized_light

OneDrive File On-Demandについて

Created at: | Tag: OneDrive Windows

OneDrive File On-Demandについて先日行われたWindows Insider Meetup in Tokyo #2に飛び込みで少しお話してきました。

OneDrive On-Demandがすごい

Windows 8.1の時にもプレースホルダという機能は存在していて、その後無くなって、Windows 10 Fall Creators Updateと呼ばれる次期アップデートで復活するということになったのですがわざわざ時間をかけて復活してきたということは結構違うのでは?と思って少し調べたのがきっかけです。

記憶が定かではなく、かつ検証もしてないのですが確かWindows 8.1のプレースホルダはプログラムから直接扱おうとすると0バイトの謎ファイルになっていたような記憶があります。あくまでシェルが良しなにしてくれるショートカットに近い扱いというか。

ところが今回復活するプレースホルダはファイルシステムレベルで考慮されている感があって、互換性やシームレスさが高まることが期待されます。

余談

Windowsの開発用にGVFS(Git Virtual File System)というGitのためのファイルシステムを作ったと少し前に発表していましたが、GVFSはCreators Update以降で動作するというあたり、もしかして何かファイルシステム周りにAPIが増えたのかもという気がしています。

今までもDokanなどいわゆるFUSEのようなものがありましたが、もう少し作りやすい仕組みを整備しているのかもですね。UIもクラウドプロバイダからダウンロード中みたいな表示だったりするのでOneDrive以外のDropboxなどでも対応できるようにしてくるのかもしれません。

Dockerが利用するWindows ContainerとLinux Containerを切り替える

Created at: | Tag: Docker Windows

Windows Containerを使う場合に、Docker for WindowsのインストーラをDockerのサイトからダウンロードしてきてインストールするとデフォルトではLinux Containerを使うようにセットアップされます。

その状態でWindows Containerのセットアップ手順に沿ってサービスを起動しようとすると以下のようなエラーが発生することがあります。

start-service : Failed to start service 'Docker Engine (docker)'.

アプリケーションのイベントログには以下のようなログが残ります。

fatal: open //./pipe/docker_engine: Access is denied.

これはLinux Container向けのエンジンと通信しようとするために発生しているようです。

PS C:\WINDOWS\system32> docker version
Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   60ccb22
 Built:        Thu Feb 23 10:40:59 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 07:52:04 2017
 OS/Arch:      linux/amd64
 Experimental: true

解決方法

タスクトレイのアイコンのメニューから "Switch to Windows containers..."を選択することでWindows Containersを使うように変更できます。

PS C:\WINDOWS\system32> docker version
Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   60ccb22
 Built:        Thu Feb 23 10:40:59 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.24)
 Go version:   go1.7.5
 Git commit:   60ccb22
 Built:        Thu Feb 23 10:40:59 2017
 OS/Arch:      windows/amd64
 Experimental: true

FlexScan EV2736WとSurfaceシリーズをDisplayPortで接続するとディスプレイがフリーズする場合がある

Created at: | Tag: Windows Surface

tl;dr

"DP HotPlug"を有効にする。

症状

Surface BookやSurface Pro 4をEIZO FlexScan EV2736WにDisplayPortで接続している環境でSurfaceの電源が切れた際、ディスプレイもスタンバイ(パワーセーブ)になりますがその後ディスプレイが応答しなくなることがあります。 Surface側はスタンバイから復帰するとディスプレイが切断された状態で問題なく動き続けますが、ディスプレイは主電源(後ろのスイッチ)を入れなおさないと復帰せず操作できない状態になります。

この問題はSurface Dock、Surfaceに直接接続時のどちらでも発生し、結構な頻度で発生するのでなかなかストレスフルです。

対処方法

Surface側がスタンバイや電源が切れた際にDisplayPortの接続が切れ、ディスプレイ側がスタンバイになったときに問題が発生しているような雰囲気があります。

ところでDisplayPortでの接続時にディスプレイ側の電源を切るとコンピューターから見て切断された扱いになる場合があることが知られていますが、 FlexScanには切断された扱いにならないようにする"DP HotPlug"という機能があります。これを有効にするとディスプレイの電源を切ってもマルチモニターが維持された状態になり、アイコンやウィンドウが残念なことにならないという便利機能です。

ディスプレイ側の電源なのでで関係なさそうなありそうなこの機能を有効にすると問題が収まりました(二日ぐらいたってもフリーズしてない)。

EV2736Wで"DP HotPlug"を有効にする方法「上矢印を押しながら電源を入れる」です。詳しくはマニュアルに書いてありますが、DisplayPort入力に切り替えたとき入力表示が灰色になっていれば有効になっています。

PIX-MT100を接続するとWindowsの反応が悪くなる

Created at: | Tag: Windows

tl;dr

ドライバーをMicrosoftの"Remote NDIS Compatible Device"に強制的に変更する。

症状

PIX-MT100というUSBドングル型のLTE通信デバイスがあり、コンピューターに接続するとLTE回線を利用して通信できます。 そんな便利デバイスですがWindowsが動作しているコンピューターに接続した場合にOS全体の反応が異常に悪くなる(遅くなる/重くなる)ことがあります。

例えば、接続中はタスクマネージャーが著しく遅くなる、アプリケーションが応答しなくなるといった状態が発生します。詳しい発生環境は調べていませんがいくつかのWindows 10を実行しているコンピューターで発生することを確認しています。

原因と回避策

原因はどうやら接続時にインストールされるドライバーによるもののようなので、別なドライバにー変更することで正常に動作します。

デバイスマネージャーを開くと"Remote NDIS based Internet Sharing"というデバイスがネットワークアダプターの下に見つかります。

このデバイスを開いて、ドライバーの更新を選択します。

ドライバーの一覧から互換性のあるもの以外を表示するようにして全てのドライバーを表示します。この時点ではD-Linkのドライバが選択されているかと思います。

次に製造元はMicrosoftを選択し、"Remote NDIS Compatible Device"を選択して進めます。"Remote NDIS based Internet Sharing"ではないことに注意してください。

その際、互換性を確認できていない云々が表示されますがそのままインストールします。

インストールが完了すると、"Remote NDIS based Internet Sharing"の詳細タブの中で"Remote NDIS Compatible Device"になっていることを確認できます。

互換性云々のメッセージが出るにもかかわらず、これで問題なく動作するようになります。

おまけ

ところでこれと同じ症状はIntel EdisonをUSB接続したときにも発生します。特に試してはいませんがEdisonもRNDISデバイスとして見えるようになっていたので、多分同様の操作で治るのではないかという気がしています。