7 Commits

Author SHA1 Message Date
Piotr Miller
820848d984 Merge pull request #85 from nwg-piotr/add84
Add `-i` flag to force an icon theme
2023-01-22 22:41:42 +01:00
piotr
fa01d5bb32 bump to 0.3.8 2023-01-22 22:35:00 +01:00
piotr
8be1fc1ea2 allow forcing icon theme #84 2023-01-22 22:30:09 +01:00
Piotr Miller
0e5d38907f Merge pull request #83 from nwg-piotr/fix82
fixed trimming strings on non-ASCII characters
2023-01-12 22:50:59 +01:00
piotr
7ba7abd817 bump to 0.3.7 2023-01-12 22:48:52 +01:00
piotr
cedcf8619f fix cutting utf-8 strings #82 2023-01-12 02:27:27 +01:00
Piotr Miller
8ff2d5c89c Create FUNDING.yml 2022-12-15 12:05:39 +01:00
4 changed files with 34 additions and 10 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1 @@
github: nwg-piotr

12
main.go
View File

@@ -21,7 +21,7 @@ import (
"github.com/gotk3/gotk3/gtk" "github.com/gotk3/gotk3/gtk"
) )
const version = "0.3.6" const version = "0.3.8"
var ( var (
appDirs []string appDirs []string
@@ -120,6 +120,7 @@ var targetOutput = flag.String("o", "", "name of the Output to display the drawe
var displayVersion = flag.Bool("v", false, "display Version information") var displayVersion = flag.Bool("v", false, "display Version information")
var overlay = flag.Bool("ovl", false, "use OVerLay layer") var overlay = flag.Bool("ovl", false, "use OVerLay layer")
var gtkTheme = flag.String("g", "", "GTK theme name") var gtkTheme = flag.String("g", "", "GTK theme name")
var gtkIconTheme = flag.String("i", "", "GTK icon theme name")
var iconSize = flag.Int("is", 64, "Icon Size") var iconSize = flag.Int("is", 64, "Icon Size")
var marginTop = flag.Int("mt", 0, "Margin Top") var marginTop = flag.Int("mt", 0, "Margin Top")
var marginLeft = flag.Int("ml", 0, "Margin Left") var marginLeft = flag.Int("ml", 0, "Margin Left")
@@ -326,6 +327,15 @@ func main() {
log.Info("Preferring dark theme variants") log.Info("Preferring dark theme variants")
} }
if *gtkIconTheme != "" {
err = settings.SetProperty("gtk-icon-theme-name", *gtkIconTheme)
if err != nil {
log.Error("Unable to set icon theme:", err)
} else {
log.Infof("User demanded icon theme: %s", *gtkIconTheme)
}
}
cssProvider, _ := gtk.CssProviderNew() cssProvider, _ := gtk.CssProviderNew()
err = cssProvider.LoadFromPath(*cssFileName) err = cssProvider.LoadFromPath(*cssFileName)

View File

@@ -691,3 +691,19 @@ func mapOutputs() (map[string]*gdk.Monitor, error) {
} }
return result, nil return result, nil
} }
// KAdot / https://stackoverflow.com/a/38537764/4040598 - thanks!
func substring(s string, start int, end int) string {
startStrIdx := 0
i := 0
for j := range s {
if i == start {
startStrIdx = j
}
if i == end {
return s[startStrIdx:j]
}
i++
}
return s[startStrIdx:]
}

View File

@@ -58,9 +58,8 @@ func setUpPinnedFlowBox() *gtk.FlowBox {
name = entry.Name name = entry.Name
} }
if len(name) > 20 { if len(name) > 20 {
r := []rune(name) r := substring(name, 0, 17)
name = string(r[:17]) name = fmt.Sprintf("%s…", string(r))
name = fmt.Sprintf("%s…", name)
} }
btn.SetLabel(name) btn.SetLabel(name)
@@ -252,9 +251,8 @@ func flowBoxButton(entry desktopEntry) *gtk.Button {
button.SetImagePosition(gtk.POS_TOP) button.SetImagePosition(gtk.POS_TOP)
name := entry.NameLoc name := entry.NameLoc
if len(name) > 20 { if len(name) > 20 {
r := []rune(name[:17]) r := substring(name, 0, 17)
name = string(r) name = fmt.Sprintf("%s…", string(r))
name = fmt.Sprintf("%s…", name)
} }
button.SetLabel(name) button.SetLabel(name)
@@ -263,9 +261,8 @@ func flowBoxButton(entry desktopEntry) *gtk.Button {
terminal := entry.Terminal terminal := entry.Terminal
desc := entry.CommentLoc desc := entry.CommentLoc
if len(desc) > 120 { if len(desc) > 120 {
r := []rune(desc[:117]) r := substring(desc, 0, 117)
desc = string(r) desc = fmt.Sprintf("%s…", string(r))
desc = fmt.Sprintf("%s…", desc)
} }
button.Connect("button-release-event", func(btn *gtk.Button, e *gdk.Event) bool { button.Connect("button-release-event", func(btn *gtk.Button, e *gdk.Event) bool {
btnEvent := gdk.EventButtonNewFromEvent(e) btnEvent := gdk.EventButtonNewFromEvent(e)