os_unix.go raw

   1  // SPDX-License-Identifier: Unlicense OR MIT
   2  
   3  // +build linux,!android freebsd openbsd
   4  
   5  package wm
   6  
   7  import (
   8  	"errors"
   9  )
  10  
  11  func Main() {
  12  	select {}
  13  }
  14  
  15  type windowDriver func(Callbacks, *Options) error
  16  
  17  // Instead of creating files with build tags for each combination of wayland +/- x11
  18  // let each driver initialize these variables with their own version of createWindow.
  19  var wlDriver, x11Driver windowDriver
  20  
  21  func NewWindow(window Callbacks, opts *Options) error {
  22  	var errFirst error
  23  	for _, d := range []windowDriver{x11Driver, wlDriver} {
  24  		if d == nil {
  25  			continue
  26  		}
  27  		err := d(window, opts)
  28  		if err == nil {
  29  			return nil
  30  		}
  31  		if errFirst == nil {
  32  			errFirst = err
  33  		}
  34  	}
  35  	if errFirst != nil {
  36  		return errFirst
  37  	}
  38  	return errors.New("app: no window driver available")
  39  }
  40