bazecor: add wayland support

* using makeWrapper to expose wayland flags
* reformat variables usage to reduce errors in future updates
* using `--replace-fail` since `--replace` is deprecated
* add myself as a maintainer
This commit is contained in:
Guillaume Cléroux 2024-05-14 16:39:16 -04:00
parent dbd1d2f891
commit 8d00345f2b

View File

@ -1,12 +1,12 @@
{ lib
, appimageTools
, fetchurl
{
lib,
appimageTools,
fetchurl,
makeWrapper,
}:
appimageTools.wrapAppImage rec {
let
pname = "bazecor";
version = "1.3.11";
src = appimageTools.extract {
inherit pname version;
src = fetchurl {
@ -18,11 +18,14 @@ appimageTools.wrapAppImage rec {
postExtract = ''
substituteInPlace \
$out/usr/lib/bazecor/resources/app/.webpack/main/index.js \
--replace \
--replace-fail \
'checkUdev=()=>{try{if(c.default.existsSync(f))return c.default.readFileSync(f,"utf-8").trim()===l.trim()}catch(e){console.error(e)}return!1}' \
'checkUdev=()=>{return 1}'
'';
};
in
appimageTools.wrapAppImage {
inherit pname version src;
# also make sure to update the udev rules in ./10-dygma.rules; most recently
# taken from
@ -35,14 +38,18 @@ appimageTools.wrapAppImage rec {
# to allow non-root modifications to the keyboards.
extraInstallCommands = ''
install -m 444 -D ${src}/Bazecor.desktop -t $out/share/applications
substituteInPlace $out/share/applications/Bazecor.desktop \
--replace 'Exec=Bazecor' 'Exec=bazecor'
source "${makeWrapper}/nix-support/setup-hook"
wrapProgram $out/bin/bazecor \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
install -m 444 -D ${src}/Bazecor.desktop -t $out/share/applications
install -m 444 -D ${src}/bazecor.png -t $out/share/pixmaps
mkdir -p $out/lib/udev/rules.d
ln -s --target-directory=$out/lib/udev/rules.d ${./10-dygma.rules}
install -m 444 -D ${./10-dygma.rules} $out/lib/udev/rules.d/10-dygma.rules
substituteInPlace $out/share/applications/Bazecor.desktop \
--replace-fail 'Exec=Bazecor' 'Exec=bazecor'
'';
meta = {