Commit e576d6f

HPCesia <me@hpcesia.com>
2026-01-05 16:15:36
refactor: wps wrapper
1 parent 0077d15
Changed files (1)
modules
desktop
modules/desktop/apps/packages.nix
@@ -21,28 +21,21 @@
     cherry-studio = pkgs.cherry-studio.override {commandLineArgs = chromiumCLA;};
     qq = pkgs.qq.override {commandLineArgs = chromiumCLA;};
 
-    wpsoffice-cn = pkgs.wpsoffice-cn.overrideAttrs {
-      # Fix WPS on Wayland (Hyprland/Niri)
-      # 1. Force XCB backend (WPS doesn't support Wayland natively well)
-      # 2. Fix Input Method (Fcitx5) - Explicitly set vars since we might unset them globally
-      # 3. HiDPI Support - Try to auto-scale
-      postFixup = ''
-        for app in wps et wpp wpspdf; do
-          appdesk=$app
-          if [[ $app == "wpspdf" ]]; then
-            appdesk="pdf"
-          fi
-          sed -i "s|^Exec=.*|Exec=env \
-            GTK_IM_MODULE=fcitx \
-            QT_IM_MODULE=fcitx \
-            XMODIFIERS=@im=fcitx \
-            QT_QPA_PLATFORM=xcb \
-            QT_FONT_DPI=${builtins.toString osConfig.services.xserver.dpi} \
-            $out/bin/$app %F|" \
-            $out/share/applications/wps-office-$appdesk.desktop
-        done
-      '';
-    };
+    wpsoffice-cn = pkgs.wpsoffice-cn.overrideAttrs (oldAttrs: {
+      buildInputs = (oldAttrs.buildInputs or []) ++ [pkgs.makeWrapper];
+      postFixup =
+        (oldAttrs.postFixup or "")
+        + ''
+          for app in wps et wpp wpspdf; do
+              wrapProgram $out/bin/$app \
+              --set GTK_IM_MODULE fcitx \
+              --set QT_IM_MODULE fcitx \
+              --set XMODIFIERS @im=fcitx \
+              --set QT_QPA_PLATFORM xcb \
+              --set QT_FONT_DPI ${builtins.toString osConfig.services.xserver.dpi}
+          done
+        '';
+    });
   in {
     home.packages =
       (with pkgs; [