Commit c421c4d

HPCesia <me@hpcesia.com>
2025-12-29 08:44:35
feat: WPS Office
1 parent 097419b
Changed files (1)
modules
desktop
modules/desktop/apps/packages.nix
@@ -20,6 +20,29 @@
     # Fix Chromium IME bug
     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
+      '';
+    };
   in {
     home.packages =
       (with pkgs; [
@@ -39,10 +62,11 @@
         mate.atril
         gimp3
         kdePackages.kdenlive
-        libreoffice-qt6
+        # libreoffice-qt6 # Use WPS instead.
         obs-studio
         readest
         veracrypt
+        wpsoffice-cn
       ]));
 
     xdg.mimeApps.defaultApplications = {