+
+(define-public gtk-layer-shell
+ (package
+ (name "gtk-layer-shell")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/wmww/gtk-layer-shell/releases/download/v"
+ version "/gtk-layer-shell-" version ".tar.xz"))
+ (sha256
+ (base32 "0ncklk3z0fzlz6p76jdcrr1ykyp1f4ykjjch4x2hfp9bwsnl4a3m"))))
+ (build-system meson-build-system)
+ (native-inputs `(("pkg-config" ,pkg-config)
+ ("gobject-introspection" ,gobject-introspection)))
+ (inputs `(("wayland" ,wayland)
+ ("gtk+" ,gtk+)))
+ (home-page "https://github.com/wmww/gtk-layer-shell")
+ (synopsis "Library to create Wayland desktop components using the Layer
+Shell protocol")
+ (description "Layer Shell is a Wayland protocol for desktop shell
+components, such as panels, notifications and wallpapers. It can be used to
+anchor windows to a corner or edge of the output, or stretch them across the
+entire output. It supports all Layer Shell features including popups and
+popovers.")
+ (license license:expat)))
+
+(define-public goocanvas
+ (package
+ (name "goocanvas")
+ (version "2.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/goocanvas/"
+ (version-major+minor version)
+ "/goocanvas-" version ".tar.xz"))
+ (sha256
+ (base32 "141fm7mbqib0011zmkv3g8vxcjwa7hypmq71ahdyhnj2sjvy4a67"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("glib-bin" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk-doc" ,gtk-doc)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python)))
+ (inputs
+ `(("cairo" ,cairo)
+ ("glib" ,glib)
+ ("gtk+" ,gtk+)
+ ("python-pygobject" ,python-pygobject)))
+ (arguments
+ `(#:configure-flags '("--disable-rebuilds"
+ "--disable-static")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-install-path
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "configure"
+ (("\\(gi._overridesdir\\)")
+ (string-append "((gi._overridesdir).replace(\\\""
+ (assoc-ref inputs "python-pygobject")
+ "\\\", \\\""
+ (assoc-ref outputs "out")
+ "\\\"))")))
+ #t)))))
+ (synopsis "Canvas widget for GTK+")
+ (description "GooCanvas is a canvas widget for GTK+ that uses the cairo 2D
+library for drawing.")
+ (home-page "https://wiki.gnome.org/GooCanvas")
+ (license license:lgpl2.0)))
+
+(define-public gtksheet
+ (package
+ (name "gtksheet")
+ (version "4.3.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fpaquet/gtksheet")
+ (commit (string-append "V" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "10qzmdkjkkvkcadxn019cbyhwaahxcfv1apv54lc711bqvh63v8r"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags (list "--enable-glade"
+ "--enable-introspection")
+ #:phases
+ (modify-phases %standard-phases
+ ;; The "configure" script is present, but otherwise the project is
+ ;; not bootstrapped properly. Delete configure so the bootstrap phase
+ ;; will take over.
+ (add-after 'unpack 'delete-configure
+ (lambda _
+ (delete-file "configure")
+ #t))
+ ;; Fix glade install directories.
+ (add-before 'bootstrap 'configure-glade-directories
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "configure.ac"
+ (("`\\$PKG_CONFIG --variable=catalogdir gladeui-2.0`")
+ (string-append (assoc-ref outputs "out") "/share/glade/catalogs"))
+ (("`\\$PKG_CONFIG --variable=moduledir gladeui-2.0`")
+ (string-append (assoc-ref outputs "out") "/lib/glade/modules"))
+ (("`\\$PKG_CONFIG --variable=pixmapdir gladeui-2.0`")
+ (string-append (assoc-ref outputs "out") "/share/pixmaps")))
+ #t))
+ ;; Fix incorrect typelib version. This is a known upstream bug. See
+ ;; https://github.com/fpaquet/gtksheet/issues/23
+ (add-after 'install 'fix-typelib-version
+ (lambda* (#:key outputs #:allow-other-keys)
+ (with-directory-excursion (string-append (assoc-ref outputs "out")
+ "/lib/girepository-1.0")
+ (rename-file "GtkSheet-4.0.typelib"
+ (string-append "GtkSheet-" ,version ".typelib")))
+ #t)))))
+ (inputs
+ `(("glade" ,glade3)
+ ("glib" ,glib)
+ ("gtk+" ,gtk+)
+ ("libxml2" ,libxml2)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("gobject-introspection" ,gobject-introspection)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://fpaquet.github.io/gtksheet/")
+ (synopsis "Spreadsheet widget for GTK+")
+ (description "GtkSheet is a matrix widget for GTK+. It consists of an
+scrollable grid of cells where you can allocate text. Cell contents can be
+edited interactively through a specially designed entry, GtkItemEntry. It is
+also a container subclass, allowing you to display buttons, images and any
+other widget in it. You can also set many attributes such as border,
+foreground and background colors, text justification and more.")
+ (native-search-paths
+ (list
+ (search-path-specification
+ (variable "GLADE_CATALOG_SEARCH_PATH")
+ (files '("share/glade/catalogs")))
+ (search-path-specification
+ (variable "GLADE_MODULE_SEARCH_PATH")
+ (files '("lib/glade/modules")))))
+ (license license:lgpl2.0+)))