Fix application.go and internal registrar

This commit is contained in:
Sasha Koshka 2024-07-28 02:36:28 -04:00
parent 4f96ca51c2
commit e01b3c8e00
2 changed files with 25 additions and 17 deletions

View File

@ -133,6 +133,7 @@ func RunApplication (application Application) {
if err != nil { log.Fatalln("nasin: could not register backend:", err) }
err = tomo.Run(func () {
err := registrar.SetTheme()
err := registrar.SetIconSet()
if err != nil { log.Fatalln("nasin: could not set theme:", err) }
err = application.Init()
if err != nil { log.Fatalln("nasin: could not run application:", err) }

View File

@ -6,9 +6,9 @@ import "log"
import "git.tebibyte.media/tomo/tomo"
import "git.tebibyte.media/tomo/backend/x"
import "git.tebibyte.media/tomo/nasin/internal/icons/xdg"
import "git.tebibyte.media/tomo/nasin/internal/style/tss"
import "git.tebibyte.media/tomo/nasin/internal/icons/fallback"
import "git.tebibyte.media/tomo/nasin/internal/style/fallback"
// import "git.tebibyte.media/tomo/nasin/internal/style/aluminum"
func RegisterBackend () error {
tomo.Register(1, x.New)
@ -16,28 +16,35 @@ func RegisterBackend () error {
}
func SetTheme () error {
var styl *tomo.Style
// TODO eventually get rid of this when we make a file format for
// storing visual styles
// TODO migrate aluminum
// if os.Getenv("TOMO_USE_ALUMINUM_STYLE") != "" {
// styl = aluminumStyle.New()
// } else {
styl, _ = fallbackStyle.New()
// }
icons := fallbackIcons.New()
iconThemeName := os.Getenv("TOMO_XDG_ICON_THEME")
if iconThemeName != "" {
xdgIconTheme, err := xdgIcons.FindThemeWarn(iconThemeName, icons)
styleSheetName := os.Getenv("TOMO_STYLE_SHEET")
if styleSheetName != "" {
styl, _, err := tss.LoadFile(styleSheetName)
if err == nil {
icons = xdgIconTheme
tomo.SetStyle(styl)
} else {
log.Printf("nasin: could not load icon theme '%s': %v", iconThemeName, err)
log.Printf("nasin: could not load style sheet '%s': %v", styleSheetName, err)
}
}
styl, _ := fallbackStyle.New()
tomo.SetStyle(styl)
tomo.SetIconSet(icons)
return nil
}
func SetIconSet () error {
iconSet := fallbackIcons.New()
iconSetName := os.Getenv("TOMO_XDG_ICON_THEME")
if iconSetName != "" {
xdgIconSet, err := xdgIcons.FindThemeWarn(iconSetName, iconSet)
if err == nil {
iconSet = xdgIconSet
} else {
log.Printf("nasin: could not load icon theme '%s': %v", iconSetName, err)
}
}
tomo.SetIconSet(iconSet)
return nil
}