¿JavaFX totalmente personalizado de windows?

Me gustaría tener una aplicación en la que haya personalizado completamente la apariencia de la ventana. Hasta ahora he aprendido que puedo eliminar las cosas típicas de la ventana con:

class Application extends javafx.application.Application {
  /**
   * Starts the application.
   *
   * @param stage
   */
  override def start(stage: Stage) {
    stage.initStyle(StageStyle.TRANSPARENT)

    // Load the main window view.
    val loader = new FXMLLoader()
    loader.setLocation(getClass.getResource("/com/myproj/application/MainWindow.fxml"))

    val root = loader.load().asInstanceOf[Parent]
    val scene: Scene = new Scene(root, Color.TRANSPARENT)

    stage.setScene(scene)
    stage.show()
  }
}

Todo lo demás funciona bien, excepto que el arrastre de la ventana, el doble clic para maximizar, el arrastre al borde superior de la pantalla en Windows debe activar al máximo, etc. Las capacidades de Windows nativas faltan por completo.

¿Puedo personalizar de alguna manera bastante fácil la apariencia completa de la ventana sin perder todas estas buenas capacidades?

Me refiero a algo como Adobe Photoshop que se ve completamente diferente pero aún conserva estas características (o las implementa manualmente en su interfaz de usuario).

Sería un comienzo si al menos pudiera implementar los botones de arrastrar + la ventana para empezar. Estoy apuntando a Linux, Mac y Windows aquí.

Respuestas a la pregunta(2)

Su respuesta a la pregunta