Compare commits

...

4 Commits

Author SHA1 Message Date
Hilton Chain
6fac29b34d
rosenthal: noctalia-shell: Add qtwayland dependency.
* modules/rosenthal/packages/wm.scm (noctalia-shell): Add qtwayland.
2026-02-04 18:24:58 +08:00
Hilton Chain
4da8818d04
services: Add home-noctalia-shell-service-type.
* modules/rosenthal/services/desktop.scm (home-noctalia-shell-service-type):
New variable.
2026-02-04 17:01:57 +08:00
Hilton Chain
cc32c7bbe0
rosenthal: Add noctalia-shell.
* modules/rosenthal/packages/wm.scm (noctalia-shell): New variable.
2026-02-04 17:01:55 +08:00
Hilton Chain
8c0b782c6d
services: %rosenthal-desktop-home-services: Remove applet services.
* modules/rosenthal/services/desktop.scm (%rosenthal-desktop-home-services):
Remove home-blueman-applet-service-type and
home-network-manager-applet-service-type.
2026-02-04 16:59:47 +08:00
2 changed files with 134 additions and 3 deletions

View File

@ -8,14 +8,120 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cargo) #:use-module (guix build-system cargo)
#:use-module (guix build-system copy)
#:use-module (rosenthal utils cargo) #:use-module (rosenthal utils cargo)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages audio)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#: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)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages imagemagick)
#: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)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages version-control)
#:use-module (gnu packages wm) #:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg)) #:use-module (gnu packages xdisorg))
(define-public noctalia-shell
(package
(name "noctalia-shell")
(version "4.3.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/noctalia-dev/noctalia-shell")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1rv41ph1159wg1nzb8qn6lg6s0ycg7zl7qkaaqxwd4ld2i3g8km5"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~'(("." "share/noctalia-shell"))
#:imported-modules
`((guix build qt-utils)
,@%copy-build-system-modules)
#:modules
'((srfi srfi-26)
(guix build copy-build-system)
(guix build qt-utils)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'make-wrapper
(lambda* (#:key inputs #:allow-other-keys)
(let ((script "noctalia-shell"))
(with-output-to-file script
(lambda ()
(format #t "~
#!~a
exec ~a --path ~a/share/noctalia-shell \"$@\"~%"
(search-input-file inputs "bin/sh")
(search-input-file inputs "bin/quickshell")
#$output)))
(wrap-script script
`("PATH"
suffix
,(map (compose dirname
(cut search-input-file inputs <>))
'("bin/bluetoothctl"
"bin/brightnessctl"
"bin/cava"
"bin/cliphist"
"bin/convert"
"bin/fastfetch"
"bin/fc-list"
"bin/find"
"bin/git"
"bin/ls"
"bin/nmcli"
"bin/python3"
"bin/sh"
"bin/which"
"bin/wlsunset"))))
(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
cava
cliphist
coreutils-minimal
fastfetch
findutils
fontconfig
git-minimal
guile-3.0
imagemagick
network-manager
python-minimal
qtbase
qtwayland
quickshell
which
wlsunset))
(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)))

View File

@ -30,6 +30,7 @@
#:use-module (gnu home services shepherd) #:use-module (gnu home services shepherd)
#:use-module (gnu home services sound) #:use-module (gnu home services sound)
#:use-module (rosenthal packages wm)
#:use-module (rosenthal packages xorg) #:use-module (rosenthal packages xorg)
#:export (home-blueman-applet-configuration #:export (home-blueman-applet-configuration
@ -47,6 +48,8 @@
home-niri-configuration home-niri-configuration
home-niri-service-type home-niri-service-type
home-noctalia-shell-service-type
home-rofi-configuration home-rofi-configuration
home-rofi-service-type home-rofi-service-type
@ -283,6 +286,31 @@
"Set up configuration file for niri, a scrollable-tiling Wayland "Set up configuration file for niri, a scrollable-tiling Wayland
compositor."))) compositor.")))
;;;
;;; Noctalia
;;;
(define %home-noctalia-shell-shepherd
(list (shepherd-service
(documentation "Start noctalia-shell.")
(provision '(noctalia-shell))
(start
#~(make-forkexec-constructor
(list #$(file-append noctalia-shell "/bin/noctalia-shell"))))
(stop #~(make-kill-destructor)))))
(define home-noctalia-shell-service-type
(service-type
(name 'noctalia-shell)
(extensions
(list (service-extension home-shepherd-service-type
(const %home-noctalia-shell-shepherd))
(service-extension home-profile-service-type
(const (list noctalia-shell)))))
(default-value #f)
(description "")))
;;; ;;;
;;; rofi ;;; rofi
@ -702,7 +730,4 @@ configuration {
(service home-dbus-service-type) (service home-dbus-service-type)
(service home-pipewire-service-type) (service home-pipewire-service-type)
(service home-blueman-applet-service-type)
(service home-network-manager-applet-service-type)
%base-home-services)) %base-home-services))