. Elementary os 8 と WinApps で Microsoft Office 備忘録 | hyt adversaria
Elementary os 8 と WinApps で Microsoft Office 備忘録 | hyt adversaria
Elementary os 8 と WinApps で Microsoft Office 備忘録 | hyt adversaria

elementary os 8 と WinApps で Microsoft Office 備忘録

1. 本記事執筆の背景と目的 1.1. 背景 職業柄Mirosoft OfficeのPowerPointを使い倒しているものの、私生活ではプログラミングをしているためPCはUbuntu Desktopを使っている 時折寄せられる開発相談で資.

https://amzn.to/4i9jcYN

必要なもの(事前準備)

OS

Debian 系なら他の Linux ディストリビューションでも多分大丈夫だと思いますが,今回やってみたのは elementary os ver. 8 です.

https://amzn.to/48oObwD ライセンス

Windows 11 と Microsoft Office のライセンスが必要です.今回実際に使用したのは Office 365 です.

https://amzn.to/4i9jcYN WinApps

GitHub - winapps-org/winapps: Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/

Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the nat.

この WinApps ですが,まず,docker もしくは podman のコンテナとして Windows を導入し,FreeRDP 経由で Microsoft Office 等のアプリを Linux から利用できるよう設定するもののようです.

GitHub - dockur/windows: Windows inside a Docker container.

Windows inside a Docker container. Contribute to dockur/windows development by creating an account on GitHub.

仕組みから予想できる通り,WinApps では Microsoft Office だけが対象ではなく,Windows で動作するありとあらゆるアプリが対象で,公式対応アプリとして挙げられているものだけでも,

  • Microsoft Office 系のアプリ
  • Adobe Photoshop 等のクリエイティブアプリ
  • Visual Studio
  • Autodesk Fusion 360
https://amzn.to/48oObwD

導入

前提パッケージのインストール $ sudo apt install podman podman-compose freerdp3-x11 $ sudo add-apt-repository universe $ sudo apt update $ sudo apt install dialog https://amzn.to/48oObwD WinApps の取得とコンテナの初期セットアップ

次に,WinApps を Git clone します.

$ git clone https://github.com/winapps-org/winapps.git $ cd winapps

日本語版の Windows がはじめから入るよう,WinApps の中にある compose.yaml に以下のように LANGUAGE: “Japanese” を追加しておきます.なお,標準状態のままだ英語版 Windows が導入された場合も,あとで日本語化可能です.ただし,なぜか私が試したときは中途半端にしか日本語化されなかったのと,日本語化自体にかなり時間がかかったので,はじめから日本語版の Windows を入れた方が良いとの判断です.

# For documentation, FAQ, additional configuration options and technical help, visit: https://github.com/dockur/windows . services: windows: image: ghcr.io/dockur/windows:latest container_name: WinApps # Created Docker VM Name. environment: # Version of Windows to configure. For valid options, visit: # https://github.com/dockur/windows?tab=readme-ov-file#how-do-i-select-the-windows-version # https://github.com/dockur/windows?tab=readme-ov-file#how-do-i-install-a-custom-image VERSION: "11" RAM_SIZE: "4G" # RAM allocated to the Windows VM. CPU_CORES: "4" # CPU cores allocated to the Windows VM. DISK_SIZE: "64G" # Size of the primary hard disk. # DISK2_SIZE: "32G" # Uncomment to add an additional hard disk to the Windows VM. Ensure it is mounted as a volume below. USERNAME: "MyWindowsUser" # Edit here to set a custom Windows username. The default is 'MyWindowsUser'. PASSWORD: "MyWindowsPassword" # Edit here to set a password for the Windows user. The default is 'MyWindowsPassword'. LANGUAGE: "Japanese" HOME: "$" # Set path to Linux user home folder. ports: . $ podman-compose --file ./compose.yaml up

とすれば Windows のセットアップが行われます(かなり時間がかかります).

ブラウザで http://127.0.0.1:8006 にアクセスすることでコンテナにアクセスできるので,セットアップが完了後,Windows にログインして,ライセンス認証等を実施してください.ユーザー名とパスワードは上の compose.yaml で指定されている通り,

  • USERNAME: “MyWindowsUser”
  • PASSWORD: “MyWindowsPassword”

です.もちろん USERNAME と PASSWORD は自分の好みのものに変えることもできます.

https://amzn.to/4i9jcYN コンテナ設定の変更

上の節の compose.yaml のままだと初期セットアップが再び行われてしまうので,コンテナのセットアップが終わったら,一旦,

$ podman-compose --file ./compose.yaml down

として,コンテナの動作を終了させてから,WinApps を Clone したフォルダの compose.yaml を

$ mkdir ~/.config/winapps $ vi ~/.comfig/winapps/compose.yaml diff compose.yaml ~/winapps/compose.yaml 33c33,34 < restart: on-failure # Restart the Windows VM if the exit code indicates an error. --- ># restart: on-failure # Restart the Windows VM if the exit code indicates an error. > restart: always 38c39 < - ./oem:/oem # Enables automatic post-install execution of 'oem/install.bat', applying Windows registry modifications contained within 'oem/RDPApps.reg'. --- ># - ./oem:/oem # Enables automatic post-install execution of 'oem/install.bat', applying Windows registry modifications contained within 'oem/RDPApps.reg'.

