あけましておめでとうございます。新年最初のエントリがこれです。

注意

各サービスには必ず利用規約が存在します。

今回は、リバースエンジニアリング行為や、得たデータを改変して利用する行為などは行っておりません。

このブログエントリで得た情報を利用して、利用規約および各種法令、公序良俗に反する行為を行わないでください。

また、動作環境外でのソフトウェアの使用はサポートを受けることができません。自力解決しましょう。

なお、このエントリで行った知識をユーザーが被った不利益については、筆者は責任を負いません。ご了承ください。

Electron とは?

Electron は、JavaScript、HTML、CSS によるデスクトップアプリケーションを構築するフレームワークです。

Electron を利用して構築されているアプリケーション・サービスに著名なものは、”Visual Studio Code” や “GitHub Desktop” などがあります。

Electron の特徴として、クロスプラットフォームなバイナリをかんたんに作り上げることができるという特徴があります。

目的

先述したようにクロスプラットフォームをかんたんに実現できる、という特徴のある Electron です。

しかし、残念ながら、一部の不届き企業は、クロスプラットフォームに対応していない(とりわけ Linux には対応する気がない)場合が多いです。

ところで、Electron は、言ってしまえば、内部で Chromium を利用したただのウェブアプリケーションです。

アプリケーションの動作に必要な多くの DLL などはパッケージ化されている可能性が高いです。

つまり、Wine で雑に動かすにはもってこい、かもしれません。

ここだけ読んだら熟練者は続きを読まなくても構いません。いつもどおり Wine を動かすだけです。

初心者はここから

Windows バイナリを手に入れる

インストールせず、直接起動できるバージョンのアプリ(ポータブルアプリ)がある場合

ラッキーですね。そのままダウンロードして、Linux に持ってきてください。

必要な場合(自己解凍形式の *.exe ファイルの場合など)は Windows で解凍しておくことをおすすめします。

インストーラーがある場合

大抵の場合は、ソフトウェアは、インストールという作業が必要です。

Wine は、インストールでコケる場合が多いので、Windows 環境で先にインストールして、展開されたアプリケーションをフォルダーごとコピーするほうが良いです。

といっても、Electron で開発されたソフトウェアは、大抵の場合、ダブルクリックするだけで UAC を必要とせず展開される場合が多いです。話が早くて助かりますね。

  1. Windows 環境でソフトウェアを展開する

  2. ソフトウェアが入ったフォルダーを探し当てる

  • インストーラーが管理者特権の必要なタイプの場合は、C:\Program Files or C:\Program Files (x86) が多い
  • インストーラーが管理者特権の不要なタイプの場合は、C:\Users\{Username}\AppData\Roaming\ や、C:\ProgramData\{Username} の中にあることが多いです。

迷ったら、デスクトップのショートカットなどからプロパティを見てみましょう。

アプリケーションが含まれるフォルダーごと、Linux にコピーします。

Wine をインストールする

WineHQ をインストールします。公式ページに、あるとおりにインストールすれば良いです。

以下に、Ubuntu 22.04 の場合のインストール方法を示します。

sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
sudo apt update
sudo apt install --install-recommends winehq-stable

また、winecfgを呼び出します

winecfg

正常にダイアログボックスが出てきたら、閉じてください。

場合によっては、winetricksなどをインストールしても構いませんが、ここでは割愛します。

Windows バイナリが動作するか確かめる

先ほどの Windows バイナリがあるフォルダーに移動します。

そして、以下の通りに起動します。

wine hoge.exe

正常に起動したら成功です。やったね!

(任意)デスクトップエントリーを作る

このままでも動きますが、起動のたびにターミナルを開くのはナンセンスです。

せっかくなのでショートカットを作りましょう。

シェルスクリプトを作る

以下のようにして、シェルスクリプトを作ります。

#!/bin/bash
wine /path/to/applicaton.exe

好きな名前で保存し、パスを覚えておきましょう(コピペ可)。

デスクトップエントリーファイルを作る

~/.local/share/applications に移動します。

{任意の名前}.desktop ファイルを作成します。

[Desktop Entry]
Version=1.0
Type=Application
Name={ソフトの名前(表示名)}
Icon={あれば 画像アイコン}
Path={ソフトのフォルダのパス(カレントディレクトリの役割を果たす?)}
Exec={先ほどの シェルスクリプトのパス}
StartupNotify=true

例えば、これは Electron とは関係ありませんが、

[Desktop Entry]
Version=1.0
Type=Application
Name=Firefox
Icon=/home/{user}/software/firefox/firefox.png
Exec=/home/{user}/software/firefox/firefox
Path=/home/{user}/software/firefox/
StartupNotify=true

こんな感じです。

すると、ランチャーにソフトウェアが出てきます。

あとは、いつもの普通のソフトのように扱ってあげてください。

おまけ

#すべての公式アプリをクロスプラットフォームにしろ

#すべての公式アプリをLinuxに対応させろ

#どうせElectronならLinuxに対応させろ

#広島に秋月電子通商を

#ついでに山口にも秋月電子通商を