tangled
alpha
login
or
join now
encode42.dev
/
nixos
0
fork
atom
Personal-use NixOS configuration
0
fork
atom
overview
issues
pulls
pipelines
Create lutris-gamepad-ui package
encode42.dev
6 days ago
b85a30f9
dfc170fa
+86
2 changed files
expand all
collapse all
unified
split
packages
default.nix
lutris-gamepad-ui
default.nix
+1
packages/default.nix
···
16
16
collabora-online = pkgs.callPackage ./collabora-online { };
17
17
emby-server = pkgs.callPackage ./emby-server { };
18
18
iso2god-rs = pkgs.callPackage ./iso2god-rs { };
19
19
+
lutris-gamepad-ui = pkgs.callPackage ./lutris-gamepad-ui { };
19
20
mediaelch = pkgs.callPackage ./mediaelch { };
20
21
network-optimizer = pkgs.callPackage ./network-optimizer { };
21
22
omnipoly = pkgs.callPackage ./omnipoly { };
+85
packages/lutris-gamepad-ui/default.nix
···
1
1
+
{
2
2
+
lib,
3
3
+
buildNpmPackage,
4
4
+
fetchFromGitHub,
5
5
+
makeWrapper,
6
6
+
makeDesktopItem,
7
7
+
electron_39,
8
8
+
python3,
9
9
+
lutris-unwrapped,
10
10
+
gtk3,
11
11
+
copyDesktopItems,
12
12
+
}:
13
13
+
14
14
+
let
15
15
+
pythonPackage = python3.withPackages (
16
16
+
ps: [ (ps.toPythonModule lutris-unwrapped) ] ++ lutris-unwrapped.propagatedBuildInputs
17
17
+
);
18
18
+
in
19
19
+
buildNpmPackage rec {
20
20
+
pname = "lutris-gamepad-ui";
21
21
+
version = "0.1.31";
22
22
+
23
23
+
src = fetchFromGitHub {
24
24
+
owner = "andrew-ld";
25
25
+
repo = "lutris-gamepad-ui";
26
26
+
tag = "v${version}";
27
27
+
hash = "sha256-j7gFDd7CZyayHblVTZ8voo0VAwhltesVN59jcIjqfQo=";
28
28
+
};
29
29
+
30
30
+
nativeBuildInputs = [
31
31
+
makeWrapper
32
32
+
copyDesktopItems
33
33
+
];
34
34
+
35
35
+
npmDepsHash = "sha256-YX0QCxc38LBYW1phPDhIS+j/rFYGNVzmQRTll3iNLbg=";
36
36
+
makeCacheWritable = true;
37
37
+
38
38
+
env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
39
39
+
40
40
+
npmBuildScript = "build:vite";
41
41
+
42
42
+
installPhase =
43
43
+
let
44
44
+
binPath = lib.makeBinPath [ pythonPackage ];
45
45
+
in
46
46
+
''
47
47
+
runHook preInstall
48
48
+
49
49
+
npm prune --omit=dev
50
50
+
51
51
+
mkdir -p $out/lib/node_modules/lutris-gamepad-ui
52
52
+
cp -r dist node_modules src_backend electron.cjs electron_preload.cjs lutris_wrapper.py lutris_wrapper.sh package.json $out/lib/node_modules/lutris-gamepad-ui/
53
53
+
54
54
+
install -Dm644 src_frontend/resources/icon.svg $out/share/icons/hicolor/256x256/apps/lutris-gamepad-ui.svg
55
55
+
56
56
+
makeWrapper '${lib.getExe electron_39}' $out/bin/lutris-gamepad-ui \
57
57
+
--suffix PATH : "${binPath}" \
58
58
+
--prefix GI_TYPELIB_PATH : "${gtk3}/lib/girepository-1.0" \
59
59
+
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
60
60
+
--add-flags $out/lib/node_modules/lutris-gamepad-ui/
61
61
+
62
62
+
runHook postInstall
63
63
+
'';
64
64
+
65
65
+
desktopItems = [
66
66
+
(makeDesktopItem {
67
67
+
name = "lutris gamepad ui";
68
68
+
exec = "lutris-gamepad-ui --no-sandbox %U";
69
69
+
icon = "lutris-gamepad-ui";
70
70
+
desktopName = "lutris gamepad ui";
71
71
+
comment = meta.description;
72
72
+
categories = [ "Game" ];
73
73
+
startupWMClass = "lutris gamepad ui";
74
74
+
terminal = false;
75
75
+
})
76
76
+
];
77
77
+
78
78
+
meta = {
79
79
+
description = "Simple, TV-friendly, gamepad-navigable frontend for the Lutris game launcher";
80
80
+
homepage = "https://github.com/andrew-ld/lutris-gamepad-ui";
81
81
+
license = lib.licenses.gpl3Only;
82
82
+
maintainers = with lib.maintainers; [ encode42 ];
83
83
+
mainProgram = "lutris-gamepad-ui";
84
84
+
};
85
85
+
}