help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IceWM for Guix System


From: 白い熊
Subject: Re: IceWM for Guix System
Date: Sun, 15 May 2022 01:11:41 +0200
User-agent: Roundcube Webmail/1.4.7

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 via email to

[Prev in Thread] Current Thread [Next in Thread]