بلازما على Nixos بطيئة كيف نسرعها؟

مقدمة

يلاحظ عندما تحاول استخدام بيئة KDE Plasma عى نظام Nixos أنها أبطأ بكثير من عملها في باقي التوزيعات وتواجه مشاكل آداء كبيرة قد تعيق عملك

مناقشات

تمت مناقشة هذه المشكلة عدة مرات في منتديات مختلفة لمستخدمي Nixos وهذه مجموعة من البروابط

الحل

تشخيص المشكلة من طريقة Nixos في وضع الحزم تجعل الوصول إلى برامج KDE يتطلب وقتا طويلا من أجل حل ذلك قم بوضع هذا السكريبت ملف الكونفيغ الخاص بك قبل كل السكريبتات الأخرى وأسفل
{ config, pkgs, lib, ... }:

let
  plasmashell-workaround = final: prev: {
    kdePackages = prev.kdePackages // {
      plasma-workspace = let
        basePkg = prev.kdePackages.plasma-workspace;
      in pkgs.stdenv.mkDerivation {
        name = "plasma-workspace";
        buildInputs = [ basePkg ];
        dontUnpack = true;
        dontWrapQtApps = true;
        installPhase = ''

          # remove duplicates in XDG_DATA_DIRS to speed up the copy process
          export XDG_DATA_DIRS="$(awk -v RS=: '{ if (!arr[$0]++) { printf("%s%s", !ln++ ? "" : ":", $0) }}' <<< "$XDG_DATA_DIRS")"

          # copy output from base package and make it writable
          mkdir -p $out && cp -r ${basePkg}/. $out/
          chmod u+w $out $out/bin $out/bin/plasmashell

          # copy all XDG_DATA_DIRS into a single directory
          ( IFS=:
            mkdir $out/xdgdata
            for DIR in $XDG_DATA_DIRS; do
              if [[ -d "$DIR" ]]; then
                cp -r $DIR/. $out/xdgdata/
                chmod -R u+w $out/xdgdata
              fi
            done
          )

          # create a wrapper script that replaces the original XDG_DATA_DIRS with the
          # newly created directory and then calls the original plasmashell binary
          cat << EOF > $out/bin/plasmashell
          #!/bin/sh
          export XDG_DATA_DIRS=$out/xdgdata:/run/current-system/sw/share
          exec ${basePkg}/bin/.plasmashell-wrapped "\$@"
          EOF
          chmod a+x $out/bin/plasmashell
        '';

        passthru.providedSessions = basePkg.passthru.providedSessions;
      };
    };
  };
in
{
  nixpkgs.overlays = [ plasmashell-workaround ];
}

قم بإعادة بناء النظام (سيستغرق الكثير من الوقت والآداء لذا كن صبورا) ثم أعد التشغيل وستجد أن مشكلة الآداء في بللازما انتهت.

خاتمة

يبدو أن هذه المشكلة لن يتم حلها بشكل افتراضي في أي وقت قريب لذا وجب التنبيه عليها نتمنى من فريق تطوير NixOS أن يعيد النظر في حلها

إعجاب واحد (1)