Figured it out-
Here is how to do it in windows at least.
DISPLAY_DEVICE dDevice;
memset(&dDevice,0,sizeof(dDevice));
dDevice.cb = sizeof(dDevice);
std::vector<DISPLAY_DEVICE> displayDevices;
for(int n = 0; EnumDisplayDevices(NULL, n, &dDevice, NULL); ++n)
{
displayDevices.push_back(dDevice);
memset(&dDevice,0,sizeof(dDevice));
dDevice.cb = sizeof(dDevice);
}
if(screenIndex_ >= displayDevices.size())
BOOST_THROW_EXCEPTION(out_of_range() << arg_name_info("screenIndex_"));
DEVMODE devmode;
memset(&devmode,0,sizeof(devmode));
if(!EnumDisplaySettings(displayDevices[screenIndex_].DeviceName, ENUM_CURRENT_SETTINGS, &devmode))
BOOST_THROW_EXCEPTION(invalid_operation() << arg_name_info("screenIndex_") << msg_info("EnumDisplaySettings"));
screenWidth_ = devmode.dmPelsWidth;
screenHeight_ = devmode.dmPelsHeight;
screenX_ = devmode.dmPosition.x;
screenY_ = devmode.dmPosition.y;
pWindow_.reset(new sf::Window());
pWindow_->Create(sf::VideoMode(width, height, 32), "My window", windowed_ ? sf::Style::Titlebar : sf::Style::Fullscreen);
pWindow_->ShowMouseCursor(false);
pWindow_->SetPosition(screenX_, screenY_);
pWindow_->SetSize(screenWidth_, screenHeight_);