diff --git a/zilti/packages/hyprland.scm b/zilti/packages/hyprland.scm index 54efef2..6f4f36f 100644 --- a/zilti/packages/hyprland.scm +++ b/zilti/packages/hyprland.scm @@ -114,6 +114,8 @@ ((zilti packages utilities) #:prefix utils:)) +;;; Dependencies not yet in Guix + (define-public libliftoff (package (name "libliftoff") @@ -126,6 +128,8 @@ (url "https://gitlab.freedesktop.org/emersion/libliftoff") (commit (string-append "v" version)))) + (file-name + (git-file-name name version)) (sha256 (base32 "1ikjp638d655ycaqkdnzhb12d29kkbb3a46lqhbhsfc8vsqj3z1l")))) @@ -186,6 +190,8 @@ and libliftoff will pick hardware planes for these layers if possible.") (base32 "0yijzgg6rdsa68bz03sw0lcfa2nclv9m3as1cja50wkcyxim7x9v")))))) +;;; Low-level Hyprland stuff + (define-public hyprcursor (package (inherit rosenthal:hyprcursor) @@ -223,6 +229,8 @@ and libliftoff will pick hardware planes for these layers if possible.") (sha256 (base32 "1vgvbnd6l5iymb66zdcslhs4w20a7i013qmf4jnxx10z1p8rfkg7")))))) + +;;; Hypland itself (define-public hyprland (package @@ -270,7 +278,7 @@ and libliftoff will pick hardware planes for these layers if possible.") python-wrapper jq pkg-config)) - (inputs + (propagated-inputs (list cairo eudev gcc-13 @@ -315,14 +323,12 @@ more.") (add-before 'configure 'fix-CMakeLists.txt (lambda _ (invoke "sed" "-i" "s/xcb xwayland/xcb/g" "CMakeLists.txt"))))))) - (propagated-inputs - (list xorg-server-xwayland)) (native-inputs (modify-inputs (package-native-inputs hyprland))) - (inputs + (propagated-inputs (modify-inputs - (package-inputs hyprland) + (package-propagated-inputs hyprland) (append libxcomposite) (append libxfixes) (append xcb-util) @@ -331,6 +337,9 @@ more.") (append xcb-util-wm) (append xorg-server-xwayland))))) +;;; Hyprland plugins +;;;; Official plugins + (define hyprland-official-plugin (package (name "hyprland-official-plugin") @@ -342,25 +351,116 @@ more.") (commit version))) (sha256 (base32 - "1zh5x83nfr5893snnz38kmxvj31m8n8pgjdd0759amm41f4gw2ia")))) + "0rnn5mr8yy98nyyy6q7l12jpr5gzs2904ywypy89p52fzxxb5zm9")))) (build-system meson-build-system) + (propagated-inputs + (list hyprland + hyprlang)) (native-inputs (list gcc-13 pkg-config - hyprland wayland)) (inputs (list pango cairo pixman + mesa libdrm-for-hyprland libinput - libxkbcommon)) + libxkbcommon + xcb-util + xcb-util-wm)) (home-page "https://github.com/hyprwm/hyprland-plugins") (synopsis "A template for official hyprland plugins") (description "A template for official hyprland plugins") (license license:bsd-3))) +(define-public hyprland-plugin-borders-plus-plus + (package + (inherit hyprland-official-plugin) + (name "hyprland-plugin-borders-plus-plus") + (arguments + (substitute-keyword-arguments + (package-arguments hyprland-official-plugin) + ((#:phases oldphases #~%standard-phases) + #~(modify-phases #$oldphases + (add-after 'unpack 'chdir + (lambda _ + (invoke "ls" "-la") + (chdir "./borders-plus-plus"))))))))) + +(define-public hyprland-plugin-csgo-vulkan-fix + (package + (inherit hyprland-official-plugin) + (name "hyprland-plugin-csgo-vulkan-fix") + (arguments + (substitute-keyword-arguments + (package-arguments hyprland-official-plugin) + ((#:phases oldphases #~%standard-phases) + #~(modify-phases #$oldphases + (add-after 'unpack 'chdir + (lambda _ + (invoke "ls" "-la") + (chdir "./csgo-vulkan-fix"))))))))) + +(define-public hyprland-plugin-hyprbars + (package + (inherit hyprland-official-plugin) + (name "hyprland-plugin-hyprbars") + (arguments + (substitute-keyword-arguments + (package-arguments hyprland-official-plugin) + ((#:phases oldphases #~%standard-phases) + #~(modify-phases #$oldphases + (add-after 'unpack 'chdir + (lambda _ + (invoke "ls" "-la") + (chdir "./hyprbars"))))))))) + +(define-public hyprland-plugin-hyprexpo + (package + (inherit hyprland-official-plugin) + (name "hyprland-plugin-hyprexpo") + (arguments + (substitute-keyword-arguments + (package-arguments hyprland-official-plugin) + ((#:phases oldphases #~%standard-phases) + #~(modify-phases #$oldphases + (add-after 'unpack 'chdir + (lambda _ + (invoke "ls" "-la") + (chdir "./hyprexpo"))))))))) + +(define-public hyprland-plugin-hyprtrails + (package + (inherit hyprland-official-plugin) + (name "hyprland-plugin-hyprtrails") + (arguments + (substitute-keyword-arguments + (package-arguments hyprland-official-plugin) + ((#:phases oldphases #~%standard-phases) + #~(modify-phases #$oldphases + (add-after 'unpack 'chdir + (lambda _ + (invoke "ls" "-la") + (chdir "./hyprtrails"))))))))) + +(define-public hyprland-plugin-hyprwinwrap + (package + (inherit hyprland-official-plugin) + (name "hyprland-plugin-hyprwinwrap") + (arguments + (substitute-keyword-arguments + (package-arguments hyprland-official-plugin) + ((#:phases oldphases #~%standard-phases) + #~(modify-phases #$oldphases + (add-after 'unpack 'chdir + (lambda _ + (invoke "ls" "-la") + (chdir "./hyprwinwrap"))))))))) + +;;;; Third-party plugins + (define-public hyprland-plugin-hyprsplit (package (name "hyprland-plugin-hyprsplit") @@ -412,6 +512,8 @@ more.") (modify-inputs (package-propagated-inputs hyprland-plugin-hyprsplit) (replace "hyprland" hyprland-xwayland))))) +;;; Hypr Ecosystem + (define-public hyprpaper (package (name "hyprpaper") @@ -469,6 +571,38 @@ more.") (description "Hyprpaper is a blazing fast wallpaper utility for Hyprland with the ability to dynamically change wallpapers through sockets. It will work on all wlroots-based compositors, though.") (license license:bsd-3))) +(define-public hyprpicker + (package + (name "hyprpicker") + (version "0.2.0") + (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 + "12wkvwdxbv6ni292575vg3j06qdmljw5mydh8i4x2qrfpi5kqavg")))) + (build-system cmake-build-system) + (native-inputs + (list utils:cmake + pkg-config)) + (inputs + (list cairo + hyprland + rosenthal:hyprland-protocols + pango + libjpeg-turbo + libxkbcommon + wayland-protocols-for-hyprland + wayland)) + (home-page "https://github.com/hyprwm/hyprpicker") + (synopsis "A wlroots-compatible Wayland color picker that does not suck") + (description "A wlroots-compatible Wayland color picker that does not suck.") + (license license:bsd-3))) + (define-public hypridle (package (name "hypridle") @@ -533,19 +667,20 @@ more.") (list gcc-13 pkg-config)) (propagated-inputs - (list wayland + (list hyprlang + wayland egl-wayland eglexternalplatform)) (inputs (list cairo pango linux-pam + libglvnd + pixman mesa libdrm-for-hyprland - libglvnd libxkbcommon - wayland-protocols-for-hyprland - hyprlang)) + wayland-protocols-for-hyprland)) (home-page "https://github.com/hyprwm/hyprlock") (synopsis "Hyprland's GPU-accelerated screen locking utility") (description "Hyprland's simple, yet multi-threaded and GPU-accelerated screen locking utility.") diff --git a/zilti/packages/pharo.scm b/zilti/packages/pharo.scm index 31d434f..2636878 100644 --- a/zilti/packages/pharo.scm +++ b/zilti/packages/pharo.scm @@ -15,7 +15,7 @@ #:use-module (gnu packages version-control) #:use-module (gnu packages xdisorg)) -(define-public pharo-vm +(define-public pharo-vm-10.1 (package (name "pharo-vm") (version "10.1.1") @@ -74,3 +74,63 @@ (home-page "https://www.pharo.org") (description "This is the VM used by Pharo.") (license license:expat))) + +(define pharo-vm-10.2 + (package + (name "pharo-vm") + (version "10.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://files.pharo.org/vm/pharo-spur64-headless/Linux-x86_64/source/PharoVM-" version "-f4c5e2a-Linux-x86_64-c-src.tar.gz")) + (sha256 + (base32 + "0jr6xrw9g83h0k01a6fpm6zrxcy2iagax4pay7iwqrack187jbn8")))) + (build-system cmake-build-system) + (arguments + (list + #:configure-flags + #~(list + (string-append "-DPHARO_LIBRARY_PATH=" + (assoc-ref %outputs "out") "/lib") + "-DGENERATED_SOURCE_DIR=." + "-DALWAYS_INTERACTIVE=on" + "-DBUILD_IS_RELEASE=on" + "-DGENERATE_SOURCES=off" + "-DBUILD_BUNDLE=off") + #:phases + #~(modify-phases %standard-phases + (delete 'check) + (delete 'validate-runpath) + (add-after 'install 'really-install + (lambda _ + (let ((bin (string-append #$output "/bin")) + (lib (string-append #$output "/lib"))) + (mkdir-p bin) + (mkdir-p lib) + (copy-recursively "./build/vm/pharo" + (string-append bin "/pharo")) + (for-each (lambda (file) + (let ((inode (string-append "./build/vm/" file))) + (copy-recursively + inode + (string-append lib "/" file)))) + (with-directory-excursion + "./build/vm" + (find-files "." + (lambda (file stat) + (string-contains file ".so"))))) + (wrap-program (string-append bin "/pharo") + `("LD_LIBRARY_PATH" prefix (,lib))))))))) + (inputs + (list libffi + libgit2 + cairo + freetype + pixman + libpng + util-linux)) + (synopsis "This is the VM used by Pharo") + (home-page "https://www.pharo.org") + (description "This is the VM used by Pharo.") + (license license:expat)))