95 lines
2.9 KiB
Nix
95 lines
2.9 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
|
|
let
|
|
bwrapperPkgs = pkgs.extend inputs.nix-bwrapper.overlays.default;
|
|
|
|
pname = "azahar";
|
|
version = "2123.4";
|
|
|
|
src = pkgs.fetchurl {
|
|
url = "https://github.com/azahar-emu/azahar/releases/download/2123.4/azahar.AppImage";
|
|
sha256 = "0x9k5kamn7lr5frffzv5vdgxv65cwwb01pbf6dyb8p2dw63cq87a";
|
|
};
|
|
|
|
appimageContents = pkgs.appimageTools.extractType2 {
|
|
inherit pname version src;
|
|
};
|
|
|
|
azahar = pkgs.appimageTools.wrapType2 {
|
|
inherit pname version src;
|
|
|
|
extraInstallCommands = ''
|
|
install -m 444 -D ${appimageContents}/usr/share/applications/azahar.desktop $out/share/applications/azahar.desktop
|
|
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/scalable/apps/org.azahar_emu.Azahar.svg \
|
|
$out/share/icons/hicolor/scalable/apps/azahar.svg
|
|
|
|
substituteInPlace $out/share/applications/azahar.desktop \
|
|
--replace 'Exec=AppRun' 'Exec=azahar'
|
|
'';
|
|
};
|
|
in
|
|
{
|
|
nixpkgs.overlays = [
|
|
(final: prev: {
|
|
azahar-sandboxed = bwrapperPkgs.mkBwrapper {
|
|
app = {
|
|
package = azahar;
|
|
id = "org.azahar_emu.azahar";
|
|
env = {
|
|
QT_QPA_PLATFORM = "wayland;xcb";
|
|
XDG_CURRENT_DESKTOP = "KDE";
|
|
};
|
|
};
|
|
|
|
flatpak.enable = false;
|
|
fhsenv.bwrap.additionalArgs = [
|
|
"--dir /run/systemd/resolve"
|
|
"--ro-bind-try /run/systemd/resolve /run/systemd/resolve"
|
|
''--bind "$XDG_RUNTIME_DIR/app/org.azahar_emu.azahar/bus" "$XDG_RUNTIME_DIR/bus"''
|
|
''--bind "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY" "$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY"''
|
|
''--bind "$XDG_RUNTIME_DIR/pipewire-0" "$XDG_RUNTIME_DIR/pipewire-0"''
|
|
''--bind "$XDG_RUNTIME_DIR/pulse" "$XDG_RUNTIME_DIR/pulse"''
|
|
];
|
|
|
|
mounts = {
|
|
read = [
|
|
"$HOME/.config/kdedefaults"
|
|
"$HOME/.local/share/color-schemes"
|
|
"$HOME/.config/fontconfig"
|
|
"$HOME/.icons"
|
|
"$HOME/.config/MangoHud"
|
|
];
|
|
readWrite = [
|
|
"$HOME/Games/3DS"
|
|
"$HOME/.config/azahar"
|
|
"$HOME/.local/share/azahar"
|
|
];
|
|
};
|
|
|
|
dbus.enable = false;
|
|
script.preCmds.stage2 = (import ./sandbox-utils.nix { inherit pkgs lib; }).mkDbusProxyScript {
|
|
appId = "org.azahar_emu.azahar";
|
|
enableSystemBus = false;
|
|
proxyArgs = [
|
|
"--filter"
|
|
''--talk="org.freedesktop.Flatpak"''
|
|
''--talk="org.kde.StatusNotifierWatcher"''
|
|
''--talk="org.kde.KWin"''
|
|
''--talk="org.gnome.Mutter.DisplayConfig"''
|
|
''--talk="org.freedesktop.ScreenSaver"''
|
|
''--talk="org.freedesktop.portal.Desktop"''
|
|
''--talk="org.freedesktop.portal.OpenURI"''
|
|
''--talk="org.freedesktop.secrets"''
|
|
''--call="org.freedesktop.portal.*=*@/org/freedesktop/portal/desktop"''
|
|
];
|
|
};
|
|
};
|
|
})
|
|
];
|
|
}
|