mirror of
https://github.com/starr-dusT/dotfiles.git
synced 2025-02-18 10:47:31 -08:00
update flake lock and fix errors, as well as remove yuzu-likes
This commit is contained in:
parent
0f923b74c2
commit
df3a063d17
72
provision/flake.lock
generated
72
provision/flake.lock
generated
@ -8,11 +8,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1723293904,
|
"lastModified": 1736955230,
|
||||||
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
|
"narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
|
"rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -46,11 +46,11 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1733328505,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -59,24 +59,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1726560853,
|
|
||||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -105,11 +87,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732482255,
|
"lastModified": 1738448366,
|
||||||
"narHash": "sha256-GUffLwzawz5WRVfWaWCg78n/HrBJrOG7QadFY6rtV8A=",
|
"narHash": "sha256-4ATtQqBlgsGqkHTemta0ydY6f7JBRXz4Hf574NHQpkg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "a9953635d7f34e7358d5189751110f87e3ac17da",
|
"rev": "18fa9f323d8adbb0b7b8b98a8488db308210ed93",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -121,11 +103,11 @@
|
|||||||
"jovian-nixos": {
|
"jovian-nixos": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732648910,
|
"lastModified": 1738443663,
|
||||||
"narHash": "sha256-1F83DUfEHnCZpGY4UOlWaamWoDx8eZ9tHaUF51p2hng=",
|
"narHash": "sha256-Rx3E+LRYRYvWFhjIE2bMpybL6Ac5NgdSpEOX70NATuE=",
|
||||||
"ref": "development",
|
"ref": "development",
|
||||||
"rev": "e86d2ad72094354326887bd6fe156f327d63d491",
|
"rev": "bdf32c9d74f824250e683003bd44596f0b93c81a",
|
||||||
"revCount": 1033,
|
"revCount": 1099,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Jovian-Experiments/Jovian-NixOS"
|
"url": "https://github.com/Jovian-Experiments/Jovian-NixOS"
|
||||||
},
|
},
|
||||||
@ -138,17 +120,16 @@
|
|||||||
"nixos-wsl": {
|
"nixos-wsl": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731682434,
|
"lastModified": 1736095716,
|
||||||
"narHash": "sha256-HnZFPB7akVIy0KuPq/tEkiB+Brt1qi0DUIDzR8z25qI=",
|
"narHash": "sha256-csysw/Szu98QDiA2lhWk9seYOyCebeVEWL89zh1cduM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NixOS-WSL",
|
"repo": "NixOS-WSL",
|
||||||
"rev": "a6b9cf0b7805e2c50829020a73e7bde683fd36dd",
|
"rev": "63c3b4ed1712a3a0621002cd59bfdc80875ecbb0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -175,11 +156,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732521221,
|
"lastModified": 1738410390,
|
||||||
"narHash": "sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0=",
|
"narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "4633a7c72337ea8fd23a4f2ba3972865e3ec685d",
|
"rev": "3a228057f5b619feb3186e986dbe76278d707b6e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -212,21 +193,6 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"systems_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
@ -17,7 +17,6 @@ in {
|
|||||||
vesktop # Voice, video, and text communication platform for communities and friends
|
vesktop # Voice, video, and text communication platform for communities and friends
|
||||||
inkscape # Vector graphics editor for creating illustrations, icons, logos, diagrams, and more
|
inkscape # Vector graphics editor for creating illustrations, icons, logos, diagrams, and more
|
||||||
libreoffice-fresh # Office suite compatible with Microsoft Office
|
libreoffice-fresh # Office suite compatible with Microsoft Office
|
||||||
xournal # Note-taking and sketching application
|
|
||||||
mpv # Media player for playing audio and video files
|
mpv # Media player for playing audio and video files
|
||||||
p7zip # Command-line file archiver with high compression ratio
|
p7zip # Command-line file archiver with high compression ratio
|
||||||
gimp # GNU Image Manipulation Program for editing and composing raster images
|
gimp # GNU Image Manipulation Program for editing and composing raster images
|
||||||
|
@ -25,7 +25,6 @@ in {
|
|||||||
evolution # Personal information management application that provides email, calendar, and contact management features
|
evolution # Personal information management application that provides email, calendar, and contact management features
|
||||||
gnomeExtensions.custom-hot-corners-extended # GNOME Shell extension for changing window focus behavior
|
gnomeExtensions.custom-hot-corners-extended # GNOME Shell extension for changing window focus behavior
|
||||||
gnomeExtensions.alphabetical-app-grid # Alphabetically order the app grid and folders
|
gnomeExtensions.alphabetical-app-grid # Alphabetically order the app grid and folders
|
||||||
gnome-fullscreen-to-empty-workspace # New, maximized and fullscreen windows will be moved to empty workspaces
|
|
||||||
gnome-set-panel-monitor # Set monitor for panel to appear on
|
gnome-set-panel-monitor # Set monitor for panel to appear on
|
||||||
stacks-in-gnome # TBD
|
stacks-in-gnome # TBD
|
||||||
gnome-randr # Xrandr-like CLI for configuring displays on GNOME/Wayland
|
gnome-randr # Xrandr-like CLI for configuring displays on GNOME/Wayland
|
||||||
@ -63,7 +62,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Enable sound and handle conflict (https://github.com/Jovian-Experiments/Jovian-NixOS/issues/99)
|
# Enable sound and handle conflict (https://github.com/Jovian-Experiments/Jovian-NixOS/issues/99)
|
||||||
hardware.pulseaudio.enable = lib.mkForce false;
|
services.pulseaudio.enable = lib.mkForce false;
|
||||||
|
|
||||||
xdg.mime = {
|
xdg.mime = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -124,7 +123,6 @@ in {
|
|||||||
disable-user-extensions = false;
|
disable-user-extensions = false;
|
||||||
enabled-extensions = [
|
enabled-extensions = [
|
||||||
"focus-changer@heartmire"
|
"focus-changer@heartmire"
|
||||||
"fullscreen-to-empty-workspace@aiono.dev"
|
|
||||||
"gnome-set-panel-monitor@tstarr.us"
|
"gnome-set-panel-monitor@tstarr.us"
|
||||||
"custom-hot-corners-extended@G-dH.github.com"
|
"custom-hot-corners-extended@G-dH.github.com"
|
||||||
"AlphabeticalAppGrid@stuarthayhurst"
|
"AlphabeticalAppGrid@stuarthayhurst"
|
||||||
|
@ -1,26 +1,23 @@
|
|||||||
{ config, lib, pkgs, user, ... }:
|
{ config, lib, pkgs, user, ... }:
|
||||||
|
|
||||||
let cfg = config.modules.gaming.emulation;
|
let cfg = config.modules.gaming.emulation;
|
||||||
|
retroarchWithCores = (pkgs.retroarch.withCores (cores: with cores; [
|
||||||
|
nestopia # Nintendo Entertainment System (NES) emulator
|
||||||
|
snes9x # Super Nintendo Entertainment System (SNES) emulator
|
||||||
|
mgba # Game Boy Advance emulator
|
||||||
|
melonds # Nintendo DS emulator
|
||||||
|
citra # Fuck Nintendo a third time
|
||||||
|
]));
|
||||||
in {
|
in {
|
||||||
options.modules.gaming.emulation.enable = lib.mkEnableOption "emulation";
|
options.modules.gaming.emulation.enable = lib.mkEnableOption "emulation";
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
ryujinx # Fuck Nintendo
|
ryujinx # Fuck Nintendo
|
||||||
yuzu # Fuck Nintendo again
|
|
||||||
sudachi # Nintendo Switch emulator written in C++
|
|
||||||
dolphin-emu # GameCube and Wii emulator
|
dolphin-emu # GameCube and Wii emulator
|
||||||
ppsspp # PSP emulator
|
ppsspp # PSP emulator
|
||||||
mgba # Game Boy Advance emulator
|
mgba # Game Boy Advance emulator
|
||||||
rpcs3 # PS3 emulator/debugger
|
rpcs3 # PS3 emulator/debugger
|
||||||
(retroarch.override {
|
retroarchWithCores # frontend for emulators and specific cores
|
||||||
cores = with libretro; [
|
|
||||||
nestopia # Nintendo Entertainment System (NES) emulator
|
|
||||||
snes9x # Super Nintendo Entertainment System (SNES) emulator
|
|
||||||
mgba # Game Boy Advance emulator
|
|
||||||
melonds # Nintendo DS emulator
|
|
||||||
citra # Fuck Nintendo a third time
|
|
||||||
];
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
hardware.graphics.enable = true; # https://github.com/NixOS/nixpkgs/issues/47932
|
hardware.graphics.enable = true; # https://github.com/NixOS/nixpkgs/issues/47932
|
||||||
hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable;
|
services.pulseaudio.support32Bit = config.hardware.pulseaudio.enable;
|
||||||
hardware.steam-hardware.enable = true;
|
hardware.steam-hardware.enable = true;
|
||||||
|
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
|
@ -6,7 +6,7 @@ in {
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home-manager.users.${user} = {
|
home-manager.users.${user} = {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
nerdfonts
|
nerd-fonts.jetbrains-mono
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
final: prev: {
|
final: prev: {
|
||||||
advcpmv = final.callPackage ../pkgs/advcpmv.nix {};
|
advcpmv = final.callPackage ../pkgs/advcpmv.nix {};
|
||||||
ftw = final.callPackage ../pkgs/ftw.nix {};
|
ftw = final.callPackage ../pkgs/ftw.nix {};
|
||||||
gnome-fullscreen-to-empty-workspace = final.callPackage ../pkgs/gnome-fullscreen-to-empty-workspace/default.nix {};
|
|
||||||
gnome-set-panel-monitor = final.callPackage ../pkgs/gnome-set-panel-monitor.nix {};
|
gnome-set-panel-monitor = final.callPackage ../pkgs/gnome-set-panel-monitor.nix {};
|
||||||
stacks-in-gnome = final.callPackage ../pkgs/stacks-in-gnome.nix {};
|
stacks-in-gnome = final.callPackage ../pkgs/stacks-in-gnome.nix {};
|
||||||
nx_tzdb = final.callPackage ../pkgs/nx_tzdb.nix {};
|
|
||||||
pySVS = final.callPackage ../pkgs/pySVS.nix {};
|
pySVS = final.callPackage ../pkgs/pySVS.nix {};
|
||||||
ryujinx = final.callPackage ../pkgs/ryujinx/default.nix {};
|
ryujinx = final.callPackage ../pkgs/ryujinx/default.nix {};
|
||||||
sudachi = final.qt6.callPackage ../pkgs/sudachi/default.nix {};
|
|
||||||
yuzu = final.libsForQt5.callPackage ../pkgs/yuzu/default.nix {};
|
|
||||||
}
|
}
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
{ lib, stdenv, fetchFromGitHub, glib }:
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
pname = "gnome-fullscreen-to-new-workspace";
|
|
||||||
version = "git-2023-08-19";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "onsah";
|
|
||||||
repo = "fullscreen-to-new-workspace";
|
|
||||||
rev = "26014b6f8d569891381ab2ebc75c74a51d2454df";
|
|
||||||
hash = "sha256-S9mvODQqOBCmA+L1TBJm/c1v5Y+qVKuFpQf799LEwcI=";
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
./version.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
mkdir -p "$out/share/gnome-shell/extensions/fullscreen-to-empty-workspace@aiono.dev"
|
|
||||||
cp -r src/* "$out/share/gnome-shell/extensions/fullscreen-to-empty-workspace@aiono.dev"
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
|
||||||
extensionUuid = "fullscreen-to-empty-workspace@aiono.dev";
|
|
||||||
extensionPortalSlug = "fullscreen-to-empty-workspace";
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "New, maximized and fullscreen windows will be moved to empty workspaces.";
|
|
||||||
maintainers = with maintainers; [ onsah starr-dusT ];
|
|
||||||
homepage = "https://github.com/onsah/fullscreen-to-new-workspace";
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
diff --git a/src/metadata.json b/src/metadata.json
|
|
||||||
index 66a2ea3..a98e00c 100644
|
|
||||||
--- a/src/metadata.json
|
|
||||||
+++ b/src/metadata.json
|
|
||||||
@@ -4,8 +4,9 @@
|
|
||||||
"url": "https://github.com/onsah/fullscreen-to-new-workspace",
|
|
||||||
"uuid": "fullscreen-to-empty-workspace@aiono.dev",
|
|
||||||
"shell-version": [
|
|
||||||
- "46"
|
|
||||||
+ "47"
|
|
||||||
],
|
|
||||||
"version": 15,
|
|
||||||
"settings-schema": "org.gnome.shell.extensions.fullscreen-to-empty-workspace"
|
|
||||||
-}
|
|
||||||
\ No newline at end of file
|
|
||||||
+}
|
|
||||||
+
|
|
@ -1,20 +0,0 @@
|
|||||||
{ stdenv, fetchurl, unzip, gitUpdater }:
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "nx_tzdb";
|
|
||||||
version = "221202";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://git.tstarr.us/tstarr/tzdb_to_nx/releases/download/221202/221202.zip";
|
|
||||||
hash = "sha256-mRzW+iIwrU1zsxHmf+0RArU8BShAoEMvCz+McXFFK3c=";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ unzip ];
|
|
||||||
|
|
||||||
buildCommand = ''
|
|
||||||
unzip $src -d $out
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru.updateScript = gitUpdater {
|
|
||||||
url = "https://git.tstarr.us/tstarr/tzdb_to_nx";
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,205 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
fetchzip,
|
|
||||||
fetchFromGitea,
|
|
||||||
cmake,
|
|
||||||
glslang,
|
|
||||||
pkg-config,
|
|
||||||
qttools,
|
|
||||||
wrapQtAppsHook,
|
|
||||||
boost,
|
|
||||||
fmt,
|
|
||||||
lz4,
|
|
||||||
nlohmann_json,
|
|
||||||
qtbase,
|
|
||||||
qtmultimedia,
|
|
||||||
qtwayland,
|
|
||||||
qtwebengine,
|
|
||||||
zlib,
|
|
||||||
zstd,
|
|
||||||
rapidjson,
|
|
||||||
libva,
|
|
||||||
libvdpau,
|
|
||||||
nv-codec-headers-12,
|
|
||||||
yasm,
|
|
||||||
autoconf,
|
|
||||||
automake,
|
|
||||||
libtool,
|
|
||||||
spirv-headers,
|
|
||||||
catch2_3,
|
|
||||||
vulkan-loader,
|
|
||||||
vulkan-headers,
|
|
||||||
SDL2,
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
# Derived from externals/nx_tzdb/CMakeLists.txt
|
|
||||||
nx_tzdb = fetchzip {
|
|
||||||
url = "https://github.com/lat9nq/tzdb_to_nx/releases/download/221202/221202.zip";
|
|
||||||
hash = "sha256-YOIElcKTiclem05trZsA3YJReozu/ex7jJAKD6nAMwc=";
|
|
||||||
stripRoot = false;
|
|
||||||
};
|
|
||||||
suyu = fetchFromGitea {
|
|
||||||
domain = "git.suyu.dev";
|
|
||||||
owner = "suyu";
|
|
||||||
repo = "suyu";
|
|
||||||
rev = "ee365bad9501c73ff49936e72ec91cd9c3ce5c24";
|
|
||||||
hash = "sha256-vw9VcSbCaG4MS0PL/fJ73CDALLbd3n0CBT7gkyp5hRc=";
|
|
||||||
fetchSubmodules = true;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
|
||||||
pname = "sudachi";
|
|
||||||
version = "1.0.11";
|
|
||||||
|
|
||||||
src = fetchzip {
|
|
||||||
url = "https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.11/latest.zip";
|
|
||||||
hash = "sha256-HNNND8g9JyvrMjQxHq4udUtskGkqaISpq0TnzE2rb/U=";
|
|
||||||
stripRoot = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
./remove_agx.patch
|
|
||||||
./sdl2_fix.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
cmake
|
|
||||||
glslang
|
|
||||||
pkg-config
|
|
||||||
qttools
|
|
||||||
wrapQtAppsHook
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
vulkan-headers
|
|
||||||
boost
|
|
||||||
fmt
|
|
||||||
lz4
|
|
||||||
SDL2
|
|
||||||
nlohmann_json
|
|
||||||
qtbase
|
|
||||||
qtmultimedia
|
|
||||||
qtwayland
|
|
||||||
qtwebengine
|
|
||||||
zlib
|
|
||||||
zstd
|
|
||||||
|
|
||||||
# vendored discord-rpc deps
|
|
||||||
rapidjson
|
|
||||||
|
|
||||||
# vendored ffmpeg deps
|
|
||||||
libva # for accelerated video decode on non-nvidia
|
|
||||||
libvdpau # for accelerated video decode on non-nvidia
|
|
||||||
nv-codec-headers-12 # for accelerated video decode on nvidia
|
|
||||||
yasm
|
|
||||||
|
|
||||||
# vendored libusb deps
|
|
||||||
autoconf
|
|
||||||
automake
|
|
||||||
libtool
|
|
||||||
|
|
||||||
# vendored sirit deps
|
|
||||||
spirv-headers
|
|
||||||
];
|
|
||||||
|
|
||||||
cmakeFlags = [
|
|
||||||
# actually has a noticeable performance impact
|
|
||||||
"-DSUDACHI_ENABLE_LTO=ON"
|
|
||||||
|
|
||||||
# build with qt6
|
|
||||||
"-DENABLE_QT6=ON"
|
|
||||||
|
|
||||||
# enable some optional features
|
|
||||||
"-DSUDACHI_USE_QT_WEB_ENGINE=ON"
|
|
||||||
"-DSUDACHI_USE_QT_MULTIMEDIA=ON"
|
|
||||||
"-DUSE_DISCORD_PRESENCE=ON"
|
|
||||||
|
|
||||||
# compatibility list currently 404's
|
|
||||||
"-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF"
|
|
||||||
|
|
||||||
# don't check for missing submodules
|
|
||||||
"-DSUDACHI_CHECK_SUBMODULES=OFF"
|
|
||||||
|
|
||||||
# use system libraries
|
|
||||||
# NB: "external" here means "from the externals/ directory in the source",
|
|
||||||
# so "off" means "use system"
|
|
||||||
"-DSUDACHI_USE_EXTERNAL_VULKAN_HEADERS=OFF"
|
|
||||||
|
|
||||||
# Disable SDL2
|
|
||||||
# SDL flags are broken somehow in 1.0.11 and fix is hacked in with a patch
|
|
||||||
|
|
||||||
# don't use system ffmpeg, sudachi uses internal APIs
|
|
||||||
"-DSUDACHI_USE_BUNDLED_FFMPEG=ON"
|
|
||||||
"-DFFmpeg_COMPONENTS='swscale;avutil;avfilter;avcodec'"
|
|
||||||
"-DFFmpeg_PREFIX=$src/externals/ffmpeg/ffmpeg"
|
|
||||||
|
|
||||||
# use system spriv headers for sirit
|
|
||||||
"-DSIRIT_USE_SYSTEM_SPIRV_HEADERS=ON"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Does some handrolled SIMD
|
|
||||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isx86_64 "-msse4.1";
|
|
||||||
|
|
||||||
# This changes `ir/opt` to `ir/var/empty` in `externals/dynarmic/src/dynarmic/CMakeLists.txt`
|
|
||||||
# making the build fail, as that path does not exist
|
|
||||||
dontFixCmake = true;
|
|
||||||
|
|
||||||
prePatch = ''
|
|
||||||
# Copy suyu externals
|
|
||||||
rm -R externals/
|
|
||||||
cp -R ${suyu}/externals .
|
|
||||||
|
|
||||||
# replace "SUYU" with "SUDACHI" in externals cmake args
|
|
||||||
chmod u+rw -R externals/
|
|
||||||
grep -rl SUYU | xargs sed -i 's/SUYU/SUDACHI/g'
|
|
||||||
'';
|
|
||||||
|
|
||||||
preConfigure = ''
|
|
||||||
# see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work.
|
|
||||||
cmakeFlagsArray+=(
|
|
||||||
"-DTITLE_BAR_FORMAT_IDLE=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) {}"
|
|
||||||
"-DTITLE_BAR_FORMAT_RUNNING=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) | {}"
|
|
||||||
)
|
|
||||||
|
|
||||||
# provide pre-downloaded tz data
|
|
||||||
mkdir -p build/externals/nx_tzdb
|
|
||||||
ln -s ${nx_tzdb} build/externals/nx_tzdb/nx_tzdb
|
|
||||||
'';
|
|
||||||
|
|
||||||
doCheck = true;
|
|
||||||
checkInputs = [ catch2_3 ];
|
|
||||||
|
|
||||||
# Fixes vulkan detection.
|
|
||||||
# FIXME: patchelf --add-rpath corrupts the binary for some reason, investigate
|
|
||||||
qtWrapperArgs = [ "--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib" ];
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
install -Dm444 "$src/dist/72-sudachi-input.rules" "$out/lib/udev/rules.d/72-sudachi-input.rules"
|
|
||||||
mkdir -p "$out/share/sudachi"
|
|
||||||
cp -R "$src" "$out/share/sudachi/src"
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Nintendo Switch emulator written in C++";
|
|
||||||
homepage = "https://sudachiemu.com/";
|
|
||||||
changelog = "https://sudachi.emuplace.app/";
|
|
||||||
mainProgram = "sudachi";
|
|
||||||
platforms = [
|
|
||||||
"aarch64-linux"
|
|
||||||
"x86_64-linux"
|
|
||||||
];
|
|
||||||
|
|
||||||
license = with licenses; [
|
|
||||||
gpl3Plus
|
|
||||||
|
|
||||||
# Icons
|
|
||||||
asl20
|
|
||||||
mit
|
|
||||||
cc0
|
|
||||||
];
|
|
||||||
|
|
||||||
maintainers = with maintainers; [ starr-dusT ];
|
|
||||||
};
|
|
||||||
})
|
|
@ -1,16 +0,0 @@
|
|||||||
Submodule externals/Vulkan-Utility-Libraries contains modified content
|
|
||||||
diff --git a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h
|
|
||||||
index 9d2af46..bb490ac 100644
|
|
||||||
--- a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h
|
|
||||||
+++ b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h
|
|
||||||
@@ -3478,8 +3478,8 @@ static inline const char* string_VkDriverId(VkDriverId input_value) {
|
|
||||||
return "VK_DRIVER_ID_MESA_NVK";
|
|
||||||
case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA:
|
|
||||||
return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA";
|
|
||||||
- case VK_DRIVER_ID_MESA_AGXV:
|
|
||||||
- return "VK_DRIVER_ID_MESA_AGXV";
|
|
||||||
+ //case VK_DRIVER_ID_MESA_AGXV:
|
|
||||||
+ // return "VK_DRIVER_ID_MESA_AGXV";
|
|
||||||
default:
|
|
||||||
return "Unhandled VkDriverId";
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index ed30417..7c1da0b 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -535,34 +535,10 @@ if(ENABLE_QT)
|
|
||||||
|
|
||||||
endif()
|
|
||||||
|
|
||||||
-# find SDL2 exports a bunch of variables that are needed, so its easier to do this outside of the sudachi_find_package
|
|
||||||
-if (ENABLE_SDL2 AND NOT USE_SDL2_FROM_EXTERNALS)
|
|
||||||
- if (SUDACHI_USE_BUNDLED_SDL2)
|
|
||||||
- # Detect toolchain and platform
|
|
||||||
- if ((MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1940) AND ARCHITECTURE_x86_64)
|
|
||||||
- set(SDL2_VER "SDL2-2.28.2")
|
|
||||||
- else()
|
|
||||||
- message(FATAL_ERROR "No bundled SDL2 binaries for your toolchain. Disable SUDACHI_USE_BUNDLED_SDL2 and provide your own.")
|
|
||||||
- endif()
|
|
||||||
-
|
|
||||||
- if (DEFINED SDL2_VER)
|
|
||||||
- download_bundled_external("sdl2/" ${SDL2_VER} SDL2_PREFIX)
|
|
||||||
- endif()
|
|
||||||
-
|
|
||||||
- set(SDL2_FOUND YES)
|
|
||||||
- set(SDL2_INCLUDE_DIR "${SDL2_PREFIX}/include" CACHE PATH "Path to SDL2 headers")
|
|
||||||
- set(SDL2_LIBRARY "${SDL2_PREFIX}/lib/x64/SDL2.lib" CACHE PATH "Path to SDL2 library")
|
|
||||||
- set(SDL2_DLL_DIR "${SDL2_PREFIX}/lib/x64/" CACHE PATH "Path to SDL2.dll")
|
|
||||||
-
|
|
||||||
- add_library(SDL2::SDL2 INTERFACE IMPORTED)
|
|
||||||
- target_link_libraries(SDL2::SDL2 INTERFACE "${SDL2_LIBRARY}")
|
|
||||||
- target_include_directories(SDL2::SDL2 INTERFACE "${SDL2_INCLUDE_DIR}")
|
|
||||||
- elseif (USE_SDL2_FROM_EXTERNALS)
|
|
||||||
- message(STATUS "Using SDL2 from externals.")
|
|
||||||
- else()
|
|
||||||
- find_package(SDL2 2.26.4 REQUIRED)
|
|
||||||
- endif()
|
|
||||||
-endif()
|
|
||||||
+# Nixos needs to use packaged SDL2. There is something up with these flags that
|
|
||||||
+# doesn't currently work properly so here is a quick hack. I'd investigate and
|
|
||||||
+# report to the dev, but you all are dicks who drove him out. Fuck you all.
|
|
||||||
+find_package(SDL2 2.26.4 REQUIRED)
|
|
||||||
|
|
||||||
if (UNIX AND NOT APPLE AND NOT ANDROID)
|
|
||||||
find_package(PkgConfig REQUIRED)
|
|
@ -1,217 +0,0 @@
|
|||||||
{ lib
|
|
||||||
, stdenv
|
|
||||||
, fetchFromGitea
|
|
||||||
, nix-update-script
|
|
||||||
, wrapQtAppsHook
|
|
||||||
, autoconf
|
|
||||||
, boost
|
|
||||||
, catch2_3
|
|
||||||
, cmake
|
|
||||||
, cpp-jwt
|
|
||||||
, cubeb
|
|
||||||
, discord-rpc
|
|
||||||
, enet
|
|
||||||
, fmt
|
|
||||||
, glslang
|
|
||||||
, libopus
|
|
||||||
, libusb1
|
|
||||||
, libva
|
|
||||||
, lz4
|
|
||||||
, nlohmann_json
|
|
||||||
, nv-codec-headers-12
|
|
||||||
, pkg-config
|
|
||||||
, qtbase
|
|
||||||
, qtmultimedia
|
|
||||||
, qttools
|
|
||||||
, qtwayland
|
|
||||||
, qtwebengine
|
|
||||||
, SDL2
|
|
||||||
, vulkan-headers
|
|
||||||
, vulkan-loader
|
|
||||||
, yasm
|
|
||||||
, zlib
|
|
||||||
, zstd
|
|
||||||
, fetchzip
|
|
||||||
, fetchgit
|
|
||||||
, runCommand
|
|
||||||
, gnutar
|
|
||||||
, nx_tzdb
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
suyu = fetchFromGitea {
|
|
||||||
domain = "git.suyu.dev";
|
|
||||||
owner = "suyu";
|
|
||||||
repo = "suyu";
|
|
||||||
rev = "ee365bad9501c73ff49936e72ec91cd9c3ce5c24";
|
|
||||||
hash = "sha256-vw9VcSbCaG4MS0PL/fJ73CDALLbd3n0CBT7gkyp5hRc=";
|
|
||||||
fetchSubmodules = true;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation(finalAttrs: {
|
|
||||||
|
|
||||||
pname = "yuzu";
|
|
||||||
version = "4176";
|
|
||||||
|
|
||||||
src = fetchFromGitea {
|
|
||||||
domain = "git.tstarr.us";
|
|
||||||
owner = "tstarr";
|
|
||||||
repo = "yuzu-mainline";
|
|
||||||
rev = "d3a974b64679229e77a3af921994dab82d092249";
|
|
||||||
hash = "sha256-sn/CfaZkS3noDH9lmEtIES6Xc7aoZ5tbHo1AJc5nxac=";
|
|
||||||
fetchSubmodules = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
./remove_agx.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
cmake
|
|
||||||
glslang
|
|
||||||
pkg-config
|
|
||||||
qttools
|
|
||||||
wrapQtAppsHook
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
# vulkan-headers must come first, so the older propagated versions
|
|
||||||
# don't get picked up by accident
|
|
||||||
vulkan-headers
|
|
||||||
|
|
||||||
boost
|
|
||||||
catch2_3
|
|
||||||
cpp-jwt
|
|
||||||
cubeb
|
|
||||||
discord-rpc
|
|
||||||
# intentionally omitted: dynarmic - prefer vendored version for compatibility
|
|
||||||
enet
|
|
||||||
|
|
||||||
# vendored ffmpeg deps
|
|
||||||
autoconf
|
|
||||||
yasm
|
|
||||||
libva # for accelerated video decode on non-nvidia
|
|
||||||
nv-codec-headers-12 # for accelerated video decode on nvidia
|
|
||||||
# end vendored ffmpeg deps
|
|
||||||
|
|
||||||
fmt
|
|
||||||
# intentionally omitted: gamemode - loaded dynamically at runtime
|
|
||||||
# intentionally omitted: httplib - upstream requires an older version than what we have
|
|
||||||
libopus
|
|
||||||
libusb1
|
|
||||||
# intentionally omitted: LLVM - heavy, only used for stack traces in the debugger
|
|
||||||
lz4
|
|
||||||
nlohmann_json
|
|
||||||
qtbase
|
|
||||||
qtmultimedia
|
|
||||||
qtwayland
|
|
||||||
qtwebengine
|
|
||||||
# intentionally omitted: renderdoc - heavy, developer only
|
|
||||||
SDL2
|
|
||||||
# not packaged in nixpkgs: simpleini
|
|
||||||
# intentionally omitted: stb - header only libraries, vendor uses git snapshot
|
|
||||||
# not packaged in nixpkgs: vulkan-memory-allocator
|
|
||||||
# intentionally omitted: xbyak - prefer vendored version for compatibility
|
|
||||||
zlib
|
|
||||||
zstd
|
|
||||||
];
|
|
||||||
|
|
||||||
# This changes `ir/opt` to `ir/var/empty` in `externals/dynarmic/src/dynarmic/CMakeLists.txt`
|
|
||||||
# making the build fail, as that path does not exist
|
|
||||||
dontFixCmake = true;
|
|
||||||
|
|
||||||
cmakeFlags = [
|
|
||||||
# actually has a noticeable performance impact
|
|
||||||
"-DYUZU_ENABLE_LTO=ON"
|
|
||||||
|
|
||||||
# build with qt6
|
|
||||||
"-DENABLE_QT6=ON"
|
|
||||||
"-DENABLE_QT_TRANSLATION=ON"
|
|
||||||
|
|
||||||
# use system libraries
|
|
||||||
# NB: "external" here means "from the externals/ directory in the source",
|
|
||||||
# so "off" means "use system"
|
|
||||||
"-DYUZU_USE_EXTERNAL_SDL2=OFF"
|
|
||||||
"-DYUZU_USE_EXTERNAL_VULKAN_HEADERS=OFF"
|
|
||||||
|
|
||||||
# don't use system ffmpeg, yuzu uses internal APIs
|
|
||||||
"-DYUZU_USE_BUNDLED_FFMPEG=ON"
|
|
||||||
|
|
||||||
# don't check for missing submodules
|
|
||||||
"-DYUZU_CHECK_SUBMODULES=OFF"
|
|
||||||
|
|
||||||
# enable some optional features
|
|
||||||
"-DYUZU_USE_QT_WEB_ENGINE=ON"
|
|
||||||
"-DYUZU_USE_QT_MULTIMEDIA=ON"
|
|
||||||
"-DUSE_DISCORD_PRESENCE=ON"
|
|
||||||
|
|
||||||
# We dont want to bother upstream with potentially outdated compat reports
|
|
||||||
"-DYUZU_ENABLE_COMPATIBILITY_REPORTING=OFF"
|
|
||||||
"-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically
|
|
||||||
];
|
|
||||||
|
|
||||||
# Does some handrolled SIMD
|
|
||||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isx86_64 "-msse4.1";
|
|
||||||
|
|
||||||
# Fixes vulkan detection.
|
|
||||||
# FIXME: patchelf --add-rpath corrupts the binary for some reason, investigate
|
|
||||||
qtWrapperArgs = [
|
|
||||||
"--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib"
|
|
||||||
];
|
|
||||||
|
|
||||||
prePatch = ''
|
|
||||||
# Copy suyu externals
|
|
||||||
rm -R externals/
|
|
||||||
cp -R ${suyu}/externals .
|
|
||||||
|
|
||||||
# replace "SUYU" with "YUZU" in externals cmake args
|
|
||||||
chmod u+rw -R externals/
|
|
||||||
grep -rl SUYU | xargs sed -i 's/SUYU/YUZU/g'
|
|
||||||
|
|
||||||
'';
|
|
||||||
|
|
||||||
preConfigure = ''
|
|
||||||
# see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work.
|
|
||||||
cmakeFlagsArray+=(
|
|
||||||
"-DTITLE_BAR_FORMAT_IDLE=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) {}"
|
|
||||||
"-DTITLE_BAR_FORMAT_RUNNING=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) | {}"
|
|
||||||
)
|
|
||||||
|
|
||||||
# provide pre-downloaded tz data
|
|
||||||
mkdir -p build/externals/nx_tzdb
|
|
||||||
ln -s ${nx_tzdb} build/externals/nx_tzdb/nx_tzdb
|
|
||||||
'';
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
install -Dm444 $src/dist/72-yuzu-input.rules $out/lib/udev/rules.d/72-yuzu-input.rules
|
|
||||||
'';
|
|
||||||
|
|
||||||
passthru.updateScript = nix-update-script {
|
|
||||||
extraArgs = [ "--version-regex" "mainline-0-(.*)" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
homepage = "https://yuzu-emu.org";
|
|
||||||
changelog = "https://yuzu-emu.org/entry";
|
|
||||||
description = "An experimental Nintendo Switch emulator written in C++";
|
|
||||||
longDescription = ''
|
|
||||||
An experimental Nintendo Switch emulator written in C++.
|
|
||||||
Using the mainline branch is recommended for general usage.
|
|
||||||
Using the early-access branch is recommended if you would like to try out experimental features, with a cost of stability.
|
|
||||||
'';
|
|
||||||
mainProgram = "yuzu";
|
|
||||||
platforms = [ "aarch64-linux" "x86_64-linux" ];
|
|
||||||
license = with licenses; [
|
|
||||||
gpl3Plus
|
|
||||||
# Icons
|
|
||||||
asl20 mit cc0
|
|
||||||
];
|
|
||||||
maintainers = with maintainers; [
|
|
||||||
ashley
|
|
||||||
ivar
|
|
||||||
joshuafern
|
|
||||||
sbruder
|
|
||||||
k900
|
|
||||||
];
|
|
||||||
};
|
|
||||||
})
|
|
@ -1,16 +0,0 @@
|
|||||||
Submodule externals/Vulkan-Utility-Libraries contains modified content
|
|
||||||
diff --git a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h
|
|
||||||
index 9d2af46..bb490ac 100644
|
|
||||||
--- a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h
|
|
||||||
+++ b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h
|
|
||||||
@@ -3478,8 +3478,8 @@ static inline const char* string_VkDriverId(VkDriverId input_value) {
|
|
||||||
return "VK_DRIVER_ID_MESA_NVK";
|
|
||||||
case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA:
|
|
||||||
return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA";
|
|
||||||
- case VK_DRIVER_ID_MESA_AGXV:
|
|
||||||
- return "VK_DRIVER_ID_MESA_AGXV";
|
|
||||||
+ //case VK_DRIVER_ID_MESA_AGXV:
|
|
||||||
+ // return "VK_DRIVER_ID_MESA_AGXV";
|
|
||||||
default:
|
|
||||||
return "Unhandled VkDriverId";
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user