mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-08 06:32:59 -04:00
134 lines
3.8 KiB
Bash
134 lines
3.8 KiB
Bash
# Copyright 2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
inherit desktop optfeature shell-completion systemd tmpfiles xdg-utils
|
|
|
|
DESCRIPTION="Desktop shell for wayland compositors built with Quickshell"
|
|
HOMEPAGE="https://github.com/AvengeMedia/DankMaterialShell"
|
|
# dms source code & QML (quickshell) files
|
|
SRC_URI="https://github.com/AvengeMedia/DankMaterialShell/releases/download/v${PV}/dms-cli-${PV}.tar.gz
|
|
https://github.com/AvengeMedia/DankMaterialShell/releases/download/v${PV}/dms-qml.tar.gz -> dms-qml-${PV}.tar.gz"
|
|
|
|
S="${WORKDIR}/dms-cli-${PV}"
|
|
|
|
LICENSE="MIT"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64"
|
|
IUSE="cups greeter"
|
|
RESTRICT="strip"
|
|
|
|
DEPEND="
|
|
app-misc/jq
|
|
dev-cpp/cli11
|
|
dev-cpp/cpptrace[unwind]
|
|
dev-qt/qtbase:6[dbus,wayland,opengl,vulkan,widgets]
|
|
dev-qt/qtdeclarative:6[opengl,vulkan]
|
|
dev-qt/qtmultimedia:6[dbus,opengl,vulkan,wayland]
|
|
dev-qt/qtshadertools:6
|
|
dev-qt/qtwayland:6
|
|
gui-apps/quickshell
|
|
sys-apps/accountsservice
|
|
sys-apps/xdg-desktop-portal-gtk[wayland]
|
|
sys-power/upower
|
|
kde-frameworks/kimageformats
|
|
cups? ( net-print/cups-pk-helper )
|
|
greeter? ( gui-libs/greetd )
|
|
"
|
|
RDEPEND="${DEPEND}"
|
|
BDEPEND="
|
|
dev-build/cmake
|
|
dev-lang/go
|
|
dev-util/pkgconf
|
|
"
|
|
|
|
# set variables
|
|
QML_DIR="${WORKDIR}"/dms # qml assets location
|
|
GRT_DIR="${QML_DIR}"/Modules/Greetd # greeter location
|
|
|
|
src_unpack() {
|
|
# unpack dms source
|
|
unpack dms-cli-"${PV}".tar.gz
|
|
# unpack QML assets in ${QML_DIR}
|
|
mkdir -p ${QML_DIR} || die "failed to create directory: ${QML_DIR}"
|
|
cd "${QML_DIR}" || die "cd into ${QML_DIR} failed"
|
|
unpack dms-qml-"${PV}".tar.gz
|
|
}
|
|
|
|
src_configure() {
|
|
if use greeter; then
|
|
# set DMS_PATH: /usr/share/quickshell/dms
|
|
sed -i 's|^DMS_PATH=.*$|DMS_PATH="/usr/share/quickshell/dms"|' \
|
|
"${GRT_DIR}"/assets/dms-greeter
|
|
|
|
# fix tmpfile usergroup: greeter -> greetd
|
|
sed -i "s/\sgreeter/ greetd/g" "${QML_DIR}"/systemd/tmpfiles-dms-greeter.conf
|
|
fi
|
|
|
|
default
|
|
}
|
|
|
|
src_compile() {
|
|
# build dms distro binary
|
|
emake VERSION="${PV}" dist
|
|
|
|
# generate shell completions
|
|
"${S}"/bin/dms-linux-"${ARCH}" completion bash > "${S}"/dms-bashcomp
|
|
"${S}"/bin/dms-linux-"${ARCH}" completion zsh > "${S}"/dms-zshcomp
|
|
}
|
|
|
|
src_install() {
|
|
# install dms binary
|
|
newbin "${S}"/bin/dms-linux-"${ARCH}" dms
|
|
|
|
if use greeter; then
|
|
dobin "${GRT_DIR}"/assets/dms-greeter
|
|
newtmpfiles "${QML_DIR}"/systemd/tmpfiles-dms-greeter.conf dms-greeter.conf
|
|
fi
|
|
|
|
# install qml sources at /usr/share/quickshell/dms
|
|
insinto /usr/share/quickshell
|
|
doins -r "${QML_DIR}"
|
|
|
|
# install shell completions
|
|
newbashcomp "${S}"/dms-bashcomp dms
|
|
newzshcomp "${S}"/dms-zshcomp _dms
|
|
|
|
# systemd unit
|
|
systemd_douserunit "${QML_DIR}"/assets/systemd/dms.service
|
|
|
|
# desktop entry and icon
|
|
domenu "${QML_DIR}"/assets/dms-open.desktop
|
|
doicon -s scalable "${QML_DIR}"/assets/danklogo.svg
|
|
}
|
|
|
|
pkg_postinst() {
|
|
tmpfiles_process dms-greeter.conf
|
|
xdg_desktop_database_update
|
|
xdg_icon_cache_update
|
|
|
|
optfeature_header "Optional programs for extra features:"
|
|
optfeature "Audio visualizer" media-sound/cava
|
|
optfeature "I2C monitor brightness control" app-misc/ddcutil
|
|
optfeature "Power profile options" sys-power/power-profiles-daemon
|
|
optfeature "Volume & Speaker control" media-video/wireplumber
|
|
optfeature "Bluetooth & file transfer" net-wireless/bluez
|
|
optfeature "Calendar integration" app-misc/khal
|
|
optfeature "Fingerprint unlock notifier" sys-auth/fprintfd
|
|
optfeature "Wallpaper based colorscheme" x11-misc/matugen
|
|
optfeature "Wifi & Ethernet connection" net-misc/networkmanager
|
|
|
|
if use greeter; then
|
|
elog "\nTo use dms-greeter as your default greetd greeter run the following:\n"
|
|
elog " \$ dms greeter enable"
|
|
elog " \$ systemctl disable --now gdm.service sddm.service lightdm.service"
|
|
elog " \$ systemctl enable --now greetd.service"
|
|
fi
|
|
}
|
|
|
|
pkg_postrm() {
|
|
xdg_desktop_database_update
|
|
xdg_icon_cache_update
|
|
}
|