Install this version:
emerge -a =gui-apps/caelestia-shell-2.4.0
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =gui-apps/caelestia-shell-2.4.0
Or alternatively:
emerge --autounmask-write -a =gui-apps/caelestia-shell-2.4.0
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 2.4.0 | 8 | ~amd64 | 0 |
# Copyright 2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
SHELL_ARCHIVE="github.com/caelestia-dots/shell/archive/refs/tags"
DESCRIPTION="Caelestia Quickshell desktop shell (Hyprland)"
HOMEPAGE="https://github.com/caelestia-dots/shell"
SRC_URI="https://${SHELL_ARCHIVE}/v${PV}.tar.gz -> ${PN}-${PV}.tar.gz"
S="${WORKDIR}/shell-${PV}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
# Qt6 6.9+ (upstream: qt_standard_project_setup(REQUIRES 6.9)).
COMMON_DEPEND="
dev-qt/m3shapes
>=dev-qt/qtbase-6.9:6[concurrent,dbus,gui,network,sql,widgets]
>=dev-qt/qtdeclarative-6.9:6
sci-libs/libqalculate
media-libs/aubio
media-video/pipewire
media-sound/libcava
sys-apps/lm-sensors
sci-libs/fftw:3.0=
"
DEPEND="${COMMON_DEPEND}"
RDEPEND="
${COMMON_DEPEND}
>=dev-qt/qtshadertools-6.9:6
>=gui-apps/quickshell-0.3.0_p20260710
gui-apps/caelestia-cli
app-misc/ddcutil
app-misc/brightnessctl
app-shells/fish
dev-libs/libxml2
gui-apps/swappy
gui-apps/wl-clipboard
gui-wm/hyprland
media-fonts/material-symbols-variable
media-fonts/rubik
media-fonts/cascadia-code
media-fonts/noto
media-fonts/noto-cjk
media-fonts/noto-emoji
net-misc/networkmanager
sys-power/power-profiles-daemon
sys-process/procps
x11-libs/libnotify
x11-misc/xkeyboard-config
"
BDEPEND="
>=dev-qt/qtshadertools-6.9:6
virtual/pkgconfig
"
PATCHES=(
# Select one provider-neutral facial-authentication context and add Gaze
# alongside the existing Howdy PAM backend.
"${FILESDIR}/${PN}-configurable-facial-provider.patch"
# Ignore transient no-main-keyboard gaps when deciding whether a valid
# keyboard layout change should produce a notification.
"${FILESDIR}/${PN}-ignore-transient-keyboard-layout-gaps.patch"
# Add missing Qt includes (QObject, QVariant, QQmlEngine, QString, QTimer,
# QPointer, QStringList) that upstream relied on transitively; Qt 6.11
# dropped those transitive includes, so the plugin fails to build without
# them.
"${FILESDIR}/${PN}-qt6.11-includes.patch"
# The Keep Awake idle inhibitor hangs off a PanelWindow built once inline
# in a Singleton. A monitor hotplug destroys it and nothing rebuilds it, so
# the toggle silently stops inhibiting while still reporting itself active.
"${FILESDIR}/${PN}-rebuild-idle-inhibitor-window.patch"
# Raise the notification's sender when its default action is invoked.
# Windows carrying a focus_on_activate=false rule cannot raise themselves
# (Wayland cannot distinguish an app's self-activation from a user click),
# and the daemon is the only party that knows the click happened.
"${FILESDIR}/${PN}-focus-sender-on-notification-action.patch"
)
src_configure() {
local mycmakeargs=(
# Upstream installs with prefix "/" and relative usr/... destinations;
# the cmake eclass prefix /usr would yield /usr/usr/lib.
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/"
# GOTCHA: Gentoo ships Qt6 QML under lib64; the upstream default
# usr/lib/qt6/qml makes Quickshell fail with
# \`module "Caelestia.Config" is not installed\`.
-DINSTALL_QMLDIR=usr/lib64/qt6/qml
# Release tarball has no .git, so upstream's git describe/rev-parse
# fatal-errors -- supply version metadata explicitly.
-DVERSION="${PV}"
-DGIT_REVISION="v${PV}"
-DDISTRIBUTOR="arrans_overlay"
-DINSTALL_QSCONFDIR="usr/share/quickshell/caelestia"
)
cmake_src_configure
}
pkg_postinst() {
elog "Caelestia shell installed. This replaces the manual"
elog "cmake/ninja + 'cmake --install' workflow under"
elog "~/.config/quickshell/caelestia."
elog
elog "Your update-safe overrides in ~/.config/caelestia/ are NOT touched by"
elog "this package: hypr-user.lua, hypr-vars.lua, user-config.fish,"
elog "shell.json."
elog
elog "Launch with: caelestia shell"
elog " (or: qs -p /usr/share/quickshell/caelestia)"
}
dev-qt/m3shapes >=dev-qt/qtbase-6.9:6[concurrent,dbus,gui,network,sql,widgets] >=dev-qt/qtdeclarative-6.9:6 sci-libs/libqalculate media-libs/aubio media-video/pipewire media-sound/libcava sys-apps/lm-sensors sci-libs/fftw:3.0=
dev-qt/m3shapes >=dev-qt/qtbase-6.9:6[concurrent,dbus,gui,network,sql,widgets] >=dev-qt/qtdeclarative-6.9:6 sci-libs/libqalculate media-libs/aubio media-video/pipewire media-sound/libcava sys-apps/lm-sensors sci-libs/fftw:3.0= >=dev-qt/qtshadertools-6.9:6 >=gui-apps/quickshell-0.3.0_p20260710 gui-apps/caelestia-cli app-misc/ddcutil app-misc/brightnessctl app-shells/fish dev-libs/libxml2 gui-apps/swappy gui-apps/wl-clipboard gui-wm/hyprland media-fonts/material-symbols-variable media-fonts/rubik media-fonts/cascadia-code media-fonts/noto media-fonts/noto-cjk media-fonts/noto-emoji net-misc/networkmanager sys-power/power-profiles-daemon sys-process/procps x11-libs/libnotify x11-misc/xkeyboard-config
>=dev-qt/qtshadertools-6.9:6 virtual/pkgconfig
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | caelestia-m3shapes-bdc327b29f95394a732baf3c9b19658ba23755b6.tar.gz | 47635 bytes | https://github.com/soramanew/m3shapes/archive/bdc327b29f95394a732baf3c9b19658ba23755b6.tar.gz |
| DIST | caelestia-shell-2.4.0.tar.gz | 8434894 bytes | https://github.com/caelestia-dots/shell/archive/refs/tags/v2.4.0.tar.gz |