migrate to diamondburned GTK bindings

This commit is contained in:
piotr
2024-11-27 03:05:46 +01:00
parent 423adcd096
commit 2d755f609d
5 changed files with 244 additions and 269 deletions

View File

@@ -20,22 +20,20 @@ import (
"syscall"
"time"
"github.com/gotk3/gotk3/gdk"
"github.com/gotk3/gotk3/gtk"
"github.com/diamondburned/gotk4/pkg/gdk/v3"
"github.com/diamondburned/gotk4/pkg/gdkpixbuf/v2"
"github.com/diamondburned/gotk4/pkg/gtk/v3"
)
func wayland() bool {
return os.Getenv("WAYLAND_DISPLAY") != "" || os.Getenv("XDG_SESSION_TYPE") == "wayland"
}
func createPixbuf(icon string, size int) (*gdk.Pixbuf, error) {
iconTheme, err := gtk.IconThemeGetDefault()
if err != nil {
log.Fatal("Couldn't get default theme: ", err)
}
func createPixbuf(icon string, size int) (*gdkpixbuf.Pixbuf, error) {
iconTheme := gtk.IconThemeGetDefault()
if strings.Contains(icon, "/") {
pixbuf, err := gdk.PixbufNewFromFileAtSize(icon, size, size)
pixbuf, err := gdkpixbuf.NewPixbufFromFileAtSize(icon, size, size)
if err != nil {
log.Errorf("%s", err)
return nil, err
@@ -47,18 +45,18 @@ func createPixbuf(icon string, size int) (*gdk.Pixbuf, error) {
icon = strings.Split(icon, ".")[0]
}
pixbuf, err := iconTheme.LoadIcon(icon, size, gtk.ICON_LOOKUP_FORCE_SIZE)
pixbuf, err := iconTheme.LoadIcon(icon, size, gtk.IconLookupForceSize)
if err != nil {
if strings.HasPrefix(icon, "/") {
pixbuf, err := gdk.PixbufNewFromFileAtSize(icon, size, size)
if err != nil {
return nil, err
pixbuf, e := gdkpixbuf.NewPixbufFromFileAtSize(icon, size, size)
if e != nil {
return nil, e
}
return pixbuf, nil
}
pixbuf, err := iconTheme.LoadIcon(icon, size, gtk.ICON_LOOKUP_FORCE_SIZE)
pixbuf, err := iconTheme.LoadIcon(icon, size, gtk.IconLookupForceSize)
if err != nil {
return nil, err
}
@@ -581,19 +579,19 @@ func launch(command string, terminal bool, terminate bool) {
}
}
themeToPrepend := ""
// add "GTK_THEME=<default_gtk_theme>" environment variable
if *forceTheme {
settings, _ := gtk.SettingsGetDefault()
th, err := settings.GetProperty("gtk-theme-name")
if err == nil {
themeToPrepend = th.(string)
}
}
if themeToPrepend != "" {
command = fmt.Sprintf("GTK_THEME=%q %s", themeToPrepend, command)
}
//themeToPrepend := ""
// add "GTK_THEME=<default_gtk_theme>" environment variable TODO fix
//if *forceTheme {
// settings := gtk.SettingsGetDefault()
// th, err := settings.GetProperty("gtk-theme-name")
// if err == nil {
// themeToPrepend = th.(string)
// }
//}
//
//if themeToPrepend != "" {
// command = fmt.Sprintf("GTK_THEME=%q %s", themeToPrepend, command)
//}
var elements = []string{"/usr/bin/env", "-S", command}
@@ -684,14 +682,11 @@ func mapOutputs() (map[string]*gdk.Monitor, error) {
err := listHyprlandMonitors()
if err == nil {
display, err := gdk.DisplayGetDefault()
if err != nil {
return nil, err
}
display := gdk.DisplayGetDefault()
num := display.GetNMonitors()
num := display.NMonitors()
for i := 0; i < num; i++ {
mon, _ := display.GetMonitor(i)
mon := display.Monitor(i)
output := hyprlandMonitors[i]
result[output.Name] = mon
}
@@ -713,14 +708,14 @@ func mapOutputs() (map[string]*gdk.Monitor, error) {
return nil, err
}
display, err := gdk.DisplayGetDefault()
display := gdk.DisplayGetDefault()
if err != nil {
return nil, err
}
num := display.GetNMonitors()
num := display.NMonitors()
for i := 0; i < num; i++ {
mon, _ := display.GetMonitor(i)
mon := display.Monitor(i)
output := outputs[i]
result[output.Name] = mon
}