まとめ

  • WebMKS のスケーリングがうっとうしい
  • スケーリングさせないよう wmks.js を矯正
  • 転んでも泣かない
  • 本環境は vCenter Server 6.0.0b の仮想アプライアンス

vSphere Web Client のコンソール

Web Client のコンソールは現在 2 種類あります。

  • HTML5 + SPDY で実装された WebMKS コンソール
  • ネイティブ アプリケーションである VMware Remote Console (VMRC)

それぞれ起動箇所が異なります。

WebMKS コンソールは、仮想マシンのアクション メニューの「コンソールを開く」

console item of action menu

または、仮想マシンのコンテキスト メニューの「コンソールを開く」から開くことが出来ます。

console item of context menu

WebMKS のコンソールは以下のように、ブラウザの新しいタブで表示されます。

scaled webmks console

VMRC は、事前に VMRC 7.x をダウンロード/インストールし仮想マシンを左ペインで選択した後に、「リモート コンソールを開く」から開くことが出来ます。

vmrc console link

VMRC のコンソールは、以下のようにネイティブ アプリケーションとして立ち上がってきます。

vmrc console

2 つのコンソールを比べて分かるように、WebMKS ではブラウザの Canvas の広さに合わせて自動的にスケーリングされてしまいます。1280×1024 などの Windows の GUI コンソールであれば問題無いですが、640×480 の TUI コンソールでは不必要に拡大されてしまい少々見苦しくもあります。(個人的主観です)

なお、GUI コンソールでも 1600×1200 などの大解像度の場合、ブラウザの Canvas に合わせて縮小方向にスケーリングされます。この場合、文字が潰れてしまい これはこれで使いにくい代物になります。

このスケーリングは、CSS の Transform によって実現され、ブラウザのウィンドウサイズに合わせて自動的に変更されます。ということで WebMKS を実装している JavaScript ファイル (wmks.js) を変更して強制的にスケーリングをさせずに等倍表示させるようにします。

vmks.js の修正

wmks.js は仮想アプライアンスであれば、/usr/lib/vmware-vsphere-client/server/work/deployer/s/global/38/0/container-app-war-6.0.0.war/js/wmks.js にあります。パス間にある global/38/0 あたりは変動するかも知れません。find や grep で適宜検索して下さい。

この wmks.js の 9838 行目付近に、ウィンドウのリサイズ イベント時に呼ばれる関数 rescaleOrResize が定義されています。

WMKS.widgetProto.rescaleOrResize = function(tryFitGuest) {
  var newScale = 1.0, x = 0, y = 0;
  var parentWidth = this.element.width(),
  parentHeight = this.element.height();
  ...snip..

この rescaleOrResize 内でスケーリングの再設定を行っているので、この処理を全てすっ飛ばすよう投げやりに修正します。

WMKS.widgetProto.rescaleOrResize = function(tryFitGuest) {

  return;

  var newScale = 1.0, x = 0, y = 0;
  var parentWidth = this.element.width(),
  parentHeight = this.element.height();
  ...snip..

はい、関数の冒頭に return を付けて後続の処理を省いています。この関数の中では Canvas の表示位置を中央に寄せる処理も含まれているので、この投げやりな return の副作用として、コンソールが左寄せになってしまいます。スケーリングの鬱陶しさに比べれば、まぁ我慢できる範囲かな…と。(個人的主観です)

この編集を保存した後、再度コンソールを開いてみましょう。今度はスケーリングされなくなっているはずです。もし、まだスケーリングされるようでしたらばブラウザのリロードを行ってみましょう。

fixed scaled webmks console

注意

マニュアルにも載っていない、展開された War ファイルの一部を編集する、といったサポート上等な変更です。転んでも泣かない環境で気が向いたらお使い下さいませ。