(define-module (sigils packages hyprland) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix download) #:use-module (guix utils) #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system meson) #:use-module (guix build-system cmake) #:use-module (gnu packages cpp) #:use-module (gnu packages file) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) #:use-module (gnu packages wm) #:use-module (gnu packages xdisorg) #:use-module (sigils packages upstream)) (define mesa-opengl (package/inherit mesa (inputs (modify-inputs (package-inputs mesa) (append libglvnd))) (arguments (substitute-keyword-arguments (package-arguments mesa) ((#:configure-flags flags) #~(cons* "-Dopengl=true" "-Degl=enabled" "-Dglvnd=enabled" #$flags)))))) ;;; Hyprland -- list of changes and notes about the guix version ;;; All: (arguments '(#:build-type "release")) ;;; All: (url "https://code.hyprland.org/hyprwm/...") ;;; aquamarine: eudev in guix version ;;; hyprland: binutils, pciutils, re2-next / pas glib, libxcb, tomlplusplus (define-public hyprpaper (package (name "hyprpaper") (version "0.7.1") (home-page "https://hyprland.org/") (source (origin (method git-fetch) (uri (git-reference (url "https://code.hyprland.org/hyprwm/hyprpaper") (commit (string-append "v" version)))) (sha256 (base32 "10yb2853fd0ljxijwkqm146bnirzpghfc5kw080ws24hjmfbp0hw")))) (build-system cmake-build-system) (native-inputs (list gcc-13 ;; TODO: remove this when GCC 13 is the default pkg-config hyprwayland-scanner)) (inputs (list wayland wayland-protocols-next pango cairo libglvnd libjpeg-turbo libwebp hyprlang hyprutils)) (arguments '(#:tests? #f ;; No tests #:build-type "release")) (synopsis "Wallpaper utility with IPC controls") (description "Hyprpaper is a wallpaper utility for Hyprland with the ability to dynamically change wallpapers through sockets") (license license:bsd-3))) (define-public hyprlock (package (name "hyprlock") (version "0.5.0") (home-page "https://hyprland.org/") (source (origin (method git-fetch) (uri (git-reference (url "https://code.hyprland.org/hyprwm/hyprlock") (commit (string-append "v" version)))) (sha256 (base32 "07404h6w5934yimpwb0p9dxg1w3nv702bckm4m99jbjrda6jqhmi")))) (build-system cmake-build-system) (native-inputs (list gcc-13 ;; TODO: remove this when GCC 13 is the default pkg-config hyprwayland-scanner)) (inputs (list cairo file libdrm libglvnd libjpeg-turbo libwebp libxkbcommon mesa-opengl hyprlang hyprutils linux-pam pango sdbus-c++ wayland wayland-protocols-next)) (arguments (list #:tests? #f ;; No tests #:build-type "release" #:phases #~(modify-phases %standard-phases (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin/hyprlock")) (mesa (assoc-ref inputs "mesa"))) (wrap-program bin `("__EGL_VENDOR_LIBRARY_DIRS" = (,(string-append mesa "/share/glvnd/egl_vendor.d")))))))))) (synopsis "GPU-accelerated screen locking utility") (description "Hyprland's multi-threaded and GPU-accelerated screen locking utility.") (license license:bsd-3))) (define-public hyprsunset (package (name "hyprsunset") (version "0.1.0") (home-page "https://hyprland.org/") (source (origin (method git-fetch) (uri (git-reference ;; TODO: hyprland git repo (url "https://github.com/hyprwm/hyprsunset") (commit (string-append "v" version)))) (sha256 (base32 "110cw7nd6a0krsg6764hx2i45lc8n4b1iln3b8jz1x6pziw1qna9")))) (build-system cmake-build-system) (native-inputs (list gcc-13 ;; TODO: remove this when GCC 13 is the default pkg-config hyprwayland-scanner)) (inputs (list wayland wayland-protocols-next hyprutils hyprland-protocols)) (arguments '(#:tests? #f ;; No tests #:build-type "release")) (synopsis "blue-light filter on Hyprland") (description "hyprsunset is an utility that provides a blue light filter for your system.") (license license:bsd-3))) ;;; hyprland plugins (define-public hyprsplit (package (name "hyprsplit") (version (package-version hyprland)) (home-page "https://github.com/shezdy/hyprsplit") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/shezdy/hyprsplit") (commit (string-append "v" version)))) (sha256 (base32 "1wbqxa7ynlnh0d1gnnqiimad4900zvgr53nr2wl22zmjcszi99r0")))) (build-system meson-build-system) ;; Hyprland plugins need the same inputs as Hyprland, and Hyprland itself (native-inputs (package-native-inputs hyprland)) (inputs (modify-inputs (package-inputs hyprland) (append hyprland))) (arguments '(#:build-type "release")) (synopsis "awesome / dwm like workspaces for hyprland") (description "hyprland plugin for separate sets of workspaces on each monitor") (license license:bsd-3))) (define (hyprland-plugins plugin syn) (package (name plugin) (version "0.46.0") ;; 0.46.2 not there yet (home-page "https://hyprland.org/") (source (origin (method git-fetch) (uri (git-reference (url "https://code.hyprland.org/hyprwm/hyprland-plugins") (commit (string-append "v" version)))) (sha256 (base32 "1nh6x6gwbhsljfhpvqn85n9s1l0xlrljlm2xy5msrikssxbxgmj3")))) (build-system meson-build-system) ;; Hyprland plugins need the same inputs as Hyprland, and Hyprland itself (native-inputs (package-native-inputs hyprland)) (inputs (modify-inputs (package-inputs hyprland) (append hyprland))) (arguments (list #:build-type "release" #:phases #~(modify-phases %standard-phases (add-after 'unpack 'chdir-plugin (lambda _ (chdir #$plugin)))))) (synopsis syn) (description "This repo houses official plugins for Hyprland.") (license license:bsd-3))) (define-public borders-plus-plus (hyprland-plugins "borders-plus-plus" "adds one or two additional borders to windows")) (define-public csgo-vulkan-fix (hyprland-plugins "csgo-vulkan-fix" "fixes custom resolutions on CS:GO with -vulkan")) (define-public hyprbars (hyprland-plugins "hyprbars" "adds title bars to windows")) (define-public hyprexpo (hyprland-plugins "hyprexpo" "adds an expo-like workspace overview")) (define-public hyprtrail (hyprland-plugins "hyprtrail" "adds smooth trails behind moving windows")) (define-public hyprwinwrap (hyprland-plugins "hyprwinwrap" "clone of xwinwrap, allows you to put any app as a wallpaper"))