Sweet Home 3D: sötét mód beállítása

Probléma: A Sweet Home 3D-ben nem érhető el sötét mód, így nem alkalmazkodik a rendszertémához.

Sweet Home 3D banner
Sweet Home 3D banner

Probléma: A Sweet Home 3D-ben nem érhető el sötét mód, így nem alkalmazkodik a rendszertémához.

Megoldás: Adjuk hozzá a FlatLaf sötét témáját az alkalmazáshoz.

  1. Töltsük le a legfrissebb FlatLafot a Maven Centralból: a verziószám kiválasztása után jobb felül a Downloads gombra kattintva válasszuk a jar lehetőséget
  2. Helyezzük a letöltött fájlt a többi Sweet Home-os JAR fájl mellé (pl. /usr/share/java/SweetHome3D/ openSUSE vagy /usr/share/sweethome3d/ Ubuntu esetén)
  3. Nyissuk meg szerkesztésre a SweetHome3D.sh / sweetHome3d.sh fájlt (/usr/bin/ könyvtár OpenSUSE vagy  /usr/share/sweethome3d/ Ubuntu esetén)
  4. Adjuk hozzá a -Dswing.defaultlaf=com.formdev.flatlaf.FlatDarkLaf opciót (a set_options sorba idézőjelek között OpenSUSE vagy a JAVA_ARGS sorba Ubuntu esetén)
    • OpenSUSE:
      #!/bin/sh
      
      # source the jpackage helpers
      VERBOSE=1
      . /usr/share/java-utils/java-functions
      
      # set JAVA_* environment variables
      set_javacmd
      check_java_env
      set_jvm_dirs
      set_options "--add-opens=java.desktop/sun.awt=ALL-UNNAMED" "-Djava.library.path=/usr/lib64:/usr/lib" "-Dswing.defaultlaf=com.formdev.flatlaf.FlatDarkLaf" "-Dcom.eteks.sweethome3d.singleInstance=false"
      
      CLASSPATH=`build-classpath SweetHome3D java-3d`
      MAIN_CLASS="com.eteks.sweethome3d.SweetHome3D"
      
      # add some extra catalogs if they exist
      mkdir -p $HOME/.eteks/sweethome3d/furniture
      for model in `find "/usr/share/SweetHome3D" -type f -name "*.sh3f"`; do
          ln -sf ${model} $HOME/.eteks/sweethome3d/furniture
      done
      
      mkdir -p $HOME/.eteks/sweethome3d/textures
      for texture in `find "/usr/share/SweetHome3D" -type f -name "*.sh3t"`; do
          ln -sf ${texture} $HOME/.eteks/sweethome3d/textures
      done
      
      run -open "$@"
    • Ubuntu:
      #!/bin/sh
      #
      #
      BASEPATH=/usr/share/sweethome3d
      JAVA_ARGS="-Djava.library.path=/usr/lib/jni \
       -Dcom.eteks.sweethome3d.applicationFolders=$HOME/.eteks/sweethome3d:/usr/share/sweethome3d \
       -Dcom.eteks.sweethome3d.j3d.checkOffScreenSupport=false \
       -Dswing.defaultlaf=com.formdev.flatlaf.FlatDarkLaf \
       -Dsun.java2d.opengl=true --add-exports java.desktop/sun.awt=ALL-UNNAMED"
      
      . /usr/lib/java-wrappers/java-wrappers.sh
      
      find_java_runtime java8
      
      find_jars j3dcore j3dutils vecmath batik
      find_jars sunflow itext janino
      find_jars freehep-io freehep-graphics2d freehep-graphicsbase freehep-graphicsio freehep-graphicsio-svg
      find_jars /usr/share/sweethome3d/sweethome3d.jar
      find_jars /usr/share/icedtea-web/netx.jar
      find_jars /usr/share/sweethome3d/flatlaf*.jar
      
      cd $BASEPATH
      run_java com.eteks.sweethome3d.SweetHome3D -open "$@"
  5. Ubuntu esetén adjunk hozzá egy új sort is: find_jars /usr/share/sweethome3d/flatlaf*.jar
  6. Mentés után készen is vagyunk, indítás után immár sötét Sweet Home 3D fogad.

Fontos, hogy a módosított script fájl a csomag frissítésekor felülíródik, így mentsük le valahová, hogy új verzió esetén újra be tudjuk majd állítani.

Sweet Home 3D sötét mód