# Hyproverlay

Hyproverlay is a Gentoo GNU/Linux Portage overlay dedicated to software from the
Hypr-* ecosystem. Its primary objective is to follow upstream development as
closely as possible, providing timely updates while minimizing divergence from
upstream sources.

## IRC channel

If you've got any questions, feel free to join us over on
[#hyproverlay](https://web.libera.chat/?channel=#hyproverlay) on `libera.chat`.

## Installation

### Repository

#### eselect-repository (recommended)

To install the repository automatically through `eselect repository`, first
install `app-eselect/eselect-repository`:

```bash
emerge --ask --noreplace app-eselect/eselect-repository
```

Add this repository:

```bash
eselect repository enable hyproverlay
```

#### Manual

To install the repository manually, write the following into
`/etc/portage/repos.conf/hyproverlay.conf`:

```ini
[hyproverlay]
location = /var/db/repos/hyproverlay
sync-type = git
sync-uri = https://codeberg.org/hyproverlay/hyproverlay.git
```

### Synchronization

Synchronize the repository:

```bash
emerge --sync hyproverlay
```

#### Testing

The default `main` branch is manually updated from the `dev` branch after
review. Changes will be first pushed to the `dev` branch, then merged into
`main`.

To test the changes early and switch to the `dev` branch, you can add
`sync-git-clone-extra-opts = --branch dev` to
`/etc/portage/repos.conf/eselect-repo.conf` or whatever file under
`/etc/portage/repos.conf/` that contains the `[hyproverlay]` section:

```ini
[hyproverlay]
location = /var/db/repos/hyproverlay
sync-type = git
sync-uri = https://codeberg.org/hyproverlay/hyproverlay.git
sync-git-clone-extra-opts = --branch dev
```

If the repository has already been cloned in `/var/db/repos/hyproverlay`, remove
the existing clone first, then sync the overlay again:

```bash
rm -rf /var/db/repos/hyproverlay
emerge --sync hyproverlay
```

### Usage

With the repository [installed](#repository) and [synced](#synchronization),
install Hyprland with:

```bash
emerge --ask gui-wm/hyprland
```

Other tools and scripts for the Hyprland ecosystem are available as well. To
install the most common ones:

```bash
emerge --ask \
  gui-apps/hyprlock \
  gui-apps/hypridle \
  gui-libs/xdg-desktop-portal-hyprland \
  gui-apps/hyprpaper
```

## Motivation

After discussions with the `::gentoo` and `::guru` maintainers, it was concluded
that maintaining Hypr-* packages in a dedicated overlay is the most appropriate
approach. This decision avoids the overhead and limitations associated with
proxy maintenance in ::gentoo or ::guru, while enabling faster iteration, closer
alignment with upstream changes, and more focused maintenance of the Hypr-*
ecosystem.

## External Resources

- Gentoo Pull Request discussing the motivation and background for this overlay:
  [https://github.com/gentoo/gentoo/pull/44644](https://github.com/gentoo/gentoo/pull/44644).
