summaryrefslogtreecommitdiff
path: root/gnu/packages/pwmt.scm
blob: 3e986c3656a59691fd3d4a85d117dcda92508ad6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
;;; GNU Guix --- Functional package management for GNU
;;;
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2017 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2018 2019 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages pwmt)
  #:use-module (gnu packages)
  #:use-module (gnu packages check)
  #:use-module (gnu packages documentation)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages gnome)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages web)
  #:use-module (gnu packages xorg)
  #:use-module (gnu packages xdisorg)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system meson))

(define-public girara
  (package
    (name "girara")
    (version "0.3.4")
    (source
     (origin
       (method url-fetch)
       (uri
        (string-append "https://pwmt.org/projects/" name "/download/"
                       name "-" version ".tar.xz"))
       (sha256
        (base32 "0cmjdismdsx9a5l7zx54zkd33mgg3mx4ckpvc7aap3x6a1ddmz2i"))))
    (arguments
     `(#:glib-or-gtk? #t                ; To compile schemas
       #:configure-flags
       (list
        "-Dnotify=enabled")             ; For notification support
       #:phases
       (modify-phases %standard-phases
         (add-before 'check 'start-xserver
           ;; Tests require a running X server.
           (lambda* (#:key inputs #:allow-other-keys)
             (let
                 ((xorg-server (assoc-ref inputs "xorg-server"))
                  (display ":1"))
               (setenv "DISPLAY" display)
               ;; On busy machines, tests may take longer than
               ;; the default of four seconds.
               (setenv "CK_DEFAULT_TIMEOUT" "20")
               ;; Don't fail due to missing '/etc/machine-id'.
               (setenv "DBUS_FATAL_WARNINGS" "0")
               (zero?
                (system
                 (string-append xorg-server "/bin/Xvfb "
                                display " &")))))))))
    (build-system meson-build-system)
    (native-inputs
     `(("check" ,check)                 ; For tests
       ("doxygen" ,doxygen)             ; For docs
       ("gettext" ,gettext-minimal)
       ("glib:bin" ,glib "bin")
       ("pkg-config" ,pkg-config)
       ("xorg-server" ,xorg-server-for-tests))) ; For tests
    (inputs
     `(("glib" ,glib)
       ("gtk+" ,gtk+)
       ("json-c" ,json-c)          ; For configuration dumping support
       ("libnotify" ,libnotify)    ; For notification support
       ("pango" ,pango)))
    (home-page "https://pwmt.org/projects/girara/")
    (synopsis "Library for minimalistic gtk+3 user interfaces")
    (description "Girara is a library that implements a user interface that
focuses on simplicity and minimalism.  Currently based on GTK+, a
cross-platform widget toolkit, it provides an interface that focuses on three
main components: a so-called view widget that represents the actual
application, an input bar that is used to execute commands of the
application and the status bar which provides the user with current
information.")
    (license license:zlib)))