package drw // import "hhvn.uk/hbspbar/drw" import ( "os" "image/color" "hhvn.uk/hbspbar/config" "hhvn.uk/hbspbar/common" "github.com/jezek/xgb" "github.com/jezek/xgb/xproto" "github.com/jezek/xgbutil" "github.com/jezek/xgbutil/xgraphics" "github.com/BurntSushi/freetype-go/freetype" "github.com/BurntSushi/freetype-go/freetype/truetype" ) var InitErr error var X *xgb.Conn var XU *xgbutil.XUtil var Screen *xproto.ScreenInfo var font *truetype.Font var ft *freetype.Context func init() { var err error X, err = xgb.NewConn() if err != nil { InitErr = err return } XU, err = xgbutil.NewConnXgb(X) if err != nil { InitErr = err return } setup := xproto.Setup(X) Screen = setup.DefaultScreen(X) read, err := os.Open(config.Font) if err != nil { InitErr = common.Perror("os.Open", err) return } font, err = xgraphics.ParseFont(read) if err != nil { InitErr = common.Perror("xgraphics.ParseFont", err) return } ft = freetype.NewContext() ft.SetDPI(72) ft.SetFont(font) ft.SetFontSize(config.FontSize) } func int2rgb(argb uint32) (color.RGBA) { return color.RGBA{ B: uint8( argb & 0x000000ff), G: uint8((argb & 0x0000ff00) >> 8), R: uint8((argb & 0x00ff0000) >> 16), A: uint8((argb & 0xff000000) >> 24) } }