また,同じところに FreeRDP の設定ファイルを以下の内容で準備します.

$ vi ~/.config/winapps/winapps.conf RDP_USER="MyWindowsUser" RDP_PASS="MyWindowsPassword" WAFLAVOR="podman" # 日本語 Microsoft IME を指定 RDP_FLAGS="/kbd:layout:0xE0010411" https://amzn.to/48oObwD Microsoft Office の導入 $ podman-compose --file ~/.config/winapps/compose.yaml up

立ち上がったら,ブラウザで http://127.0.0.1:8006 にアクセスすれば Windows のログイン画面にアクセスできるので, ログインして,Microsoft Office を(その他使いたいアプリがある場合はそれも)セットアップします.また,キーボードの配列を日本語キーボードに変更したり,ライセンス認証なども行ってください.

https://amzn.to/4i9jcYN WinApps によるアプリのメニューへの登録

WinApps のスクリプトを使って,elementary os のアプリメニューに Microsoft Office を登録します.git clone したフォルダに移動して,setup.sh を起動するだけです.

$ cd winapps $ ~/setup.sh
  • 質問1: アプリのインストールをするのかアンインストールをするのか?
  • 質問2: システムメニューにアプリを登録するか否か
  • 質問3: 公式サポートされているアプリを自動登録するのか
$ podman-compose --file ~/.config/winapps/compose.yaml down $ podman-compose --file ~/.config/winapps/compose.yaml up $ ./setup.sh

としてコンテナを再起動した上で,setup.sh を起動し直せばうまく行くことが多いようです.また,~/.local/share/winapps 以下に FreeRDP 等のログファイルがあるので,その内容を調べるなどしてください.

Windows にインストールされているアプリの情報が全て取得できたとします.すると,WinApps から,

  • Set up all detected officially supported applications
  • Choose specific officially supported applications to set
  • Skip setting up any officially supported applications

このファイルには,検出された全てのアプリの情報が含まれていますが,WinApps の対応が不十分なせいか,この中に日本語のアプリ名等の情報があると,エラーで setup.sh の動作が停止します.このため,日本語のアプリ名のものについてはその情報を削除しないといけません.

削除が必要なのは,以下のような部分です.NAMES がアプリ名,EXES がアプリ本体の情報,ICONS がアイコンの情報なので,日本語名のアプリについては,これらをまとめて削除してください.

$ vi ~/.local/share/winapps/detected . NAMES+=("タッチ キーボードと手書きパネル") EXES+=("C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe") ICONS+=("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQ AAAB/SURBVFhH7ZZBCsAgDAT3KT32iR59rNBntFgMtBK1hyYWugMLiSgZPAUghHyAFUAAEB2T5y0iEFJK2+5InlckTmJ9wYPyE3cB5atez1BAauueAk0B6ww FpLbuKdAUsM5QQOre2RO0d/UsCqgC1ukKeHIVmL4P5M1k6kZEyL85ADbEwKQf9KzpAAAAAElFTkSuQmCC") .

この作業後に,元のターミナルに戻り,3択のいずれかを選び,その後の質問に適当に答えると,elementary os のアプリメニューに Windows のアプリが登録されます.

https://amzn.to/4i9jcYN Windows アプリの起動

登録されたアプリの情報は,システムメニューに登録を選んだ場合は,/usr/share/application 以下に,そうでない場合は,~/.local/share/applications 以下に登録されているはずです.

登録を確認できたら,1度 PC を再起動すれば,メニューに Windows アプリが出てくるはずです.あとはメニューのアプリを選択すれば,コンテナが起動してから選択したアプリも起動の流れで使用できます.

https://amzn.to/48oObwD

使用感

まず,見た目は完璧ですし,日本語の使用にも特に問題は感じませんでした.Word や Excel が Linux ネイティブなアプリであるかのように使える,しかも,(仕組みから考えればそれはそうなのですが)VBA などの利用にも対応しています.

しかし,実際に使ってみると,例えば Excel だと,データを入力してドラッグして値を補完するなどしようとすると,最初の3つ4つのセルについてはできますが,それ以降はフォーカスが外れて入力されなかったり,注釈を入れようとするとなぜか注釈を入力する部分が画面いっぱいに表示されたりと,業務でガシガシ使うにはどう考えても問題がある.

個人的には,素直に安価な Windows マシンを1台確保して,リモートデスクトップで使う方が無難だと思うし,どうしても1台で済ませたい,しかも Linux ベースのマシンで済ませたい場合も無償化された VMWare Workstation を使った方が良いと思います.

しかし,WinApps はともかく,その中で使われている Windows がコンテナとして動作するってのは面白いと思います.KVM とか使うより実際かなり手軽ですしね.Linux のコンテナなので,Linux ベースじゃないとダメだと思っていましたが,Linux に QEMU 組み合わせてその上で Windows 動かせば良いってことみたいです.

📎📎📎📎📎📎📎📎📎📎