Vivaldi on NixOS で Flash PPAPI Plugin を有効にした
という話。
/icons/hr.icon
実を言うと、僕の NixOS 環境上の Vivaldi では、今まで Flash Player が動いてなくて、
Flash が必要になる Web サイトとか基本的には動きません! という感じだったのですが、
今後 N 高等学校への入学を目指している関係で、色々と必要になるかもしれない、という事で、動く様にしました。 それで、実際のコードからの抜粋にはなるんだけど、大体、
下記の様な感じで Vivaldi on NixOS で Flash Plugin を有効に出来ます:
code: (nix)
vivaldi = vivaldi.overrideAttrs (old: rec {
installPhase = old.installPhase + ''
rm $out/bin/vivaldi
eval makeWrapper $out/opt/vivaldi/vivaldi $out/bin/vivaldi ${
stdenv.lib.concatMapStringsSep " " (plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")") (callPackage <nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix> {
enableWideVine = false;
enablePepperFlash = true;
upstream-info = import <nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix>;
}).enabled
}
'';
});
それでこの Snippet 、実際のところは NixOS の chromium の パッケージ定義を参考にして書いたのですが、
一体何を行っているか、と言うと、基本的には、
NixOS 上の Chromium で Flash PPAPI Plugin を有効にする方法
と同じ手法を、 Chromium のパッケージ定義から定義ファイルを拝借しつつ、
それを Vivaldi でも適用出来る様にした、という感じです。
そのため、この手法は他の Electron 系アプリでも適用出来るのではないか、と思います。
/icons/hr.icon
ちなみに。
上記の Snippet は、実際に僕が使っている設定ファイルのコードとは相違していて、
僕の環境の場合だと、vivaldi.overrideAttrs の vivaldi の部分が、
Nixpkgs の最新の定義ファイルを GitHub から取ってきたそれを使う、
という感じになっています。なお、実際のコードは大体こんなの:
code: (nix)
vivaldi = (callPackage "${fetchurl {
sha256 = "12cml3pb8rzwsgv7zi0da7nqmbpk5br6gqzxgpmxhmkwagrzgbsi";
}}" { }).overrideAttrs (old: rec {
それで、この、
ネットからパッケージ定義を部分的に取ってきて、それをそのまま使う
と言う手法は、NixOS で部分的に最新のパッケージを使いたい、と言う時に非常に便利なので、
NixOS や Nixpkgs 使いであれば、一応、覚えておいて損はないです、はい。
/icons/hr.icon
と言う事で本日は以上です。
しっかし、日本で NixOS 使っている方と言うか、利用している方の母数はどれくらいなんでしょうかね。
なんか、ほとんど見かけない感じではあるんですが……