Loading a Customizing Default Layout in Isaac Sim: Using user.layout.json

Hello,

Is there way to start Isaac Sim with user.layout.json?

I’ve refer the document[Ref.1] for seeking the Additional Arguments, seems no commandline flags something like --/app/layout=user.layout.json.

I intend to let user have a custom defatult layout and which can not be changed?
Is any guidance to do so?

Thank you

[Ref.1]
https://docs.omniverse.nvidia.com/isaacsim/latest/reference_material/reference_user_interface.html#isaac-sim-app-selector

Regards,
Darien

Hi @darien.wei - you can customize the user interface by editing the layout files directly before launching Isaac Sim. In the official documentation, you may not find a direct command-line argument for loading a custom user.layout.json, but you can specify the application to start with by using the --/app flag.

Here’s a typical way to configure the default layout:

  1. Modify the Default Layout File: Navigate to the directory where the Isaac Sim configurations are stored. It is often located within the application data folders; for example, on a Linux system, this might be ~/.local/share/ov/pkg/isaac_sim-x.y.z/. Within this directory, there will likely be a config folder containing the user.layout.json file or its equivalent.
  2. Edit the Layout File: Open the user.layout.json file in a text editor, and adjust it to what you consider the default state for your users.
  3. Set Permissions (Optional): To prevent users from changing the layout, you could potentially set file permissions accordingly (read-only). This is an OS-level solution and might not be foolproof, depending on the user’s system access rights. On a Unix-like system, you could use the chmod command to achieve this; for example:
chmod 444 user.layout.json

This command sets the file to be readable by everyone, but not writable.

By doing this, you customize the layout according to your needs, and every time Isaac Sim starts, it will use this layout file. However, bear in mind that this approach is not officially recommended, as it may not be upgrade-proof and might interfere with user experience if users expect to modify their layouts.

1 Like

Hi @rthaker ,

Thank you for your response. However, I’ve thoroughly searched the directory you specified, as well as the entire directory structure, but I’m unable to find the user configuration file.

Is there anything I might have overlooked?

Regards,
Darien

The user.config.json file is always inside the ov > data > kit folder and is per app, per version. So for example for my usd composer it is “C:\Users\USER\AppData\Local\ov\data\Kit\USD.Composer\2023.2”

For Issac Sim it should be very similar
C:\Users\USER\AppData\Local\ov\data\Kit<ISSAC SIM><VERSION>

You can create your own custom UI json file and save it and load it any where on the hard drive you wish, with any name. Let me find out how to load it with just python.

1 Like

Hi Richard,

Thank you for your response. I was able to locate the user.layout.config file using the path you provided, accessed through the quick save option in the menu layout. However, upon reopening, the layout remains unchanged from its previous state.

It would be greatly appreciated if there was a way for the layout to be retained after the user makes changes, so that upon reopening, they see it as it was last saved. This would enhance user experience and streamline workflow.

Please find attached a video illustrating the scenario for reproduction purposes
Looking forward to your guidance on resolving this matter.

Screencast from 04-03-2024 10:28:51 AM.zip (3.6 MB)

Regards,
Darien

Yes, we are aware of that limitation. The way I handle that now is To use the hot keys to quick load the UI as soon as the program finishes loading.

Is there already a better way than setting a hotkey?
It is not possible to set the default path of a custom layout .json file on startup of isaac sim?