Compare commits

...

17 Commits

Author SHA1 Message Date
Hilton Chain
7d9214d18e
rosenthal: hyprland: Update to 0.44.1.
* rosenthal/packages/wm.scm (libinput-minimal-for-hyprland,wayland-for-hyprland)
(aquamarine,hyprpicker,hyprutils): New variables.
(grimblast): Update to grimblast-0.1-1.9d67858.
(hyprcursor): Update to 0.1.9.
(hyprland): Update to 0.44.1.
(hyprland-protocols): Update to 0.4.0.
(hyprlang): Update to 0.5.3.
(hyprwayland-scanner): Update to 0.4.2.
(xdg-desktop-portal-hyprland): Update to 1.3.6.
(cairo-for-hyprland,hwdata-for-hyprland,libdrm-for-hyprland)
(hyprland-unbundle-wlroots-patch,wayland-protocols-for-hyprland)
(wlroots-for-hyprland): Delete variables.
2024-10-31 16:46:36 +08:00
Hilton Chain
38e2be2728
rosenthal: wlroots-for-hyprland: Remove non-existent reference.
* rosenthal/packages/wm.scm (wlroots-for-hyprland)[propagated-inputs]: Remove
reference to libinput-minimal-1.24.0.
2024-10-31 14:38:33 +08:00
Hilton Chain
97b9e2436a
rosenthal: Remove libinput-minimal-1.24.0. [upstreamed]
* rosenthal/packages/freedesktop.scm (libinput-minimal-1.24.0): Delete variable.
2024-10-31 14:19:57 +08:00
Hilton Chain
e52520cbaa
rosenthal: dnsmasq-china-list: Update to 0-17.8c4858a.
* rosenthal/packages/dns.scm (dnsmasq-china-list): Update to 0-17.8c4858a.
2024-10-31 14:19:00 +08:00
Hilton Chain
2eb66f8bad
rosenthal: wakatime-cli-bin: Update to 1.102.4.
* rosenthal/packages/binaries.scm (wakatime-cli-bin): Update to 1.102.4.
2024-10-31 14:16:56 +08:00
Hilton Chain
2888e95b2a
rosenthal: wakapi-bin: Update to 2.12.1.
* rosenthal/packages/binaries.scm (wakapi-bin): Update to 2.12.1.
2024-10-31 14:16:08 +08:00
Hilton Chain
afe3c41f96
rosenthal: sing-box-bin: Update to 1.10.1.
* rosenthal/packages/binaries.scm (sing-box-bin): Update to 1.10.1.
2024-10-31 14:14:35 +08:00
Hilton Chain
2cbf87a1b5
rosenthal: hugo-bin: Update to 0.136.5.
* rosenthal/packages/binaries.scm (hugo-bin): Update to 0.136.5.
2024-10-31 14:06:29 +08:00
Hilton Chain
7e970f49e4
rosenthal: cloudflared: Update to 2024.10.1.
* rosenthal/packages/networking.scm (cloudflared): Update to 2024.10.1.
2024-10-31 14:01:37 +08:00
Hilton Chain
ad9f05d5da
rosenthal: tailscale-bin: Update to 1.76.1.
* rosenthal/packages/binaries.scm (tailscale-bin): Update to 1.76.1.
2024-10-31 14:00:37 +08:00
Hilton Chain
966d4ac483
rosenthal: cloudflare-warp-bin: Update to 2024.9.346.0.
* rosenthal/packages/binaries.scm (cloudflare-warp-bin): Update to
2024.9.346.0.
[arguments]<#:phases>: Simplify 'unpack-deb phase.
2024-10-31 13:58:41 +08:00
Hilton Chain
fb0a73108e
services: clash: Run as root.
Process name related matching is only available to root user.
This commit also changes the default clash implementation to mihomo.

* rosenthal/services/child-error.scm (clash-configuration)
[clash]: Use mihomo-bin.
(%clash-accounts): Remove user account "clash".
(clash-activation): Don't change directory owner.
(clash-shepherd-service)[start]<#:user>: Remove.
2024-10-31 13:50:43 +08:00
Hilton Chain
bcf1b0c464
services: jellyfin: Add auto-start? option.
* rosenthal/services/web.scm (jellyfin-configuration)[auto-start?]: New field.
(jellyfin-oci-containers)[auto-start?]: Use it.
2024-10-31 13:49:14 +08:00
Hilton Chain
b5f9128798
services: tailscale: Change back socket path.
Modified by accident.

