I use MinGW with nim on windows all the time. I have never heard of winpty or MSYS2. To get rid of the console for a windows app from nim we just pass \--app:gui not sure what you need to do in C++ to do that.
I manage to get some of OpenWL working on Mac with the help of @shashlick's modified script (here: [https://gist.github.com/treeform/47865e7d06694fc224f0c492cdee41d3](https://gist.github.com/treeform/47865e7d06694fc224f0c492cdee41d3) ) import openwl echo wl_GetPlatform() proc eventLoop(window: wlWindow; event: ptr WLEvent; userData: pointer): cint {.cdecl.} = echo "here" var opts = WLPlatformOptions() discard wl_Init(eventLoop, addr opts) var props = WLWindowProperties() props.usedFields = ord(WLWindowProp_MinWidth) or ord(WLWindowProp_MinHeight) or ord(WLWindowProp_MaxWidth) or ord(WLWindowProp_MaxHeight) props.minWidth = 300 props.minHeight = 200 props.maxWidth = 1600 props.maxHeight = 900 let width = 800 height = 600 var mainWindow = wl_WindowCreate(cint width, cint height, "hello there, cross-platform friend āǢʥϢ۩ใ ♥☺☼", nil, addr props) wl_WindowShow(mainWindow) # <-- segfaults discard wl_Runloop() Run I am getting SIGSEGV when trying to show the window. Is there anything extra I need to do to the window to make it showable? Like add a menu or do any of the things in platformInit? Do you have a super minimal openWL example?