├── .github └── workflows │ ├── build-latest.yml │ └── check.yml ├── COPYING ├── README.md ├── common └── shlibs ├── scripts ├── build-packages ├── clone-and-prepare ├── generate-build-order.kts ├── index-packages ├── push-repository ├── set-environment ├── sign-packages └── version-checker └── srcpkgs ├── aquamarine └── template ├── glaze └── template ├── hyprcursor └── template ├── hyprgraphics └── template ├── hypridle └── template ├── hyprland-devel ├── hyprland-protocols └── template ├── hyprland-qt-support └── template ├── hyprland-qtutils └── template ├── hyprland ├── patches │ └── musl-build-fix.patch └── template ├── hyprlang └── template ├── hyprlock └── template ├── hyprpaper └── template ├── hyprpolkitagent └── template ├── hyprsunset └── template ├── hyprsysteminfo └── template ├── hyprutils └── template ├── hyprwayland-scanner └── template ├── libspng └── template ├── sdbus-cpp └── template ├── tomlplusplus └── template └── xdg-desktop-portal-hyprland └── template /.github/workflows/build-latest.yml: -------------------------------------------------------------------------------- 1 | name: "Build Latest Packages" 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | workflow_dispatch: 8 | 9 | jobs: 10 | build: 11 | name: Build Hyprland 12 | runs-on: ubuntu-latest 13 | 14 | container: 15 | image: ghcr.io/void-linux/void-glibc-full:20250227R1 16 | options: --platform linux/amd64 --privileged 17 | 18 | strategy: 19 | matrix: 20 | arch: [ x86_64, x86_64-musl, aarch64, aarch64-musl ] 21 | env: 22 | REPO_OWNER: "${{ github.repository_owner }}" 23 | REPO_NAME: "${{ github.event.repository.name }}" 24 | TARGET_ARCH: "${{ matrix.arch }}" 25 | SCRIPT_DIR: "/work/${{ github.event.repository.name }}/scripts" 26 | BUILD_ARGS: "" 27 | 28 | steps: 29 | - name: Prepare container and create a non-root user 30 | run: | 31 | mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/ 32 | sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf 33 | xbps-install -Syu xbps && xbps-install -yu && xbps-install -y sudo bash grep curl git kotlin-bin 34 | useradd -G xbuilder -M builder 35 | 36 | - name: Clone hyprland-void repo 37 | run: | 38 | mkdir /work && cd /work 39 | git clone https://github.com/$REPO_OWNER/$REPO_NAME.git 40 | $SCRIPT_DIR/set-environment 41 | 42 | - name: Automatically generate a build order 43 | run: $SCRIPT_DIR/generate-build-order.kts 44 | 45 | - name: Prepare void-packages 46 | run: $SCRIPT_DIR/clone-and-prepare 47 | 48 | - name: Build packages 49 | run: $SCRIPT_DIR/build-packages 50 | 51 | - name: Copy relevant packages for indexing and signing 52 | run: | 53 | export PEM_PAT=${{ secrets.PEM_PAT }} 54 | export XBPS_PASSPHRASE=${{ secrets.PRIVATE_PEM_PASSPHRASE }} 55 | export XBPS_TARGET_ARCH=${{ env.TARGET_ARCH }} 56 | sudo -Eu builder $SCRIPT_DIR/index-packages 57 | sudo -Eu builder $SCRIPT_DIR/sign-packages 58 | 59 | - name: Push new packages to binary repository 60 | run: | 61 | export ACCESS_GIT=${{ secrets.ACCESS_GIT }} 62 | sudo -Eu builder $SCRIPT_DIR/push-repository 63 | -------------------------------------------------------------------------------- /.github/workflows/check.yml: -------------------------------------------------------------------------------- 1 | name: Check build 2 | 3 | on: 4 | pull_request: 5 | paths: 6 | - 'srcpkgs/**' 7 | push: 8 | branches: 9 | - 'ci-**' 10 | paths: 11 | - 'srcpkgs/**' 12 | 13 | workflow_dispatch: 14 | 15 | concurrency: 16 | group: ${{ github.workflow }}-${{ github.ref }} 17 | cancel-in-progress: true 18 | 19 | jobs: 20 | # Lint changed templates. 21 | xlint: 22 | name: Lint templates 23 | runs-on: ubuntu-latest 24 | 25 | container: 26 | image: 'ghcr.io/void-linux/void-buildroot-musl:20231230R1' 27 | env: 28 | PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin' 29 | LICENSE_LIST: common/travis/license.lst 30 | 31 | steps: 32 | - name: Prepare container 33 | run: | 34 | # switch to repo-ci mirror 35 | mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/ 36 | sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf 37 | # Sync and upgrade once, assume error comes from xbps update 38 | xbps-install -Syu || xbps-install -yu xbps 39 | # Upgrade again (in case there was a xbps update) 40 | xbps-install -yu 41 | # install tools needed for lints 42 | xbps-install -y grep curl git 43 | - name: Clone and checkout 44 | uses: classabbyamp/treeless-checkout-action@v1 45 | - name: Create hostrepo and prepare masterdir 46 | run: | 47 | ln -s "$(pwd)" /hostrepo && 48 | common/travis/set_mirror.sh && 49 | common/travis/prepare.sh && 50 | common/travis/fetch-xtools.sh 51 | - run: common/travis/changed_templates.sh 52 | - name: Run lints 53 | run: | 54 | rv=0 55 | common/travis/xlint.sh || rv=1 56 | common/travis/verify-update-check.sh || rv=1 57 | exit $rv 58 | 59 | # Build changed packages. 60 | build: 61 | name: Build packages 62 | runs-on: ubuntu-latest 63 | if: "!contains(github.event.pull_request.title, '[ci skip]') && !contains(github.event.pull_request.body, '[ci skip]')" 64 | 65 | container: 66 | image: ghcr.io/void-linux/void-buildroot-${{ matrix.config.libc }}:20231230R1 67 | options: --platform ${{ matrix.config.platform }} 68 | env: 69 | PATH: '/usr/libexec/chroot-git:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin' 70 | ARCH: '${{ matrix.config.arch }}' 71 | BOOTSTRAP: '${{ matrix.config.host }}' 72 | TEST: '${{ matrix.config.test }}' 73 | HOSTREPO: /hostrepo 74 | 75 | strategy: 76 | fail-fast: false 77 | matrix: 78 | config: 79 | - { arch: x86_64, host: x86_64, libc: glibc, platform: linux/amd64, test: 1 } 80 | - { arch: i686, host: i686, libc: glibc, platform: linux/386, test: 1 } 81 | - { arch: aarch64, host: x86_64, libc: glibc, platform: linux/amd64, test: 0 } 82 | - { arch: armv7l, host: x86_64, libc: glibc, platform: linux/amd64, test: 0 } 83 | - { arch: x86_64-musl, host: x86_64-musl, libc: musl, platform: linux/amd64, test: 1 } 84 | - { arch: armv6l-musl, host: x86_64-musl, libc: musl, platform: linux/amd64, test: 0 } 85 | - { arch: aarch64-musl, host: x86_64-musl, libc: musl, platform: linux/amd64, test: 0 } 86 | 87 | steps: 88 | - name: Prepare container 89 | run: | 90 | # switch to repo-ci mirror 91 | mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/ 92 | sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf 93 | # Sync and upgrade once, assume error comes from xbps update 94 | xbps-install -Syu || xbps-install -yu xbps 95 | # Upgrade again (in case there was a xbps update) 96 | xbps-install -yu 97 | 98 | - name: Clone and checkout 99 | uses: classabbyamp/treeless-checkout-action@v1 100 | - name: Create hostrepo and prepare masterdir 101 | run: | 102 | ln -s "$(pwd)" /hostrepo && 103 | common/travis/set_mirror.sh && 104 | common/travis/prepare.sh && 105 | common/travis/fetch-xtools.sh 106 | - run: common/travis/changed_templates.sh 107 | 108 | - name: Build and check packages 109 | run: | 110 | ( 111 | here="$(pwd)" 112 | cd / 113 | "$here/common/travis/build.sh" "$BOOTSTRAP" "$ARCH" "$TEST" 114 | ) 115 | 116 | - name: Show files 117 | run: | 118 | ( 119 | here="$(pwd)" 120 | cd / 121 | "$here/common/travis/show_files.sh" "$BOOTSTRAP" "$ARCH" 122 | ) 123 | 124 | - name: Compare to previous 125 | run: | 126 | ( 127 | here="$(pwd)" 128 | cd / 129 | "$here/common/travis/xpkgdiff.sh" "$BOOTSTRAP" "$ARCH" 130 | ) 131 | 132 | - name: Check file conflicts 133 | if: matrix.config.arch == 'x86_64' # the arch indexed in xlocate 134 | run: | 135 | if [ -s /tmp/templates ]; then 136 | xlocate -S && 137 | common/scripts/lint-conflicts $HOME/hostdir/binpkgs 138 | fi 139 | 140 | - name: Verify repository state 141 | run: | 142 | ( 143 | here="$(pwd)" 144 | cd / 145 | "$here/common/travis/check-install.sh" "$BOOTSTRAP" "$ARCH" 146 | ) -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2020 Juan Romero Pardines and contributors 2 | Copyright (c) 2017-2023 The Void Linux team and contributors 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions 7 | are met: 8 | 1. Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17 | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 18 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19 | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23 | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Hyprland for Void Linux 2 | 3 | This repository contains template files and binaries for building or installing [Hyprland](https://github.com/hyprwm/Hyprland) on Void Linux. 4 | 5 | ### Installation 6 | 7 | The easiest way to install Hyprland on Void Linux is using the [binary repository](https://github.com/Makrennel/hyprland-void/tree/repository-x86_64-glibc) which is built automatically using [GitHub Actions](https://github.com/Makrennel/hyprland-void/blob/master/.github/workflows/build-latest.yml) whenever a new commit is pushed to this repository. 8 | 9 | You can add this repository to xbps's repositories by creating a file such as `/etc/xbps.d/hyprland-void.conf` with the following text: 10 | 11 | ``` 12 | repository=https://raw.githubusercontent.com/Makrennel/hyprland-void/repository-x86_64-glibc 13 | ``` 14 | 15 | This can be done with the following command: 16 | ``` 17 | echo repository=https://raw.githubusercontent.com/Makrennel/hyprland-void/repository-x86_64-glibc | sudo tee /etc/xbps.d/hyprland-void.conf 18 | ``` 19 | Then you need to refresh your repositories and accept the repository's fingerprint: 20 | ``` 21 | sudo xbps-install -S 22 | ``` 23 | 24 | You should now be able search through all hypr related packages provided by this repository, and install packages as usual: 25 | 26 | ``` 27 | xbps-query -Rs hypr 28 | sudo xbps-install -S hyprland xdg-desktop-portal-hyprland 29 | ``` 30 | 31 | Currently this repository provides binary packages for: 32 | 33 | - x86_64-glibc 34 | - x86_64-musl 35 | - aarch64-glibc 36 | - aarch64-musl 37 | 38 | Change the end of the url in `/etc/xbps.d/hyprland-void.conf` as appropriate with the above options. 39 | 40 | ### Running 41 | 42 | In order to run Hyprland you will need to install some additional packages which will depend on your setup, for example a [session and seat manager](https://docs.voidlinux.org/config/session-management.html) and [graphics drivers](https://docs.voidlinux.org/config/graphical-session/graphics-drivers/index.html). You may also have to add the user to the `_seatd` group. If you use an Nvidia GPU refer to the [Hyprland Wiki](https://wiki.hyprland.org/Nvidia), but keep in mind that Hyprland does not officially support Nvidia. 43 | 44 | ### Extra 45 | There are packages in this repository which may be of interest for: 46 | 47 | - hypridle 48 | - hyprlock 49 | - hyprpaper 50 | - xdg-desktop-portal-hyprland 51 | 52 | ### Common Remarks 53 | #### "Why is this so out of date"? 54 | 55 | Upstream Void Linux packages are sometimes chronically out of date and Hyprland tends to follow the bleeding edge. I will not risk breaking someone's system by providing, for example, a core package like `GCC 14` ahead of whenever upstream is ready to do so. 56 | 57 | #### "Will this be merged into upstream void-packages eventually?" 58 | 59 | Unless Void Linux's maintainers decide to change their opinion on the matter, the answer is no. Void Linux is hostile towards Hyprland, its developers, and community, so if this is a problem you should probably consider using a different distribution. 60 | 61 | ### Manually Building 62 | 63 | You may want to build these templates manually, for example if you have a specific configuration requirement that needs to be set at build time. Void-packages may sometimes have specific packages which are out of date from time to time that need to be updated beforehand in order to update Hyprland, which is why this repository is not simply forked off it. We need to copy the modifications from this repository on top of a fresh void-packages clone in order to build manually. 64 | 65 | 1) You may want to start by making a directory where you can keep the relevant repositories 66 | 67 | ``` 68 | mkdir ~/repos 69 | cd ~/repos 70 | ``` 71 | 72 | 2) Set up a [void-packages](https://github.com/void-linux/void-packages) clone for building templates files 73 | 74 | ``` 75 | git clone https://github.com/void-linux/void-packages 76 | cd void-packages 77 | ./xbps-src binary-bootstrap 78 | cd .. 79 | ``` 80 | 81 | 3) Clone this repository: 82 | 83 | ``` 84 | git clone https://github.com/Makrennel/hyprland-void.git 85 | cd hyprland-void 86 | ``` 87 | 88 | 4) Append shared libraries to the end of your void-packages shared libraries 89 | 90 | ``` 91 | cat common/shlibs >> ../void-packages/common/shlibs 92 | ``` 93 | 94 | 5) Copy srcpkgs to your void-packages srcpkgs directory 95 | 96 | ``` 97 | cp -r --remove-destination srcpkgs/* ../void-packages/srcpkgs 98 | ``` 99 | 100 | 6) Build and install packages 101 | 102 | ``` 103 | cd ../void-packages 104 | ./xbps-src pkg hyprland 105 | sudo xbps-install -R hostdir/binpkgs hyprland 106 | ``` 107 | 108 | ### Contributing and Forking 109 | 110 | Any contributions are greatly appreciated, but please bear in mind that the build actions run on `x86_64` with `glibc` and you should make sure that it cross-compiles with xbps-src's `-a` flag for both `musl` and `aarch64` - for example with `./xbps-src -a aarch64-musl pkg new-hypr-package`. 111 | 112 | Please also try not to superfluously change things when pull requesting with this repository, and use your own name and email in the maintainer section of new templates: do not contribute on behalf of someone else if they are not involved with the pull request. Where possible, commit changes separately (rather than in huge lump commits) and describe the changes so contributions can be easily understood and cherry picked as needed. 113 | 114 | If you would like to create your own fork of this repository and use the build action for your own packages, you must either create a private repository called `hyprland-void-private-pem` where you will store your signing keys and fetch them using a GitHub Private Access Token stored in your repository's secrets called `PEM_PAT`, or store the signing key directly in your secrets and modify [`scripts/sign-packages`](https://github.com/Makrennel/hyprland-void/blob/master/scripts/sign-packages) and the [build action](https://github.com/Makrennel/hyprland-void/blob/master/.github/workflows/build-latest.yml) appropriately. You cannot install packages from remote repositories without signing them, and *DO NOT* put the private signing key in your public repository. You will also need to create a GitHub Personal Access Token so that the action can delete, create, and push the branches where the finished packages and repodata is stored. 115 | 116 | For information on signing your repository, see the [Void Linux documentation](https://docs.voidlinux.org/xbps/repositories/signing.html) and `xbps-rindex`'s [man page](https://man.voidlinux.org/xbps-rindex.1). 117 | -------------------------------------------------------------------------------- /common/shlibs: -------------------------------------------------------------------------------- 1 | libaquamarine.so.7 aquamarine-0.8.0_2 2 | libhyprcursor.so.0 hyprcursor-0.1.12_1 3 | libhyprlang.so.2 hyprlang-0.6.3_1 4 | libhyprgraphics.so.0 hyprgraphics-0.1.3_2 5 | libhyprutils.so.6 hyprutils-0.7.1_1 6 | libsdbus-c++.so.2 sdbus-cpp-2.1.0_1 7 | libspng.so.0 libspng-0.7.4_1 8 | libtomlplusplus.so.3 tomlplusplus-3.4.0_1 9 | -------------------------------------------------------------------------------- /scripts/build-packages: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | BUILD="sudo -Eu builder /work/void-packages/xbps-src $BUILD_ARGS -j$(nproc) -s -H /work/hostdir pkg" 4 | 5 | COMMAND=" 6 | while IFS= read -r package; do 7 | echo \"::group::Building \$package...\" 8 | echo \"$BUILD \$package\" 9 | $BUILD \$package 10 | echo \"::endgroup::\" 11 | done < /work/build-order 12 | " 13 | 14 | echo "Running command: $COMMAND" 15 | sh -c "$COMMAND" 16 | -------------------------------------------------------------------------------- /scripts/clone-and-prepare: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | COMMAND=" 4 | cd /work 5 | git clone --depth 1 https://github.com/void-linux/void-packages.git 6 | 7 | cd /work/$REPO_NAME 8 | cat common/shlibs >> /work/void-packages/common/shlibs 9 | cp -r srcpkgs/* /work/void-packages/srcpkgs 10 | 11 | chown -R builder:builder /work 12 | 13 | cd /work/void-packages 14 | sudo -Eu builder common/travis/set_mirror.sh && 15 | sudo -Eu builder common/travis/prepare.sh && 16 | common/travis/fetch-xtools.sh 17 | " 18 | 19 | echo "Running command: $COMMAND" 20 | sh -c "$COMMAND" 21 | 22 | -------------------------------------------------------------------------------- /scripts/generate-build-order.kts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env kotlin 2 | /** 3 | * I couldn't be bothered to figure out how to write this in POSIX or Bash 4 | * So I just wrote it in an actually decent language 5 | */ 6 | 7 | import java.io.File 8 | import java.nio.file.LinkOption 9 | import kotlin.io.path.Path 10 | import kotlin.io.path.forEachDirectoryEntry 11 | import kotlin.io.path.isDirectory 12 | import kotlin.io.path.name 13 | 14 | val repoName = System.getenv("REPO_NAME") ?: "hyprland-void" 15 | val packages: MutableMap> = HashMap() 16 | 17 | // Get non-symlink directories in srcpkgs 18 | Path("/work/$repoName/srcpkgs").forEachDirectoryEntry { 19 | if(it.isDirectory(LinkOption.NOFOLLOW_LINKS)) packages.put(it.name, HashSet()) 20 | } 21 | 22 | // Populate package dependency lists 23 | for(pkg in packages.keys) { 24 | val required = ArrayList() 25 | var toNextLine = false 26 | 27 | // For each line check if it contains the keyword "depends" or is following from one which does 28 | Path("/work/$repoName/srcpkgs/$pkg/template").toFile().forEachLine { 29 | // If the previous line contained "depends" and an opening quote mark, but not a closing one 30 | if(toNextLine) { 31 | var line = it 32 | // If this line contains a closing quote mark 33 | if(it.contains('"')) { 34 | toNextLine = false 35 | line = it.substringBefore('"') 36 | } 37 | // Split line at any whitespace and add to the list 38 | line.split("\\s+".toRegex()).forEach(required::add) 39 | } 40 | 41 | // If line contains "depends" as a keyword and an opening quote mark 42 | if(it.contains("depends") && it.contains('"')) { 43 | var depends = it.substringAfter('"') 44 | if(!depends.contains('"')) toNextLine = true 45 | else depends = depends.substringBefore('"') 46 | depends.split("\\s+".toRegex()).forEach(required::add) 47 | } 48 | } 49 | 50 | // Add dependency to this package's list if the dependency is also present in srcpkgs 51 | required.forEach { 52 | if(packages.containsKey(it)) packages.get(pkg)!!.add(it) 53 | } 54 | } 55 | 56 | // Turn packages into an array so we can create a sorted array with indices 57 | val temp = packages.keys.toTypedArray() 58 | var order = arrayOfNulls(temp.size) 59 | 60 | fun Array.insert(position: Int, element: String): Array { 61 | return sliceArray(0 until position) + element + sliceArray(position until size) 62 | } 63 | 64 | for(i in temp.indices) { 65 | // Find reverse dependencies 66 | var last = false; 67 | for(j in order.indices) { 68 | // If array is empty, insert first element 69 | if(order[j].isNullOrBlank()) { 70 | order[j] = temp[i] 71 | break 72 | } 73 | 74 | // If the package has no dependencies, insert immediately 75 | if(packages.get(temp[i])!!.isEmpty()) { 76 | order = order.insert(0, temp[i]) 77 | break 78 | } 79 | 80 | // If package at order[j] depends on package at temp[i], the package at temp[i] must be built first 81 | if(packages.get(order[j])!!.contains(temp[i])) { 82 | order = order.insert(j, temp[i]) 83 | break 84 | } 85 | } 86 | } 87 | 88 | 89 | println("Build Order:") 90 | for(i in order.indices) { 91 | if(order[i] == null) continue 92 | 93 | println("${i + 1}: ${order[i]} - ${packages.get(order[i])}") 94 | File("/work/build-order").appendText("${order[i]}\n") 95 | } -------------------------------------------------------------------------------- /scripts/index-packages: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # Sometimes xbps-src builds a bunch of other junk I don't want to be liable for distributing 4 | 5 | COMMAND=" 6 | mkdir /work/packages 7 | 8 | cp /work/hostdir/binpkgs/aquamarine*.xbps /work/packages 9 | cp /work/hostdir/binpkgs/glaze*.xbps /work/packages 10 | cp /work/hostdir/binpkgs/hypr*.xbps /work/packages 11 | cp /work/hostdir/binpkgs/libspng*.xbps /work/packages 12 | cp /work/hostdir/binpkgs/sdbus-cpp*.xbps /work/packages 13 | cp /work/hostdir/binpkgs/tomlplusplus*.xbps /work/packages 14 | cp /work/hostdir/binpkgs/xdg-desktop-portal-hyprland*.xbps /work/packages 15 | 16 | cd /work/packages 17 | xbps-rindex -a * 18 | " 19 | echo "Running command: $COMMAND" 20 | sh -c "$COMMAND" 21 | 22 | -------------------------------------------------------------------------------- /scripts/push-repository: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # We'll blow the size of the repository up very quickly if we do not delete old iterations of the repository 4 | 5 | COMMAND=" 6 | cd /work/$REPO_NAME 7 | 8 | # Config 9 | git config user.name \"github-actions[bot]\" 10 | git config user.email \"github-actions[bot]@users.noreply.github.com\" 11 | 12 | # Delete old binary repository, create new one 13 | git push https://$REPO_OWNER:$ACCESS_GIT@github.com/$REPO_OWNER/$REPO_NAME.git -d repository-$RESULT_NAME 14 | git switch --orphan repository-$RESULT_NAME 15 | 16 | # Populate and push new binary repository 17 | cp /work/packages/* ./ 18 | git add . 19 | git commit -m \"Upload latest packages to repository\" 20 | git push -f https://$REPO_OWNER:$ACCESS_GIT@github.com/$REPO_OWNER/$REPO_NAME.git repository-$RESULT_NAME 21 | " 22 | 23 | echo "Running command: $COMMAND" 24 | sh -c "$COMMAND" 25 | 26 | -------------------------------------------------------------------------------- /scripts/set-environment: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | COMMAND=" 4 | [ \"${TARGET_ARCH##*-musl}\" ] \ 5 | && echo \"RESULT_NAME=$TARGET_ARCH-glibc\" >> \"$GITHUB_ENV\" \ 6 | || echo \"RESULT_NAME=$TARGET_ARCH\" >> \"$GITHUB_ENV\" 7 | 8 | [ \"$TARGET_ARCH\" != \"x86_64\" ] \ 9 | && echo \"BUILD_ARGS=$BUILD_ARGS -a $TARGET_ARCH\" >> \"$GITHUB_ENV\" \ 10 | || true 11 | " 12 | 13 | echo "Running command: $COMMAND" 14 | sh -c "$COMMAND" 15 | 16 | -------------------------------------------------------------------------------- /scripts/sign-packages: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # We need to sign the packages with our private key so that they will be accepted by xbps remotely 4 | # See: https://docs.voidlinux.org/xbps/repositories/signing.html 5 | 6 | COMMAND=" 7 | # Retrieve the signing key from the separate private repository 8 | cd /work 9 | curl \ 10 | -H 'Authorization: token $PEM_PAT' \ 11 | -H 'Accept: application/vnd.github.v3.raw' \ 12 | -O -L https://api.github.com/repos/$REPO_OWNER/hyprland-void-private-pem/contents/private.pem 13 | 14 | # Sign packages 15 | xbps-rindex --privkey /work/private.pem --sign --signedby \"$REPO_NAME-github-action\" /work/packages 16 | xbps-rindex --privkey /work/private.pem --sign-pkg /work/packages/*.xbps 17 | " 18 | 19 | echo "Running command: $COMMAND" 20 | sh -c "$COMMAND" 21 | 22 | -------------------------------------------------------------------------------- /scripts/version-checker: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | template_dir="../srcpkgs" 4 | 5 | log() { 6 | local RED='\033[0;31m' 7 | local GREEN='\033[0;32m' 8 | local YELLOW='\033[0;33m' 9 | local BLUE='\033[0;34m' 10 | local NC='\033[0m' 11 | 12 | case "$1" in 13 | success) 14 | echo -e "${GREEN}$2${NC}" 15 | ;; 16 | info) 17 | echo -e "${BLUE}$2${NC}" 18 | ;; 19 | warning) 20 | echo -e "${YELLOW}$2${NC}" 21 | ;; 22 | error) 23 | echo -e "${RED}$2${NC}" 24 | ;; 25 | *) 26 | echo "$2" 27 | ;; 28 | esac 29 | } 30 | 31 | fetch_version() { 32 | repo=$1 33 | # latest_tag=$(curl -s "https://api.github.com/repos/hyprwm/$repo/releases/latest" | grep -Po '"tag_name": "\K.*?(?=")') 34 | latest_tag=$(curl -s "https://github.com/hyprwm/$repo/releases" | grep -Po 'href="[^"]*/releases/tag/\K[^"]+' | head -n 1) 35 | 36 | echo $latest_tag 37 | } 38 | 39 | main() { 40 | command -v curl >/dev/null || { 41 | log error "Curl not found, please install. Exiting..." >&2 42 | 43 | exit 1 44 | } 45 | 46 | for package_dir in "$template_dir"/aquamarine/ "$template_dir"/hypr*/ "$template_dir"/xdg-desktop-portal-hyprland/; do 47 | pkgname=$(basename "$package_dir") 48 | 49 | if [[ "$pkgname" == "hyprland-devel" ]]; then 50 | continue 51 | fi 52 | 53 | template_file="${package_dir}template" 54 | 55 | if [[ ! -f "$template_file" ]]; then 56 | echo "Template file not found for $pkgname" 57 | 58 | continue 59 | fi 60 | 61 | current_version="v$(grep -Po '^version=\K[0-9.]+(?=$)' "$template_file")" 62 | 63 | latest_version=$(fetch_version "$pkgname") 64 | 65 | echo "$pkgname ===> $current_version" 66 | 67 | if [[ -z "$latest_version" ]]; then 68 | log error "$pkgname ===> Failed to fetch the latest version from GitHub\n" 69 | 70 | continue 71 | elif [[ "$current_version" == "$latest_version" ]]; then 72 | log success "${GREEN}$pkgname is up-to-date (Version: $current_version)\n" 73 | else 74 | log info "$pkgname: $current_version, but latest version is $latest_version\n" 75 | fi 76 | done 77 | } 78 | 79 | main 80 | 81 | -------------------------------------------------------------------------------- /srcpkgs/aquamarine/template: -------------------------------------------------------------------------------- 1 | # Template file for 'aquamarine' 2 | pkgname=aquamarine 3 | version=0.8.0 4 | revision=2 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | hostmakedepends=" 10 | cmake 11 | hyprwayland-scanner 12 | pkgconf 13 | " 14 | makedepends=" 15 | hwids 16 | hyprutils 17 | hyprwayland-scanner 18 | libdisplay-info-devel 19 | libinput-devel 20 | libseat-devel 21 | MesaLib-devel 22 | pixman-devel 23 | wayland-devel 24 | wayland-protocols 25 | " 26 | short_desc="Aquamarine is a very light linux rendering backend library" 27 | maintainer="Makrennel " 28 | license="LGPL-3.0-only" 29 | homepage="https://hyprland.org/hyprlang/index.html" 30 | changelog="https://github.com/hyprwm/aquamarine/releases" 31 | distfiles="https://github.com/hyprwm/aquamarine/archive/refs/tags/v${version}.tar.gz" 32 | checksum=1c3570de268fff008c6dd76472d783710b7f62c545f76091580c9edd13ad23d5 33 | 34 | post_install() { 35 | vlicense LICENSE 36 | } 37 | -------------------------------------------------------------------------------- /srcpkgs/glaze/template: -------------------------------------------------------------------------------- 1 | # Template file for 'glaze' 2 | pkgname=glaze 3 | version=4.4.3 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" -DBUILD_TESTING:BOOL=OFF" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -Dglaze_ENABLE_FUZZING:BOOL=OFF" 9 | hostmakedepends=" 10 | cmake 11 | git 12 | pkgconf 13 | " 14 | short_desc="Extremely fast, in memory, JSON and interface library for modern C++" 15 | maintainer="Makrennel " 16 | license="MIT" 17 | homepage="https://github.com/stephenberry/glaze" 18 | distfiles="https://github.com/stephenberry/glaze/archive/refs/tags/v${version}.tar.gz" 19 | checksum=d0dd03f156f95860bf9c2957da0704ee0f7651e21089ff34e3d26fa0190e8684 20 | 21 | post_install() { 22 | vlicense LICENSE 23 | } 24 | 25 | -------------------------------------------------------------------------------- /srcpkgs/hyprcursor/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprcursor' 2 | pkgname=hyprcursor 3 | version=0.1.12 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | hostmakedepends=" 10 | cairo-devel 11 | pkgconf 12 | " 13 | makedepends=" 14 | hyprlang 15 | librsvg-devel 16 | libzip-devel 17 | tomlplusplus 18 | " 19 | short_desc="Hyprland cursor format, library and utilities" 20 | maintainer="zenobit " 21 | license="BSD-3-Clause" 22 | homepage="https://github.com/hyprwm/hyprcursor" 23 | distfiles="https://github.com/hyprwm/hyprcursor/archive/refs/tags/v${version}.tar.gz" 24 | checksum=3200a7a31e28884b9d046f8ec7b0aa67ede9ce0ab0d20193c2b61ee522d6b1f2 25 | 26 | post_install() { 27 | vlicense LICENSE 28 | } 29 | 30 | -------------------------------------------------------------------------------- /srcpkgs/hyprgraphics/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprgraphics' 2 | pkgname=hyprgraphics 3 | version=0.1.3 4 | revision=2 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | hostmakedepends=" 10 | cmake 11 | pkgconf 12 | " 13 | makedepends=" 14 | cairo-devel 15 | file-devel 16 | hyprutils 17 | libjpeg-turbo-devel 18 | libjxl-devel 19 | libspng 20 | libwebp-devel 21 | pixman-devel 22 | " 23 | short_desc="hyprland graphics resources and utilities" 24 | maintainer="Makrennel " 25 | license="BSD-3-Clause" 26 | homepage="https://github.com/hyprwm/hyprgraphics" 27 | distfiles="https://github.com/hyprwm/hyprgraphics/archive/refs/tags/v${version}.tar.gz" 28 | checksum=0e11457135a9e7160cf147d361fae3c5dc40035a4ebd894c5d409baa896f43cf 29 | 30 | post_install() { 31 | vlicense LICENSE 32 | } 33 | -------------------------------------------------------------------------------- /srcpkgs/hypridle/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hypridle' 2 | pkgname=hypridle 3 | version=0.1.6 4 | revision=2 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DNO_SYSTEMD:BOOL=true" 9 | hostmakedepends=" 10 | hyprwayland-scanner 11 | pkgconf 12 | wayland-devel 13 | wayland-protocols 14 | " 15 | makedepends=" 16 | elogind-devel 17 | hyprland-protocols 18 | hyprlang 19 | hyprwayland-scanner 20 | sdbus-cpp 21 | wayland-devel 22 | wayland-protocols 23 | " 24 | short_desc="Hyprland's idle daemon" 25 | maintainer="Makrennel " 26 | license="BSD-3-Clause" 27 | homepage="https://github.com/hyprwm/hypridle" 28 | changelog="https://github.com/hyprwm/${pkgname}/releases" 29 | distfiles="https://github.com/hyprwm/hypridle/archive/refs/tags/v${version}.tar.gz" 30 | checksum=ea4faf92e7ef303a538551e2b0ea67a557b2d711574993a5a3fea3b27667dc63 31 | 32 | post_install() { 33 | vlicense LICENSE 34 | } 35 | 36 | -------------------------------------------------------------------------------- /srcpkgs/hyprland-devel: -------------------------------------------------------------------------------- 1 | hyprland -------------------------------------------------------------------------------- /srcpkgs/hyprland-protocols/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprland-protocols' 2 | pkgname=hyprland-protocols 3 | version=0.6.4 4 | revision=1 5 | build_style=meson 6 | hostmakedepends=" 7 | wayland-devel 8 | " 9 | makedepends=" 10 | wayland-devel 11 | " 12 | short_desc="Wayland protocol extensions for Hyprland" 13 | maintainer="Makrennel " 14 | license="BSD-3-Clause" 15 | homepage="https://github.com/hyprwm/hyprland-protocols" 16 | distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz" 17 | checksum=0d4f99abc21b04fc126dd754e306bb84cd334131d542ff2e0c172190c6570384 18 | 19 | post_install() { 20 | vlicense LICENSE 21 | } 22 | 23 | -------------------------------------------------------------------------------- /srcpkgs/hyprland-qt-support/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprland-qt-support' 2 | pkgname=hyprland-qt-support 3 | version=0.1.0 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | configure_args+=" -DINSTALL_QML_PREFIX=/lib/qt6/qml" 10 | hostmakedepends=" 11 | cmake 12 | pkgconf 13 | " 14 | makedepends=" 15 | hyprlang 16 | " 17 | qtmakedepends=" 18 | qt6-base-devel 19 | qt6-declarative-devel 20 | qt6-tools-devel 21 | qt6-wayland-devel 22 | " 23 | hostmakedepends+=" ${qtmakedepends}" 24 | makedepends+=" ${qtmakedepends}" 25 | short_desc="QML style provider for Hypr* QT apps" 26 | maintainer="Makrennel " 27 | license="BSD-3-Clause" 28 | homepage="https://github.com/hyprwm/hyprland-qt-support" 29 | distfiles="https://github.com/hyprwm/hyprland-qt-support/archive/refs/tags/v${version}.tar.gz" 30 | checksum=cac1f980bd088b890097f3f999cfdf03e73ee94c53f3c92d0b3bc23baa9e7b2c 31 | 32 | post_install() { 33 | vlicense LICENSE 34 | } 35 | -------------------------------------------------------------------------------- /srcpkgs/hyprland-qtutils/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprland-qtutils' 2 | pkgname=hyprland-qtutils 3 | version=0.1.4 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | hostmakedepends=" 10 | cmake 11 | pkgconf 12 | " 13 | makedepends=" 14 | hyprutils 15 | hyprland-qt-support 16 | " 17 | qtmakedepends=" 18 | qt6-base-devel 19 | qt6-base-private-devel 20 | qt6-declarative-private-devel 21 | qt6-declarative-devel 22 | qt6-tools-devel 23 | qt6-wayland-devel 24 | qt6-wayland-private-devel 25 | " 26 | hostmakedepends+=" ${qtmakedepends}" 27 | makedepends+=" ${qtmakedepends}" 28 | short_desc="Qt/QML utility apps for Hyprland" 29 | maintainer="Makrennel " 30 | license="BSD-3-Clause" 31 | homepage="https://github.com/hyprwm/hyprland-qtutils" 32 | distfiles="https://github.com/hyprwm/hyprland-qtutils/archive/refs/tags/v${version}.tar.gz" 33 | checksum="56a83f4625feeed86bbc5d744b91d2074330c5aa41adf6e32c023f06f9fb9d34" 34 | 35 | post_install() { 36 | vlicense LICENSE 37 | } 38 | -------------------------------------------------------------------------------- /srcpkgs/hyprland/patches/musl-build-fix.patch: -------------------------------------------------------------------------------- 1 | diff --git a/HyprlandSocket.cpp.e b/HyprlandSocket.cpp 2 | index 4d86192..50b3558 100644 3 | --- a/hyprpm/src/core/HyprlandSocket.cpp 4 | +++ b/hyprpm/src/core/HyprlandSocket.cpp 5 | @@ -5,6 +5,7 @@ 6 | #include 7 | #include 8 | #include 9 | +#include 10 | 11 | static int getUID() { 12 | const auto UID = getuid(); 13 | -------------------------------------------------------------------------------- /srcpkgs/hyprland/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprland' 2 | pkgname=hyprland 3 | version=0.49.0 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | configure_args+=" -DNO_SYSTEMD:BOOL=true" 10 | othermakedepends=" 11 | cmake 12 | cpio 13 | gcc 14 | glslang 15 | hyprwayland-scanner 16 | jq 17 | make 18 | meson 19 | ninja 20 | pkgconf 21 | wayland-devel 22 | " 23 | hostmakedepends=$othermakedepends 24 | makedepends=" 25 | aquamarine 26 | cairo-devel 27 | glaze 28 | hwids 29 | hyprcursor 30 | hyprgraphics 31 | hyprlang 32 | hyprutils 33 | libdisplay-info-devel 34 | libdrm-devel 35 | libgbm-devel 36 | libglvnd-devel 37 | libinput-devel 38 | libliftoff-devel 39 | libseat-devel 40 | libxcb-devel 41 | libXcursor-devel 42 | libxkbcommon-devel 43 | pango-devel 44 | re2-devel 45 | tomlplusplus 46 | wayland-devel 47 | wayland-protocols 48 | xcb-util-errors-devel 49 | xcb-util-renderutil-devel 50 | xcb-util-wm-devel 51 | xorg-server-xwayland 52 | " 53 | short_desc="Dynamic tiling Wayland compositor that doesn't sacrifice on its looks" 54 | maintainer="Makrennel " 55 | license="BSD-3-Clause" 56 | homepage="https://hyprland.org/" 57 | changelog="https://github.com/hyprwm/Hyprland/releases" 58 | distfiles="https://github.com/hyprwm/Hyprland/releases/download/v${version}/source-v${version}.tar.gz" 59 | checksum="fd96fb043cfeda09a1ab9a5eb69fee55562475c0c6a41f79dad2bcc652dc5730" 60 | 61 | if [ "$XBPS_TARGET_LIBC" = "musl" ]; then 62 | configure_args+=" -DCMAKE_CXX_FLAGS=\"-lexecinfo\"" 63 | makedepends+=" libexecinfo-devel" 64 | depends+=" libexecinfo" 65 | fi 66 | 67 | post_install() { 68 | # license 69 | vlicense LICENSE 70 | 71 | # headers 72 | vmkdir usr/include/hyprland 73 | vmkdir usr/include/hyprland/protocols 74 | vmkdir usr/share/pkgconfig 75 | 76 | cmake --build ./build --config Release --target generate-protocol-headers 77 | 78 | find src -type f \( -name '*.hpp' -o -name '*.h' -o -name '*.inc' \) -print0 | cpio --quiet -0dump ${DESTDIR}/usr/include/hyprland 79 | install -Dm0644 protocols/*.h* ${DESTDIR}/usr/include/hyprland/protocols 80 | vinstall build/hyprland.pc 644 usr/share/pkgconfig 81 | } 82 | 83 | hyprland-devel_package() { 84 | depends="${sourcepkg}>=${version}_${revision} ${othermakedepends} ${makedepends}" 85 | short_desc="Dynamic tiling Wayland compositor - development files" 86 | pkg_install() { 87 | vmove usr/include 88 | vmove usr/share/pkgconfig 89 | } 90 | } 91 | 92 | -------------------------------------------------------------------------------- /srcpkgs/hyprlang/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprlang' 2 | pkgname=hyprlang 3 | version=0.6.3 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | hostmakedepends=" 10 | cmake 11 | pkgconf 12 | " 13 | makedepends=" 14 | hyprutils 15 | " 16 | short_desc="Official implementation library for the hypr config language" 17 | maintainer="Makrennel " 18 | license="LGPL-3.0-only" 19 | homepage="https://hyprland.org/hyprlang/index.html" 20 | changelog="https://github.com/hyprwm/hyprlang/releases" 21 | distfiles="https://github.com/hyprwm/hyprlang/archive/refs/tags/v${version}.tar.gz" 22 | checksum=f5effe017edc7a0036c20c7ecbea4edc2bfdacbc0f791b283bd21ec202384251 23 | -------------------------------------------------------------------------------- /srcpkgs/hyprlock/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprlock' 2 | pkgname=hyprlock 3 | version=0.8.2 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | hostmakedepends=" 9 | hyprwayland-scanner 10 | pkgconf 11 | wayland-devel 12 | wayland-protocols 13 | " 14 | makedepends=" 15 | cairo-devel 16 | elogind-devel 17 | file-devel 18 | hyprgraphics 19 | hyprlang 20 | hyprutils 21 | hyprwayland-scanner 22 | libdrm-devel 23 | libjpeg-turbo-devel 24 | libwebp-devel 25 | libxkbcommon-devel 26 | MesaLib-devel 27 | pam-devel 28 | pango-devel 29 | sdbus-cpp 30 | wayland-devel 31 | wayland-protocols 32 | " 33 | short_desc="Hyprland's GPU-accelerated screen locking utility" 34 | maintainer="Makrennel " 35 | license="BSD-3-Clause" 36 | homepage="https://github.com/hyprwm/hyprlock" 37 | changelog="https://github.com/hyprwm/${pkgname}/releases" 38 | distfiles="https://github.com/hyprwm/${pkgname}/archive/refs/tags/v${version}.tar.gz" 39 | checksum="14c47e71bdac9213909b11cdda16377dab12e27179d939df5ef2a0083a21e1e8" 40 | 41 | post_install() { 42 | vlicense LICENSE 43 | } 44 | 45 | -------------------------------------------------------------------------------- /srcpkgs/hyprpaper/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprpaper' 2 | pkgname=hyprpaper 3 | version=0.7.5 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | hostmakedepends=" 10 | pkgconf 11 | wayland-devel 12 | hyprutils 13 | hyprwayland-scanner 14 | " 15 | makedepends=" 16 | cairo-devel 17 | file-devel 18 | libjpeg-turbo-devel 19 | libwebp-devel 20 | hyprgraphics 21 | hyprland-protocols 22 | hyprlang 23 | hyprwayland-scanner 24 | pango-devel 25 | wayland-devel 26 | wayland-protocols 27 | wlroots-devel 28 | " 29 | short_desc="Fast wallpaper utility for wlroots compositors with IPC controls" 30 | maintainer="Makrennel " 31 | license="BSD-3-Clause" 32 | homepage="https://github.com/hyprwm/hyprpaper" 33 | distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz" 34 | checksum="93efc089c7051e6727ac5eac402ebd254199e93ac3efd6fe7dd37a52ddc1cc33" 35 | 36 | post_install() { 37 | vlicense LICENSE 38 | } 39 | 40 | -------------------------------------------------------------------------------- /srcpkgs/hyprpolkitagent/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprpolkitagent' 2 | pkgname=hyprpolkitagent 3 | version=0.1.2 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | hostmakedepends=" 10 | cmake 11 | pkgconf 12 | " 13 | makedepends=" 14 | hyprland-qt-support 15 | hyprlang 16 | hyprutils 17 | " 18 | qtmakedepends=" 19 | polkit-qt6-devel 20 | qt6-base-devel 21 | qt6-declarative-devel 22 | qt6-tools-devel 23 | qt6-wayland-devel 24 | " 25 | hostmakedepends+=" ${qtmakedepends}" 26 | makedepends+=" ${qtmakedepends}" 27 | short_desc="Simple polkit authentication agent for Hyprland, written in QT/QML" 28 | maintainer="Makrennel " 29 | license="BSD-3-Clause" 30 | homepage="https://github.com/hyprwm/hyprpolkitagent" 31 | distfiles="https://github.com/hyprwm/hyprpolkitagent/archive/refs/tags/v${version}.tar.gz" 32 | checksum=2aa642a55aab000ac340c9209063a3068fda5b419ad83116f3c87532f06b0a79 33 | 34 | post_install() { 35 | vlicense LICENSE 36 | } 37 | -------------------------------------------------------------------------------- /srcpkgs/hyprsunset/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprsunset' 2 | pkgname=hyprsunset 3 | version=0.2.0 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | hostmakedepends=" 10 | cmake 11 | git 12 | hyprwayland-scanner 13 | pkgconf 14 | " 15 | makedepends=" 16 | hyprwayland-scanner 17 | hyprland-protocols 18 | hyprutils 19 | wayland-devel 20 | wayland-protocols 21 | " 22 | short_desc="An application to enable a blue-light filter on Hyprland" 23 | maintainer="Makrennel " 24 | license="BSD-3-Clause" 25 | homepage="https://github.com/hyprwm/hyprsunset" 26 | distfiles="https://github.com/hyprwm/hyprsunset/archive/refs/tags/v${version}.tar.gz" 27 | checksum=178d2b6c0042e005770eb31492fb7583c9fd25e37351a29f44bff56e87a52ad3 28 | 29 | post_install() { 30 | vlicense LICENSE 31 | } 32 | -------------------------------------------------------------------------------- /srcpkgs/hyprsysteminfo/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprsysteminfo' 2 | pkgname=hyprsysteminfo 3 | version=0.1.3 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | hostmakedepends=" 10 | cmake 11 | pkgconf 12 | " 13 | makedepends=" 14 | hyprland-qt-support 15 | hyprutils 16 | " 17 | qtmakedepends=" 18 | qt6-base-devel 19 | qt6-base-private-devel 20 | qt6-declarative-devel 21 | qt6-declarative-private-devel 22 | qt6-tools-devel 23 | qt6-wayland-devel 24 | qt6-wayland-private-devel 25 | " 26 | hostmakedepends+=" ${qtmakedepends}" 27 | makedepends+=" ${qtmakedepends}" 28 | short_desc="A tiny qt6/qml application to display information about the running system" 29 | maintainer="Makrennel " 30 | license="BSD-3-Clause" 31 | homepage="https://github.com/hyprwm/hyprsysteminfo" 32 | distfiles="https://github.com/hyprwm/hyprsysteminfo/archive/refs/tags/v${version}.tar.gz" 33 | checksum=359298d926e0a9ec670ff5b5100c1d08392a85126ea1d8f89f723d634fd218ce 34 | 35 | post_install() { 36 | vlicense LICENSE 37 | } 38 | -------------------------------------------------------------------------------- /srcpkgs/hyprutils/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprutils' 2 | pkgname=hyprutils 3 | version=0.7.1 4 | revision=1 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_BUILD_TYPE:STRING=Release" 8 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 9 | hostmakedepends=" 10 | pkgconf 11 | " 12 | makedepends=" 13 | pixman-devel 14 | " 15 | short_desc="A small C++ library used across the Hypr* ecosystem" 16 | maintainer="Makrennel " 17 | license="BSD-3-Clause" 18 | homepage="https://github.com/hyprwm/hyprutils" 19 | distfiles="https://github.com/hyprwm/hyprutils/archive/refs/tags/v${version}.tar.gz" 20 | checksum=bcbf05252b392b8837eec9ba9855ff6ddab571f9795917c7139215ae4b2cf1bc 21 | 22 | post_install() { 23 | vlicense LICENSE 24 | } 25 | 26 | -------------------------------------------------------------------------------- /srcpkgs/hyprwayland-scanner/template: -------------------------------------------------------------------------------- 1 | # Template file for 'hyprwayland-scanner' 2 | pkgname=hyprwayland-scanner 3 | version=0.4.4 4 | revision=1 5 | build_style=cmake 6 | hostmakedepends=" 7 | pkgconf 8 | " 9 | makedepends=" 10 | pugixml-devel 11 | " 12 | short_desc="Hyprland's implementation of wayland-scanner in/for C++" 13 | maintainer="Makrennel " 14 | license="BSD-3-Clause" 15 | homepage="https://github.com/hyprwm/hyprwayland-scanner" 16 | distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz" 17 | checksum=ac73f626019f8d819ff79a5fca06ce4768ce8a3bded6f48c404445f3afaa25ac 18 | 19 | post_install() { 20 | vlicense LICENSE 21 | } 22 | 23 | -------------------------------------------------------------------------------- /srcpkgs/libspng/template: -------------------------------------------------------------------------------- 1 | # Template file for 'libspng' 2 | pkgname=libspng 3 | version=0.7.4 4 | revision=1 5 | build_style=meson 6 | hostmakedepends=" 7 | cmake 8 | pkgconf 9 | " 10 | makedepends=" 11 | zlib-devel 12 | " 13 | short_desc="Simple, modern libpng alternative" 14 | maintainer="Makrennel " 15 | license="BSD-2-Clause" 16 | homepage="https://libspng.org/" 17 | distfiles="https://github.com/randy408/libspng/archive/refs/tags/v${version}.tar.gz" 18 | checksum="47ec02be6c0a6323044600a9221b049f63e1953faf816903e7383d4dc4234487" 19 | 20 | post_install() { 21 | vlicense LICENSE 22 | } 23 | -------------------------------------------------------------------------------- /srcpkgs/sdbus-cpp/template: -------------------------------------------------------------------------------- 1 | # Template file for 'sdbus-cpp' 2 | pkgname=sdbus-cpp 3 | version=2.1.0 4 | revision=1 5 | build_style=cmake 6 | hostmakedepends=" 7 | cmake 8 | meson 9 | ninja 10 | pkgconf 11 | git 12 | m4 13 | rsync 14 | gperf 15 | " 16 | makedepends=" 17 | elogind 18 | elogind-devel 19 | libcap-devel 20 | libelogind 21 | libmount-devel 22 | " 23 | short_desc="High-level C++ D-Bus library to provide API in modern C++" 24 | maintainer="Makrennel " 25 | license="LGPL-2.1-only" 26 | homepage="https://github.com/Kistler-Group/sdbus-cpp" 27 | changelog="https://github.com/Kistler-Group/${pkgname}/releases" 28 | distfiles="https://github.com/Kistler-Group/${pkgname}/archive/refs/tags/v${version}.tar.gz" 29 | checksum=6025e5dc6cddd532ff960d14e68ced5f42a1916b23a73fea6bcb437f06992eaf 30 | 31 | post_install() { 32 | vlicense COPYING 33 | vlicense COPYING-LGPL-Exception 34 | } 35 | -------------------------------------------------------------------------------- /srcpkgs/tomlplusplus/template: -------------------------------------------------------------------------------- 1 | # Template file for 'tomlplusplus' 2 | pkgname=tomlplusplus 3 | version=3.4.0 4 | revision=1 5 | build_style=meson 6 | hostmakedepends=" 7 | cmake 8 | pkgconf 9 | " 10 | short_desc="Header-only TOML config file parser and serializer for C++17" 11 | maintainer="Makrennel " 12 | license="MIT" 13 | homepage="https://marzer.github.io/tomlplusplus/" 14 | distfiles="https://github.com/marzer/${pkgname}/archive/refs/tags/v${version}.tar.gz" 15 | checksum=8517f65938a4faae9ccf8ebb36631a38c1cadfb5efa85d9a72e15b9e97d25155 16 | 17 | post_install() { 18 | vlicense LICENSE 19 | } 20 | 21 | -------------------------------------------------------------------------------- /srcpkgs/xdg-desktop-portal-hyprland/template: -------------------------------------------------------------------------------- 1 | # Template file for 'xdg-desktop-portal-hyprland' 2 | pkgname=xdg-desktop-portal-hyprland 3 | version=1.3.9 4 | revision=2 5 | build_style=cmake 6 | configure_args+=" --no-warn-unused-cli" 7 | configure_args+=" -DCMAKE_INSTALL_PREFIX:PATH=/usr" 8 | configure_args+=" -DCMAKE_INSTALL_LIBEXECDIR:PATH=/usr/libexec" 9 | hostmakedepends=" 10 | cmake 11 | git 12 | hyprwayland-scanner 13 | pkgconf 14 | qt6-base-devel 15 | scdoc 16 | wayland-devel 17 | " 18 | makedepends=" 19 | elogind-devel 20 | hyprland-protocols 21 | hyprlang 22 | hyprutils 23 | hyprwayland-scanner 24 | libgbm-devel 25 | libdrm-devel 26 | pipewire-devel 27 | qt6-base-devel 28 | qt6-wayland-devel 29 | sdbus-cpp 30 | wayland-devel 31 | wayland-protocols 32 | " 33 | depends=" 34 | xdg-desktop-portal 35 | " 36 | short_desc="Backend of xdg-desktop-portal for Hyprland" 37 | maintainer="Makrennel " 38 | license="BSD-3-Clause" 39 | homepage="https://github.com/hyprwm/xdg-desktop-portal-hyprland" 40 | distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz" 41 | checksum=3f7d94fd408ed5e3a9b639d3dd8502e2169decc34f285e8552434da5fddf497e 42 | 43 | post_install() { 44 | vlicense LICENSE 45 | } 46 | 47 | --------------------------------------------------------------------------------