mirror of
https://github.com/ItsDrike/nixdots
synced 2024-11-10 04:59:42 +00:00
58 lines
1.4 KiB
Nix
58 lines
1.4 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf;
|
|
|
|
deviceType = config.myOptions.device.roles.type;
|
|
acceptedTypes = ["laptop" "desktop"];
|
|
in {
|
|
config = mkIf (builtins.elem deviceType acceptedTypes) {
|
|
environment.systemPackages = [pkgs.appimage-run];
|
|
|
|
# run appimages with appimage-run
|
|
boot.binfmt.registrations = lib.genAttrs ["appimage" "AppImage"] (_: {
|
|
wrapInterpreterInShell = false;
|
|
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
|
recognitionType = "magic";
|
|
offset = 0;
|
|
mask = "\\xff\\xff\\xff\\xff\\x00\\x00\\x00\\x00\\xff\\xff\\xff";
|
|
magicOrExtension = "\\x7fELF....AI\\x02";
|
|
});
|
|
|
|
# run unpatched linux binaries with nix-ld
|
|
programs.nix-ld = {
|
|
enable = true;
|
|
libraries = with pkgs; [
|
|
stdenv.cc.cc
|
|
openssl
|
|
curl
|
|
glib
|
|
util-linux
|
|
glibc
|
|
icu
|
|
libunwind
|
|
libuuid
|
|
zlib
|
|
libsecret
|
|
# graphical
|
|
freetype
|
|
libglvnd
|
|
libnotify
|
|
SDL2
|
|
vulkan-loader
|
|
gdk-pixbuf
|
|
xorg.libX11
|
|
];
|
|
};
|
|
|
|
# Some pre-compiled binaries hard-code ssl cert file to /etc/ssl/cert.pem
|
|
# instead of what NixOS uses (/etc/ssl/certs/ca-certificates.crt). Make a
|
|
# symlink there for compatibility.
|
|
# - For example the rye installed python binaries look there
|
|
environment.etc."ssl/cert.pem".source = "/etc/ssl/certs/ca-certificates.crt";
|
|
};
|
|
}
|