Compare commits

..

17 Commits

Author SHA1 Message Date
Hilton Chain 7d9214d18e
rosenthal: hyprland: Update to 0.44.1. 3 weeks ago
Hilton Chain 38e2be2728
rosenthal: wlroots-for-hyprland: Remove non-existent reference. 3 weeks ago
Hilton Chain 97b9e2436a
rosenthal: Remove libinput-minimal-1.24.0. [upstreamed] 3 weeks ago
Hilton Chain e52520cbaa
rosenthal: dnsmasq-china-list: Update to 0-17.8c4858a. 3 weeks ago
Hilton Chain 2eb66f8bad
rosenthal: wakatime-cli-bin: Update to 1.102.4. 3 weeks ago
Hilton Chain 2888e95b2a
rosenthal: wakapi-bin: Update to 2.12.1. 3 weeks ago
Hilton Chain afe3c41f96
rosenthal: sing-box-bin: Update to 1.10.1. 3 weeks ago
Hilton Chain 2cbf87a1b5
rosenthal: hugo-bin: Update to 0.136.5. 3 weeks ago
Hilton Chain 7e970f49e4
rosenthal: cloudflared: Update to 2024.10.1. 3 weeks ago
Hilton Chain ad9f05d5da
rosenthal: tailscale-bin: Update to 1.76.1. 3 weeks ago
Hilton Chain 966d4ac483
rosenthal: cloudflare-warp-bin: Update to 2024.9.346.0. 3 weeks ago
Hilton Chain fb0a73108e
services: clash: Run as root. 3 weeks ago
Hilton Chain bcf1b0c464
services: jellyfin: Add auto-start? option. 3 weeks ago
Hilton Chain b5f9128798
services: tailscale: Change back socket path. 3 weeks ago
Hilton Chain e4b84dfa2c
services: jellyfin: Allow gexps in extra-options. 1 month ago
Hilton Chain 1014d146c0
rosenthal: hugo-bin: Update to 0.135.0. 1 month ago
Hilton Chain 64f925e075
rosenthal: cloudflare-warp-bin: Use patchelf 0.16. 1 month ago
  1. 38
      rosenthal/packages/binaries.scm
  2. 6
      rosenthal/packages/dns.scm
  3. 20
      rosenthal/packages/freedesktop.scm
  4. 4
      rosenthal/packages/networking.scm
  5. 442
      rosenthal/packages/wm.scm
  6. 19
      rosenthal/services/child-error.scm
  7. 2
      rosenthal/services/networking.scm
  8. 9
      rosenthal/services/web.scm

@ -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

@ -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

@ -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)))))

@ -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

