Compare commits

..

No commits in common. '7d9214d18ea62b4a5354fa047a9c924a86a60f09' and '1deb97ada4d7d8c2d501738fcc1532a605de51a7' have entirely different histories.

  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. 440
      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.9.346.0") (version "2024.6.497")
(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 "_amd64.deb")) "cloudflare-warp_" version "-1_amd64.deb"))
(sha256 (sha256
(base32 (base32
"1jrvhb4ka6j0fn9ymnpz1j4anljhl3b15h54np40x0p2d5c28czi")))) "1ry62ck61gn4bxnkih3775pdlndp2ldxwifbjkxbj3wfd4f67xiv"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan (list #:install-plan
@ -101,9 +101,11 @@ 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* (#:key source #:allow-other-keys) (lambda _
(invoke "ar" "-x" source) (let ((deb-pack (format #f "cloudflare-warp_~a-1_amd64.deb"
(invoke "tar" "-xf" "data.tar.gz"))) #$(package-version this-package))))
(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")
@ -133,7 +135,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-0.16)) (native-inputs (list patchelf))
(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")
@ -150,7 +152,7 @@ different needs.")
(define-public hugo-bin (define-public hugo-bin
(package (package
(name "hugo-bin") (name "hugo-bin")
(version "0.136.5") (version "0.133.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -158,7 +160,7 @@ different needs.")
version "/hugo_extended_" version "_linux-amd64.tar.gz")) version "/hugo_extended_" version "_linux-amd64.tar.gz"))
(sha256 (sha256
(base32 (base32
"1zvhpyqad402ifa4gyin6apxmyhxg5ww8d7ng7h7q1qbpcd7rgmp")))) "0vlfvh81yq6ccp3dx95q4d8ha2ir54a89jl7m63l1rwsvvi3099p"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan #~'(("hugo" "bin/")) (list #:install-plan #~'(("hugo" "bin/"))
@ -178,7 +180,7 @@ different needs.")
"/lib") "/lib")
hugo))))))) hugo)))))))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(native-inputs (list patchelf-0.16)) (native-inputs (list patchelf))
(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")
@ -219,7 +221,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.10.1") (version "1.9.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -227,7 +229,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
"0cadcqisnfzzf9154bj29ik1sh829rhgqqsjjxa31mgzfzn5ghcy")))) "0v67g0zx7q6dld8hr714lmrh33idw23mj50a9szq2v835qrciymj"))))
(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"))
@ -240,14 +242,14 @@ monster-in-the-middle}.")
(define-public tailscale-bin (define-public tailscale-bin
(package (package
(name "tailscale-bin") (name "tailscale-bin")
(version "1.76.1") (version "1.74.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
"0dk0p4jc91p6c1jg944ljvanj85r3szjs6zl4xh71anq20vlj4bb")))) "12196z8dhdzxq8mjj0rlvhr6wchmi6z33ym36yqqrp4m52xjz7q5"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan (list #:install-plan
@ -263,7 +265,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.12.1") (version "2.11.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -271,7 +273,7 @@ way to use WireGuard and 2FA.")
version "/wakapi_linux_amd64.zip")) version "/wakapi_linux_amd64.zip"))
(sha256 (sha256
(base32 (base32
"0kfid6ii9y1sp2w1na55mybyjya1c2k0jgj9h4zf64kg7isv626w")))) "065nkk0ixkkry6qldy7vai93pc7bi3inwgc5lc1mch3xkwwd8w0g"))))
(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"))
@ -286,7 +288,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.102.4") (version "1.98.3")
(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"
@ -294,7 +296,7 @@ coding statistics.")
"/wakatime-cli-linux-amd64.zip")) "/wakatime-cli-linux-amd64.zip"))
(sha256 (sha256
(base32 (base32
"0pdjvz3lk318ply7gz6bsvprav5b2nj5qd8rblvzc948snlmps1z")))) "1n9axr1gsnc5vdlk7wb6l7fadgx7c2x13k8d0496vbibh8iqzln9"))))
(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 "8c4858a70358734581c4803051ac8d06e70b9987") (let ((commit "a460349440fef37e7e72b22080859a38b5443863")
(revision "17")) (revision "16"))
(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
"1cy20fpz47d5s7ba4g8a826720sx0c0nq7jc9xc7l8vwl10nz5h5")))) "1i32bgwf0lnz9369vwnjvl2ja5f5ip14bdaf7b28i3w05qhg7738"))))
(build-system copy-build-system) (build-system copy-build-system)
(arguments (arguments
(list #:install-plan (list #:install-plan

@ -8,3 +8,23 @@
#: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.10.1") (version "2024.9.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
"00ahppkm226vmlm0qwmaf03i5g1y6ycphl32wra6c2lb38jhrwsf")))) "0391nrvxi1hlqgd20p0jh0c8smgqfazviijs5ins8wsbszrbjmrw"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
(list #:go go-1.23 (list #:go go-1.23

@ -3,22 +3,19 @@
;; 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 download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system qt) #:use-module (guix build-system qt)
#:use-module (gnu packages admin) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
#: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)
@ -39,22 +36,49 @@
#: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 (gnu packages xorg)) #:use-module (rosenthal packages freedesktop))
(define libinput-minimal-for-hyprland (define cairo-for-hyprland
(package (package
(inherit libinput-minimal) (inherit cairo)
(name "libinput-minimal") (name "cairo")
(version "1.26.0") (version "1.18.0")
(source (origin (source (origin
(method git-fetch) (method url-fetch)
(uri (git-reference (uri (string-append "https://cairographics.org/releases/cairo-"
(url "https://gitlab.freedesktop.org/libinput/libinput.git") version ".tar.xz"))
(commit version))) (sha256
(file-name (git-file-name name version)) (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
(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 (sha256
(base32 (base32
"010bqvic471prhja1j5xqni9dhqc36ikqpxi8ih0fs13wph70p4s")))))) "0yijzgg6rdsa68bz03sw0lcfa2nclv9m3as1cja50wkcyxim7x9v"))))))
(define udis86-for-hyprland (define udis86-for-hyprland
(let ((revision "186") (let ((revision "186")
@ -81,124 +105,60 @@ 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-for-hyprland (define wayland-protocols-for-hyprland
(package (package
(inherit wayland) (inherit wayland-protocols)
(name "wayland") (name "wayland-protocols")
(version "1.23.1") (version "1.36")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://gitlab.freedesktop.org/" name (uri (string-append
"/" name "/-/releases/" version "/downloads/" "https://gitlab.freedesktop.org/wayland/wayland-protocols"
name "-" version ".tar.xz")) "/-/releases/" version "/downloads/"
"wayland-protocols-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1vg5h6d94hglh7724q6wx9dpg4y0afvxksankp1hwbcy76lb4kw6")))))) "14kyxywpfkgpjpkrybs28q1s2prnz30k1b4zap5a3ybrbvh4vzbi"))))))
(define-public aquamarine
(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 (define wlroots-for-hyprland
(let ((version "0.1") (let ((base wlroots)
(revision "1") (revision "1")
(commit "9d67858b437d4a1299be496d371b66fc0d3e01f6")) (commit "5c1d51c5a2793480f5b6c4341ad0797052aec2ea"))
(package (package
(name "grimblast") (inherit base)
(version (git-version version revision commit)) (name "wlroots")
(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/contrib") (url "https://github.com/hyprwm/wlroots-hyprland")
(commit commit))) (commit commit)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1v0v5j7ingx80b5zpyz8ilfhz0kh9dcssnx6iwwl45zzgp915cpv")))) "0gy0g0kxb3q1wjqrypnvmrxcb4ld3advikchygpwpfp4s9v0mmvd"))))
(build-system gnu-build-system)
(arguments (arguments
(list #:tests? #f ;No tests. (substitute-keyword-arguments (package-arguments wlroots)
#:make-flags ((#:phases phases #~%standard-phases)
#~(list (string-append "PREFIX=" #$output)) #~(modify-phases #$phases
#:phases (add-after 'unpack 'adjust-patching-script
#~(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'chdir
(lambda _ (lambda _
(chdir "grimblast"))) (substitute* "patches/apply.sh"
(add-after 'chdir 'fix-paths (("apply \\|\\| check_applied \\|\\| fail")
(lambda* (#:key inputs #:allow-other-keys) "patch -Np1 < $PATCH"))))))))
(substitute* "grimblast" (propagated-inputs
(((string-append "\\<(" (string-join (modify-inputs (package-propagated-inputs wlroots)
'("date" (prepend libdrm-for-hyprland)
"grim" (replace "libinput-minimal" libinput-minimal-1.24.0)
"slurp" (replace "wayland-protocols" wayland-protocols-for-hyprland)))
"hyprctl" (native-inputs
"hyprpicker" (modify-inputs (package-native-inputs base)
"wl-copy" (replace "hwdata" `(,hwdata-for-hyprland "out")))))))
"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.9") (version "0.1.7")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -207,21 +167,54 @@ API (Vulkan / OpenGL).")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0z3ar580n630145nq80qw0p8v0kai6knvhi6nr9z0y1jrb07b0ql")))) "0s5x3nk2f48xl2z797f8s5jddmhpkg0ndw0jl7mirv9l23xmajag"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (list #:tests? #f)) ;TODO: No themes currently packaged. (arguments (list #:tests? #f)) ;TODO: No themes 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.44.1") (version "0.40.0")
(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"
@ -231,90 +224,61 @@ API (Vulkan / OpenGL).")
(snippet (snippet
'(begin '(begin
;; Remove bundled sources and hyprpm utility. ;; Remove bundled sources and hyprpm utility.
(substitute* "CMakeLists.txt" (substitute* "meson.build"
(("^add_subdirectory\\(hyprpm\\).*") "")) ((".*hyprpm/src.*") ""))
(for-each delete-file-recursively (for-each delete-file-recursively
'("hyprpm" '("hyprpm"
"subprojects")))) "subprojects"))))
(patches (list hyprland-unbundle-wlroots-patch))
(sha256 (sha256
(base32 (base32
"0qzwdlj0bwj267285l3gjklhafn3bln90z985yws4j5cbp7bj0d9")))) "0f4hs8qzmfmg4lr491b2inanb02xn4xa0gwb8a0ks3m64iwzx589"))))
(build-system cmake-build-system) (build-system meson-build-system)
(arguments (arguments
(list #:cmake cmake-3.30 (list #:build-type "release"
#: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)
(("\\<(addr2line|cat|lspci|nm)\\>" cmd) (("(execAndGet\\(\")\\<(cat|fc-list|lspci)\\>"
(search-input-file _ pre cmd)
inputs (string-append "bin/" cmd))))))))) (string-append
(native-inputs (list gcc-14 hyprwayland-scanner ld-wrapper pkg-config)) 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 (inputs
(list aquamarine (list cairo-for-hyprland
binutils gcc-13
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
wayland-for-hyprland wlroots-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 "Wayland protocol extensions for Hyprland") (synopsis "Dynamic tiling Wayland compositor based on wlroots")
(description (description
"This package provides Wayland protocol extensions for Hyprland and it "Hyprland is a dynamic tiling Wayland compositor based on @code{wlroots}
exists in an effort to bridge the gap between Hyprland and KDE/Gnome's that doesn't sacrifice on its looks. It supports multiple layouts, fancy
functionality. Since @code{wlr-protocols} is closed for new submissions, and effects, has a very flexible IPC model allowing for a lot of customization, and
@code{wayland-protocols} is very slow with changes, this package will hold more.")
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.3") (version "0.5.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -323,10 +287,9 @@ protocols used by Hyprland to bridge the aforementioned gap.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0yvfrz3hdyxzhngzhr0bgc5279ra5fv01hbfi6pdj84pz0lpaw02")))) "0f8mahg6d6wylybvh6hgayls57miwwv4w69fbaskd8d7dkg2h7kd"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (list gcc-13 pkg-config)) (native-inputs (list gcc-13))
(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
@ -334,73 +297,10 @@ protocols used by Hyprland to bridge the aforementioned gap.")
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.4.2") (version "0.3.4")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -409,7 +309,7 @@ ecosystem.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0r7ay4zjkfyr0xd73wz99qhnqjq7nma98gm51wm9lmai4igw90qw")))) "0mi0kawfw311ybiy4xipy1n20nvjphkfqzgnd8jxxbkhjkwn0jhg"))))
(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))
@ -421,10 +321,51 @@ ecosystem.")
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.6") (version "1.3.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -433,7 +374,7 @@ for C++.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"17ba9jkccyp8gv79ds70khgm5wm6x8zs5m9nkilq4n2j7fsa8cfl")))) "0fdbzxanmmzrvb9wfzg1pdsnlg7dl6v5k8bl44w10n48s7bbbzn0"))))
(build-system qt-build-system) (build-system qt-build-system)
(arguments (arguments
(list #:tests? #f ;No tests (list #:tests? #f ;No tests
@ -445,25 +386,22 @@ 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 hyprwayland-scanner pkg-config)) (list gcc-13 pkg-config wayland))
(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 mihomo-bin) (file-like clash-bin)
"The clash package.") "The clash package.")
(log-file (log-file
@ -70,15 +70,23 @@
(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>
(data-directory config) (clash log-file 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)))))
@ -89,7 +97,7 @@
(define clash-shepherd-service (define clash-shepherd-service
(match-record-lambda <clash-configuration> (match-record-lambda <clash-configuration>
(clash log-file data-directory shepherd-provision) (clash log-file data-directory config shepherd-provision)
(list (shepherd-service (list (shepherd-service
(documentation "Run clash.") (documentation "Run clash.")
(provision shepherd-provision) (provision shepherd-provision)
@ -103,6 +111,7 @@
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 "/var/run/tailscale/tailscaled.sock") (string "/run/tailscale/tailscaled.sock")
"Path of the service UNIX socket.") "Path of the service UNIX socket.")
(state-directory (state-directory

@ -42,11 +42,8 @@
(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 '()) (list-of-strings '())
"List of extra options.") "List of extra options.")
(no-serialization)) (no-serialization))
@ -77,8 +74,7 @@
(define jellyfin-oci-containers (define jellyfin-oci-containers
(match-record-lambda <jellyfin-configuration> (match-record-lambda <jellyfin-configuration>
(cache-directory config-directory (cache-directory config-directory proxy-url log-file extra-options)
proxy-url log-file auto-start? extra-options)
(list (oci-container-configuration (list (oci-container-configuration
(user "jellyfin") (user "jellyfin")
(group "docker") (group "docker")
@ -90,7 +86,6 @@
(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