add: added swaytreesave

mod: adjusted music-presence, vintage-story packages
This commit is contained in:
2026-05-25 14:51:01 -04:00
parent 148fed1aad
commit d4198c70a6
10 changed files with 330 additions and 118 deletions

View File

@@ -1,5 +1,6 @@
{ pkgs }: {
sable-web = pkgs.callPackage ./common/sable.nix {};
music-presense = pkgs.callPackage ./linux/music-presence.nix {};
swaytreesave = pkgs.callPackage ./linux/swaytreesave.nix {};
musicpresence = pkgs.callPackage ./linux/musicpresence.nix {};
vintage-story = pkgs.callPackage ./linux/vintage-story.nix {};
}

View File

@@ -1,28 +0,0 @@
{ pkgs }:
{
default =
let
pname = "musicpresence";
version = "2.3.5";
src = pkgs.fetchurl {
url = "https://github.com/ungive/discord-music-presence/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
hash = "sha256-M7oDxVevspA3SGuHktS8ChQAYopgIqypiVlzyE4uyqI=";
};
appimageContents = pkgs.appimageTools.extract { inherit pname version src; };
in
pkgs.appimageTools.wrapType2 {
inherit pname version src;
nativeBuildInputs = with pkgs; [ makeWrapper ];
extraInstallCommands = ''
wrapProgram $out/bin/${pname} \
--set QT_QPA_PLATFORM xcb \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
install -Dm444 ${appimageContents}/musicpresence.desktop -t $out/share/applications
'';
passthru.updateScript = pkgs.nix-update-script { };
};
}

View File

@@ -0,0 +1,27 @@
{ pkgs }:
let
pname = "musicpresence";
version = "2.3.5";
src = pkgs.fetchurl {
url = "https://github.com/ungive/discord-music-presence/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
hash = "sha256-M7oDxVevspA3SGuHktS8ChQAYopgIqypiVlzyE4uyqI=";
};
appimageContents = pkgs.appimageTools.extract {
inherit pname version src;
};
in
pkgs.appimageTools.wrapType2 {
inherit pname version src;
nativeBuildInputs = with pkgs; [ makeWrapper ];
extraInstallCommands = ''
wrapProgram $out/bin/${pname} \
--set QT_QPA_PLATFORM xcb \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
install -Dm444 ${appimageContents}/musicpresence.desktop -t $out/share/applications
'';
passthru.updateScript = pkgs.nix-update-script { };
}

View File

@@ -0,0 +1,24 @@
{ pkgs }:
let
pname = "swaytreesave";
version = "0.4.0";
src = pkgs.fetchFromGitHub {
owner = "fabienjuif";
repo = "swaytreesave";
rev = "v${version}";
sha256 = "sha256-aAJBbauOiFERABF13hMhxyvRBzcx5c1F+vbm/U+JS8o=";
};
in pkgs.rustPlatform.buildRustPackage {
inherit pname version src;
cargoLock = { lockFile = "${src}/Cargo.lock"; };
meta = {
description = "CLI to save and load your compositors tree/layout";
mainProgram = "swaytreesave";
homepage = "https://github.com/fabienjuif/swaytreesave";
maintainers = [ "wymillerlinux" ];
platforms = [ "x86_64-linux" ];
changelog = "https://github.com/fabienjuif/swaytreesave/releases/tag/v${version}";
};
}

View File

