Ubuntu 11.04 へアップグレードして困ったこととその対策

Ubuntu を 11.04 にアップグレードしました。スクリーンショットを見て分かる通り、僕は Ubuntu を VMware Fusion 内で動かしていて、ウィンドウマネージャには awesome を使っているので Unity 何それ状態です。何が変わったか分かりません。

逆に困ったことがあって、Natty の Kernel だと純正の VMware Tools がコンパイルエラーになります。このため、HGFS やクリップボード共有といった便利な機能が使えなくなってしまいました。ここで紹介されているパッチを当てれば HGFS の read は可能になるものの、書き込みで Segmentaion Fault が発生してしまうような状況です。

なので、仕方なく今は open-vm-tools を使っています。

  • open-vm-dkms
  • open-vm-tools

の2つのパッケージをインストールすることで、共有フォルダをマウントできるようになりました。また、純正ツールと違ってそのままでは起動時に自動マウントしてくれないため、/etc/fstab に以下の設定を記述しています。

.host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0

これで HGFS に関しては問題なく動作するようになりました。設定ファイルの類は VM ホスト上にインストールした Dropbox フォルダをマウントして参照しているので、これが使えないと限りなく無力なのです。

しかし、あちらを立てればこちらが立たずで、open-vm-tools にしたら、今度はクリップボードの共有ができなくなってしまいました。こちらは、その昔、「仮想な背中」というサイトで公開されていた vmw コマンドを使うようにしました。

kill-ringをクリップボードと同期するための .emacs 設定

;; share clipboard
(defvar prev-yanked-text nil "*previous yanked text")
(defun copy-from-host ()
  (let ((coding-system-for-read 'utf-8))
    (let ((text (shell-command-to-string "vmw paste")))
      (if (string= prev-yanked-text text)
          nil
        (setq prev-yanked-text text)))))

(defun paste-to-host (text &optional push)
  (let ((process-connection-type nil))
    (let ((proc (start-process "vmwcopy" "*Messages*" "vmw" "copy")))
      (set-process-coding-system proc 'utf-8 'utf-8)
      (process-send-string proc text)
      (process-send-eof proc)))
  (message "Copied to clipboard."))

(setq interprogram-cut-function 'paste-to-host)
(setq interprogram-paste-function 'copy-from-host)

awesome/rc.lua 用の設定

awful.key({ modkey }, "c",
          function () awful.util.spawn_with_shell(
                "xclip -o -selection clipboard | vmw copy")
          end),
awful.key({ modkey }, "v",
          function () awful.util.spawn_with_shell(
                "vmw paste | xclip -i -selection clipboard")
          end)

とりあえず今はこれで凌いでいますが、早く純正の VMware Tools が使えるようになって欲しいところです。

2011/05/05追記:
.emacsでペースト用の設定が抜けていたので追記しました。
elispがうまくハイライトされていなかったのを修正しました。



このエントリーのはてなブックマーク (-)