mirror of
https://codeberg.org/hako/Rosenthal.git
synced 2026-08-18 02:30:14 +00:00
rosenthal: noctalia-shell: Update to 5.0.0-0.0e4bb96.
* modules/rosenthal/packages/wm.scm (noctalia-shell): Update to 5.0.0-0.0e4bb96. Rewrite package definition. Superseded by... (noctalia): ...new variable. * modules/rosenthal/home/services/desktop.scm (home-noctalia-configuration): New data type. (home-noctalia-shepherd-service, home-noctalia-service-type): New variables. * modules/rosenthal/services/desktop.scm (home-noctalia-shell-configuration) (home-noctalia-shell-service-type): Superseded by them. (%home-noctalia-shell-activation, %home-noctalia-shell-shepherd): Delete procedures.
This commit is contained in:
parent
86d418b080
commit
42701881b4
@ -13,9 +13,20 @@
|
|||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
#:use-module (gnu services configuration)
|
#:use-module (gnu services configuration)
|
||||||
;; Guix Home - services
|
;; Guix Home - services
|
||||||
|
#:use-module (gnu home services)
|
||||||
#:use-module (gnu home services shepherd)
|
#:use-module (gnu home services shepherd)
|
||||||
|
;; Guix packages
|
||||||
|
#:autoload (rosenthal packages wm) (noctalia)
|
||||||
#:export (home-graphical-session-service-type
|
#:export (home-graphical-session-service-type
|
||||||
home-graphical-session-configuration))
|
home-graphical-session-configuration
|
||||||
|
|
||||||
|
home-noctalia-configuration
|
||||||
|
home-noctalia-service-type))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Graphical session.
|
||||||
|
;;;
|
||||||
|
|
||||||
(define-configuration/no-serialization home-graphical-session-configuration
|
(define-configuration/no-serialization home-graphical-session-configuration
|
||||||
(timeout
|
(timeout
|
||||||
@ -175,3 +186,44 @@
|
|||||||
#f))))))
|
#f))))))
|
||||||
(default-value (home-graphical-session-configuration))
|
(default-value (home-graphical-session-configuration))
|
||||||
(description "")))
|
(description "")))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Noctalia
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define-configuration/no-serialization home-noctalia-configuration
|
||||||
|
(noctalia
|
||||||
|
(file-like noctalia)
|
||||||
|
"File-like object to provide @command{/bin/noctalia}."))
|
||||||
|
|
||||||
|
(define home-noctalia-shepherd-service
|
||||||
|
(match-record-lambda <home-noctalia-configuration>
|
||||||
|
(noctalia)
|
||||||
|
(list (shepherd-service
|
||||||
|
(documentation "Start noctalia.")
|
||||||
|
(provision '(noctalia))
|
||||||
|
(requirement '(dbus graphical-session))
|
||||||
|
(modules '((shepherd support)))
|
||||||
|
(start
|
||||||
|
#~(lambda args
|
||||||
|
((make-forkexec-constructor
|
||||||
|
(list #$(file-append noctalia "/bin/noctalia"))
|
||||||
|
#:log-file (in-vicinity %user-log-dir "noctalia.log")
|
||||||
|
;; Inherit graphical session environment.
|
||||||
|
#:environment-variables (environ))
|
||||||
|
args)))
|
||||||
|
(stop #~(make-kill-destructor))))))
|
||||||
|
|
||||||
|
(define home-noctalia-service-type
|
||||||
|
(service-type
|
||||||
|
(name 'home-noctalia)
|
||||||
|
(extensions
|
||||||
|
(list (service-extension home-profile-service-type
|
||||||
|
(compose list home-noctalia-configuration-noctalia))
|
||||||
|
(service-extension home-shepherd-service-type
|
||||||
|
home-noctalia-shepherd-service)
|
||||||
|
(service-extension home-graphical-session-service-type
|
||||||
|
(const 'wayland))))
|
||||||
|
(default-value (home-noctalia-configuration))
|
||||||
|
(description "Run Noctalia, a lightweight Wayland shell and bar.")))
|
||||||
|
|||||||
@ -1,8 +1,9 @@
|
|||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
;;; Copyright © 2025 Hilton Chain <hako@ultrarare.space>
|
;;; Copyright © 2025-2026 Hilton Chain <hako@ultrarare.space>
|
||||||
|
|
||||||
(define-module (rosenthal packages wm)
|
(define-module (rosenthal packages wm)
|
||||||
;; Utilities
|
;; Utilities
|
||||||
|
#:use-module (guix deprecation)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
@ -12,12 +13,14 @@
|
|||||||
;; Guix build systems
|
;; Guix build systems
|
||||||
#:use-module (guix build-system cargo)
|
#:use-module (guix build-system cargo)
|
||||||
#:use-module (guix build-system copy)
|
#:use-module (guix build-system copy)
|
||||||
|
#:use-module (guix build-system meson)
|
||||||
;; Guix packages
|
;; Guix packages
|
||||||
#:use-module (gnu packages admin)
|
#:use-module (gnu packages admin)
|
||||||
#:use-module (gnu packages audio)
|
#:use-module (gnu packages audio)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages bash)
|
#:use-module (gnu packages bash)
|
||||||
#:use-module (gnu packages calendar)
|
#:use-module (gnu packages calendar)
|
||||||
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (gnu packages fontutils)
|
#:use-module (gnu packages fontutils)
|
||||||
#:use-module (gnu packages freedesktop)
|
#:use-module (gnu packages freedesktop)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
@ -26,7 +29,9 @@
|
|||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages guile)
|
#:use-module (gnu packages guile)
|
||||||
#:use-module (gnu packages hardware)
|
#:use-module (gnu packages hardware)
|
||||||
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages imagemagick)
|
#:use-module (gnu packages imagemagick)
|
||||||
|
#:use-module (gnu packages jemalloc)
|
||||||
#:use-module (gnu packages linux)
|
#:use-module (gnu packages linux)
|
||||||
#:use-module (gnu packages llvm)
|
#:use-module (gnu packages llvm)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
@ -37,122 +42,72 @@
|
|||||||
#:use-module (gnu packages wm)
|
#:use-module (gnu packages wm)
|
||||||
#:use-module (gnu packages xdisorg))
|
#:use-module (gnu packages xdisorg))
|
||||||
|
|
||||||
(define-public noctalia-shell
|
;; TODO: Unbundle dependencies under the third_party directory.
|
||||||
(package
|
(define-public noctalia
|
||||||
(name "noctalia-shell")
|
(let ((commit "0e4bb96a8b42abb47af67286902a52eaa628c50a")
|
||||||
(version "4.7.7")
|
(revision "0"))
|
||||||
(source (origin
|
(package
|
||||||
(method git-fetch)
|
(name "noctalia")
|
||||||
(uri (git-reference
|
(version (git-version "5.0.0" revision commit))
|
||||||
(url "https://github.com/noctalia-dev/noctalia-shell")
|
(source (origin
|
||||||
(commit (string-append "v" version))))
|
(method git-fetch)
|
||||||
(file-name (git-file-name name version))
|
(uri (git-reference
|
||||||
(sha256
|
(url "https://github.com/noctalia-dev/noctalia-shell")
|
||||||
(base32
|
(commit commit)))
|
||||||
"0pchvsd89js4q7k10q621w3jqndv6raw6zy0px2b43ygh2kcpk22"))))
|
(file-name (git-file-name name version))
|
||||||
(build-system copy-build-system)
|
(sha256
|
||||||
(arguments
|
(base32
|
||||||
(list
|
"0ymv5i8dfd10ynfh1lrr7h8ydbi3h1xf4gp2j6313i7yghcymqy8"))))
|
||||||
#:install-plan
|
(build-system meson-build-system)
|
||||||
#~'(("." "etc/xdg/quickshell/noctalia-shell"))
|
(arguments
|
||||||
#:imported-modules
|
(list #:build-type "release"
|
||||||
`((guix build qt-utils)
|
;; FIXME: process_test fails with:
|
||||||
,@%copy-build-system-modules)
|
;; --8<---------------cut here---------------start------------->8---
|
||||||
#:modules
|
;; stderr:
|
||||||
'((srfi srfi-26)
|
;; process_test: completion-only async command exit code was wrong
|
||||||
(guix build copy-build-system)
|
;; process_test: completion-only async command stdout was wrong
|
||||||
(guix build qt-utils)
|
;; --8<---------------cut here---------------end--------------->8---
|
||||||
(guix build utils))
|
#:tests? #f
|
||||||
#:phases
|
#:phases
|
||||||
#~(modify-phases %standard-phases
|
#~(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'patch-references
|
(add-after 'unpack 'prepare-for-build
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda _
|
||||||
(substitute* "Services/Power/IdleInhibitorService.qml"
|
;; For reproducibility.
|
||||||
(("systemd-inhibit")
|
(substitute* "meson.build"
|
||||||
(search-input-file inputs "bin/elogind-inhibit")))))
|
(("'-march=native', '-mtune=native',") ""))
|
||||||
(add-after 'unpack 'reduce-output-size
|
;; /bin/sh doesn't exist in the build environment.
|
||||||
(lambda _
|
(substitute* "tests/process_test.cpp"
|
||||||
(delete-file-recursively "Assets/Screenshots")))
|
(("/bin/(sh)" _ cmd)
|
||||||
(add-after 'install 'make-wrapper
|
(which cmd))))))))
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(native-inputs
|
||||||
(let ((script "noctalia-shell"))
|
(list pkg-config))
|
||||||
(with-output-to-file script
|
(inputs
|
||||||
(lambda ()
|
(list cairo
|
||||||
(format #t "~
|
curl
|
||||||
#!~a
|
fontconfig
|
||||||
exec ~a --config ~a/etc/xdg/quickshell/noctalia-shell \"$@\"~%"
|
freetype
|
||||||
(search-input-file inputs "bin/sh")
|
glib
|
||||||
(search-input-file inputs "bin/quickshell")
|
harfbuzz
|
||||||
#$output)))
|
jemalloc
|
||||||
(wrap-script script
|
(librsvg-for-system)
|
||||||
`("PATH"
|
libwebp
|
||||||
suffix
|
libxkbcommon
|
||||||
,(map (compose dirname
|
linux-pam
|
||||||
(cut search-input-file inputs <>))
|
mesa
|
||||||
'("bin/bluetoothctl"
|
pango
|
||||||
"bin/brightnessctl"
|
pipewire
|
||||||
"bin/cliphist"
|
polkit
|
||||||
"bin/convert"
|
sdbus-c++
|
||||||
"bin/ddcutil"
|
wayland
|
||||||
"bin/fastfetch"
|
wayland-protocols))
|
||||||
"bin/fc-list"
|
(home-page "https://noctalia.dev/")
|
||||||
"bin/find"
|
(synopsis "Wayland shell and bar")
|
||||||
"bin/getent"
|
(description
|
||||||
"bin/git"
|
"Noctalia is a lightweight Wayland shell and bar built directly on
|
||||||
"bin/grep"
|
Wayland and OpenGL ES, with no Qt or GTK dependency.")
|
||||||
"bin/khal"
|
(license license:expat))))
|
||||||
"bin/ls"
|
|
||||||
"bin/nmcli"
|
(define-deprecated-package noctalia-shell noctalia)
|
||||||
"bin/python3"
|
|
||||||
"bin/sh"
|
|
||||||
"bin/which"
|
|
||||||
"bin/wl-paste"
|
|
||||||
"bin/wlsunset"
|
|
||||||
"bin/wtype"
|
|
||||||
"bin/xdg-open"))))
|
|
||||||
(chmod script #o555)
|
|
||||||
(install-file script (in-vicinity #$output "bin")))))
|
|
||||||
(add-after 'make-wrapper 'qt-wrap
|
|
||||||
(lambda args
|
|
||||||
(apply wrap-all-qt-programs
|
|
||||||
#:qtbase #$(this-package-input "qtbase")
|
|
||||||
args))))))
|
|
||||||
(inputs
|
|
||||||
(list bash-minimal
|
|
||||||
bluez
|
|
||||||
brightnessctl
|
|
||||||
cliphist
|
|
||||||
coreutils-minimal
|
|
||||||
ddcutil
|
|
||||||
elogind
|
|
||||||
fastfetch-minimal
|
|
||||||
findutils
|
|
||||||
fontconfig
|
|
||||||
git-minimal
|
|
||||||
glibc
|
|
||||||
grep
|
|
||||||
guile-3.0
|
|
||||||
imagemagick
|
|
||||||
khal
|
|
||||||
network-manager
|
|
||||||
noctalia-qs
|
|
||||||
python-minimal
|
|
||||||
qtbase
|
|
||||||
qtmultimedia
|
|
||||||
qtwayland
|
|
||||||
which
|
|
||||||
wl-clipboard
|
|
||||||
wlsunset
|
|
||||||
wtype
|
|
||||||
xdg-utils))
|
|
||||||
(home-page "https://noctalia.dev/")
|
|
||||||
(synopsis "Wayland desktop shell")
|
|
||||||
(description
|
|
||||||
"Noctalia is a minimal desktop shell designed for Wayland, built on the
|
|
||||||
@code{quickshell} framework. It offers a customizable and clean user interface,
|
|
||||||
supporting various Wayland compositors like @code{niri}, @code{hyprland}, and
|
|
||||||
@code{sway}.")
|
|
||||||
(license license:expat)))
|
|
||||||
|
|
||||||
(define-public noctalia-qs
|
(define-public noctalia-qs
|
||||||
(package
|
(package
|
||||||
|
|||||||
@ -65,9 +65,6 @@
|
|||||||
home-niri-configuration
|
home-niri-configuration
|
||||||
home-niri-service-type
|
home-niri-service-type
|
||||||
|
|
||||||
home-noctalia-shell-configuration
|
|
||||||
home-noctalia-shell-service-type
|
|
||||||
|
|
||||||
home-bb-auth-service-type
|
home-bb-auth-service-type
|
||||||
home-polkit-gnome-service-type
|
home-polkit-gnome-service-type
|
||||||
|
|
||||||
@ -378,54 +375,11 @@ compositor.")))
|
|||||||
;;; Noctalia
|
;;; Noctalia
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define-configuration/no-serialization home-noctalia-shell-configuration
|
(define-deprecated/public-alias home-noctalia-shell-configuration
|
||||||
(noctalia-shell
|
(@ (rosenthal home services desktop) home-noctalia-configuration))
|
||||||
(file-like noctalia-shell)
|
|
||||||
"File-like object to provide @command{/bin/noctalia-shell}."))
|
|
||||||
|
|
||||||
;; Create ~/.config/noctalia directory, otherwise Noctalia shell won't show up
|
(define-deprecated/public-alias home-noctalia-shell-service-type
|
||||||
;; on initial startup.
|
(@ (rosenthal home services desktop) home-noctalia-shell-service-type))
|
||||||
(define (%home-noctalia-shell-activation _)
|
|
||||||
(with-imported-modules (source-module-closure '((guix build utils)))
|
|
||||||
#~(begin
|
|
||||||
(use-modules (guix build utils))
|
|
||||||
(let ((xdg-config-home
|
|
||||||
(or (getenv "XDG_CONFIG_HOME")
|
|
||||||
(in-vicinity (getenv "HOME") ".config"))))
|
|
||||||
(mkdir-p (in-vicinity xdg-config-home "noctalia"))))))
|
|
||||||
|
|
||||||
(define %home-noctalia-shell-shepherd
|
|
||||||
(match-record-lambda <home-noctalia-shell-configuration>
|
|
||||||
(noctalia-shell)
|
|
||||||
(list (shepherd-service
|
|
||||||
(documentation "Start noctalia-shell.")
|
|
||||||
(provision '(noctalia-shell))
|
|
||||||
(requirement '(dbus graphical-session))
|
|
||||||
(modules '((shepherd support)))
|
|
||||||
(start
|
|
||||||
#~(lambda args
|
|
||||||
((make-forkexec-constructor
|
|
||||||
(list #$(file-append noctalia-shell "/bin/noctalia-shell"))
|
|
||||||
#:log-file (in-vicinity %user-log-dir "noctalia-shell.log")
|
|
||||||
;; Inherit graphical session environment.
|
|
||||||
#:environment-variables (environ))
|
|
||||||
args)))
|
|
||||||
(stop #~(make-kill-destructor))))))
|
|
||||||
|
|
||||||
(define home-noctalia-shell-service-type
|
|
||||||
(service-type
|
|
||||||
(name 'home-noctalia-shell)
|
|
||||||
(extensions
|
|
||||||
(list (service-extension home-profile-service-type
|
|
||||||
(compose list home-noctalia-shell-configuration-noctalia-shell))
|
|
||||||
(service-extension home-activation-service-type
|
|
||||||
%home-noctalia-shell-activation)
|
|
||||||
(service-extension home-shepherd-service-type
|
|
||||||
%home-noctalia-shell-shepherd)
|
|
||||||
(service-extension home-graphical-session-service-type
|
|
||||||
(const 'wayland))))
|
|
||||||
(default-value (home-noctalia-shell-configuration))
|
|
||||||
(description "")))
|
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user