diff --git a/gchannel/packages/hyprland.scm b/gchannel/packages/hyprland.scm new file mode 100644 index 0000000..605dec4 --- /dev/null +++ b/gchannel/packages/hyprland.scm @@ -0,0 +1,181 @@ + +(define-module (gchannel packages hyprland) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix build-system asdf) + #:use-module (guix build-system cargo) + #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) + #:use-module (guix build-system gnu) + #:use-module (guix build-system haskell) + #:use-module (guix build-system meson) + #:use-module (guix build-system perl) + #:use-module (guix build-system pyproject) + #:use-module (guix build-system python) + #:use-module (guix build-system trivial) + #:use-module (gchannel packages hyprland-protocols-input-capture) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages bash) + #:use-module (gnu packages admin) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages bison) + #:use-module (gnu packages build-tools) + #:use-module (gnu packages calendar) + #:use-module (gnu packages check) + #:use-module (gnu packages cmake) + #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) + #:use-module (gnu packages crates-check) + #:use-module (gnu packages crates-compression) + #:use-module (gnu packages crates-io) + #:use-module (gnu packages crates-graphics) + #:use-module (gnu packages datastructures) + #:use-module (gnu packages docbook) + #:use-module (gnu packages documentation) + #:use-module (gnu packages engineering) + #:use-module (gnu packages flex) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages fribidi) + #:use-module (gnu packages gawk) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) + #:use-module (gnu packages gperf) + #:use-module (gnu packages gtk) + #:use-module (gnu packages gnome) + #:use-module (gnu packages haskell-check) + #:use-module (gnu packages haskell-web) + #:use-module (gnu packages haskell-xyz) + #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages libbsd) + #:use-module (gnu packages libevent) + #:use-module (gnu packages libffi) + #:use-module (gnu packages linux) + #:use-module (gnu packages lisp-check) + #:use-module (gnu packages lisp-xyz) + #:use-module (gnu packages logging) + #:use-module (gnu packages lua) + #:use-module (gnu packages man) + #:use-module (gnu packages maths) + #:use-module (gnu packages mpd) + #:use-module (gnu packages pciutils) + #:use-module (gnu packages music) + #:use-module (gnu packages pantheon) + #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pretty-print) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-check) + #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) + #:use-module (gnu packages readline) + #:use-module (gnu packages regex) + #:use-module (gnu packages serialization) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages suckless) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages textutils) + #:use-module (gnu packages time) + #:use-module (gnu packages vulkan) + #:use-module (gnu packages web) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg)) + +(define-public hyprland + (package + (name "hyprland") + (version "0.49.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/3l0w/Hyprland.git") + (commit "821497bc2379b8bef091c455bbfbfeec19f5ae4b"))) + (sha256 + (base32 "0njqyl6vsqlb8dv4wdn5h34dk67yqzc99gvwa13j252cv3n0bpya")))) + ;; The project's native build system is Meson. + (build-system meson-build-system) + + (arguments + (list + #:tests? #f + ;; Use Meson's build-in options to configure the project. + #:configure-flags + #~'("-Dhyprpm=disabled") + #: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)))) + (substitute* '("src/Compositor.cpp" + "src/xwayland/XWayland.cpp" + "src/managers/VersionKeeperManager.cpp") + (("!NFsUtils::executableExistsInPath.*\".") "false") + (("hyprland-update-screen" cmd) + (search-input-file inputs (in-vicinity "bin" cmd))))))))) + + (native-inputs + (list gcc-14 + hyprwayland-scanner + (module-ref (resolve-interface + '(gnu packages commencement)) + 'ld-wrapper) + pkg-config)) + (inputs + (list aquamarine + binutils + cairo + hyprcursor + hyprgraphics + hyprland-protocols-input-capture + hyprland-qtutils + hyprlang + hyprutils + libinput-minimal + libxcursor + libxkbcommon + mesa + pango + pciutils + re2-next + udis86 + wayland + wayland-protocols + linux-libre-headers-6.14 + 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))) + +hyprland \ No newline at end of file diff --git a/gchannel/packages/xdg-desktop-portal-hyprland.scm b/gchannel/packages/xdg-desktop-portal-hyprland.scm new file mode 100644 index 0000000..c4607bb --- /dev/null +++ b/gchannel/packages/xdg-desktop-portal-hyprland.scm @@ -0,0 +1,143 @@ +(define-module (gchannel packages xdg-desktop-portal-hyprland) + #:use-module (guix bzr-download) + #:use-module (guix download) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #: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 perl) + #:use-module (guix build-system pyproject) + #:use-module (guix build-system python) + #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system qt) + #:use-module (gchannel packages hyprland-protocols-input-capture) + #:use-module (gnu packages) + #:use-module (gnu packages acl) + #:use-module (gnu packages admin) + #:use-module (gnu packages autotools) + #:use-module (gnu packages avahi) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages boost) + #:use-module (gnu packages build-tools) + #:use-module (gnu packages check) + #:use-module (gnu packages cran) + #:use-module (gnu packages cmake) + #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) + #:use-module (gnu packages crypto) + #:use-module (gnu packages cryptsetup) + #:use-module (gnu packages cups) + #:use-module (gnu packages curl) + #:use-module (gnu packages databases) + #:use-module (gnu packages disk) + #:use-module (gnu packages docbook) + #:use-module (gnu packages documentation) + #:use-module (gnu packages fcitx) + #:use-module (gnu packages file) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gawk) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages gl) + #:use-module (gnu packages glib) ;intltool + #:use-module (gnu packages gnome) + #:use-module (gnu packages gperf) + #:use-module (gnu packages graph) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages gstreamer) + #:use-module (gnu packages gtk) + #:use-module (gnu packages hunspell) + #:use-module (gnu packages ibus) + #:use-module (gnu packages image) + #:use-module (gnu packages kde-frameworks) + #:use-module (gnu packages kde) + #:use-module (gnu packages language) + #:use-module (gnu packages libffi) + #:use-module (gnu packages libunwind) + #:use-module (gnu packages libusb) + #:use-module (gnu packages linux) + #:use-module (gnu packages man) + #:use-module (gnu packages m4) + #:use-module (gnu packages networking) + #:use-module (gnu packages nss) + #:use-module (gnu packages package-management) + #:use-module (gnu packages pciutils) + #:use-module (gnu packages perl) + #:use-module (gnu packages perl-check) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages polkit) + #:use-module (gnu packages python) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) + #:use-module (gnu packages rdesktop) + #:use-module (gnu packages rsync) + #:use-module (gnu packages samba) + #:use-module (gnu packages serialization) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages tls) + #:use-module (gnu packages valgrind) + #:use-module (gnu packages video) + #:use-module (gnu packages virtualization) + #:use-module (gnu packages w3m) + #:use-module (gnu packages web) + #:use-module (gnu packages wm) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) + #:use-module (srfi srfi-1)) + +(define-public xdg-desktop-portal-hyprland + (package + (name "xdg-desktop-portal-hyprland") + (version "1.3.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/3l0w/xdg-desktop-portal-hyprland") + (commit "55afeb19c5833f9805fd383bd3525e2d8547e883"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bkyhz6nslksj6hbd9i3fgkvkcfga4n4nnm4dhk612cnma6b58pj")))) + (build-system qt-build-system) + (arguments + (list #:tests? #f ;No tests. + #:qtbase qtbase)) + (native-inputs + + `(("util-linux" ,util-linux "lib") + ("gcc-14" ,gcc-14) + ("wayland-scanner" ,hyprwayland-scanner) + ("pkg-config" ,pkg-config))) + (inputs + (list bash-minimal + grim + hyprland + hyprland-protocols-input-capture + hyprlang + hyprutils + mesa + pipewire + qtwayland + sdbus-c++ + ;; hyprwayland-scanner + slurp + libei + wayland + wayland-protocols)) + (home-page "https://github.com/hyprwm/xdg-desktop-portal-hyprland") + (synopsis "Hyprland implementation of @code{xdg-desktop-portal} backend") + (description + "This package provides an @code{xdg-desktop-portal} backend for Hyprland.") + (license license:bsd-3))) + +xdg-desktop-portal-hyprland \ No newline at end of file