diff --git a/flake.nix b/flake.nix index b575478..e28ac2d 100644 --- a/flake.nix +++ b/flake.nix @@ -136,6 +136,8 @@ # inherit (self.packages."x86_64-linux") chromeos-ectool; chromeos-ectool = nixpkgs.legacyPackages."x86_64-linux".callPackage ./packages/chromeos-ectool.nix { }; + plasticity = nixpkgs.legacyPackages."x86_64-linux".callPackage + ./packages/plasticity.nix { }; }; }; diff --git a/hosts/desktops/common/packages.nix b/hosts/desktops/common/packages.nix index bb89abe..6b5f2f1 100644 --- a/hosts/desktops/common/packages.nix +++ b/hosts/desktops/common/packages.nix @@ -35,6 +35,7 @@ in { libfido2 libreoffice-qt mangohud + mission-center mpv nextcloud-client nix-init @@ -44,12 +45,13 @@ in { orca-slicer openscad p7zip - # plasticity + plasticity prismlauncher protonup qbittorrent qview ripgrep + rnote solvespace space-cadet-pinball sparrow @@ -64,7 +66,6 @@ in { services.flatpak = { enable = true; packages = [ - "com.github.flxzt.rnote" "com.github.tchx84.Flatseal" "com.microsoft.Edge" "com.steamgriddb.SGDBoop" diff --git a/packages/plasticity.nix b/packages/plasticity.nix new file mode 100644 index 0000000..feba5ae --- /dev/null +++ b/packages/plasticity.nix @@ -0,0 +1,101 @@ +{ alsa-lib, at-spi2-atk, autoPatchelfHook, cairo, cups, dbus, desktop-file-utils +, expat, fetchurl, gdk-pixbuf, gtk3, gvfs, hicolor-icon-theme, lib, libdrm +, libglvnd, libnotify, libsForQt5, libxkbcommon, mesa, nspr, nss, openssl, pango +, rpmextract, stdenv, systemd, trash-cli, vulkan-loader, wrapGAppsHook3 +, xdg-utils, xorg }: +stdenv.mkDerivation rec { + pname = "plasticity"; + version = "24.2.3"; + + src = fetchurl { + url = + "https://github.com/nkallen/plasticity/releases/download/v${version}/Plasticity-${version}-1.x86_64.rpm"; + hash = "sha256-3dHS7chTgoD35AV/q8DHIYl43KbCsoFYEqSQHXm05tg="; + }; + + passthru.updateScript = ./update.sh; + + nativeBuildInputs = [ wrapGAppsHook3 autoPatchelfHook rpmextract mesa ]; + + buildInputs = [ + alsa-lib + at-spi2-atk + cairo + cups + dbus + desktop-file-utils + expat + gdk-pixbuf + gtk3 + gvfs + hicolor-icon-theme + libdrm + libnotify + libsForQt5.kde-cli-tools + libxkbcommon + nspr + nss + openssl + pango + stdenv.cc.cc.lib + trash-cli + xdg-utils + ]; + + runtimeDependencies = [ + systemd + libglvnd + vulkan-loader # may help with nvidia users + xorg.libX11 + xorg.libxcb + xorg.libXcomposite + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXrandr + xorg.libXtst + ]; + + dontUnpack = true; + + # can't find anything on the internet about these files, no clue what they do + autoPatchelfIgnoreMissingDeps = [ + "ACCAMERA.tx" + "AcMPolygonObj15.tx" + "ATEXT.tx" + "ISM.tx" + "RText.tx" + "SCENEOE.tx" + "TD_DbEntities.tx" + "TD_DbIO.tx" + "WipeOut.tx" + ]; + + installPhase = '' + runHook preInstall + + mkdir $out + cd $out + rpmextract $src + mv $out/usr/* $out + rm -r $out/usr + + runHook postInstall + ''; + + #--use-gl=egl for it to use hardware rendering it seems. Otherwise there are terrible framerates + postInstall = '' + substituteInPlace share/applications/Plasticity.desktop \ + --replace-fail 'Exec=Plasticity %U' "Exec=Plasticity --use-gl=egl %U" + ''; + + meta = with lib; { + description = "CAD for artists"; + homepage = "https://www.plasticity.xyz"; + license = licenses.unfree; + mainProgram = "Plasticity"; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + maintainers = with maintainers; [ imadnyc ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/users/desktops/common/programs.nix b/users/desktops/common/programs.nix index 88895e4..4b2fd1a 100644 --- a/users/desktops/common/programs.nix +++ b/users/desktops/common/programs.nix @@ -9,14 +9,6 @@ name = "Inter"; size = 10; }; - theme = { - package = pkgs.kdePackages.breeze-gtk; - name = "Breeze"; - }; - iconTheme = { - package = pkgs.kdePackages.breeze-icons; - name = "Breeze"; - }; }; home.packages = with pkgs;