Multiple monitors help

So I have 2 monitors that I currently use and Panda3d always selects the same monitor regardless of what system settings I seem to choose. I am trying to figure out how to choose a monitor rather than just letting the system choose. I am using Manjaro Linux currently so any help I can get would be greatly appreciated.

One method that I know of that might work is to set the window’s starting position–either in the “prc” file or in code via “loadPrcFileData”–to be appropriate to the monitor in question. The configuration variable is “win-origin”, and the parameters to it are a horizontal and a vertical position, with a space between them.

For example: My system has a left monitor of resolution 1366x768 and a right monitor of resolution 1280x1024. In a project of mine I then have the following setting:

win-origin 1400 -2

“1400” is the horizontal position, and places the window beyond the right-hand border of the left-hand monitor, and thus on the right-hand monitor.

Of course, this isn’t a complete solution for running on systems other than one’s own.

Let me give it a shot and see how it goes.

import os.path
from panda3d.core import load_prc_file, Thread
from direct.showbase.ShowBase import ShowBase
import functlist

if os.path.isfile(“conf.prc”):
print(“Loading preset defaults”)
load_prc_file(“conf.prc”)
else:
print(“File does not exist. Creating it now.”)
f = open(“conf.prc”,“w+”)
f.write(“win-size 1920 1080\n”
“window-title Chalk_War\n”
“fullscreen true\n”
“aux-display”
)
f.close()
load_prc_file(“conf.prc”)

functlist.main_menu()
functlist.settings_menu()
functlist.player()

class MyGame(ShowBase):
def init(self):
super().init()

game=MyGame()
game.run()

This is the code I have thus far and I think it might be the fact that I am using fullscreen rather than windowed.

Ah, yeah, fullscreen is another matter indeed; I don’t think that the method that I gave works in fullscreen mode.

One quick note, however: if I recall correctly, the loading of “prc” files and the use of “loadPrcFileData” should be done before importing Panda’s other elements–or at the least before the importation of “ShowBase”; I’m not sure about other elements–if I recall correctly. Thus I don’t know whether the above code would be reliable even in windowed mode.

You could try first moving the window to the other monitor, and then going fullscreen (by setting the origin to 0 and the size to the display width/height on the GraphicsPipe).

Please feel free to open an issue on GitHub if this proves difficult or impossible to achieve.

Will give both of your suggestions a try upon getting the opportunity to do so.