* rosenthal/services/networking.scm (tailscale-configuration)[socket]: Change
back socket path.
2024-10-31 13:41:44 +08:00
Hilton Chain
e4b84dfa2c
services: jellyfin: Allow gexps in extra-options.
* rosenthal/services/web.scm (jellyfin-configuration)[extra-options]: Change
type to list.
2024-10-11 09:37:14 +08:00
Hilton Chain
1014d146c0
rosenthal: hugo-bin: Update to 0.135.0.
* rosenthal/packages/binaries.scm (hugo-bin): Update to 0.135.0.
[native-inputs]: Replace patchelf to its 0.16 version.
2024-10-10 16:30:37 +08:00
Hilton Chain
64f925e075
rosenthal: cloudflare-warp-bin: Use patchelf 0.16.
* rosenthal/packages/binaries.scm (cloudflare-warp-bin)
[native-inputs]: Replace patchelf with its 0.16 version.
2024-10-10 16:29:25 +08:00
8 changed files with 303 additions and 267 deletions

View File

@ -85,15 +85,15 @@ protocols out-of-the-box.")
(define-public cloudflare-warp-bin (define-public cloudflare-warp-bin
(package (package
(name "cloudflare-warp-bin") (name "cloudflare-warp-bin")
(version "2024.6.497") (version "2024.9.346.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://pkg.cloudflareclient.com" (uri (string-append "https://pkg.cloudflareclient.com"
"/pool/bookworm/main/c/cloudflare-warp/" "/pool/bookworm/main/c/cloudflare-warp/"
"cloudflare-warp_" version "-1_amd64.deb")) "cloudflare-warp_" version "_amd64.deb"))
(sha256 (sha256
(base32 (base32
"1ry62ck61gn4bxnkih3775pdlndp2ldxwifbjkxbj3wfd4f67xiv")))) "1jrvhb4ka6j0fn9ymnpz1j4anljhl3b15h54np40x0p2d5c28czi"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan (list #:install-plan
@ -101,11 +101,9 @@ protocols out-of-the-box.")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'unpack-deb (add-after 'unpack 'unpack-deb
(lambda _ (lambda* (#:key source #:allow-other-keys)
(let ((deb-pack (format #f "cloudflare-warp_~a-1_amd64.deb" (invoke "ar" "-x" source)
#$(package-version this-package)))) (invoke "tar" "-xf" "data.tar.gz")))
(invoke "ar" "-x" deb-pack)
(invoke "tar" "-xf" "data.tar.gz"))))
(add-after 'install 'patch-elf (add-after 'install 'patch-elf
(lambda _ (lambda _
(let ((ld.so (string-append #$(this-package-input "glibc") (let ((ld.so (string-append #$(this-package-input "glibc")
@ -135,7 +133,7 @@ protocols out-of-the-box.")
(find-files (find-files
(string-append #$output "/bin"))))))))) (string-append #$output "/bin")))))))))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(native-inputs (list patchelf)) (native-inputs (list patchelf-0.16))
(inputs (list dbus `(,gcc "lib") glibc nspr nss)) (inputs (list dbus `(,gcc "lib") glibc nspr nss))
(home-page "https://1.1.1.1/") (home-page "https://1.1.1.1/")
(synopsis "Cloudflare WARP client") (synopsis "Cloudflare WARP client")
@ -152,7 +150,7 @@ different needs.")
(define-public hugo-bin (define-public hugo-bin
(package (package
(name "hugo-bin") (name "hugo-bin")
(version "0.133.0") (version "0.136.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -160,7 +158,7 @@ different needs.")
version "/hugo_extended_" version "_linux-amd64.tar.gz")) version "/hugo_extended_" version "_linux-amd64.tar.gz"))
(sha256 (sha256
(base32 (base32
"0vlfvh81yq6ccp3dx95q4d8ha2ir54a89jl7m63l1rwsvvi3099p")))) "1zvhpyqad402ifa4gyin6apxmyhxg5ww8d7ng7h7q1qbpcd7rgmp"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan #~'(("hugo" "bin/")) (list #:install-plan #~'(("hugo" "bin/"))
@ -180,7 +178,7 @@ different needs.")
"/lib") "/lib")
hugo))))))) hugo)))))))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(native-inputs (list patchelf)) (native-inputs (list patchelf-0.16))
(inputs (list `(,gcc "lib") glibc)) (inputs (list `(,gcc "lib") glibc))
(home-page "https://gohugo.io/") (home-page "https://gohugo.io/")
(synopsis "Static site generator") (synopsis "Static site generator")
@ -221,7 +219,7 @@ monster-in-the-middle}.")
(define-public sing-box-bin (define-public sing-box-bin
(package (package
(name "sing-box-bin") (name "sing-box-bin")
(version "1.9.4") (version "1.10.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -229,7 +227,7 @@ monster-in-the-middle}.")
version "/sing-box-" version "-linux-amd64.tar.gz")) version "/sing-box-" version "-linux-amd64.tar.gz"))
(sha256 (sha256
(base32 (base32
"0v67g0zx7q6dld8hr714lmrh33idw23mj50a9szq2v835qrciymj")))) "0cadcqisnfzzf9154bj29ik1sh829rhgqqsjjxa31mgzfzn5ghcy"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (list #:install-plan #~'(("sing-box" "bin/")))) (arguments (list #:install-plan #~'(("sing-box" "bin/"))))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
@ -242,14 +240,14 @@ monster-in-the-middle}.")
(define-public tailscale-bin (define-public tailscale-bin
(package (package
(name "tailscale-bin") (name "tailscale-bin")
(version "1.74.1") (version "1.76.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://pkgs.tailscale.com" (uri (string-append "https://pkgs.tailscale.com"
"/stable/tailscale_" version "_amd64.tgz")) "/stable/tailscale_" version "_amd64.tgz"))
(sha256 (sha256
(base32 (base32
"12196z8dhdzxq8mjj0rlvhr6wchmi6z33ym36yqqrp4m52xjz7q5")))) "0dk0p4jc91p6c1jg944ljvanj85r3szjs6zl4xh71anq20vlj4bb"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan (list #:install-plan
@ -265,7 +263,7 @@ way to use WireGuard and 2FA.")
(define-public wakapi-bin (define-public wakapi-bin
(package (package
(name "wakapi-bin") (name "wakapi-bin")
(version "2.11.2") (version "2.12.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -273,7 +271,7 @@ way to use WireGuard and 2FA.")
version "/wakapi_linux_amd64.zip")) version "/wakapi_linux_amd64.zip"))
(sha256 (sha256
(base32 (base32
"065nkk0ixkkry6qldy7vai93pc7bi3inwgc5lc1mch3xkwwd8w0g")))) "0kfid6ii9y1sp2w1na55mybyjya1c2k0jgj9h4zf64kg7isv626w"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (list #:install-plan #~'(("wakapi" "bin/wakapi")))) (arguments (list #:install-plan #~'(("wakapi" "bin/wakapi"))))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
@ -288,7 +286,7 @@ coding statistics.")
(define-public wakatime-cli-bin (define-public wakatime-cli-bin
(package (package
(name "wakatime-cli-bin") (name "wakatime-cli-bin")
(version "1.98.3") (version "1.102.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/wakatime/wakatime-cli" (uri (string-append "https://github.com/wakatime/wakatime-cli"
@ -296,7 +294,7 @@ coding statistics.")
"/wakatime-cli-linux-amd64.zip")) "/wakatime-cli-linux-amd64.zip"))
(sha256 (sha256
(base32 (base32
"1n9axr1gsnc5vdlk7wb6l7fadgx7c2x13k8d0496vbibh8iqzln9")))) "0pdjvz3lk318ply7gz6bsvprav5b2nj5qd8rblvzc948snlmps1z"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan (list #:install-plan

View File

@ -11,8 +11,8 @@
(define-public dnsmasq-china-list (define-public dnsmasq-china-list
;; No version. ;; No version.
(let ((commit "a460349440fef37e7e72b22080859a38b5443863") (let ((commit "8c4858a70358734581c4803051ac8d06e70b9987")
(revision "16")) (revision "17"))
(package (package
(name "dnsmasq-china-list") (name "dnsmasq-china-list")
(version (git-version "0" revision commit)) (version (git-version "0" revision commit))
@ -24,7 +24,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1i32bgwf0lnz9369vwnjvl2ja5f5ip14bdaf7b28i3w05qhg7738")))) "1cy20fpz47d5s7ba4g8a826720sx0c0nq7jc9xc7l8vwl10nz5h5"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan (list #:install-plan

View File

@ -8,23 +8,3 @@
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
#:use-module (gnu packages python)) #:use-module (gnu packages python))
;; https://issues.guix.gnu.org/65525
;; Now in core-updates.
(define-public libinput-minimal-1.24.0
(package
(inherit libinput-minimal)
(name "libinput-minimal")
(version "1.24.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/libinput/libinput.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0xk0dljykjfmkks7kjxvbia6g3wadmy7lihfygm8icywkq8j0dw1"))))
(native-inputs
(modify-inputs (package-native-inputs libinput)
(append python-minimal-wrapper python-pytest)))))

View File

@ -14,7 +14,7 @@
(define-public cloudflared (define-public cloudflared
(package (package
(name "cloudflared") (name "cloudflared")
(version "2024.9.1") (version "2024.10.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -26,7 +26,7 @@
;; (snippet '(delete-file-recursively "vendor")) ;; (snippet '(delete-file-recursively "vendor"))
(sha256 (sha256
(base32 (base32
"0391nrvxi1hlqgd20p0jh0c8smgqfazviijs5ins8wsbszrbjmrw")))) "00ahppkm226vmlm0qwmaf03i5g1y6ycphl32wra6c2lb38jhrwsf"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
(list #:go go-1.23 (list #:go go-1.23

View File

@ -3,19 +3,22 @@
;; SPDX-License-Identifier: GPL-3.0-or-later ;; SPDX-License-Identifier: GPL-3.0-or-later
(define-module (rosenthal packages wm) (define-module (rosenthal packages wm)
#:use-module (srfi srfi-26)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system qt)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system qt)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages cmake)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cpp) #:use-module (gnu packages cpp)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
@ -36,49 +39,22 @@
#:use-module (gnu packages wm) #:use-module (gnu packages wm)
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (rosenthal packages freedesktop)) #:use-module (gnu packages xorg))
(define cairo-for-hyprland (define libinput-minimal-for-hyprland
(package (package
(inherit cairo) (inherit libinput-minimal)
(name "cairo") (name "libinput-minimal")
(version "1.18.0") (version "1.26.0")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://cairographics.org/releases/cairo-" (uri (git-reference
version ".tar.xz")) (url "https://gitlab.freedesktop.org/libinput/libinput.git")
(commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0r0by563s75xyzz0d0j1nmjqmdrk2x9agk7r57p3v8vqp4v0ffi4")))) "010bqvic471prhja1j5xqni9dhqc36ikqpxi8ih0fs13wph70p4s"))))))
(build-system meson-build-system)
(arguments
(list #:tests? #f
#:glib-or-gtk? #t
#:configure-flags
#~(list "-Dspectre=disabled")))
(outputs '("out"))))
(define hwdata-for-hyprland
(package
(inherit hwdata)
(arguments
(substitute-keyword-arguments (package-arguments hwdata)
((#:phases _) #~%standard-phases)))
(outputs '("out"))))
(define libdrm-for-hyprland
(package
(inherit libdrm)
(name "libdrm")
(version "2.4.120")
(source (origin
(method url-fetch)
(uri (string-append
"https://dri.freedesktop.org/libdrm/libdrm-"
version ".tar.xz"))
(sha256
(base32
"0yijzgg6rdsa68bz03sw0lcfa2nclv9m3as1cja50wkcyxim7x9v"))))))
(define udis86-for-hyprland (define udis86-for-hyprland
(let ((revision "186") (let ((revision "186")
@ -105,60 +81,124 @@ set architectures. It consists of a C library called @code{libudis86} and a
command line tool called @code{udcli} that incorporates the library.") command line tool called @code{udcli} that incorporates the library.")
(license license:bsd-2)))) (license license:bsd-2))))
(define wayland-protocols-for-hyprland (define wayland-for-hyprland
(package (package
(inherit wayland-protocols) (inherit wayland)
(name "wayland-protocols") (name "wayland")
(version "1.36") (version "1.23.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append "https://gitlab.freedesktop.org/" name
"https://gitlab.freedesktop.org/wayland/wayland-protocols" "/" name "/-/releases/" version "/downloads/"
"/-/releases/" version "/downloads/" name "-" version ".tar.xz"))
"wayland-protocols-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"14kyxywpfkgpjpkrybs28q1s2prnz30k1b4zap5a3ybrbvh4vzbi")))))) "1vg5h6d94hglh7724q6wx9dpg4y0afvxksankp1hwbcy76lb4kw6"))))))
(define wlroots-for-hyprland (define-public aquamarine
(let ((base wlroots) (package
(name "aquamarine")
(version "0.4.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/aquamarine")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0x1zz1ywchs0awkjkvdgskgqnp6pz5lqwmgr8g0zc0i7inhyg1p3"))))
(build-system cmake-build-system)
(arguments
(list #:cmake cmake-3.30
;; TODO
#:tests? #f))
(native-inputs
(list gcc-13 hyprwayland-scanner pkg-config))
(inputs
(list eudev
hwdata
hyprutils
libdisplay-info
libglvnd
libinput-minimal-for-hyprland
libseat
mesa
pixman
wayland
wayland-protocols-next))
(home-page "https://hyprland.org/")
(synopsis "Linux rendering backend library")
(description
"Aquamarine is a C++-only Linux rendering backend library. It provides
basic abstractions for an application to render on a Wayland session (in a
window) or a native DRM session. It is agnostic of the rendering
API (Vulkan / OpenGL).")
(license license:bsd-3)))
(define-public grimblast
(let ((version "0.1")
(revision "1") (revision "1")
(commit "5c1d51c5a2793480f5b6c4341ad0797052aec2ea")) (commit "9d67858b437d4a1299be496d371b66fc0d3e01f6"))
(package (package
(inherit base) (name "grimblast")
(name "wlroots") (version (git-version version revision commit))
(version (git-version "0.18.0-dev-hyprland" revision commit))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/hyprwm/wlroots-hyprland") (url "https://github.com/hyprwm/contrib")
(commit commit))) (commit commit)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0gy0g0kxb3q1wjqrypnvmrxcb4ld3advikchygpwpfp4s9v0mmvd")))) "1v0v5j7ingx80b5zpyz8ilfhz0kh9dcssnx6iwwl45zzgp915cpv"))))
(build-system gnu-build-system)
(arguments (arguments
(substitute-keyword-arguments (package-arguments wlroots) (list #:tests? #f ;No tests.
((#:phases phases #~%standard-phases) #:make-flags
#~(modify-phases #$phases #~(list (string-append "PREFIX=" #$output))
(add-after 'unpack 'adjust-patching-script #:phases
(lambda _ #~(modify-phases %standard-phases
(substitute* "patches/apply.sh" (delete 'configure)
(("apply \\|\\| check_applied \\|\\| fail") (add-after 'unpack 'chdir
"patch -Np1 < $PATCH")))))))) (lambda _
(propagated-inputs (chdir "grimblast")))
(modify-inputs (package-propagated-inputs wlroots) (add-after 'chdir 'fix-paths
(prepend libdrm-for-hyprland) (lambda* (#:key inputs #:allow-other-keys)
(replace "libinput-minimal" libinput-minimal-1.24.0) (substitute* "grimblast"
(replace "wayland-protocols" wayland-protocols-for-hyprland))) (((string-append "\\<(" (string-join
(native-inputs '("date"
(modify-inputs (package-native-inputs base) "grim"
(replace "hwdata" `(,hwdata-for-hyprland "out"))))))) "slurp"
"hyprctl"
"hyprpicker"
"wl-copy"
"jq"
"notify-send")
"|")
")\\>")
cmd)
(search-input-file
inputs (string-append "bin/" cmd)))))))))
(native-inputs (list scdoc))
(inputs
(list coreutils-minimal
grim
jq
libnotify
slurp
hyprland
hyprpicker
wl-clipboard))
(home-page "https://github.com/hyprwm/contrib")
(synopsis "Hyprland version of Grimshot")
(description "A Hyprland version of Grimshot.")
(license license:expat))))
(define-public hyprcursor (define-public hyprcursor
(package (package
(name "hyprcursor") (name "hyprcursor")
(version "0.1.7") (version "0.1.9")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -167,21 +207,90 @@ command line tool called @code{udcli} that incorporates the library.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0s5x3nk2f48xl2z797f8s5jddmhpkg0ndw0jl7mirv9l23xmajag")))) "0z3ar580n630145nq80qw0p8v0kai6knvhi6nr9z0y1jrb07b0ql"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (list #:tests? #f)) ;TODO: No themes packaged. (arguments (list #:tests? #f)) ;TODO: No themes currently packaged.
(inputs (list cairo-for-hyprland hyprlang librsvg libzip tomlplusplus))
(native-inputs (list gcc-13 pkg-config)) (native-inputs (list gcc-13 pkg-config))
(inputs (list cairo hyprlang (librsvg-for-system) libzip tomlplusplus))
(home-page "https://hyprland.org/") (home-page "https://hyprland.org/")
(synopsis "Hyprland cursor format, library and utilities") (synopsis "Hyprland cursor format, library and utilities")
(description (description
"This package provides Hyprland cursor format, library and utilities.") "This package provides Hyprland cursor format, library and utilities.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public hyprland
(package
(name "hyprland")
(version "0.44.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/hyprwm/Hyprland"
"/releases/download/v" version
"/source-v" version ".tar.gz"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove bundled sources and hyprpm utility.
(substitute* "CMakeLists.txt"
(("^add_subdirectory\\(hyprpm\\).*") ""))
(for-each delete-file-recursively
'("hyprpm"
"subprojects"))))
(sha256
(base32
"0qzwdlj0bwj267285l3gjklhafn3bln90z985yws4j5cbp7bj0d9"))))
(build-system cmake-build-system)
(arguments
(list #:cmake cmake-3.30
#:tests? #f ;No tests.
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/xwayland/Server.cpp"
(("Xwayland( \\{\\})" _ suffix)
(string-append
(search-input-file inputs "bin/Xwayland")
suffix)))
(substitute* (find-files "src" "\\.cpp$")
(("/usr/local(/bin/Hyprland)" _ path)
(string-append #$output path))
(("/usr") #$output)
(("\\<(addr2line|cat|lspci|nm)\\>" cmd)
(search-input-file
inputs (string-append "bin/" cmd)))))))))
(native-inputs (list gcc-14 hyprwayland-scanner ld-wrapper pkg-config))
(inputs
(list aquamarine
binutils
cairo
hyprcursor
hyprland-protocols
hyprlang
hyprutils
libinput-minimal-for-hyprland
libxcursor
libxkbcommon
mesa
pango
pciutils
udis86-for-hyprland
wayland-for-hyprland
wayland-protocols-next
xcb-util-errors
xcb-util-wm
xorg-server-xwayland))
(home-page "https://hyprland.org/")
(synopsis "Dynamic tiling Wayland compositor")
(description
"Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on
its looks.")
(license license:bsd-3)))
(define-public hyprland-protocols (define-public hyprland-protocols
(package (package
(name "hyprland-protocols") (name "hyprland-protocols")
(version "0.2") (version "0.4.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -190,7 +299,7 @@ command line tool called @code{udcli} that incorporates the library.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1drjznj7fn6m5m6skhzh0p031cb5x0bb4i56jxnxwpwaa71g1z20")))) "0x86w7z3415qvixfhk9a8v5fnbnxdydzx366qz0mpmfg5h86qyha"))))
(build-system meson-build-system) (build-system meson-build-system)
(home-page "https://hyprland.org") (home-page "https://hyprland.org")
(synopsis "Wayland protocol extensions for Hyprland") (synopsis "Wayland protocol extensions for Hyprland")
@ -202,83 +311,10 @@ functionality. Since @code{wlr-protocols} is closed for new submissions, and
protocols used by Hyprland to bridge the aforementioned gap.") protocols used by Hyprland to bridge the aforementioned gap.")
(license license:bsd-3))) (license license:bsd-3)))
(define hyprland-unbundle-wlroots-patch
(origin
(method url-fetch)
(uri (string-append "https://github.com/hyprwm/Hyprland" "/raw/"
"cba1ade848feac44b2eda677503900639581c3f4"
"/nix/patches/meson-build.patch"))
(sha256
(base32 "0fwvsshz3k6061p3hdl175pydmj80vnw5rm4xfcn64w1ssfq7liw"))))
(define-public hyprland
(package
(name "hyprland")
(version "0.40.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/hyprwm/Hyprland"
"/releases/download/v" version
"/source-v" version ".tar.gz"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove bundled sources and hyprpm utility.
(substitute* "meson.build"
((".*hyprpm/src.*") ""))
(for-each delete-file-recursively
'("hyprpm"
"subprojects"))))
(patches (list hyprland-unbundle-wlroots-patch))
(sha256
(base32
"0f4hs8qzmfmg4lr491b2inanb02xn4xa0gwb8a0ks3m64iwzx589"))))
(build-system meson-build-system)
(arguments
(list #:build-type "release"
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (find-files "src" "\\.cpp$")
(("/usr/local(/bin/Hyprland)" _ path)
(string-append #$output path))
(("/usr") #$output)
(("(execAndGet\\(\")\\<(cat|fc-list|lspci)\\>"
_ pre cmd)
(string-append
pre (search-input-file
inputs (string-append "bin/" cmd))))
(("\\<cc\\>") (search-input-file inputs "bin/gcc"))
;; NOTE: Add binutils to inputs will override ld-wrapper.
(("(execAndGet\\(\\(\")\\<nm\\>" _ pre)
(string-append pre #$binutils "/bin/nm"))
(("\\<(addr2line|objcopy)\\>" _ cmd)
(string-append #$binutils "/bin/" cmd))))))))
(native-inputs (list gcc-13 hyprwayland-scanner jq pkg-config))
(inputs
(list cairo-for-hyprland
gcc-13
hyprcursor
hyprland-protocols
hyprlang
pango
pciutils
udis86-for-hyprland
wlroots-for-hyprland))
(home-page "https://hyprland.org")
(synopsis "Dynamic tiling Wayland compositor based on wlroots")
(description
"Hyprland is a dynamic tiling Wayland compositor based on @code{wlroots}
that doesn't sacrifice on its looks. It supports multiple layouts, fancy
effects, has a very flexible IPC model allowing for a lot of customization, and
more.")
(license license:bsd-3)))
(define-public hyprlang (define-public hyprlang
(package (package
(name "hyprlang") (name "hyprlang")
(version "0.5.0") (version "0.5.3")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -287,9 +323,10 @@ more.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0f8mahg6d6wylybvh6hgayls57miwwv4w69fbaskd8d7dkg2h7kd")))) "0yvfrz3hdyxzhngzhr0bgc5279ra5fv01hbfi6pdj84pz0lpaw02"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (list gcc-13)) (native-inputs (list gcc-13 pkg-config))
(inputs (list hyprutils))
(home-page "https://hyprland.org/hyprlang/") (home-page "https://hyprland.org/hyprlang/")
(synopsis "Official implementation library for hypr config language") (synopsis "Official implementation library for hypr config language")
(description (description
@ -297,10 +334,73 @@ more.")
language used in @code{hyprland}.") language used in @code{hyprland}.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public hyprpicker
(package
(name "hyprpicker")
(version "0.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/hyprpicker")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"11r06c62dqj81r27qhf36f3smnjyk3vz8naa655m8khv4qqvmvc2"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f ;No tests.
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/clipboard/Clipboard.cpp"
(("wl-copy" cmd)
(search-input-file
inputs (string-append "bin/" cmd)))))))))
(native-inputs (list gcc-13 hyprwayland-scanner pkg-config))
(inputs
(list cairo
hyprutils
libjpeg-turbo
libxkbcommon
pango
wayland
wayland-protocols-next
wl-clipboard))
(home-page "https://hyprland.org/")
(synopsis "@code{wlroots}-compatible Wayland color picker")
(description
"This package provides a @code{wlroots}-compatible Wayland color picker.")
(license license:bsd-3)))
(define-public hyprutils
(package
(name "hyprutils")
(version "0.2.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/hyprutils")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"01dh24rf62gb6xm32f7mfv6wx0dxprr1q9y73hvv7xanrjyia2zn"))))
(build-system cmake-build-system)
(native-inputs (list gcc-13 pkg-config))
(inputs (list pixman))
(home-page "https://hyprland.org/")
(synopsis "C++ library for utilities used across Hyprland ecosystem")
(description
"This package provides a C++ library for utilities used across Hyprland
ecosystem.")
(license license:bsd-3)))
(define-public hyprwayland-scanner (define-public hyprwayland-scanner
(package (package
(name "hyprwayland-scanner") (name "hyprwayland-scanner")
(version "0.3.4") (version "0.4.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -309,7 +409,7 @@ language used in @code{hyprland}.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0mi0kawfw311ybiy4xipy1n20nvjphkfqzgnd8jxxbkhjkwn0jhg")))) "0r7ay4zjkfyr0xd73wz99qhnqjq7nma98gm51wm9lmai4igw90qw"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (list #:tests? #f)) ;No tests. (arguments (list #:tests? #f)) ;No tests.
(inputs (list pugixml)) (inputs (list pugixml))
@ -321,51 +421,10 @@ language used in @code{hyprland}.")
for C++.") for C++.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public grimblast
(package
(name "grimblast")
(version "0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/contrib")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ld0sj7ahf9jf8cqzbqkhj3m2w60027ixic24ih26nwy90b5qjwx"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;no tests
#:make-flags
#~(list (string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'chdir
(lambda _
(chdir "grimblast")))
(add-after 'install 'wrap
(lambda* (#:key inputs #:allow-other-keys)
(let ((grimblast (string-append #$output "/bin/grimblast")))
(wrap-script grimblast
`("PATH" suffix
,(map (lambda (program)
(dirname (search-input-file
inputs (string-append "/bin/" program))))
'("grim" "slurp" "hyprctl" "wl-copy" "jq"
"notify-send" "date"))))))))))
(native-inputs (list scdoc))
(inputs (list grim guile-3.0 jq libnotify slurp hyprland wl-clipboard))
(home-page "https://github.com/hyprwm/contrib")
(synopsis "Hyprland version of Grimshot")
(description "A Hyprland version of Grimshot.")
(license license:expat)))
(define-public xdg-desktop-portal-hyprland (define-public xdg-desktop-portal-hyprland
(package (package
(name "xdg-desktop-portal-hyprland") (name "xdg-desktop-portal-hyprland")
(version "1.3.1") (version "1.3.6")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -374,7 +433,7 @@ for C++.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0fdbzxanmmzrvb9wfzg1pdsnlg7dl6v5k8bl44w10n48s7bbbzn0")))) "17ba9jkccyp8gv79ds70khgm5wm6x8zs5m9nkilq4n2j7fsa8cfl"))))
(build-system qt-build-system) (build-system qt-build-system)
(arguments (arguments
(list #:tests? #f ;No tests (list #:tests? #f ;No tests
@ -386,22 +445,25 @@ for C++.")
(substitute* (find-files "." "\\.cp?*$") (substitute* (find-files "." "\\.cp?*$")
(("/bin/sh") "sh") (("/bin/sh") "sh")
(("\\<(sh|grim|hyprctl|slurp)\\>" _ cmd) (("\\<(sh|grim|hyprctl|slurp)\\>" _ cmd)
(search-input-file inputs (string-append "/bin/" cmd))) (search-input-file inputs (string-append "bin/" cmd))))
(substitute* "src/shared/ScreencopyShared.cpp"
(("\\<(hyprland-share-picker)\\>" _ cmd) (("\\<(hyprland-share-picker)\\>" _ cmd)
(string-append #$output "/bin/" cmd)))))))) (string-append #$output "/bin/" cmd))))))))
(native-inputs (native-inputs
(list gcc-13 pkg-config wayland)) (list gcc-13 hyprwayland-scanner pkg-config))
(inputs (inputs
(list bash-minimal (list bash-minimal
grim grim
hyprland hyprland
hyprland-protocols hyprland-protocols
hyprlang hyprlang
hyprutils
mesa mesa
pipewire pipewire
qtwayland qtwayland
sdbus-c++ sdbus-c++
slurp slurp
wayland
wayland-protocols)) wayland-protocols))
(home-page "https://github.com/hyprwm/xdg-desktop-portal-hyprland") (home-page "https://github.com/hyprwm/xdg-desktop-portal-hyprland")
(synopsis "XDG Desktop Portal backend for Hyprland") (synopsis "XDG Desktop Portal backend for Hyprland")

View File

@ -49,7 +49,7 @@
(define-configuration clash-configuration (define-configuration clash-configuration
(clash (clash
(file-like clash-bin) (file-like mihomo-bin)
"The clash package.") "The clash package.")
(log-file (log-file
@ -70,23 +70,15 @@
(no-serialization)) (no-serialization))
(define %clash-accounts (define %clash-accounts
(list (user-group (name "clash") (system? #t)) (list (user-group (name "clash") (system? #t))))
(user-account
(name "clash")
(group "clash")
(system? #t)
(home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin")))))
(define clash-activation (define clash-activation
(match-record-lambda <clash-configuration> (match-record-lambda <clash-configuration>
(clash log-file data-directory config) (data-directory config)
#~(begin #~(begin
(use-modules (guix build utils)) (use-modules (guix build utils))
(let ((config-dest (string-append #$data-directory "/config.yaml")) (let ((config-dest (string-append #$data-directory "/config.yaml")))
(user (getpwnam "clash")))
(mkdir-p #$data-directory) (mkdir-p #$data-directory)
(chown #$data-directory (passwd:uid user) (passwd:gid user))
(if (file-exists? config-dest) (if (file-exists? config-dest)
(delete-file config-dest)) (delete-file config-dest))
(symlink #$config config-dest))))) (symlink #$config config-dest)))))
@ -97,7 +89,7 @@
(define clash-shepherd-service (define clash-shepherd-service
(match-record-lambda <clash-configuration> (match-record-lambda <clash-configuration>
(clash log-file data-directory config shepherd-provision) (clash log-file data-directory shepherd-provision)
(list (shepherd-service (list (shepherd-service
(documentation "Run clash.") (documentation "Run clash.")
(provision shepherd-provision) (provision shepherd-provision)
@ -111,7 +103,6 @@
mihomo-cmd mihomo-cmd
clash-cmd)) clash-cmd))
"-d" #$data-directory) "-d" #$data-directory)
#:user "clash"
#:group "clash" #:group "clash"
#:log-file #$log-file)) #:log-file #$log-file))
(stop #~(make-kill-destructor)) (stop #~(make-kill-destructor))

View File

@ -383,7 +383,7 @@ list, power save will be disabled."))
"Path to log file.") "Path to log file.")
(socket (socket
(string "/run/tailscale/tailscaled.sock") (string "/var/run/tailscale/tailscaled.sock")
"Path of the service UNIX socket.") "Path of the service UNIX socket.")
(state-directory (state-directory

View File

@ -42,8 +42,11 @@
(log-file (log-file
(string "/var/log/jellyfin.log") (string "/var/log/jellyfin.log")
"Path to log file.") "Path to log file.")
(auto-start?
(boolean #t)
"Whether to start automatically.")
(extra-options (extra-options
(list-of-strings '()) (list '())
"List of extra options.") "List of extra options.")
(no-serialization)) (no-serialization))
@ -74,7 +77,8 @@
(define jellyfin-oci-containers (define jellyfin-oci-containers
(match-record-lambda <jellyfin-configuration> (match-record-lambda <jellyfin-configuration>
(cache-directory config-directory proxy-url log-file extra-options) (cache-directory config-directory
proxy-url log-file auto-start? extra-options)
(list (oci-container-configuration (list (oci-container-configuration
(user "jellyfin") (user "jellyfin")
(group "docker") (group "docker")
@ -86,6 +90,7 @@
(image "jellyfin/jellyfin:latest") (image "jellyfin/jellyfin:latest")
(provision "jellyfin") (provision "jellyfin")
(log-file log-file) (log-file log-file)
(auto-start? auto-start?)
(respawn? #t) (respawn? #t)
(network "host") (network "host")
(volumes (volumes