all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: 白い熊 <help-guix_gnu.org@sumou.com>
To: help-guix@gnu.org
Subject: Re: IceWM for Guix System
Date: Sun, 15 May 2022 01:11:41 +0200	[thread overview]
Message-ID: <d554ac0f10340eaa2e8a8535848741b0@sumou.com> (raw)
In-Reply-To: <48ceb9537c994d00dbed9071dae70824@sumou.com>

On 2022-05-14 23:38, 白い熊 wrote:

> Now I need to cons some icewm-desktop-service-type onto
> %desktop-services in system config - am trying to find out how to
> define it and where - so that I'd be able to reconfigure the system
> and have icewm as one of the options for login among the available
> session managers, so X could start a session in it.

I think I figured it out - at least partially - it's really fun...

Anyhow I added a #phases modification to the package definition, setup a 
local directory channel with the package definition. Then could add the 
package module and the icewm package to system config, reconfigure and 
it's there with other WMs.

This is what I ended up with for reference:
--8<---------------cut here---------------start------------->8---
(define-module (icewm)
   #:use-module (guix packages)
   #:use-module (gnu packages)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages autogen)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages image)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages xorg)
   )

(define-public icewm
   (package
     (name "icewm")
     (version "2.9.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              
"https://github.com/ice-wm/icewm/releases/download/2.9.7/icewm-"
	     version
	     ".tar.lz"))
        (sha256 (base32 
"0an7h55sacikkvb7llz2n93dl7xds24ics8mqzmznjddygiphpy2"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f
        #:phases
        (modify-phases %standard-phases
		      (add-after 'install 'install-xsession
				 (lambda* (#:key outputs #:allow-other-keys)
				   ;; Add a .desktop file to xsessions.
				   (let* ((output    (assoc-ref outputs "out"))
					  (xsessions (string-append output "/share/xsessions")))
				     (mkdir-p xsessions)
				     (call-with-output-file (string-append xsessions
									   "/icewm.desktop")
				       (lambda (port)
					 (format port
						 "[Desktop Entry]~@
                             Name=icewm~@
                             Comment=IceWM window manager~@
                             Exec=~a/bin/icewm~@
                             TryExec=~@*~a/bin/icewm~@
                             Type=Application~%"
						 output)))
				     #t))))))
     (inputs
      (list fontconfig fribidi imlib2 libice libjpeg-turbo libsm 
libxcomposite libxdamage libxext libxfixes libxft libxinerama libxpm 
libxrandr libxrender libx11 lzip perl pkg-config))
     (home-page "https://ice-wm.org/")
     (synopsis " window manager for the X Window System")
     (description "IceWM is a window manager for the X Window System. The 
goal
of IceWM is speed, simplicity, and not getting in the user’s way. It 
comes
with a taskbar with pager, global and per-window keybindings and a 
dynamic
menu system. Application windows can be managed by keyboard and mouse. 
Windows
can be iconified to the taskbar, to the tray, to the desktop or be made
hidden. They are controllable by a quick switch window (Alt+Tab) and in 
a
window list. A handful of configurable focus models are
menu-selectable. Setups with multiple monitors are supported by RandR 
and
Xinerama. IceWM is very configurable, themeable and well documented. It
includes an optional external background wallpaper manager with 
transparency
support, a simple session manager and a system tray.")
     (license license:gpl2)))
--8<---------------cut here---------------end--------------->8---

It might be incomplete though - maybe it's lacking some services or 
something, as the IceWM that starts up now does not have full Settings 
options - like Display settings for instance - as the IceWM from Ubuntu 
Mate has on the same machine from a parallel boot. It might be due to 
some concrete configurations etc - I'll explore. Or it might be due to 
having not declared something helpful in the package definition... If 
anyone has ideas, I'll be happy to hear those and test them...

---
Best regards / 宜しく御願い致します / S pozdravem / C уважением / Z poważaniem / 
Mit freundlichen Grüßen

白い熊
ShiroiKuma


      reply	other threads:[~2022-05-14 23:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-13  6:49 IceWM for Guix System 白い熊@相撲道
2022-05-13  8:22 ` zimoun
2022-05-14 18:38   ` 白い熊@相撲道
2022-05-14 18:56     ` Ekaitz Zarraga
2022-05-14 21:38       ` 白い熊@相撲道
2022-05-14 23:11         ` 白い熊 [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d554ac0f10340eaa2e8a8535848741b0@sumou.com \
    --to=help-guix_gnu.org@sumou.com \
    --cc=help-guix@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.