summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Trzeciak <jptrzy@gmail.com>2023-11-09 20:18:03 +0100
committerJakub Trzeciak <jptrzy@gmail.com>2023-11-09 20:18:03 +0100
commit230ac000af9de06b42edd4f960a7a69fa5416798 (patch)
tree7ba4d4654d2c6f29ad0937843cc34425552fc39c
parentb31392da2708dd117aaaff96260f842345fa2852 (diff)
downloadnixos-230ac000af9de06b42edd4f960a7a69fa5416798.tar.gz
nixos-230ac000af9de06b42edd4f960a7a69fa5416798.tar.bz2
nixos-230ac000af9de06b42edd4f960a7a69fa5416798.zip
Modrinth Appwayland
-rw-r--r--flake.nix2
-rw-r--r--home-manager/home.nix11
-rw-r--r--nixos/configuration.nix3
-rw-r--r--pkgs/default.nix8
-rw-r--r--pkgs/modrinth-app/default.nix54
-rw-r--r--pkgs/modrinth-app/wrapper.nix73
6 files changed, 130 insertions, 21 deletions
diff --git a/flake.nix b/flake.nix
index 18babe5..97b78f0 100644
--- a/flake.nix
+++ b/flake.nix
@@ -59,7 +59,7 @@
home-manager.users.${username} = {
imports = [ ./home-manager/home.nix ];
};
- home-manager.extraSpecialArgs = { inherit username nix-colors; };
+ home-manager.extraSpecialArgs = { inherit username nix-colors inputs; };
}
];
};
diff --git a/home-manager/home.nix b/home-manager/home.nix
index d185fa3..f57bd22 100644
--- a/home-manager/home.nix
+++ b/home-manager/home.nix
@@ -1,4 +1,4 @@
-{ username, nix-colors, config, pkgs, lib, ... }:
+{ inputs, username, nix-colors, config, pkgs, lib, ... }:
let
nvim-spell-pl-utf8-dict = builtins.fetchurl {
url = "http://ftp.vim.org/vim/runtime/spell/pl.utf-8.spl";
@@ -13,6 +13,11 @@ let
schemeFromYaml = import ./schemeFromYAML.nix;
in {
+ nix.settings = {
+ trusted-substituters = ["https://cache.garnix.io"];
+ trusted-public-keys = ["cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="];
+ };
+
imports = [
nix-colors.homeManagerModules.default
./addons/firefox.nix
@@ -48,10 +53,10 @@ in {
(import ./sh/mpv.nix {inherit pkgs; })
(import ./sh/fuzzel.nix {inherit pkgs; })
- ### Games ###
- modrinth-app
+ modrinth-app
];
+
nixpkgs.config.packageOverrides = pkgs: {
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
inherit pkgs;
diff --git a/nixos/configuration.nix b/nixos/configuration.nix
index ae89d00..fba549e 100644
--- a/nixos/configuration.nix
+++ b/nixos/configuration.nix
@@ -8,6 +8,9 @@
];
config = {
+ permittedInsecurePackages = [
+ "openssl-1.1.1w"
+ ];
allowUnfree = true;
pulseaduio = true;
packageOverrides = pkgs: {
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 02e5fdb..c29ed89 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -1,9 +1,13 @@
# Custom packages, that can be defined similarly to ones from nixpkgs
# You can build them using 'nix build .#example' or (legacy) 'nix-build -A example'
-{ pkgs ? (import ../nixpkgs.nix) { } }: {
+{ pkgs ? (import ../nixpkgs.nix) { } }: let
+ modrinth-app-unwrapped = pkgs.callPackage ./modrinth-app { };
+in {
mercury-browser = pkgs.callPackage ./mercury-browser { };
dmenu-bluetooth = pkgs.callPackage ./dmenu-bluetooth { };
neo-comic-mono-font = pkgs.callPackage ./neo-comic-mono-font { };
- modrinth-app = pkgs.callPackage ./modrinth-app { };
+ modrinth-app = pkgs.callPackage ./modrinth-app/wrapper.nix {
+ inherit modrinth-app-unwrapped;
+ };
}
diff --git a/pkgs/modrinth-app/default.nix b/pkgs/modrinth-app/default.nix
index 3ea1d6e..1d18654 100644
--- a/pkgs/modrinth-app/default.nix
+++ b/pkgs/modrinth-app/default.nix
@@ -1,32 +1,56 @@
-{ stdenv, lib, appimage-run, fetchurl, writeShellScriptBin, libthai }:
-
-stdenv.mkDerivation rec {
+{
+ autoPatchelfHook,
+ dpkg,
+ fetchurl,
+ glib,
+ gtk3,
+ lib,
+ libsoup,
+ libthai,
+ openssl_1_1,
+ stdenv,
+ webkitgtk,
+}: stdenv.mkDerivation rec {
pname = "modrinth-app";
version = "0.6.0";
+ srcs = [];
+ src = fetchurl {
+ url = "https://launcher-files.modrinth.com/versions/${version}/linux/${pname}_${version}_amd64.deb";
+ sha256 = "sha256-usaXxLp8IendOaiGFAXdEDnjW3lyyp0SSCGR1IG82m8=";
+ };
+
buildInputs = [
+ autoPatchelfHook
+ dpkg
+ glib
+ gtk3
+ libsoup
libthai
+ openssl_1_1
+ webkitgtk
];
unpackPhase = "true";
- srcs = [];
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out
+ dpkg -x $src $out
+
+ mv $out/usr/* $out
+ rm -rf $out/usr
+
+ chmod +x $out/bin/${pname}
- postInstall = let
- src = fetchurl {
- url = "https://launcher-files.modrinth.com/versions/${version}/linux/${pname}_${version}_amd64.AppImage";
- sha256 = "sha256-7BIoKqFXe9gqSfQXk8BUEQT5Fx7S8tXZ9cBl+WBjMGc=";
- };
- in ''
- mkdir -p $out/bin
- echo "${appimage-run}/bin/appimage-run ${src}" > $out/bin/modrinth-app
- chmod +x $out/bin/modrinth-app
+ runHook postInstall
'';
meta = with lib; {
description = "Modrinth minecraft launcher";
homepage = "https://modrinth.com/app";
- #license = licenses.gpl3Only;
- #maintainers = with maintainers; [ elnudev ];
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ jptrzy ];
platforms = [ "x86_64-linux" ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
};
diff --git a/pkgs/modrinth-app/wrapper.nix b/pkgs/modrinth-app/wrapper.nix
new file mode 100644
index 0000000..bfb2823
--- /dev/null
+++ b/pkgs/modrinth-app/wrapper.nix
@@ -0,0 +1,73 @@
+{
+ addOpenGLRunpath,
+ copyDesktopItems,
+ flite,
+ glib-networking,
+ jdk17,
+ jdk8,
+ jdks ? [jdk8 jdk17],
+ lib,
+ libGL,
+ libpulseaudio,
+ modrinth-app-unwrapped,
+ stdenv,
+ symlinkJoin,
+ udev,
+ wrapGAppsHook,
+ xorg,
+}:
+symlinkJoin {
+ name = "modrinth-app-${modrinth-app-unwrapped.version}";
+
+ paths = [modrinth-app-unwrapped];
+
+ buildInputs = [
+ glib-networking
+ copyDesktopItems
+ ];
+
+ nativeBuildInputs = [
+ wrapGAppsHook
+ ];
+
+ postBuild = let
+ libPath = lib.makeLibraryPath [
+ flite # narrator support
+ libGL
+ libpulseaudio
+ stdenv.cc.cc.lib
+
+ udev # oshi
+
+ # lwjgl
+ xorg.libX11
+ xorg.libXcursor
+ xorg.libXext
+ xorg.libXxf86vm
+ xorg.libXrandr
+ ];
+
+ binPath = lib.makeBinPath (
+ lib.optionals stdenv.isLinux [xorg.xrandr]
+ );
+
+ args =
+ ["--prefix PATH : ${lib.makeSearchPath "bin/java" jdks}"]
+ ++ lib.optionals stdenv.isLinux [
+ "--set LD_LIBRARY_PATH ${addOpenGLRunpath.driverLink}/lib:${libPath}"
+ "--prefix PATH : ${binPath}"
+ ];
+ in ''
+ gappsWrapperArgs+=(
+ ${lib.concatStringsSep "\n" args}
+ )
+
+ wrapGAppsHook
+ '';
+
+ postInstall = ''
+ copyDesktopItems
+ '';
+
+ inherit (modrinth-app-unwrapped) meta;
+}
Software created with 💖