diff --git a/pkg/systray/run.go b/pkg/systray/run.go
index d9d39deac5435415fcde26a5a77cb82eeb752418..ce4a8861daf841fd6782fbf16a801d7f40c89202 100644
--- a/pkg/systray/run.go
+++ b/pkg/systray/run.go
@@ -25,11 +25,14 @@ import (
 
 func Run(conf *Config) {
 	bt := bmTray{conf: conf, waitCh: make(chan bool)}
-	go initialize(conf, &bt)
+	finishedCh := make(chan bool)
+	go initialize(conf, &bt, finishedCh)
 	bt.start()
+	<-finishedCh
 }
 
-func initialize(conf *Config, bt *bmTray) {
+func initialize(conf *Config, bt *bmTray, finishedCh chan bool) {
+	defer func() { finishedCh <- true }()
 	if _, err := os.Stat(config.Path); os.IsNotExist(err) {
 		os.MkdirAll(config.Path, os.ModePerm)
 	}