@ -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
(package
(inherit cairo)
(name "cairo")
(version "1.18.0")
(source (origin
(method url-fetch)
(uri (string-append "https://cairographics.org/releases/cairo-"
version ".tar.xz"))
(sha256
(base32
"0r0by563s75xyzz0d0j1nmjqmdrk2x9agk7r57p3v8vqp4v0ffi4"))))
(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 (define libinput-minimal-for-hyprland
(package (package
(inherit libdrm) (inherit libinput-minimal)
(name "libdrm") (name "libinput-minimal")
(version "2.4.120") (version "1.26.0")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append (uri (git-reference
"https://dri.freedesktop.org/libdrm/libdrm-" (url "https://gitlab.freedesktop.org/libinput/libinput.git")
version ".tar.xz")) (commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0yijzgg6rdsa68bz03sw0lcfa2nclv9m3as1cja50wkcyxim7x9v")))))) "010bqvic471prhja1j5xqni9dhqc36ikqpxi8ih0fs13wph70p4s"))))))
(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,54 +207,21 @@ 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-protocols
(package
(name "hyprland-protocols")
(version "0.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/hyprland-protocols")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1drjznj7fn6m5m6skhzh0p031cb5x0bb4i56jxnxwpwaa71g1z20"))))
(build-system meson-build-system)
(home-page "https://hyprland.org")
(synopsis "Wayland protocol extensions for Hyprland")
(description
"This package provides Wayland protocol extensions for Hyprland and it
exists in an effort to bridge the gap between Hyprland and KDE/Gnome's
functionality. Since @code{wlr-protocols} is closed for new submissions, and
@code{wayland-protocols} is very slow with changes, this package will hold
protocols used by Hyprland to bridge the aforementioned gap.")
(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 (define-public hyprland
(package (package
(name "hyprland") (name "hyprland")
(version "0.40.0") (version "0.44.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/hyprwm/Hyprland" (uri (string-append "https://github.com/hyprwm/Hyprland"
@ -224,61 +231,90 @@ protocols used by Hyprland to bridge the aforementioned gap.")
(snippet (snippet
'(begin '(begin
;; Remove bundled sources and hyprpm utility. ;; Remove bundled sources and hyprpm utility.
(substitute* "meson.build" (substitute* "CMakeLists.txt"
((".*hyprpm/src.*") "")) (("^add_subdirectory\\(hyprpm\\).*") ""))
(for-each delete-file-recursively (for-each delete-file-recursively
'("hyprpm" '("hyprpm"
"subprojects")))) "subprojects"))))
(patches (list hyprland-unbundle-wlroots-patch))
(sha256 (sha256
(base32 (base32
"0f4hs8qzmfmg4lr491b2inanb02xn4xa0gwb8a0ks3m64iwzx589")))) "0qzwdlj0bwj267285l3gjklhafn3bln90z985yws4j5cbp7bj0d9"))))
(build-system meson-build-system) (build-system cmake-build-system)
(arguments (arguments
(list #:build-type "release" (list #:cmake cmake-3.30
#:tests? #f ;No tests.
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'fix-path (add-after 'unpack 'fix-path
(lambda* (#:key inputs #:allow-other-keys) (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$") (substitute* (find-files "src" "\\.cpp$")
(("/usr/local(/bin/Hyprland)" _ path) (("/usr/local(/bin/Hyprland)" _ path)
(string-append #$output path)) (string-append #$output path))
(("/usr") #$output) (("/usr") #$output)
(("(execAndGet\\(\")\\<(cat|fc-list|lspci)\\>" (("\\<(addr2line|cat|lspci|nm)\\>" cmd)
_ pre cmd) (search-input-file
(string-append inputs (string-append "bin/" cmd)))))))))
pre (search-input-file (native-inputs (list gcc-14 hyprwayland-scanner ld-wrapper pkg-config))
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 (inputs
(list cairo-for-hyprland (list aquamarine
gcc-13 binutils
cairo
hyprcursor hyprcursor
hyprland-protocols hyprland-protocols
hyprlang hyprlang
hyprutils
libinput-minimal-for-hyprland
libxcursor
libxkbcommon
mesa
pango pango
pciutils pciutils
udis86-for-hyprland udis86-for-hyprland
wlroots-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
(package
(name "hyprland-protocols")
(version "0.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hyprwm/hyprland-protocols")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0x86w7z3415qvixfhk9a8v5fnbnxdydzx366qz0mpmfg5h86qyha"))))
(build-system meson-build-system)
(home-page "https://hyprland.org") (home-page "https://hyprland.org")
(synopsis "Dynamic tiling Wayland compositor based on wlroots") (synopsis "Wayland protocol extensions for Hyprland")
(description (description
"Hyprland is a dynamic tiling Wayland compositor based on @code{wlroots} "This package provides Wayland protocol extensions for Hyprland and it
that doesn't sacrifice on its looks. It supports multiple layouts, fancy exists in an effort to bridge the gap between Hyprland and KDE/Gnome's
effects, has a very flexible IPC model allowing for a lot of customization, and functionality. Since @code{wlr-protocols} is closed for new submissions, and
more.") @code{wayland-protocols} is very slow with changes, this package will hold
protocols used by Hyprland to bridge the aforementioned gap.")
(license license:bsd-3))) (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,75 +334,97 @@ more.")
language used in @code{hyprland}.") language used in @code{hyprland}.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public hyprwayland-scanner (define-public hyprpicker
(package (package
(name "hyprwayland-scanner") (name "hyprpicker")
(version "0.3.4") (version "0.4.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/hyprwm/hyprwayland-scanner") (url "https://github.com/hyprwm/hyprpicker")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0mi0kawfw311ybiy4xipy1n20nvjphkfqzgnd8jxxbkhjkwn0jhg")))) "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) (build-system cmake-build-system)
(arguments (list #:tests? #f)) ;No tests.
(inputs (list pugixml))
(native-inputs (list gcc-13 pkg-config)) (native-inputs (list gcc-13 pkg-config))
(home-page "https://github.com/hyprwm/hyprwayland-scanner") (inputs (list pixman))
(synopsis "Hyprland implementation of wayland-scanner, in and for C++") (home-page "https://hyprland.org/")
(synopsis "C++ library for utilities used across Hyprland ecosystem")
(description (description
"This package provides a Hyprland implementation of wayland-scanner, in and "This package provides a C++ library for utilities used across Hyprland
for C++.") ecosystem.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public grimblast (define-public hyprwayland-scanner
(package (package
(name "grimblast") (name "hyprwayland-scanner")
(version "0.1") (version "0.4.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/hyprwm/contrib") (url "https://github.com/hyprwm/hyprwayland-scanner")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0ld0sj7ahf9jf8cqzbqkhj3m2w60027ixic24ih26nwy90b5qjwx")))) "0r7ay4zjkfyr0xd73wz99qhnqjq7nma98gm51wm9lmai4igw90qw"))))
(build-system gnu-build-system) (build-system cmake-build-system)
(arguments (arguments (list #:tests? #f)) ;No tests.
(list #:tests? #f ;no tests (inputs (list pugixml))
#:make-flags (native-inputs (list gcc-13 pkg-config))
#~(list (string-append "PREFIX=" #$output)) (home-page "https://github.com/hyprwm/hyprwayland-scanner")
#:phases (synopsis "Hyprland implementation of wayland-scanner, in and for C++")
#~(modify-phases %standard-phases (description
(delete 'configure) "This package provides a Hyprland implementation of wayland-scanner, in and
(add-after 'unpack 'chdir for C++.")
(lambda _ (license license:bsd-3)))
(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")

@ -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))

@ -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

@ -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

Loading…
Cancel
Save