diff options
author | Kei Kebreau <kkebreau@posteo.net> | 2017-12-02 19:43:08 -0500 |
---|---|---|
committer | Kei Kebreau <kkebreau@posteo.net> | 2017-12-06 16:31:09 -0500 |
commit | 537fe4568f4d7a90ab350a66cadfdf38c893bbee (patch) | |
tree | fa4afe8cdb8a8ac6b55ef59374494ac5b09ad451 | |
parent | 65eaab635bd730a03b2dd44227b1bd998ae01de3 (diff) | |
download | guix-537fe4568f4d7a90ab350a66cadfdf38c893bbee.tar.gz |
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.
-rw-r--r-- | gnu/packages/gnustep.scm | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index 195249c435..a6adc697a0 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -34,7 +34,8 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages image) #: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 (package @@ -65,6 +66,7 @@ to easily create cross-compiled binaries.") (package (name "windowmaker") (version "0.95.8") + (synopsis "NeXTSTEP-like window manager") (source (origin (method url-fetch) (uri (string-append @@ -75,7 +77,10 @@ to easily create cross-compiled binaries.") "12p8kljqgx5hnic0zvs5mxwp7kg21sb6qjagb2qw8ydvf5amrgwx")))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 match)) + #:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure (lambda* (#:key outputs #:allow-other-keys) @@ -97,14 +102,33 @@ to easily create cross-compiled binaries.") (substitute* "src/defaults.c" (("len = strlen\\(text\\) \\+ 40;") (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) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) ;; In turn, 'wmaker.inst' wants to invoke 'wmmenugen' ;; etc., so make sure everything is in $PATH. (wrap-program (string-append bin "/wmaker.inst") - `("PATH" ":" prefix (,bin))))))))) + `("PATH" ":" prefix (,bin))))))))) (inputs `(("libxmu" ,libxmu) ("libxft" ,libxft) @@ -117,7 +141,6 @@ to easily create cross-compiled binaries.") (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://windowmaker.org/") - (synopsis "NeXTSTEP-like window manager") (description "Window Maker is an X11 window manager originally designed to provide integration support for the GNUstep Desktop Environment. In every way |