@@ -2,100 +2,99 @@
let
x11Support = true;
waylandSupport = true;
in {
default = pkgs.stdenv.mkDerivation (finalAttrs:
let
inherit (pkgs) lib;
in {
pname = "vintagestory";
version = "1.21.6";
in pkgs.stdenv.mkDerivation (finalAttrs:
let
inherit (pkgs) lib;
in {
pname = "vintagestory";
version = "1.21.6";
src = pkgs.fetchurl {
url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${finalAttrs.version}.tar.gz";
hash = "sha256-LkiL/8W9MKpmJxtK+s5JvqhOza0BLap1SsaDvbLYR0c=";
};
src = pkgs.fetchurl {
url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${finalAttrs.version}.tar.gz";
hash = "sha256-LkiL/8W9MKpmJxtK+s5JvqhOza0BLap1SsaDvbLYR0c=";
};
nativeBuildInputs = with pkgs; [
makeWrapper
copyDesktopItems
];
nativeBuildInputs = with pkgs; [
makeWrapper
copyDesktopItems
];
runtimeLibs = with pkgs; [
gtk2
sqlite
openal
cairo
libGLU
SDL2
freealut
libglvnd
pipewire
libpulseaudio
]
++ lib.optionals x11Support (with pkgs.xorg; [
libX11
libXi
libXcursor
])
++ lib.optionals waylandSupport (with pkgs; [
wayland
libxkbcommon
]);
runtimeLibs = with pkgs; [
gtk2
sqlite
openal
cairo
libGLU
SDL2
freealut
libglvnd
pipewire
libpulseaudio
]
++ lib.optionals x11Support (with pkgs.xorg; [
libX11
libXi
libXcursor
])
++ lib.optionals waylandSupport (with pkgs; [
wayland
libxkbcommon
]);
desktopItems = [
(pkgs.makeDesktopItem {
name = "vintagestory";
desktopName = "Vintage Story";
exec = "vintagestory";
icon = "vintagestory";
comment = "Innovate and explore in a sandbox world";
categories = [ "Game" ];
})
desktopItems = [
(pkgs.makeDesktopItem {
name = "vintagestory";
desktopName = "Vintage Story";
exec = "vintagestory";
icon = "vintagestory";
comment = "Innovate and explore in a sandbox world";
categories = [ "Game" ];
})
(pkgs.makeDesktopItem {
name = "vsmodinstall-handler";
desktopName = "Vintage Story 1-click Mod Install Handler";
comment = "Handler for vintagestorymodinstall:// URI scheme";
exec = "vintagestory -i %u";
mimeTypes = [ "x-scheme-handler/vintagestorymodinstall" ];
noDisplay = true;
terminal = false;
})
];
(pkgs.makeDesktopItem {
name = "vsmodinstall-handler";
desktopName = "Vintage Story 1-click Mod Install Handler";
comment = "Handler for vintagestorymodinstall:// URI scheme";
exec = "vintagestory -i %u";
mimeTypes = [ "x-scheme-handler/vintagestorymodinstall" ];
noDisplay = true;
terminal = false;
})
];
installPhase = ''
runHook preInstall
installPhase = ''
runHook preInstall
mkdir -p $out/share/vintagestory $out/bin $out/share/pixmaps $out/share/fonts/truetype
cp -r * $out/share/vintagestory
cp $out/share/vintagestory/assets/gameicon.xpm $out/share/pixmaps/vintagestory.xpm
cp $out/share/vintagestory/assets/game/fonts/*.ttf $out/share/fonts/truetype
mkdir -p $out/share/vintagestory $out/bin $out/share/pixmaps $out/share/fonts/truetype
cp -r * $out/share/vintagestory
cp $out/share/vintagestory/assets/gameicon.xpm $out/share/pixmaps/vintagestory.xpm
cp $out/share/vintagestory/assets/game/fonts/*.ttf $out/share/fonts/truetype
runHook postInstall
runHook postInstall
'';
preFixup =
let
runtimeLibs' = lib.strings.makeLibraryPath finalAttrs.runtimeLibs;
in
''
makeWrapper ${lib.meta.getExe pkgs.dotnet-runtime_8} $out/bin/vintagestory \
--prefix LD_LIBRARY_PATH : "${runtimeLibs'}" \
--set-default mesa_glthread true \
${lib.strings.optionalString waylandSupport ''
--set-default OPENTK_4_USE_WAYLAND 1 \
''} \
--add-flags $out/share/vintagestory/Vintagestory.dll
makeWrapper ${lib.meta.getExe pkgs.dotnet-runtime_8} $out/bin/vintagestory-server \
--prefix LD_LIBRARY_PATH : "${runtimeLibs'}" \
--set-default mesa_glthread true \
--add-flags $out/share/vintagestory/VintagestoryServer.dll
find "$out/share/vintagestory/assets/" -not -path "*/fonts/*" -regex ".*/.*[A-Z].*" | while read -r file; do
local filename="$(basename -- "$file")"
ln -sf "$filename" "''${file%/*}"/"''${filename,,}"
done
'';
preFixup =
let
runtimeLibs' = lib.strings.makeLibraryPath finalAttrs.runtimeLibs;
in
''
makeWrapper ${lib.meta.getExe pkgs.dotnet-runtime_8} $out/bin/vintagestory \
--prefix LD_LIBRARY_PATH : "${runtimeLibs'}" \
--set-default mesa_glthread true \
${lib.strings.optionalString waylandSupport ''
--set-default OPENTK_4_USE_WAYLAND 1 \
''} \
--add-flags $out/share/vintagestory/Vintagestory.dll
makeWrapper ${lib.meta.getExe pkgs.dotnet-runtime_8} $out/bin/vintagestory-server \
--prefix LD_LIBRARY_PATH : "${runtimeLibs'}" \
--set-default mesa_glthread true \
--add-flags $out/share/vintagestory/VintagestoryServer.dll
find "$out/share/vintagestory/assets/" -not -path "*/fonts/*" -regex ".*/.*[A-Z].*" | while read -r file; do
local filename="$(basename -- "$file")"
ln -sf "$filename" "''${file%/*}"/"''${filename,,}"
done
'';
});
}
}
)