gnu: windowmaker: Add '.desktop' file.
* gnu/packages/gnustep.scm (windowmaker)[arguments]: Add 'install-xsession' phase. Add (guix build build-system), (guix build utils) and (ice-9 match) to #:modules.
This commit is contained in:
parent
65eaab635b
commit
537fe4568f
@ -34,7 +34,8 @@
|
|||||||
#:use-module (gnu packages fontutils)
|
#:use-module (gnu packages fontutils)
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages xml))
|
#:use-module (gnu packages xml)
|
||||||
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(define-public gnustep-make
|
(define-public gnustep-make
|
||||||
(package
|
(package
|
||||||
@ -65,6 +66,7 @@ to easily create cross-compiled binaries.")
|
|||||||
(package
|
(package
|
||||||
(name "windowmaker")
|
(name "windowmaker")
|
||||||
(version "0.95.8")
|
(version "0.95.8")
|
||||||
|
(synopsis "NeXTSTEP-like window manager")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
@ -75,7 +77,10 @@ to easily create cross-compiled binaries.")
|
|||||||
"12p8kljqgx5hnic0zvs5mxwp7kg21sb6qjagb2qw8ydvf5amrgwx"))))
|
"12p8kljqgx5hnic0zvs5mxwp7kg21sb6qjagb2qw8ydvf5amrgwx"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases
|
`(#:modules ((guix build gnu-build-system)
|
||||||
|
(guix build utils)
|
||||||
|
(ice-9 match))
|
||||||
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-before 'configure 'pre-configure
|
(add-before 'configure 'pre-configure
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
@ -97,14 +102,33 @@ to easily create cross-compiled binaries.")
|
|||||||
(substitute* "src/defaults.c"
|
(substitute* "src/defaults.c"
|
||||||
(("len = strlen\\(text\\) \\+ 40;")
|
(("len = strlen\\(text\\) \\+ 40;")
|
||||||
(string-append "len = strlen(text) + 107;"))))))
|
(string-append "len = strlen(text) + 107;"))))))
|
||||||
(add-after 'install 'wrap
|
(add-after 'install 'install-xsession
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(xsessions (string-append out "/share/xsessions")))
|
||||||
|
(mkdir-p xsessions)
|
||||||
|
(call-with-output-file
|
||||||
|
(string-append xsessions "/windowmaker.desktop")
|
||||||
|
(lambda (port)
|
||||||
|
(format port "~
|
||||||
|
[Desktop Entry]~@
|
||||||
|
Name=Window Maker~@
|
||||||
|
Comment=~a~@
|
||||||
|
Exec=~a/bin/wmaker~@
|
||||||
|
Type=Application~%"
|
||||||
|
(string-map (match-lambda
|
||||||
|
(#\newline #\space)
|
||||||
|
(chr chr))
|
||||||
|
,synopsis) %output))))
|
||||||
|
#t))
|
||||||
|
(add-after 'install-xsession 'wrap
|
||||||
(lambda* (#:key outputs #:allow-other-keys)
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(bin (string-append out "/bin")))
|
(bin (string-append out "/bin")))
|
||||||
;; In turn, 'wmaker.inst' wants to invoke 'wmmenugen'
|
;; In turn, 'wmaker.inst' wants to invoke 'wmmenugen'
|
||||||
;; etc., so make sure everything is in $PATH.
|
;; etc., so make sure everything is in $PATH.
|
||||||
(wrap-program (string-append bin "/wmaker.inst")
|
(wrap-program (string-append bin "/wmaker.inst")
|
||||||
`("PATH" ":" prefix (,bin)))))))))
|
`("PATH" ":" prefix (,bin)))))))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("libxmu" ,libxmu)
|
`(("libxmu" ,libxmu)
|
||||||
("libxft" ,libxft)
|
("libxft" ,libxft)
|
||||||
@ -117,7 +141,6 @@ to easily create cross-compiled binaries.")
|
|||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("pkg-config" ,pkg-config)))
|
||||||
(home-page "http://windowmaker.org/")
|
(home-page "http://windowmaker.org/")
|
||||||
(synopsis "NeXTSTEP-like window manager")
|
|
||||||
(description
|
(description
|
||||||
"Window Maker is an X11 window manager originally designed to provide
|
"Window Maker is an X11 window manager originally designed to provide
|
||||||
integration support for the GNUstep Desktop Environment. In every way
|
integration support for the GNUstep Desktop Environment. In every way
|
||||||
|
Loading…
Reference in New Issue
Block a user