LinuxでWindowsアプリケーションを動かす

そもそもWindowsアプリケーションを動かしたいならWindows使いなよ、という話ですが。

僕は普段Ubuntuを利用しており、極一部のWindowsアプリケーションを使うためにWindowsを起動するというのは非常にコストが高いんですよね。

# LinuxでWindowsアプリケーションを動かすには

- Wineを使いましょう

はい。

これだけだと記事書くまでもなく糸冬了してしまうので、今日はちょっと別のアプローチを見てみましょう。

## SteamからProtonを経由して動かしてみる

はい。

今日の本題です。

今更ながら最近原神を始めまして、スマホでやってましてPC版がLinux版などもちろん存在しません。
Wineを使ってやるのもなーと思ってたのですが、調べてみるとSteamに取り込んでProton使うという裏技があるようでした。
すげぇな👀

ちなみにこれまでSteamで売られてるWindows向けゲームをProton使って遊んだことはあります。

### 具体的にはどうするの？

それでは今回、例題としてLINEのWindows用クライアントをインストールしてみましょう。
ゲームじゃない！

1. [LINE公式サイト](https://line.me/ja/)にアクセスします
    - この時UserAgentをWindowsのブラウザの物にしておいてください
        - そうしないとダウンロードリンクが表示されません
1. Steamクライアントを起動します
1. ライブラリから左下のゲームを追加をクリックし、「非Steamゲームを追加」を選択します
![Screenshot from 2023-07-17 15-12-47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426191/337d4d94-9468-39bf-8b9f-cd2276c44dda.png)
1. ファイル選択ダイアログが表示されるのでローカルにダウンロードしたLINEのインストーラーを指定します
![Screenshot from 2023-07-17 15-13-31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426191/487e31c5-cec2-ba4e-fc48-d0550a9b1b0e.png)
1. リストの画面に遷移し、先程選んだものがチェックされているので、そのまま「選択したプログラムを追加」をクリックします
![Screenshot from 2023-07-17 15-14-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426191/1643e2cc-8b5d-b9e5-9b7a-1c54965193e7.png)
1. 取り込まれました
![Screenshot from 2023-07-17 15-14-55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426191/a1a299a4-e326-f429-3a44-00efa49cbf86.png)
1. ここでまだ「プレイ」をクリックせずにProtonの設定をしていきます
1. 左のリストから追加したものの項目を右クリックして「プロパティ」を選択します
![Screenshot from 2023-07-17 15-15-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426191/613c72b7-6f24-14c9-aaa4-d63acf7d2076.png)
1. 「互換性」をクリックし、チェックボックスにチェックを入れProtonのバージョンを選択します
![Screenshot from 2023-07-17 15-15-31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426191/7b5ee8f1-ff05-c362-d474-ee2b83ad4613.png)
1. ここまで完了したら先程の画面から「プレイ」をクリックしましょう
1. 無事にインストーラーが起動しました
![Screenshot from 2023-07-17 15-16-21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426191/48f9d7ed-0563-8bf3-9143-2083e319d58e.png)
![Screenshot from 2023-07-17 15-16-33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426191/1a146b97-e2c0-b273-2b8f-7b1150b1e1c7.png)
1. インストールが完了したら一旦ターミナルを開き、以下のコマンドで先ほど追加したインストーラーではなく、実際に起動しているLINEのパスを調べます
    ```bash
    ps aux | grep LINE
    ```
    - 上記は当てずっぽうな所がありますが、Windowsのパスが見えるかと思います
        - なので他のアプリケーションの場合は `C:` とかでgrepしても良いかと思います
1. 実行ファイルは `LINE.exe` ということがわかったので、Linux上のパスとしてどこに保存されているのかを以下のコマンドで調べます
    ```bash
    find ~/.local/share/Steam/steamapps/compatdata/ -name "LINE.exe"
    ```
1. 見付かったパスが起動したいパスとなりますので、Steamに登録しているLINEのインストーラーの設定を変えます
1. 一旦Steamから「停止」ボタンを押して終了させておきます
1. 再度リストを右クリックしてプロパティを選択します
1. 「ショートカット」からアプリのタイトルを「LINE」(わかりやすければなんでもいい)に変更、リンク先のパスを先述のfindコマンドで見付けたパスに変更します
1. ここまで来たら再度「プレイ」をクリックして立ち上げます

### 無事に起動しました

![Screenshot from 2023-07-17 15-17-23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426191/cab42d3d-5cae-7a36-b6fc-c39704b1d1df.png)

![Screenshot from 2023-07-17 15-23-18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426191/e5c4fc45-cb4d-1798-d3f4-3fa47c094b34.png)

# 雑感

正直LINEはGoogle Chromeの拡張があるのでLinuxからは素直にそれを使えば良いと思います。

LINEを動かせたところからもわかる通り、ゲームじゃなくてもイケます。

今回の作業のキモはインストーラーをSteamに登録してインストールしたあとに、実際に起動するexeにパスを書き換えてやるというところかなと思います。
追加するアプリケーションごとに別なパスを切られるので、インストール後に本体のexeを再度追加するようにするとインストーラーと別なパスで実行されるので何かしらおかしなことになるのかもしれません。

---

それでは良いLinuxライフを