summaryrefslogtreecommitdiffstats
path: root/wm-addons
diff options
context:
space:
mode:
Diffstat (limited to 'wm-addons')
-rwxr-xr-xwm-addons/alock/BUILD10
-rwxr-xr-xwm-addons/alock/CONFIGURE15
-rwxr-xr-xwm-addons/alock/DEPENDS75
-rwxr-xr-xwm-addons/alock/DETAILS30
-rw-r--r--wm-addons/alock/HISTORY18
-rwxr-xr-xwm-addons/alock/INSTALL7
-rwxr-xr-xwm-addons/alock/PRE_BUILD4
-rw-r--r--wm-addons/bbpager/0001-add-missing-includes.patch2
-rwxr-xr-xwm-addons/devilspie/DEPENDS3
-rw-r--r--wm-addons/devilspie/HISTORY3
-rwxr-xr-xwm-addons/fuzzel/CONFIGURE1
-rwxr-xr-xwm-addons/fuzzel/DEPENDS27
-rwxr-xr-xwm-addons/fuzzel/DETAILS24
-rw-r--r--wm-addons/fuzzel/HISTORY6
-rwxr-xr-xwm-addons/hyprcursor/CONFIGURE1
-rwxr-xr-xwm-addons/hyprcursor/DEPENDS10
-rwxr-xr-xwm-addons/hyprcursor/DETAILS26
-rw-r--r--wm-addons/hyprcursor/HISTORY3
-rwxr-xr-xwm-addons/hyprcursor/PREPARE2
-rwxr-xr-xwm-addons/hyprlang/CONFIGURE1
-rwxr-xr-xwm-addons/hyprlang/DEPENDS5
-rwxr-xr-xwm-addons/hyprlang/DETAILS29
-rw-r--r--wm-addons/hyprlang/HISTORY12
-rwxr-xr-xwm-addons/hyprlang/PREPARE2
-rwxr-xr-xwm-addons/hyprpaper/BUILD5
-rwxr-xr-xwm-addons/hyprpaper/CONFIGURE3
-rwxr-xr-xwm-addons/hyprpaper/DEPENDS14
-rwxr-xr-xwm-addons/hyprpaper/DETAILS28
-rw-r--r--wm-addons/hyprpaper/HISTORY28
-rwxr-xr-xwm-addons/hyprpaper/INSTALL5
-rwxr-xr-xwm-addons/hyprpaper/PREPARE2
-rw-r--r--wm-addons/i3lock/HISTORY4
-rw-r--r--wm-addons/i3status/0001-disable-pulseaudio.patch42
-rwxr-xr-xwm-addons/i3status/BUILD1
-rwxr-xr-xwm-addons/i3status/CONFIGURE0
-rwxr-xr-xwm-addons/i3status/DEPENDS3
-rwxr-xr-xwm-addons/i3status/DETAILS6
-rw-r--r--wm-addons/i3status/HISTORY5
-rwxr-xr-xwm-addons/i3status/PRE_BUILD6
-rwxr-xr-xwm-addons/jgmenu/BUILD2
-rwxr-xr-xwm-addons/jgmenu/DEPENDS6
-rwxr-xr-xwm-addons/jgmenu/DETAILS7
-rw-r--r--wm-addons/jgmenu/HISTORY6
-rwxr-xr-xwm-addons/jgmenu/PRE_BUILD6
-rwxr-xr-xwm-addons/libsrm/BUILD37
-rwxr-xr-xwm-addons/libsrm/CONFIGURE7
-rwxr-xr-xwm-addons/libsrm/DEPENDS16
-rwxr-xr-xwm-addons/libsrm/DETAILS36
-rw-r--r--wm-addons/libsrm/HISTORY8
-rwxr-xr-xwm-addons/libsrm/INSTALL15
-rwxr-xr-xwm-addons/libsrm/PREPARE2
-rwxr-xr-xwm-addons/louvre/BUILD37
-rwxr-xr-xwm-addons/louvre/CONFIGURE4
-rwxr-xr-xwm-addons/louvre/DEPENDS23
-rwxr-xr-xwm-addons/louvre/DETAILS27
-rw-r--r--wm-addons/louvre/HISTORY22
-rwxr-xr-xwm-addons/louvre/INSTALL16
-rwxr-xr-xwm-addons/louvre/PREPARE2
-rwxr-xr-xwm-addons/mako-notification/CONFIGURE2
-rwxr-xr-xwm-addons/mako-notification/DEPENDS34
-rwxr-xr-xwm-addons/mako-notification/DETAILS17
-rw-r--r--wm-addons/mako-notification/HISTORY3
-rwxr-xr-xwm-addons/razor-qt/BUILD5
-rwxr-xr-xwm-addons/razor-qt/CONFLICTS1
-rwxr-xr-xwm-addons/razor-qt/DEPENDS9
-rwxr-xr-xwm-addons/razor-qt/DETAILS21
-rwxr-xr-xwm-addons/razor-qt/DOWNLOAD1
-rw-r--r--wm-addons/razor-qt/HISTORY25
-rwxr-xr-xwm-addons/razor-qt/INSTALL1
-rwxr-xr-xwm-addons/razor-qt/PRE_BUILD1
-rwxr-xr-xwm-addons/razor-qt/UP_TRIGGERS1
-rwxr-xr-xwm-addons/rofi/DETAILS4
-rw-r--r--wm-addons/rofi/HISTORY3
-rwxr-xr-xwm-addons/swaybg/CONFIGURE1
-rwxr-xr-xwm-addons/swaybg/DEPENDS10
-rwxr-xr-xwm-addons/swaybg/DETAILS17
-rw-r--r--wm-addons/swaybg/HISTORY3
-rwxr-xr-xwm-addons/swayidle/CONFIGURE1
-rwxr-xr-xwm-addons/swayidle/DEPENDS13
-rwxr-xr-xwm-addons/swayidle/DETAILS19
-rw-r--r--wm-addons/swayidle/HISTORY7
-rwxr-xr-xwm-addons/swaylock/CONFIGURE1
-rwxr-xr-xwm-addons/swaylock/DEPENDS15
-rwxr-xr-xwm-addons/swaylock/DETAILS22
-rw-r--r--wm-addons/swaylock/HISTORY5
-rwxr-xr-xwm-addons/tabbed/BUILD2
-rwxr-xr-xwm-addons/tabbed/CONFIGURE4
-rwxr-xr-xwm-addons/tabbed/DEPENDS8
-rwxr-xr-xwm-addons/tabbed/DETAILS39
-rw-r--r--wm-addons/tabbed/HISTORY15
-rwxr-xr-xwm-addons/tabbed/INSTALL7
-rwxr-xr-xwm-addons/tabbed/PREPARE9
-rwxr-xr-xwm-addons/tabbed/PRE_BUILD42
-rw-r--r--wm-addons/tabbed/alpha.patch45
-rw-r--r--wm-addons/tabbed/separator_xr.patch36
-rwxr-xr-xwm-addons/waybar/BUILD2
-rwxr-xr-xwm-addons/waybar/CONFIGURE4
-rwxr-xr-xwm-addons/waybar/DEPENDS107
-rwxr-xr-xwm-addons/waybar/DETAILS40
-rwxr-xr-xwm-addons/waybar/FINAL12
-rw-r--r--wm-addons/waybar/HISTORY25
-rwxr-xr-xwm-addons/waybar/PRE_BUILD6
-rwxr-xr-xwm-addons/wlroots/BUILD10
-rwxr-xr-xwm-addons/wlroots/CONFIGURE8
-rwxr-xr-xwm-addons/wlroots/DEPENDS80
-rwxr-xr-xwm-addons/wlroots/DETAILS34
-rw-r--r--wm-addons/wlroots/HISTORY104
-rwxr-xr-xwm-addons/wlroots/PREPARE5
-rwxr-xr-xwm-addons/wlroots/PRE_SUB_DEPENDS7
-rwxr-xr-xwm-addons/wlroots/REPAIR^all^PRE_SUB_DEPENDS7
-rwxr-xr-xwm-addons/wlroots/SUB_DEPENDS10
111 files changed, 1433 insertions, 224 deletions
diff --git a/wm-addons/alock/BUILD b/wm-addons/alock/BUILD
index 75c8ed8779..5bb5eeaba5 100755
--- a/wm-addons/alock/BUILD
+++ b/wm-addons/alock/BUILD
@@ -1,9 +1,3 @@
-cd $SOURCE_DIRECTORY &&
+OPTS="${ALOCK_OPTS} ${OPTS}" &&
-if [[ "${ALOCK_SHADOW}" = "y" ]]; then
- OPTS="${OPTS} --with-passwd"
-fi &&
-
-OPTS="${OPTS} ${ALOCK_OPTS}" &&
-./configure --prefix $INSTALL_ROOT/usr $OPTS &&
-make
+default_build
diff --git a/wm-addons/alock/CONFIGURE b/wm-addons/alock/CONFIGURE
index f9aea88ec9..25aaa18a8c 100755
--- a/wm-addons/alock/CONFIGURE
+++ b/wm-addons/alock/CONFIGURE
@@ -1,5 +1,10 @@
-message "${PROBLEM_COLOR}Answering yes to 'Use shadow instead of pam'" &&
-message "will install alock suid to root${DEFAULT_COLOR}" &&
-config_query ALOCK_SHADOW "Use Shadow instead of PAM?" n &&
-config_query_option ALOCK_OPTS "Build Hash modules (SHA1, MD5)?" y \
- "--with-hash" "--without-hash"
+# remove obsolete options
+persistent_remove ALOCK_SHADOW &&
+
+config_query_option ALOCK_OPTS "Enable passwd support? (${PROBLEM_COLOR}will install alock suid to root${QUERY_COLOR})" y \
+ "--enable-passwd" \
+ "--disable-passwd" &&
+
+config_query_option ALOCK_OPTS "Enable debugging support?" n \
+ "--enable-debug" \
+ "--disable-debug"
diff --git a/wm-addons/alock/DEPENDS b/wm-addons/alock/DEPENDS
index 1a870274d2..0f3e7af3ce 100755
--- a/wm-addons/alock/DEPENDS
+++ b/wm-addons/alock/DEPENDS
@@ -1,32 +1,43 @@
-depends xorg-libs &&
-
-optional_depends imlib2 \
- "--with-imlib2" \
- "--without-imlib2" \
- "for imlib2 support" &&
-
-optional_depends libxrender \
- "--with-xrender" \
- "--without-xrender" \
- "for Xrender support" &&
-
-optional_depends libxcursor \
- "--with-xcursor" \
- "--without-xcursor" \
- "for Xcursor support" &&
-
-optional_depends libxpm \
- "--with-xpm" \
- "--without-xpm" \
- "for XPM support" &&
-
-if [[ "${ALOCK_SHADOW}" = "y" ]]; then
- optional_depends shadow \
- "" "" \
- "for Shadow support"
-else
- optional_depends linux-pam \
- "--with-pam" \
- "--without-pam" \
- "for PAM support"
-fi
+depends libx11 &&
+
+optional_depends libxext "" "" "for feedback indicator" &&
+
+optional_depends libgcrypt \
+ "--enable-hash" \
+ "--disable-hash" \
+ "for hash support" &&
+
+optional_depends imlib2 \
+ "--enable-imlib2" \
+ "--disable-imlib2" \
+ "for Imlib2 support" &&
+
+optional_depends libxrender \
+ "--enable-xrender" \
+ "--disable-xrender" \
+ "for Xrender support" &&
+
+optional_depends libxcursor \
+ "--enable-xcursor" \
+ "--disable-xcursor" \
+ "for Xcursor support" &&
+
+optional_depends libxpm \
+ "--enable-xpm" \
+ "--disable-xpm" \
+ "for XPM support" &&
+
+optional_depends linux-pam \
+ "--enable-pam" \
+ "--disable-pam" \
+ "for PAM support" &&
+
+suggest_depends dunst \
+ "--with-dunst" \
+ "--without-dunst" \
+ "for dunst notification daemon integration" &&
+
+suggest_depends xbacklight \
+ "--with-xbacklight" \
+ "--without-xbacklight" \
+ "for xbacklight integration"
diff --git a/wm-addons/alock/DETAILS b/wm-addons/alock/DETAILS
index 6971a53307..c0915c7498 100755
--- a/wm-addons/alock/DETAILS
+++ b/wm-addons/alock/DETAILS
@@ -1,18 +1,22 @@
SPELL=alock
- VERSION=svn-60
- SOURCE="${SPELL}-${VERSION}.tar.bz2"
- SOURCE_URL[0]=http://${SPELL}.googlecode.com/files/${SOURCE}
- SOURCE_HASH=sha512:f2470786bad0c3b4c5f88170939e7c672a0872ba1552045c1098e7e519764b83b0bd947b9f2129899b8f5addbf42f8cf9735e64504ee6b5e6d110e2da8832096
+ VERSION=2.5.1
+ SECURITY_PATCH=1
+ SOURCE=${SPELL}-${VERSION}.tar.gz
+ SOURCE_URL[0]=https://github.com/Arkq/${SPELL}/archive/refs/tags/v${VERSION}.tar.gz
+ SOURCE_HASH=sha512:e03753ba331c9c8fda25bae4ca29683d9cf89aa0f6c58de3126dea654d5e68ceedbddff87dc94f47b99021c4d01067c887c94e4e5514b481ef38d08f95fc76b9
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
- WEB_SITE="http://alock.googlecode.com/"
- LICENSE[0]=BSD
+ DOCS="LICENSE.txt ${DOCS}"
+ DOC_DIRS=""
+ WEB_SITE=https://github.com/Arkq/alock
+ LICENSE[0]=MIT
ENTERED=20080112
- SHORT="Locks the local X display until password is entered"
+ SHORT="simple screen lock application for X server"
cat << EOF
-alock locks the current X server until the user enters a password via the
-keyboard. If the authentication was successful the X server is unlocked and
-the user can continue to work.
-
-alock does not provide any fancy animations like xlock or xscreensaver and
-never will. Its just for locking the current X session.
+Alock is a simple screen lock application, which locks the X server until the
+correct password is provided. If the authentication was successful, the X
+server is unlocked and the user can continue to work. When 'alock' is started
+it just waits for the first keypress. This first keypress is to indicate that
+the user now wants to type in the password. Such a behavior might seem to be
+annoying at the first glance, however this approach is chosen due to security
+reasons.
EOF
diff --git a/wm-addons/alock/HISTORY b/wm-addons/alock/HISTORY
index 9751c06550..03841961d4 100644
--- a/wm-addons/alock/HISTORY
+++ b/wm-addons/alock/HISTORY
@@ -1,3 +1,21 @@
+2022-09-01 Vlad Glagolev <stealth@sourcemage.org>
+ * DETAILS: updated spell to 2.5.1
+ * DEPENDS: dropped obsolete dependency
+ * *.patch: removed, no longer needed
+
+2022-08-27 Vlad Glagolev <stealth@sourcemage.org>
+ * DETAILS: SECURITY_PATCH=1, correct license to MIT
+ * PRE_BUILD: apply patches
+ * crypt-h.patch: added, to fix a security issue on modern systems
+ * crypt.h: added, to fix a potential security issue
+
+2022-08-25 Vlad Glagolev <stealth@sourcemage.org>
+ * DETAILS: updated spell to 2.5.0
+ * DEPENDS: added missing dependencies
+ * BUILD, CONFIGURE: rewritten
+ * PRE_BUILD: added, autoreconf, apply patch
+ * procps-328.patch: added, to fix dunst integration with older procps
+
2008-03-18 Eric Sandall <sandalle@sourcemage.org>
* DEPENDS: Switch X11-LIBS to the one and only xorg-libs
diff --git a/wm-addons/alock/INSTALL b/wm-addons/alock/INSTALL
index 8c2ebae1e2..5dcd36506f 100755
--- a/wm-addons/alock/INSTALL
+++ b/wm-addons/alock/INSTALL
@@ -1,5 +1,6 @@
default_install &&
-if [[ "${ALOCK_SHADOW}" = "y" ]]; then
- chown -v root:root $INSTALL_ROOT/usr/bin/alock &&
- chmod -v 4111 $INSTALL_ROOT/usr/bin/alock
+
+if list_find "${ALOCK_OPTS}" "--enable-passwd"; then
+ chown -v root:root "${INSTALL_ROOT}/usr/bin/alock" &&
+ chmod -v 4111 "${INSTALL_ROOT}/usr/bin/alock"
fi
diff --git a/wm-addons/alock/PRE_BUILD b/wm-addons/alock/PRE_BUILD
new file mode 100755
index 0000000000..90b3299c05
--- /dev/null
+++ b/wm-addons/alock/PRE_BUILD
@@ -0,0 +1,4 @@
+default_pre_build &&
+cd "${SOURCE_DIRECTORY}" &&
+
+autoreconf -fi
diff --git a/wm-addons/bbpager/0001-add-missing-includes.patch b/wm-addons/bbpager/0001-add-missing-includes.patch
index 761ac942c5..80cc34675b 100644
--- a/wm-addons/bbpager/0001-add-missing-includes.patch
+++ b/wm-addons/bbpager/0001-add-missing-includes.patch
@@ -1,5 +1,5 @@
From 45f8fd2e7c78e85fd53f3a760e0fb2c66862d36b Mon Sep 17 00:00:00 2001
-From: Florian Franzmann <siflfran@hawo.stw.uni-erlangen.de>
+From: Florian Franzmann <bwlf@bandrate.org>
Date: Fri, 1 Mar 2013 22:50:02 +0100
Subject: [PATCH] add missing includes
diff --git a/wm-addons/devilspie/DEPENDS b/wm-addons/devilspie/DEPENDS
index 530c88697b..d19a2d0cf3 100755
--- a/wm-addons/devilspie/DEPENDS
+++ b/wm-addons/devilspie/DEPENDS
@@ -1,3 +1,4 @@
+. "$GRIMOIRE/VDEPENDS" &&
depends xorg-libs &&
depends fontconfig &&
depends freetype2 &&
@@ -5,7 +6,7 @@ depends libglade2 &&
depends gtk+2 &&
depends libxml2 &&
depends zlib &&
-depends atk &&
+vdepends <<< "at-spi2-core >= 2.45.0" &&
depends pango &&
depends glib2 &&
depends startup-notification &&
diff --git a/wm-addons/devilspie/HISTORY b/wm-addons/devilspie/HISTORY
index 277eb29284..b130b86a00 100644
--- a/wm-addons/devilspie/HISTORY
+++ b/wm-addons/devilspie/HISTORY
@@ -1,3 +1,6 @@
+2023-11-12 Thomas Orgis <sobukus@sourcemage.org>
+ * DEPENDS: handle atk deprecation (half-automated)
+
2009-09-10 Donald Johnson <ltdonny@gmail.com>
* DETAILS: line wrapped long desc
diff --git a/wm-addons/fuzzel/CONFIGURE b/wm-addons/fuzzel/CONFIGURE
new file mode 100755
index 0000000000..9f48d22f39
--- /dev/null
+++ b/wm-addons/fuzzel/CONFIGURE
@@ -0,0 +1 @@
+. "${GRIMOIRE}/MESON_CONFIGURE"
diff --git a/wm-addons/fuzzel/DEPENDS b/wm-addons/fuzzel/DEPENDS
new file mode 100755
index 0000000000..ff591a2977
--- /dev/null
+++ b/wm-addons/fuzzel/DEPENDS
@@ -0,0 +1,27 @@
+. "${GRIMOIRE}/MESON_DEPENDS" &&
+depends PKG-CONFIG &&
+depends pixman &&
+depends wayland &&
+depends wayland-protocols &&
+depends fcft &&
+depends tllist &&
+depends scdoc &&
+
+optional_depends libpng \
+ 'png-backend=libpng' \
+ 'png-backend=none' \
+ 'Enable support for PNG icons?' &&
+
+optional_depends librsvg2 \
+ 'svg-backend=librsvg' \
+ 'svg-backend=nanosvg' \
+ 'Enable support for SVG icons? (If yes, cairo dep forced)' &&
+
+if is_depends_enabled $SPELL librsvg2; then
+ depends cairo 'enable-cairo=enabled'
+else
+ optional_depends cairo \
+ 'enable-cairo=enabled' \
+ 'enable-cairo=disabled' \
+ 'Use cairo (required for rounded corners)'
+fi
diff --git a/wm-addons/fuzzel/DETAILS b/wm-addons/fuzzel/DETAILS
new file mode 100755
index 0000000000..d78f2a5afc
--- /dev/null
+++ b/wm-addons/fuzzel/DETAILS
@@ -0,0 +1,24 @@
+# Watch: https://codeberg.org/dnkl/fuzzel/releases /archive/([0-9.]+)[.]tar
+. "${GRIMOIRE}/MESON_FUNCTIONS"
+ SPELL=fuzzel
+ VERSION=1.9.2
+ SOURCE=$SPELL-$VERSION.tar.gz
+SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL
+ SOURCE_URL[0]=https://codeberg.org/dnkl/${SPELL}/archive/${VERSION}.tar.gz
+ SOURCE_HASH=sha512:a92f0b6eb9470aa099651c2f5d095986347565bbd7366bffe0719801dbb1ae4f7e413460c59872d40e910bb1d3bc8195e9d9038a73c2de835bcda77f9372b393
+ LICENSE[0]=MIT
+ WEB_SITE=https://codeberg.org/dnkl/fuzzel/
+ ENTERED=20230810
+ KEYWORDS="wm-addons rofi wofi drun dmenu wayland wlroots launcher"
+ SHORT="application launcher for wayland"
+cat << EOF
+Fuzzel is a Wayland-native application launcher, similar to rofi's drun mode.
+Features:
+
+ * Wayland native
+ * Rofi drun-like mode of operation
+ * dmenu mode where newline separated entries are read from stdin
+ * Emacs key bindings
+ * Icons!
+ * Remembers frequently launched applications
+EOF
diff --git a/wm-addons/fuzzel/HISTORY b/wm-addons/fuzzel/HISTORY
new file mode 100644
index 0000000000..e7c7beac60
--- /dev/null
+++ b/wm-addons/fuzzel/HISTORY
@@ -0,0 +1,6 @@
+2023-08-24 Conner Clere <xenanthropy@sourcemage.org>
+ * DETAILS: VERSION 1.9.2, add watch line, change hash to sha512
+
+2023-08-10 Conner Clere <xenanthropy@sourcemage.org>
+ * CONFIGURE, DEPENDS, DETAILS: version 1.9.1, new spell
+
diff --git a/wm-addons/hyprcursor/CONFIGURE b/wm-addons/hyprcursor/CONFIGURE
new file mode 100755
index 0000000000..90942b1d59
--- /dev/null
+++ b/wm-addons/hyprcursor/CONFIGURE
@@ -0,0 +1 @@
+. "${GRIMOIRE}/CMAKE_CONFIGURE"
diff --git a/wm-addons/hyprcursor/DEPENDS b/wm-addons/hyprcursor/DEPENDS
new file mode 100755
index 0000000000..064fb226e3
--- /dev/null
+++ b/wm-addons/hyprcursor/DEPENDS
@@ -0,0 +1,10 @@
+. "${GRIMOIRE}/CMAKE_DEPENDS" &&
+
+if [[ "${HYPRCURSOR_BRANCH}" == "scm" ]]; then
+ depends git
+fi &&
+
+depends cairo &&
+depends hyprlang &&
+depends librsvg2 &&
+depends libzip
diff --git a/wm-addons/hyprcursor/DETAILS b/wm-addons/hyprcursor/DETAILS
new file mode 100755
index 0000000000..c3c4df1fb9
--- /dev/null
+++ b/wm-addons/hyprcursor/DETAILS
@@ -0,0 +1,26 @@
+. "${GRIMOIRE}/FUNCTIONS"
+. "${GRIMOIRE}/CMAKE_FUNCTIONS"
+ SPELL="hyprcursor"
+if [[ "${HYPRCURSOR_BRANCH}" == "scm" ]]; then
+ VERSION="$(get_scm_version)"
+ SOURCE="${SPELL}-scm.tar.xz"
+ FORCE_DOWNLOAD="on"
+ SOURCE_URL[0]="git_http://github.com/hyprwm/${SPELL}:${SPELL}-scm:main"
+ SOURCE_IGNORE="volatile"
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-scm"
+else
+ VERSION="0.1.5"
+ SOURCE_HASH="sha512:3092b6773a34fa1cab10f83fa48274d79a50cd373dfe8a89d0170a78767a66b5e0cbe57cd1b86bc4bb85371c23ac7425f59e61fb50723a895fef4e7f6039fdfc"
+ SOURCE="${SPELL}-${VERSION}.tar.gz"
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ SOURCE_URL[0]="https://github.com/hyprwm/${SPELL}/archive/refs/tags/v${VERSION}.tar.gz"
+# Watch: https://github.com/hyprwm/hyprcursor/tags tags/v([0-9.]+)[.]tar
+fi
+ WEB_SITE="https://hyprland.org/hyprcursor"
+ ENTERED="20240325"
+ LICENSE[0]="BSD"
+ KEYWORDS="cursor hyprland"
+ SHORT="The hyprland cursor format, library and utilities"
+cat << EOF
+The hyprland cursor format, library and utilities.
+EOF
diff --git a/wm-addons/hyprcursor/HISTORY b/wm-addons/hyprcursor/HISTORY
new file mode 100644
index 0000000000..6f24589255
--- /dev/null
+++ b/wm-addons/hyprcursor/HISTORY
@@ -0,0 +1,3 @@
+2024-03-25 Pavel Vinogradov <public@sourcemage.org>
+ * CONFIGURE, DEPENDS, DETAILS: created a spell, version 0.1.5
+
diff --git a/wm-addons/hyprcursor/PREPARE b/wm-addons/hyprcursor/PREPARE
new file mode 100755
index 0000000000..e38d86f7e9
--- /dev/null
+++ b/wm-addons/hyprcursor/PREPARE
@@ -0,0 +1,2 @@
+. "${GRIMOIRE}/FUNCTIONS" &&
+prepare_select_branch stable scm
diff --git a/wm-addons/hyprlang/CONFIGURE b/wm-addons/hyprlang/CONFIGURE
new file mode 100755
index 0000000000..90942b1d59
--- /dev/null
+++ b/wm-addons/hyprlang/CONFIGURE
@@ -0,0 +1 @@
+. "${GRIMOIRE}/CMAKE_CONFIGURE"
diff --git a/wm-addons/hyprlang/DEPENDS b/wm-addons/hyprlang/DEPENDS
new file mode 100755
index 0000000000..dcf155e2b8
--- /dev/null
+++ b/wm-addons/hyprlang/DEPENDS
@@ -0,0 +1,5 @@
+. "${GRIMOIRE}/CMAKE_DEPENDS" &&
+
+if [[ "${HYPRLANG_BRANCH}" == "scm" ]]; then
+ depends git
+fi
diff --git a/wm-addons/hyprlang/DETAILS b/wm-addons/hyprlang/DETAILS
new file mode 100755
index 0000000000..486043051a
--- /dev/null
+++ b/wm-addons/hyprlang/DETAILS
@@ -0,0 +1,29 @@
+. "${GRIMOIRE}/FUNCTIONS"
+. "${GRIMOIRE}/CMAKE_FUNCTIONS"
+ SPELL="hyprlang"
+if [[ "${HYPRLANG_BRANCH}" == "scm" ]]; then
+ VERSION="$(get_scm_version)"
+ SOURCE="${SPELL}-scm.tar.xz"
+ FORCE_DOWNLOAD="on"
+ SOURCE_URL[0]="git_http://github.com/hyprwm/${SPELL}:${SPELL}-scm:main"
+ SOURCE_IGNORE="volatile"
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-scm"
+else
+ VERSION="0.5.0"
+ SOURCE_HASH="sha512:9e80b936d977d46f9c1a0fc4733c89fb1cf521c767295891427f1ab358f8373839db3fad823f8abfca9d344350813361504f70aa3f6e109b523ab8ec2c3fa833"
+ SOURCE="${SPELL}-${VERSION}.tar.gz"
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ SOURCE_URL[0]="https://github.com/hyprwm/${SPELL}/archive/refs/tags/v${VERSION}.tar.gz"
+# Watch: https://github.com/hyprwm/hyprlang/tags tags/v([0-9.]+)[.]tar
+fi
+ WEB_SITE="https://hyprland.org/hyprlang"
+ ENTERED="20240112"
+ LICENSE[0]="GPL"
+ KEYWORDS="language parser hyprland"
+ SHORT="the official implementation library for the hypr config language"
+cat << EOF
+The hypr configuration language is an extremely efficient, yet easy to
+work with, configuration language for linux applications.
+
+It's user-friendly, easy to grasp, and easy to implement.
+EOF
diff --git a/wm-addons/hyprlang/HISTORY b/wm-addons/hyprlang/HISTORY
new file mode 100644
index 0000000000..7e66892ad8
--- /dev/null
+++ b/wm-addons/hyprlang/HISTORY
@@ -0,0 +1,12 @@
+2024-03-25 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 0.5.0
+
+2024-02-19 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 0.4.0
+
+2024-02-17 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 0.3.2
+
+2024-01-12 Pavel Vinogradov <public@sourcemage.org>
+ * CONFIGURE, DEPENDS, DETAILS: created a spell, version 0.2.1
+
diff --git a/wm-addons/hyprlang/PREPARE b/wm-addons/hyprlang/PREPARE
new file mode 100755
index 0000000000..e38d86f7e9
--- /dev/null
+++ b/wm-addons/hyprlang/PREPARE
@@ -0,0 +1,2 @@
+. "${GRIMOIRE}/FUNCTIONS" &&
+prepare_select_branch stable scm
diff --git a/wm-addons/hyprpaper/BUILD b/wm-addons/hyprpaper/BUILD
new file mode 100755
index 0000000000..c174489020
--- /dev/null
+++ b/wm-addons/hyprpaper/BUILD
@@ -0,0 +1,5 @@
+if [[ "${HYPRPAPER_BRANCH}" == "scm" ]]; then
+ default_build
+else
+ ${MAKE:-make} -j $((${#DISTCC_HOSTS[*]} * JOBS_PER_HOST + MAKE_NJOBS)) all
+fi
diff --git a/wm-addons/hyprpaper/CONFIGURE b/wm-addons/hyprpaper/CONFIGURE
new file mode 100755
index 0000000000..c55095d5e6
--- /dev/null
+++ b/wm-addons/hyprpaper/CONFIGURE
@@ -0,0 +1,3 @@
+if [[ "${HYPRPAPER_BRANCH}" == "scm" ]]; then
+ . "${GRIMOIRE}/CMAKE_CONFIGURE"
+fi
diff --git a/wm-addons/hyprpaper/DEPENDS b/wm-addons/hyprpaper/DEPENDS
new file mode 100755
index 0000000000..c0e1ea0807
--- /dev/null
+++ b/wm-addons/hyprpaper/DEPENDS
@@ -0,0 +1,14 @@
+if [[ "${HYPRPAPER_BRANCH}" == "scm" ]]; then
+ . "${GRIMOIRE}/CMAKE_DEPENDS" &&
+ depends git
+else
+ depends cmake
+fi &&
+depends cairo &&
+depends hyprlang &&
+depends make &&
+depends pango &&
+depends JPEG &&
+depends wayland &&
+depends wayland-protocols &&
+depends wlroots
diff --git a/wm-addons/hyprpaper/DETAILS b/wm-addons/hyprpaper/DETAILS
new file mode 100755
index 0000000000..a12beb2a3e
--- /dev/null
+++ b/wm-addons/hyprpaper/DETAILS
@@ -0,0 +1,28 @@
+. "${GRIMOIRE}/FUNCTIONS"
+ SPELL="hyprpaper"
+if [[ "${HYPRPAPER_BRANCH}" == "scm" ]]; then
+. "${GRIMOIRE}/CMAKE_FUNCTIONS"
+ VERSION="$(get_scm_version)"
+ SOURCE="${SPELL}-scm.tar.xz"
+ FORCE_DOWNLOAD="on"
+ SOURCE_URL[0]="git_http://github.com/hyprwm/${SPELL}:${SPELL}-scm:main"
+ SOURCE_IGNORE="volatile"
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-scm"
+else
+ VERSION="0.6.0"
+ SOURCE_HASH="sha512:78a6c885ab451026e619eb3c710dc39fcabbf1230bef8b3346d1817fde13c7bdb38acd108f47d814098294d718efbbd227c4955632d2e291d155c0196ca949cd"
+ SOURCE="${SPELL}-${VERSION}.tar.gz"
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
+ SOURCE_URL[0]="https://github.com/hyprwm/${SPELL}/archive/refs/tags/v${VERSION}.tar.gz"
+# Watch: https://github.com/hyprwm/hyprpaper/tags tags/v([0-9.]+)[.]tar
+fi
+ WEB_SITE="https://github.com/hyprwm/hyprpaper"
+ ENTERED="202300320"
+ LICENSE[0]="BSD"
+ KEYWORDS="wallpaper wayland wlroots"
+ SHORT="blazing fast wayland wallpaper utility with IPC controls"
+cat << EOF
+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.
+EOF
diff --git a/wm-addons/hyprpaper/HISTORY b/wm-addons/hyprpaper/HISTORY
new file mode 100644
index 0000000000..54498cf089
--- /dev/null
+++ b/wm-addons/hyprpaper/HISTORY
@@ -0,0 +1,28 @@
+2024-03-25 Pavel Vinogradov <public@sourcemage.org>
+ * BUILD, CONFIGURE, DEPENDS, INSTALL: scm branch now uses default cmake
+ build/install, enabled parallel/distributed build for stable
+
+2024-01-12 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 0.6.0
+ * DEPENDS: needs hyprlang
+
+2023-11-28 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 0.5.0
+
+2023-08-06 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 0.4.0
+ * INSTALL: put the file into /usr/bin, not /bin
+ * FINAL: removed, the binary has necessary mode anyway
+
+2023-06-02 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 0.3.0
+
+2023-04-11 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 0.2.0
+
+2023-04-08 Pavel Vinogradov <public@sourcemage.org>
+ * DEPENDS, DETAILS, PREPARE: added first official release, version 0.1.0
+
+2023-03-20 Pavel Vinogradov <public@sourcemage.org>
+ * BUILD, DEPENDS, DETAILS, FINAL, INSTALL: created a spell
+
diff --git a/wm-addons/hyprpaper/INSTALL b/wm-addons/hyprpaper/INSTALL
new file mode 100755
index 0000000000..441c464de1
--- /dev/null
+++ b/wm-addons/hyprpaper/INSTALL
@@ -0,0 +1,5 @@
+if [[ "${HYPRPAPER_BRANCH}" == "scm" ]]; then
+ default_install
+else
+ install -D "build/${SPELL}" -t "${INSTALL_ROOT}/usr/bin"
+fi
diff --git a/wm-addons/hyprpaper/PREPARE b/wm-addons/hyprpaper/PREPARE
new file mode 100755
index 0000000000..e38d86f7e9
--- /dev/null
+++ b/wm-addons/hyprpaper/PREPARE
@@ -0,0 +1,2 @@
+. "${GRIMOIRE}/FUNCTIONS" &&
+prepare_select_branch stable scm
diff --git a/wm-addons/i3lock/HISTORY b/wm-addons/i3lock/HISTORY
index c8ad5c9719..31273d004f 100644
--- a/wm-addons/i3lock/HISTORY
+++ b/wm-addons/i3lock/HISTORY
@@ -2,10 +2,10 @@
* DEPENDS: switch to PKG-CONFIG provider (automated)
2022-06-25 Florian Franzmann <bwlf@bandrate.org>
- * DETAILS: version 2.14.1
+ * DETAILS: version 2.14.1
2022-05-28 Florian Franzmann <bwlf@bandrate.org>
- * DETAILS, CONFIGURE, DEPENDS: version 2.14
+ * DETAILS, CONFIGURE, DEPENDS: version 2.14
2022-05-24 Florian Franzmann <bwlf@bandrate.org>
* DETAILS, BUILD, DEPENDS: version 2.13
diff --git a/wm-addons/i3status/0001-disable-pulseaudio.patch b/wm-addons/i3status/0001-disable-pulseaudio.patch
deleted file mode 100644
index 41300eec98..0000000000
--- a/wm-addons/i3status/0001-disable-pulseaudio.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 99e4891bb79a484932e6b4e6a5221fb3ae05a011 Mon Sep 17 00:00:00 2001
-From: Florian Franzmann <siflfran@hawo.net>
-Date: Fri, 8 Jan 2016 22:56:14 +0100
-Subject: [PATCH] disable pulseaudio
-
----
- Makefile | 4 +---
- src/print_volume.c | 2 +-
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index bb90b1a..cbaf416 100644
---- a/Makefile
-+++ b/Makefile
-@@ -70,10 +70,8 @@ CFLAGS += -idirafter yajl-fallback
- OBJS:=$(wildcard src/*.c *.c)
- OBJS:=$(OBJS:.c=.o)
-
--ifeq ($(OS),OpenBSD)
- OBJS:=$(filter-out src/pulse.o, $(OBJS))
--LIBS:=$(filter-out -lpulse, $(LIBS)) -lpthread
--endif
-+LIBS:=$(filter-out -lpulse, $(LIBS))
-
- src/%.o: src/%.c include/i3status.h
- $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
-diff --git a/src/print_volume.c b/src/print_volume.c
-index 58cba2a..151f9b2 100644
---- a/src/print_volume.c
-+++ b/src/print_volume.c
-@@ -60,7 +60,7 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char *
- free(instance);
- }
-
--#ifndef __OpenBSD__
-+#if 0
- /* Try PulseAudio first */
-
- /* If the device name has the format "pulse[:N]" where N is the
---
-2.7.0
-
diff --git a/wm-addons/i3status/BUILD b/wm-addons/i3status/BUILD
deleted file mode 100755
index 8f58e6df93..0000000000
--- a/wm-addons/i3status/BUILD
+++ /dev/null
@@ -1 +0,0 @@
-make
diff --git a/wm-addons/i3status/CONFIGURE b/wm-addons/i3status/CONFIGURE
new file mode 100755
index 0000000000..e69de29bb2
--- /dev/null
+++ b/wm-addons/i3status/CONFIGURE
diff --git a/wm-addons/i3status/DEPENDS b/wm-addons/i3status/DEPENDS
index 0a6b249beb..b1a8b12268 100755
--- a/wm-addons/i3status/DEPENDS
+++ b/wm-addons/i3status/DEPENDS
@@ -1,6 +1,7 @@
+. "$GRIMOIRE"/MESON_DEPENDS &&
depends confuse &&
depends yajl &&
optional_depends alsa-lib '' '' "To get the current volume" &&
optional_depends libcap '' '' "To get the network status without root permissions" &&
optional_depends asciidoc '' '' "To generate documentation" &&
-optional_depends pulseaudio '' '' "To query audio volume through pulseaudio"
+optional_depends pulseaudio pulseaudio={true,false} "To query audio volume through pulseaudio"
diff --git a/wm-addons/i3status/DETAILS b/wm-addons/i3status/DETAILS
index a9bc3bf642..7995bb4ca0 100755
--- a/wm-addons/i3status/DETAILS
+++ b/wm-addons/i3status/DETAILS
@@ -1,6 +1,8 @@
+# Watch: https://i3wm.org/i3status/
+. "$GRIMOIRE"/MESON_FUNCTIONS
SPELL=i3status
- VERSION=2.10
- SOURCE="${SPELL}-${VERSION}.tar.bz2"
+ VERSION=2.14
+ SOURCE="${SPELL}-${VERSION}.tar.xz"
SOURCE2=$SOURCE.asc
SOURCE_URL[0]=http://i3wm.org/${SPELL}/${SOURCE}
SOURCE2_URL[0]=${SOURCE_URL[0]}.asc
diff --git a/wm-addons/i3status/HISTORY b/wm-addons/i3status/HISTORY
index 3b702a9712..2f837b3b10 100644
--- a/wm-addons/i3status/HISTORY
+++ b/wm-addons/i3status/HISTORY
@@ -1,3 +1,8 @@
+2023-04-05 Ismael Luceno <ismael@sourcemage.org>
+ * CONFIGURE, DEPENDS, DETAILS: updated spell to 2.14
+ * BUILD, PRE_BUILD, 0001-disable-pulseaudio.patch:
+ removed, no longer needed
+
2016-01-08 Florian Franzmann <bwlf@bandrate.org>
* DETAILS: version 2.10
* DEPENDS: remove dependency on wireless_tools, add optional dependency on
diff --git a/wm-addons/i3status/PRE_BUILD b/wm-addons/i3status/PRE_BUILD
deleted file mode 100755
index 59c18cf886..0000000000
--- a/wm-addons/i3status/PRE_BUILD
+++ /dev/null
@@ -1,6 +0,0 @@
-default_pre_build &&
-cd "${SOURCE_DIRECTORY}" &&
-
-if ! is_depends_enabled $SPELL pulseaudio; then
- patch -p1 < "$SPELL_DIRECTORY/0001-disable-pulseaudio.patch"
-fi
diff --git a/wm-addons/jgmenu/BUILD b/wm-addons/jgmenu/BUILD
index 6888b6e59d..74758679f2 100755
--- a/wm-addons/jgmenu/BUILD
+++ b/wm-addons/jgmenu/BUILD
@@ -1,3 +1,5 @@
+LDFLAGS="-lm ${LDFLAGS}" &&
+
./configure --prefix="${INSTALL_ROOT}/usr" ${OPTS} &&
make
diff --git a/wm-addons/jgmenu/DEPENDS b/wm-addons/jgmenu/DEPENDS
index c1acdb8ff6..2767bd9fa2 100755
--- a/wm-addons/jgmenu/DEPENDS
+++ b/wm-addons/jgmenu/DEPENDS
@@ -5,7 +5,11 @@ depends libxrandr &&
depends pango &&
depends cairo &&
depends libxml2 &&
-depends librsvg2 &&
+
+optional_depends librsvg2 \
+ "" \
+ "--disable-svg" \
+ "for SVG icon support" &&
optional_depends xfce4-panel \
"--with-xfce4-panel-applet" \
diff --git a/wm-addons/jgmenu/DETAILS b/wm-addons/jgmenu/DETAILS
index a7f6cb7bcc..cbbafb13f0 100755
--- a/wm-addons/jgmenu/DETAILS
+++ b/wm-addons/jgmenu/DETAILS
@@ -1,8 +1,11 @@
SPELL=jgmenu
- VERSION=4.4.0
+ VERSION=4.4.1
SOURCE=${SPELL}-${VERSION}.tar.gz
+ SOURCE2=196.patch
SOURCE_URL[0]=https://github.com/johanmalm/${SPELL}/archive/v${VERSION}.tar.gz
- SOURCE_HASH=sha512:bb0ca1927c77a1471f5f4566e54509756cd0a2426cf04e1e46687ff5309d86ce7992794fba86d253927fcb6014040891146f1296daa4eb55d71faddf01f596ed
+ SOURCE_HASH=sha512:e09ff357e99e58ba63f0a9e8c9c8d1164bcc588bfda565139a8d9b35bb76683e284952feb12680830bec8188957c5b7aec6c89817962fb368381b80046d43ae0
+ SOURCE2_URL[0]=https://github.com/jgmenu/jgmenu/pull/${SOURCE2}
+ SOURCE2_HASH=sha512:46a56c6215efc9f53e6fc54ab060c079c6cf83eea1786580914ddce74b515986c036c1f620d1f7b6499f0fe6bb09ac8cb56cc60e596d7c609b406884fe7877ef
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
DOC_DIRS="docs/relnotes"
DOCS="docs/manual/*.md AUTHORS.md CONTRIBUTING.md INSTALL.md NEWS.md TODO.md ${DOCS}"
diff --git a/wm-addons/jgmenu/HISTORY b/wm-addons/jgmenu/HISTORY
index 4713b942ed..7b0510243d 100644
--- a/wm-addons/jgmenu/HISTORY
+++ b/wm-addons/jgmenu/HISTORY
@@ -1,3 +1,9 @@
+2023-03-06 Vlad Glagolev <stealth@sourcemage.org>
+ * DETAILS: updated spell to 4.4.1; add upstream optional SVG patch
+ * BUILD: add LDFLAGS fix for linking
+ * DEPENDS: made librsvg2 optional
+ * PRE_BUILD: added, to apply patch
+
2021-09-29 Vlad Glagolev <stealth@sourcemage.org>
* DETAILS: updated spell to 4.4.0
diff --git a/wm-addons/jgmenu/PRE_BUILD b/wm-addons/jgmenu/PRE_BUILD
new file mode 100755
index 0000000000..ea7eea9fdc
--- /dev/null
+++ b/wm-addons/jgmenu/PRE_BUILD
@@ -0,0 +1,6 @@
+default_pre_build &&
+cd "${SOURCE_DIRECTORY}" &&
+
+verify_file 2 &&
+
+patch -p1 < "${SOURCE_CACHE}/${SOURCE2}"
diff --git a/wm-addons/libsrm/BUILD b/wm-addons/libsrm/BUILD
new file mode 100755
index 0000000000..2e833d3dad
--- /dev/null
+++ b/wm-addons/libsrm/BUILD
@@ -0,0 +1,37 @@
+OPTS="${LIBSRM_OPTS} ${OPTS}" &&
+
+local PREFIX=${PREFIX:-/usr} &&
+local MESON_BUILD_TYPE="${MESON_BUILD_TYPE:-release}" &&
+
+local MESON_BUILD &&
+local MESON_OPTS &&
+local BUILDER &&
+local BUILDER_OPTS="-j ${MAKE_NJOBS} -C builddir/" &&
+
+if [[ $(get_spell_provider ${SPELL} MESON-BUILD) == muon ]]; then
+ MESON_BUILD="muon setup" &&
+
+ OPTS="prefix=${INSTALL_ROOT}${PREFIX} buildtype=${MESON_BUILD_TYPE} default_library=shared libdir=lib ${OPTS}"
+else
+ MESON_BUILD="meson setup"
+ MESON_OPTS="--prefix ${INSTALL_ROOT}${PREFIX} --buildtype ${MESON_BUILD_TYPE} --default-library shared --libdir lib
+"
+fi &&
+
+if ! is_depends_enabled ${SPELL} $(get_spell_provider ${SPELL} NINJA-BUILD); then
+ BUILDER="muon samu"
+elif [[ $(get_spell_provider ${SPELL} NINJA-BUILD) == samurai ]]; then
+ BUILDER="samu"
+else
+ BUILDER="ninja"
+fi &&
+
+for MO in $OPTS; do
+ MESON_OPTS+=" -D${MO}"
+done &&
+
+cd "${SOURCE_DIRECTORY}/src" &&
+
+${MESON_BUILD} ${MESON_OPTS} builddir/ &&
+
+${BUILDER} ${BUILDER_OPTS}
diff --git a/wm-addons/libsrm/CONFIGURE b/wm-addons/libsrm/CONFIGURE
new file mode 100755
index 0000000000..e9e8fd6380
--- /dev/null
+++ b/wm-addons/libsrm/CONFIGURE
@@ -0,0 +1,7 @@
+. "${GRIMOIRE}/MESON_CONFIGURE" &&
+
+config_query_option LIBSRM_OPTS "Build examples?" n \
+ "build_examples=true" "build_examples=false" &&
+\
+config_query_option LIBSRM_OPTS "Build tests?" n \
+ "build_tests=true" "build_tests=false"
diff --git a/wm-addons/libsrm/DEPENDS b/wm-addons/libsrm/DEPENDS
new file mode 100755
index 0000000000..815bb56c9f
--- /dev/null
+++ b/wm-addons/libsrm/DEPENDS
@@ -0,0 +1,16 @@
+. "${GRIMOIRE}/MESON_DEPENDS" &&
+
+if [[ "${LIBSRM_BRANCH}" == "scm" ]]; then
+ depends git
+fi &&
+
+depends hwdata &&
+depends libdisplay-info &&
+depends DEVICE-MANAGER &&
+depends libdrm &&
+depends OPENGL &&
+
+if list_find "${LIBSRM_OPTS}" "build_examples=true"; then
+ depends libinput &&
+ depends seat
+fi
diff --git a/wm-addons/libsrm/DETAILS b/wm-addons/libsrm/DETAILS
new file mode 100755
index 0000000000..23b2e3013a
--- /dev/null
+++ b/wm-addons/libsrm/DETAILS
@@ -0,0 +1,36 @@
+. "${GRIMOIRE}/FUNCTIONS"
+. "${GRIMOIRE}/MESON_FUNCTIONS"
+ SPELL="libsrm"
+if [[ "${LIBSRM_BRANCH}" == "scm" ]]; then
+ VERSION="$(get_scm_version)"
+ SOURCE="${SPELL}-scm.tar.xz"
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-scm"
+ SOURCE_URL[0]="git_http://github.com/CuarzoSoftware/SRM:${SPELL}-scm:main"
+ SOURCE_IGNORE="volatile"
+ FORCE_DOWNLOAD="on"
+else
+ VERSION="0.5.2-1"
+ SOURCE_HASH="sha512:134b566a5c037836e1ded07eaa455cb206587cdffcd86a40c76cbc781c6e42a042498ecc820910931aedf2d2c80b8c0bca48b463f5264f9210505e4cb5210274"
+ SOURCE="${SPELL}-${VERSION}.tar.gz"
+ SOURCE_URL[0]="https://github.com/CuarzoSoftware/SRM/archive/refs/tags/v${VERSION}.tar.gz"
+# Watch: https://github.com/CuarzoSoftware/SRM/tags tags/v([0-9.\-]+)[.]tar
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/SRM-${VERSION}"
+fi
+ WEB_SITE="https://cuarzosoftware.github.io/SRM/index.html"
+ ENTERED="20231128"
+ LICENSE[0]="MIT"
+ KEYWORDS="rendering manager library"
+ SHORT="Simple Rendering Manager"
+cat << EOF
+SRM is a C library that simplifies the development of Linux DRM/KMS
+applications.
+
+With SRM, you can focus on the OpenGL ES 2.0 logic of your application.
+For each available display, you can start a rendering thread that triggers
+common events like initializeGL(), paintGL(), resizeGL(), pageFlipped() and
+uninitializeGL().
+
+SRM allows you to use multiple GPUs simultaneously and automatically finds the
+most efficient configuration. It also offers functions for creating OpenGL
+textures, which are automatically shared among GPUs.
+EOF
diff --git a/wm-addons/libsrm/HISTORY b/wm-addons/libsrm/HISTORY
new file mode 100644
index 0000000000..3ddc98aa01
--- /dev/null
+++ b/wm-addons/libsrm/HISTORY
@@ -0,0 +1,8 @@
+2024-02-14 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 0.5.2-1
+ * INSTALL: removed EXTRA_OPTS, caused meson error
+
+2023-11-28 Pavel Vinogradov <public@sourcemage.org>
+ * BUILD, CONFIGURE, DEPENDS, DETAILS, PREPARE, INSTALL: created the spell,
+ version 0.3.2-2
+
diff --git a/wm-addons/libsrm/INSTALL b/wm-addons/libsrm/INSTALL
new file mode 100755
index 0000000000..4f08974466
--- /dev/null
+++ b/wm-addons/libsrm/INSTALL
@@ -0,0 +1,15 @@
+cd "${SOURCE_DIRECTORY}/src" &&
+local MESON_INSTALL &&
+local MESON_OPTS &&
+
+if [[ $(get_spell_provider ${SPELL} MESON-BUILD) == muon ]]; then
+ MESON_INSTALL="muon"
+
+ MESON_OPTS="-C builddir/ install"
+else
+ MESON_INSTALL="meson"
+
+ MESON_OPTS="install -C builddir/ --no-rebuild"
+fi &&
+
+DESTDIR="${INSTALL_ROOT}/" ${MESON_INSTALL} ${MESON_OPTS}
diff --git a/wm-addons/libsrm/PREPARE b/wm-addons/libsrm/PREPARE
new file mode 100755
index 0000000000..e38d86f7e9
--- /dev/null
+++ b/wm-addons/libsrm/PREPARE
@@ -0,0 +1,2 @@
+. "${GRIMOIRE}/FUNCTIONS" &&
+prepare_select_branch stable scm
diff --git a/wm-addons/louvre/BUILD b/wm-addons/louvre/BUILD
new file mode 100755
index 0000000000..a89e51af33
--- /dev/null
+++ b/wm-addons/louvre/BUILD
@@ -0,0 +1,37 @@
+OPTS="${LOUVRE_OPTS} ${OPTS}" &&
+
+local PREFIX=${PREFIX:-/usr} &&
+local MESON_BUILD_TYPE="${MESON_BUILD_TYPE:-release}" &&
+
+local MESON_BUILD &&
+local MESON_OPTS &&
+local BUILDER &&
+local BUILDER_OPTS="-j ${MAKE_NJOBS} -C builddir/" &&
+
+if [[ $(get_spell_provider ${SPELL} MESON-BUILD) == muon ]]; then
+ MESON_BUILD="muon setup" &&
+
+ OPTS="prefix=${INSTALL_ROOT}${PREFIX} buildtype=${MESON_BUILD_TYPE} default_library=shared libdir=lib ${OPTS}"
+else
+ MESON_BUILD="meson setup"
+ MESON_OPTS="--prefix ${INSTALL_ROOT}${PREFIX} --buildtype ${MESON_BUILD_TYPE} --default-library shared --libdir lib
+"
+fi &&
+
+if ! is_depends_enabled ${SPELL} $(get_spell_provider ${SPELL} NINJA-BUILD); then
+ BUILDER="muon samu"
+elif [[ $(get_spell_provider ${SPELL} NINJA-BUILD) == samurai ]]; then
+ BUILDER="samu"
+else
+ BUILDER="ninja"
+fi &&
+
+for MO in $OPTS; do
+ MESON_OPTS+=" -D${MO}"
+done &&
+
+cd "${SOURCE_DIRECTORY}/src" &&
+
+${MESON_BUILD} ${MESON_OPTS} builddir/ &&
+
+${BUILDER} ${BUILDER_OPTS}
diff --git a/wm-addons/louvre/CONFIGURE b/wm-addons/louvre/CONFIGURE
new file mode 100755
index 0000000000..9b7256d31b
--- /dev/null
+++ b/wm-addons/louvre/CONFIGURE
@@ -0,0 +1,4 @@
+. "${GRIMOIRE}/MESON_CONFIGURE" &&
+
+config_query_option LOUVRE_OPTS "Build examples?" n \
+ "build_examples=true" "build_examples=false"
diff --git a/wm-addons/louvre/DEPENDS b/wm-addons/louvre/DEPENDS
new file mode 100755
index 0000000000..7ce9d9efc5
--- /dev/null
+++ b/wm-addons/louvre/DEPENDS
@@ -0,0 +1,23 @@
+. "${GRIMOIRE}/MESON_DEPENDS" &&
+
+if [[ "${LOUVRE_BRANCH}" == "scm" ]]; then
+ depends git
+fi &&
+
+depends DEVICE-MANAGER &&
+depends freeimage &&
+depends libdrm &&
+depends libinput &&
+depends libxkbcommon &&
+depends libxcursor &&
+depends OPENGL &&
+depends pixman &&
+depends seat &&
+depends libsrm &&
+depends wayland &&
+
+if list_find "${LOUVRE_OPTS}" "build_examples=true"; then
+ depends fontconfig &&
+ depends freetype2 &&
+ depends icu
+fi
diff --git a/wm-addons/louvre/DETAILS b/wm-addons/louvre/DETAILS
new file mode 100755
index 0000000000..273cd8603b
--- /dev/null
+++ b/wm-addons/louvre/DETAILS
@@ -0,0 +1,27 @@
+. "${GRIMOIRE}/FUNCTIONS"
+. "${GRIMOIRE}/MESON_FUNCTIONS"
+ SPELL="louvre"
+if [[ "${LOUVRE_BRANCH}" == "scm" ]]; then
+ VERSION="$(get_scm_version)"
+ SOURCE="${SPELL}-scm.tar.xz"
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-scm"
+ SOURCE_URL[0]="git_http://github.com/CuarzoSoftware/Louvre:${SPELL}-scm:main"
+ SOURCE_IGNORE="volatile"
+ FORCE_DOWNLOAD="on"
+else
+ VERSION="1.2.1-2"
+ SOURCE_HASH="sha512:a6e7afa13306ccb92acdd747045c456e69dc382867ff417f910c92eb8259df223043fa182c4263035a411c2caeb708f8ecba932921916fab8c5389b9a53b161e"
+ SOURCE="Louvre-${VERSION}.tar.gz"
+ SOURCE_URL[0]="https://github.com/CuarzoSoftware/Louvre/archive/refs/tags/v${VERSION}.tar.gz"
+# Watch: https://github.com/CuarzoSoftware/Louvre/tags tags/v([0-9.\-]+)[.]tar
+SOURCE_DIRECTORY="${BUILD_DIRECTORY}/Louvre-${VERSION}"
+fi
+ WEB_SITE="https://github.com/CuarzoSoftware/Louvre"
+ ENTERED="20231118"
+ LICENSE[0]="MIT"
+ KEYWORDS="wayland compositor library"
+ SHORT="C++ library for building Wayland compositors"
+cat << EOF
+Louvre is a high-performance C++ library designed for building Wayland
+compositors with a strong emphasis on ease of development.
+EOF
diff --git a/wm-addons/louvre/HISTORY b/wm-addons/louvre/HISTORY
new file mode 100644
index 0000000000..7012f2f23e
--- /dev/null
+++ b/wm-addons/louvre/HISTORY
@@ -0,0 +1,22 @@
+2024-02-20 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 1.2.1-2
+
+2024-02-17 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: upstream changed license from GPL to MIT
+
+2024-02-14 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 1.2.0-2
+
+2023-12-21 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 1.1.0-1
+
+2023-11-28 Pavel Vinogradov <public@sourcemage.org>
+ * DEPENDS: srm -> libsrm
+
+2023-11-22 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 1.0.1-1
+
+2023-11-18 Pavel Vinogradov <public@sourcemage.org>
+ * BUILD, CONFIGURE, DEPENDS, DETAILS, PREPARE, INSTALL: created the spell,
+ version 1.0.0-1
+
diff --git a/wm-addons/louvre/INSTALL b/wm-addons/louvre/INSTALL
new file mode 100755
index 0000000000..3f483d6584
--- /dev/null
+++ b/wm-addons/louvre/INSTALL
@@ -0,0 +1,16 @@
+cd "${SOURCE_DIRECTORY}/src" &&
+local MESON_INSTALL &&
+local MESON_OPTS &&
+local EXTRA_OPTS="${@}" &&
+
+if [[ $(get_spell_provider ${SPELL} MESON-BUILD) == muon ]]; then
+ MESON_INSTALL="muon"
+
+ MESON_OPTS="-C builddir/ install ${EXTRA_OPTS}"
+else
+ MESON_INSTALL="meson"
+
+ MESON_OPTS="install -C builddir/ --no-rebuild ${EXTRA_OPTS}"
+fi &&
+
+DESTDIR="${INSTALL_ROOT}/" ${MESON_INSTALL} ${MESON_OPTS}
diff --git a/wm-addons/louvre/PREPARE b/wm-addons/louvre/PREPARE
new file mode 100755
index 0000000000..e38d86f7e9
--- /dev/null
+++ b/wm-addons/louvre/PREPARE
@@ -0,0 +1,2 @@
+. "${GRIMOIRE}/FUNCTIONS" &&
+prepare_select_branch stable scm
diff --git a/wm-addons/mako-notification/CONFIGURE b/wm-addons/mako-notification/CONFIGURE
new file mode 100755
index 0000000000..4f0f3418c9
--- /dev/null
+++ b/wm-addons/mako-notification/CONFIGURE
@@ -0,0 +1,2 @@
+. "${GRIMOIRE}/MESON_CONFIGURE" &&
+config_query_list MAKO_SDBUS "Which sd-bus provider do you want to use?" systemd elogind basu
diff --git a/wm-addons/mako-notification/DEPENDS b/wm-addons/mako-notification/DEPENDS
new file mode 100755
index 0000000000..20c4521613
--- /dev/null
+++ b/wm-addons/mako-notification/DEPENDS
@@ -0,0 +1,34 @@
+. "${GRIMOIRE}/MESON_DEPENDS" &&
+depends PKG-CONFIG &&
+depends cairo &&
+depends pango &&
+depends glib2 &&
+depends wayland &&
+depends wayland-protocols &&
+
+optional_depends gdk-pixbuf2 \
+ 'icons=enabled' \
+ 'icons=disabled' \
+ 'Icon support?' &&
+
+optional_depends man \
+ 'man-pages=enabled' \
+ 'man-pages=disabled' \
+ 'Generate manpages?' &&
+
+optional_depends fish 'fish-completions=true' '' 'Install fish completions?' &&
+optional_depends zsh 'zsh-completions=true' '' 'Install zsh completions?' &&
+optional_depends bash-completion \
+ 'bash-completions=true' '' 'Install bash completions?' &&
+
+case $MAKO_SDBUS in
+ systemd)
+ depends systemd 'sd-bus-provider=libsystemd'
+ ;;
+ elogind)
+ depends elogind 'sd-bus-provider=libelogind'
+ ;;
+ *)
+ depends basu 'sd-bus-provider=basu'
+ ;;
+esac
diff --git a/wm-addons/mako-notification/DETAILS b/wm-addons/mako-notification/DETAILS
new file mode 100755
index 0000000000..941e1f84f5
--- /dev/null
+++ b/wm-addons/mako-notification/DETAILS
@@ -0,0 +1,17 @@
+. "${GRIMOIRE}/MESON_FUNCTIONS"
+ SPELL=mako-notification
+ SPELLX=mako
+ VERSION=1.8.0
+ SOURCE=$SPELLX-$VERSION.tar.gz
+SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELLX-$VERSION
+ SOURCE_URL[0]=https://github.com/emersion/${SPELLX}/archive/v${VERSION}.tar.gz
+ SOURCE_HASH=sha256:f149f3dd2a083504a50307554c0a729ac56888c8ebb0704a78b7261be26166de
+ LICENSE[0]=MIT
+ WEB_SITE=https://github.com/emersion/mako
+ ENTERED=20230705
+ KEYWORDS="utils notification daemon"
+ SHORT="lightweight wayland notification daemon"
+cat << EOF
+A lightweight notification daemon for Wayland.
+mako implements the FreeDesktop Notifications Specification.
+EOF
diff --git a/wm-addons/mako-notification/HISTORY b/wm-addons/mako-notification/HISTORY
new file mode 100644
index 0000000000..87bd5357e8
--- /dev/null
+++ b/wm-addons/mako-notification/HISTORY
@@ -0,0 +1,3 @@
+2023-07-05 Conner Clere <xenanthropy@sourcemage.org>
+ * CONFIGURE, DEPENDS, DETAILS: version 1.8.0, new spell
+
diff --git a/wm-addons/razor-qt/BUILD b/wm-addons/razor-qt/BUILD
index 428f2d0e27..27ba77ddaf 100755
--- a/wm-addons/razor-qt/BUILD
+++ b/wm-addons/razor-qt/BUILD
@@ -1,4 +1 @@
-qt4_cmake_build &&
-if is_depends_enabled $SPELL doxygen; then
- make doc
-fi
+true
diff --git a/wm-addons/razor-qt/CONFLICTS b/wm-addons/razor-qt/CONFLICTS
new file mode 100755
index 0000000000..9ebbef7478
--- /dev/null
+++ b/wm-addons/razor-qt/CONFLICTS
@@ -0,0 +1 @@
+conflicts razor-qt y
diff --git a/wm-addons/razor-qt/DEPENDS b/wm-addons/razor-qt/DEPENDS
index 2a3ee4d2ae..c5fac734ba 100755
--- a/wm-addons/razor-qt/DEPENDS
+++ b/wm-addons/razor-qt/DEPENDS
@@ -1,8 +1 @@
-depends -sub CXX gcc &&
-depends qt4 &&
-depends DEVICE-MANAGER &&
-depends file &&
-depends cmake &&
-optional_depends doxygen '' '' 'to build developer documentation' &&
-optional_depends upower '' '' 'for powermanagement from the panel' &&
-optional_depends xscreensaver '' '' 'for screensaver support'
+depends lxqt-session
diff --git a/wm-addons/razor-qt/DETAILS b/wm-addons/razor-qt/DETAILS
index dd7ca43b19..eb93072573 100755
--- a/wm-addons/razor-qt/DETAILS
+++ b/wm-addons/razor-qt/DETAILS
@@ -1,19 +1,8 @@
SPELL=razor-qt
- VERSION=0.5.1
- SOURCE="razorqt-${VERSION}.tar.bz2"
- SOURCE_URL[0]=https://github.com/downloads/Razor-qt/razor-qt/$SOURCE
- SOURCE_HASH=sha512:736e9f38a959cb70465e9d4331c912b26ca9c0ed1e354702a29e1f10b2aec95352b96c6af24022f447bc9526a4f6c77b10aa59cac620837c8355c99884323521
-SOURCE_DIRECTORY="${BUILD_DIRECTORY}/razorqt-${VERSION}"
- WEB_SITE="http://razor-qt.org"
- LICENSE[0]=GPL/LGPL
- ENTERED=20111221
- SHORT="lightweight desktop environment"
+ VERSION=0
+ PATCHLEVEL=9999
+ SHORT="deprecated"
cat << EOF
-A lightweight desktop environment which runs on top of any windowmanager.
-
-From the website:
-Razor-qt is an advanced, easy-to-use, and fast desktop environment based on
-Qt technologies. It has been tailored for users who value simplicity, speed,
-and an intuitive interface. Unlike most desktop environments, Razor-qt also
-works fine with weak machines.
+deprecated spell [replaced by lxqt-session]
EOF
+
diff --git a/wm-addons/razor-qt/DOWNLOAD b/wm-addons/razor-qt/DOWNLOAD
new file mode 100755
index 0000000000..27ba77ddaf
--- /dev/null
+++ b/wm-addons/razor-qt/DOWNLOAD
@@ -0,0 +1 @@
+true
diff --git a/wm-addons/razor-qt/HISTORY b/wm-addons/razor-qt/HISTORY
index 1c321b73f0..b80e7705f9 100644
--- a/wm-addons/razor-qt/HISTORY
+++ b/wm-addons/razor-qt/HISTORY
@@ -1,21 +1,4 @@
-2015-05-25 Thomas Orgis <sobukus@sourcemage.org>
- * DEPENDS: depends -sub CXX gcc (half-automated)
-
-2015-02-11 Vlad Glagolev <stealth@sourcemage.org>
- * DEPENDS: UDEV -> DEVICE-MANAGER
-
-2013-07-28 Treeve Jelbert <treeve@sourcemage.org>
- * DEPENDS: udev => UDEV
-
-2012-10-25 Ladislav Hagara <hgr@vabo.cz>
- * DETAILS: 0.5.1
-
-2012-10-13 Ladislav Hagara <hgr@vabo.cz>
- * DETAILS: 0.5.0, SOURCE_URL[0] updated
-
-2012-02-19 Ladislav Hagara <hgr@vabo.cz>
- * DETAILS: 0.4.1
-
-2011-12-21 Arjan Bouter <abouter@sourcemage.org>
- * BUILD, DEPENDS, DETAILS: spell created
-
+2023-11-07 Treeve Jelbert <treeve@sourcemage.org>
+ * DETAILS: version 0
+ PATCHLEVEL=9999
+ spell deprecated [replaced by lxqt-session]
diff --git a/wm-addons/razor-qt/INSTALL b/wm-addons/razor-qt/INSTALL
new file mode 100755
index 0000000000..27ba77ddaf
--- /dev/null
+++ b/wm-addons/razor-qt/INSTALL
@@ -0,0 +1 @@
+true
diff --git a/wm-addons/razor-qt/PRE_BUILD b/wm-addons/razor-qt/PRE_BUILD
new file mode 100755
index 0000000000..27ba77ddaf
--- /dev/null
+++ b/wm-addons/razor-qt/PRE_BUILD
@@ -0,0 +1 @@
+true
diff --git a/wm-addons/razor-qt/UP_TRIGGERS b/wm-addons/razor-qt/UP_TRIGGERS
new file mode 100755
index 0000000000..00f23682eb
--- /dev/null
+++ b/wm-addons/razor-qt/UP_TRIGGERS
@@ -0,0 +1 @@
+up_trigger lxqt-session cast_self
diff --git a/wm-addons/rofi/DETAILS b/wm-addons/rofi/DETAILS
index 6a042f8235..b03fc714db 100755
--- a/wm-addons/rofi/DETAILS
+++ b/wm-addons/rofi/DETAILS
@@ -1,8 +1,8 @@
SPELL=rofi
- VERSION=1.7.3
+ VERSION=1.7.4
SOURCE=${SPELL}-${VERSION}.tar.gz
SOURCE_URL[0]=https://github.com/davatorium/${SPELL}/releases/download/${VERSION}/${SOURCE}
- SOURCE_HASH=sha512:5d1b8fed868a7fcf372298800997d4aeeb9b428858448a9b9e4c523af8d878aa172dc63ad788cdc950af89a1f3ea850bc4c98a55c9e8ace29e67050ac0c02078
+ SOURCE_HASH=sha256:2001f5d385297949e189ccd5c4dd720338e11da20b94c0b7de4d2e5e3ea4a2e6
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
DOC_DIRS=""
WEB_SITE=https://github.com/davatorium/rofi
diff --git a/wm-addons/rofi/HISTORY b/wm-addons/rofi/HISTORY
index 9fad288ba5..1a8158a43e 100644
--- a/wm-addons/rofi/HISTORY
+++ b/wm-addons/rofi/HISTORY
@@ -1,3 +1,6 @@
+2023-03-06 Conner Clere <xenanthropy@sourcemage.org>
+ * DETAILS: version 1.7.4
+
2022-08-11 Vlad Glagolev <stealth@sourcemage.org>
* DEPENDS: dropped obsolete dependency, replaced with gdk-pixbuf2
diff --git a/wm-addons/swaybg/CONFIGURE b/wm-addons/swaybg/CONFIGURE
new file mode 100755
index 0000000000..d1cc655820
--- /dev/null
+++ b/wm-addons/swaybg/CONFIGURE
@@ -0,0 +1 @@
+. "$GRIMOIRE"/MESON_CONFIGURE
diff --git a/wm-addons/swaybg/DEPENDS b/wm-addons/swaybg/DEPENDS
new file mode 100755
index 0000000000..d04e2d80cb
--- /dev/null
+++ b/wm-addons/swaybg/DEPENDS
@@ -0,0 +1,10 @@
+. "$GRIMOIRE"/MESON_DEPENDS &&
+depends cairo &&
+depends wayland &&
+depends wayland-protocols &&
+
+optional_depends gdk-pixbuf2 "gdk-pixbuf=enabled" "gdk-pixbuf=disabled" \
+ "Enable support for more image formats (besides PNG)" &&
+
+optional_depends scdoc "man-pages=enabled" "man-pages=disabled" \
+ "Generate and install man pages"
diff --git a/wm-addons/swaybg/DETAILS b/wm-addons/swaybg/DETAILS
new file mode 100755
index 0000000000..79b73c4232
--- /dev/null
+++ b/wm-addons/swaybg/DETAILS
@@ -0,0 +1,17 @@
+. "$GRIMOIRE"/MESON_FUNCTIONS
+ SPELL="swaybg"
+ VERSION="1.2.0"
+ SOURCE_HASH="sha512:681f40148599a048baffb19210b9f37461fd547c81e94dc64eda3cbb520b2ba630d742f0a1b33fb2ec73ea5efc700a18c97f9395410d3d0ce8247f8c8c63896e"
+ SOURCE="$SPELL-$VERSION.tar.gz"
+ SOURCE_URL[0]="https://github.com/swaywm/${SPELL}/releases/download/v${VERSION}/${SOURCE}"
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
+ WEB_SITE="https://github.com/swaywm/swaybg"
+ LICENSE[0]="MIT"
+ ENTERED="20230206"
+ KEYWORDS=""
+ SHORT="wallpaper tool for Wayland compositors"
+cat << EOF
+swaybg is a wallpaper utility for Wayland compositors. It is compatible with
+any Wayland compositor which implements the wlr-layer-shell protocol and
+wl_output version 4.
+EOF
diff --git a/wm-addons/swaybg/HISTORY b/wm-addons/swaybg/HISTORY
new file mode 100644
index 0000000000..564086ea60
--- /dev/null
+++ b/wm-addons/swaybg/HISTORY
@@ -0,0 +1,3 @@
+2023-02-06 Pavel Vinogradov <public@sourcemage.org>
+ * CONFIGURE, DEPENDS, DETAILS: spell created, version 1.2.0
+
diff --git a/wm-addons/swayidle/CONFIGURE b/wm-addons/swayidle/CONFIGURE
new file mode 100755
index 0000000000..d1cc655820
--- /dev/null
+++ b/wm-addons/swayidle/CONFIGURE
@@ -0,0 +1 @@
+. "$GRIMOIRE"/MESON_CONFIGURE
diff --git a/wm-addons/swayidle/DEPENDS b/wm-addons/swayidle/DEPENDS
new file mode 100755
index 0000000000..e431071437
--- /dev/null
+++ b/wm-addons/swayidle/DEPENDS
@@ -0,0 +1,13 @@
+. "$GRIMOIRE"/MESON_DEPENDS &&
+. "$GRIMOIRE/depends_one_of.function" &&
+depends wayland &&
+depends wayland-protocols &&
+
+optional_depends scdoc "man-pages=enabled" "man-pages=disabled" \
+ "Generate and install man pages" &&
+
+optional_depends_one_of LOGIND \
+ systemd 'logind-provider=systemd' \
+ elogind 'logind-provider=elogind' \
+ 'logind=disabled' \
+ 'logind provider'
diff --git a/wm-addons/swayidle/DETAILS b/wm-addons/swayidle/DETAILS
new file mode 100755
index 0000000000..66dabe5e67
--- /dev/null
+++ b/wm-addons/swayidle/DETAILS
@@ -0,0 +1,19 @@
+. "$GRIMOIRE"/MESON_FUNCTIONS
+ SPELL="swayidle"
+ VERSION="1.8.0"
+ SOURCE_HASH="sha512:f804f3da1b90353271f0e6645630b622379c5701b6f59949c46cf8b0b2a7f3499ee80d04f788a7d8d191c35097f211cbc3b3dafd3ef056771b60134ae6bebccd"
+ SOURCE="$SPELL-$VERSION.tar.gz"
+ SOURCE_URL[0]="https://github.com/swaywm/${SPELL}/releases/download/${VERSION}/${SOURCE}"
+# Watch: https://github.com/swaywm/swayidle/tags /tags/([0-9.]+)[.]tar
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
+ WEB_SITE="https://github.com/swaywm/swayidle"
+ LICENSE[0]="MIT"
+ ENTERED="20230206"
+ KEYWORDS=""
+ SHORT="idle management daemon for Wayland"
+cat << EOF
+This is sway's idle management daemon, swayidle. It is compatible with any
+Wayland compositor which implements the ext-idle-notify protocol or the KDE
+idle protocol. See the man page, swayidle(1), for instructions on configuring
+swayidle.
+EOF
diff --git a/wm-addons/swayidle/HISTORY b/wm-addons/swayidle/HISTORY
new file mode 100644
index 0000000000..62af0dfb57
--- /dev/null
+++ b/wm-addons/swayidle/HISTORY
@@ -0,0 +1,7 @@
+2023-04-22 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: added Watch line
+ * DEPENDS: optionally depends on either systemd or elogind
+
+2023-02-06 Pavel Vinogradov <public@sourcemage.org>
+ * CONFIGURE, DEPENDS, DETAILS: spell created, version 1.8.0
+
diff --git a/wm-addons/swaylock/CONFIGURE b/wm-addons/swaylock/CONFIGURE
new file mode 100755
index 0000000000..d1cc655820
--- /dev/null
+++ b/wm-addons/swaylock/CONFIGURE
@@ -0,0 +1 @@
+. "$GRIMOIRE"/MESON_CONFIGURE
diff --git a/wm-addons/swaylock/DEPENDS b/wm-addons/swaylock/DEPENDS
new file mode 100755
index 0000000000..080502f10d
--- /dev/null
+++ b/wm-addons/swaylock/DEPENDS
@@ -0,0 +1,15 @@
+. "$GRIMOIRE"/MESON_DEPENDS &&
+#depends MESON-BUILD &&
+#depends NINJA-BUILD &&
+depends wayland-protocols &&
+depends libxkbcommon &&
+depends cairo &&
+optional_depends gdk-pixbuf2 \
+ gdk-pixbuf={enabled,disabled} \
+ "Enable support for more image formats (besides PNG)" &&
+optional_depends linux-pam \
+ pam={enabled,disabled} \
+ "Use PAM instead of shadow" &&
+optional_depends scdoc \
+ man-pages={enabled,disabled} \
+ "Generate and install man pages"
diff --git a/wm-addons/swaylock/DETAILS b/wm-addons/swaylock/DETAILS
new file mode 100755
index 0000000000..4add3f4af8
--- /dev/null
+++ b/wm-addons/swaylock/DETAILS
@@ -0,0 +1,22 @@
+. "$GRIMOIRE"/MESON_FUNCTIONS
+ SPELL=swaylock
+ VERSION=1.7.2
+ SOURCE="$SPELL-$VERSION.tar.gz"
+ SOURCE_URL[0]="https://github.com/swaywm/${SPELL}/releases/download/v${VERSION}/${SOURCE}"
+ SOURCE2="${SOURCE}.sig"
+ SOURCE2_URL[0]="${SOURCE_URL[0]}.sig"
+ SOURCE_GPG="sway.gpg:${SOURCE2}:UPSTREAM_KEY"
+ SOURCE2_IGNORE="signature"
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
+ WEB_SITE="https://github.com/swaywm/swaylock"
+ LICENSE[0]="MIT"
+ ENTERED=20221212
+ KEYWORDS=""
+ SHORT="Screen locker for Wayland"
+cat << EOF
+swaylock is a screen locking utility for Wayland compositors. It is compatible
+with any Wayland compositor which implements one of the following Wayland
+protocols:
+* ext-session-lock-v1, or
+* wlr-layer-shell and wlr-input-inhibitor
+EOF
diff --git a/wm-addons/swaylock/HISTORY b/wm-addons/swaylock/HISTORY
new file mode 100644
index 0000000000..b860767db8
--- /dev/null
+++ b/wm-addons/swaylock/HISTORY
@@ -0,0 +1,5 @@
+2023-02-23 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 1.7.2, updated source url, switched to gpg checking
+
+2022-12-12 Ismael Luceno <ismael@sourcemage.org>
+ * CONFIGURE, DEPENDS, DETAILS: spell created
diff --git a/wm-addons/tabbed/BUILD b/wm-addons/tabbed/BUILD
index 8f58e6df93..9c60275617 100755
--- a/wm-addons/tabbed/BUILD
+++ b/wm-addons/tabbed/BUILD
@@ -1 +1 @@
-make
+make CC="${CC:-gcc} -std=c99"
diff --git a/wm-addons/tabbed/CONFIGURE b/wm-addons/tabbed/CONFIGURE
new file mode 100755
index 0000000000..890ac23458
--- /dev/null
+++ b/wm-addons/tabbed/CONFIGURE
@@ -0,0 +1,4 @@
+message "tabbed does not use a config file, you might want to customize it now" &&
+message "Your custom config will be saved to ${INSTALL_ROOT}/usr/share/doc/tabbed/" &&
+
+config_query TABBED_CONFIG "Do you wish to use a custom config.def.h?" n
diff --git a/wm-addons/tabbed/DEPENDS b/wm-addons/tabbed/DEPENDS
index fdb96c3d75..868e5bb76c 100755
--- a/wm-addons/tabbed/DEPENDS
+++ b/wm-addons/tabbed/DEPENDS
@@ -1 +1,7 @@
-depends libx11
+depends libx11 &&
+depends libxft &&
+depends fontconfig &&
+
+if [[ $TABBED_ALPHA == y ]]; then
+ depends libxrender
+fi
diff --git a/wm-addons/tabbed/DETAILS b/wm-addons/tabbed/DETAILS
index bfe6c6abca..6a56fa45a6 100755
--- a/wm-addons/tabbed/DETAILS
+++ b/wm-addons/tabbed/DETAILS
@@ -1,15 +1,40 @@
SPELL=tabbed
- VERSION=0.6
+ VERSION=0.8
SOURCE="${SPELL}-${VERSION}.tar.gz"
- SOURCE_URL[0]=http://dl.suckless.org/tools/${SOURCE}
- SOURCE_HASH=sha512:bcad873251be6b5de21311531e8d24330003b42790cb94d559a0d1be45408b3e0722c14e7c7f2cefd0717fd2a2d7a100fa08fc4e10e7bb669935909602286553
+ SOURCE_URL[0]=https://dl.suckless.org/tools/${SOURCE}
+ SOURCE_HASH=sha512:aa81ee2a293110cdd7660c4643a21bb44573516ddd03657ab4cfd2be2f52f7dd5a4fcfce60fd2b4dac591d13e40f952985780cd8923394fc64e814152729a754
+if [[ $TABBED_ALPHA == y ]]; then
+ SOURCE2=alpha.diff
+ SOURCE2_URL[0]=https://tools.suckless.org/${SPELL}/patches/alpha/${SOURCE2}
+ SOURCE2_HASH=sha512:80b265f66484380d98afd36cad59419a58f1bc1beeb93bf82a859ca34e9bf3b14e4d28739a8418c193a34a04bff5aa5c067f6c16c4675ef3b66d28d9fa77a9c2
+fi
+if [[ $TABBED_AUTOHIDE == y ]]; then
+ SOURCE3=${SPELL}-autohide-20201222-dabf6a2.diff
+ SOURCE3_URL[0]=https://tools.suckless.org/${SPELL}/patches/autohide/${SOURCE3}
+ SOURCE3_HASH=sha512:81b8041d95585e4979ff4bbcad0eb9e140ab793ed1ccf173de94a4ead4cfd6ae3ef589159bd8831cbe73c120838c94a249929932c71455730ab2f2b53fa255c5
+fi
+if [[ $TABBED_XRESOURCES == "original" ]]; then
+ SOURCE4=${SPELL}-xresources-20230128-41e2b8f.diff
+ SOURCE4_URL[0]=https://tools.suckless.org/${SPELL}/patches/xresources/${SOURCE4}
+ SOURCE4_HASH=sha512:5462f81a70a0b275a959cd6970da5c8d567561e6b5b05bbfad9393ae1d0c05bc2159506abec2fde0be6a07ac730f1bfcad2aa44cd80ff57ff6b2c685813f5dda
+fi
+if [[ $TABBED_XRESOURCES == "signal-reloading" ]]; then
+ SOURCE5=${SPELL}-xresources-signal-reloading-20220622-014eabf.diff
+ SOURCE5_URL[0]=https://tools.suckless.org/${SPELL}/patches/xresources-with-reload-signal/${SOURCE5}
+ SOURCE5_HASH=sha512:86807eb0767633445c08e9398b72a6bd6e97e1aad7b9efd764f02bbddaa0f23198389632629d851bbf354a73ea60f92195c4165fcfc3f77a47a97099bcc741c3
+fi
+if [[ $TABBED_SEPARATOR == y ]]; then
+ SOURCE6=${SPELL}-separator-20230128-41e2b8f.diff
+ SOURCE6_URL[0]=https://tools.suckless.org/${SPELL}/patches/separator/${SOURCE6}
+ SOURCE6_HASH=sha512:0c6c73ac0c3ed9cee1fbef794689832460fb93ae62cfc5b9b5945bb2e4d0089791c4e73b9b0048e47c8dc9922dee0eedd8af455c1d8b121efe350eb01f63b87c
+fi
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
- WEB_SITE="http://tools.suckless.org/tabbed"
+ WEB_SITE="https://tools.suckless.org/tabbed"
LICENSE[0]="MIT/X"
ENTERED=20100308
KEYWORDS=""
- SHORT="Simple generic tabbed fronted to xembed aware applications."
+ SHORT="simple generic tabbed frontend to xembed-aware applications"
cat << EOF
-Originally designed for surf but also usable with many other application,
-i.e. uzbl, urxvt and xterm.
+Originally designed for surf but also usable with many other applications,
+i.e. st, uzbl, urxvt and xterm.
EOF
diff --git a/wm-addons/tabbed/HISTORY b/wm-addons/tabbed/HISTORY
index 3bd5413af6..2aefcaf737 100644
--- a/wm-addons/tabbed/HISTORY
+++ b/wm-addons/tabbed/HISTORY
@@ -1,3 +1,18 @@
+2024-03-19 Vlad Glagolev <stealth@sourcemage.org>
+ * DETAILS: updated spell to 0.8
+
+2023-09-09 Vlad Glagolev <stealth@sourcemage.org>
+ * DETAILS, PREPARE, PRE_BUILD: added separator patch
+ * separator_xr.patch: added, to fix build with separator+xresources
+
+2023-09-02 Vlad Glagolev <stealth@sourcemage.org>
+ * DETAILS: updated spell to 0.7
+ * DEPENDS: added missing dependencies
+ * PREPARE: added, for patch configuration
+ * CONFIGURE: added, to configure tabbed
+ * PRE_BUILD: added, to apply patches
+ * alpha.patch: added
+
2015-01-11 Ismael Luceno <ismael@sourcemage.org>
* DETAILS: updated spell to 0.6
diff --git a/wm-addons/tabbed/INSTALL b/wm-addons/tabbed/INSTALL
index 84b2df15f9..979748e859 100755
--- a/wm-addons/tabbed/INSTALL
+++ b/wm-addons/tabbed/INSTALL
@@ -1 +1,6 @@
-make install PREFIX=/usr
+make PREFIX="${INSTALL_ROOT}/usr" install
+
+if [[ $TABBED_CONFIG == y ]]; then
+ mkdir -p ${INSTALL_ROOT}/usr/share/doc/tabbed &&
+ cp config.def.h ${INSTALL_ROOT}/usr/share/doc/tabbed/
+fi
diff --git a/wm-addons/tabbed/PREPARE b/wm-addons/tabbed/PREPARE
new file mode 100755
index 0000000000..6085dad6f4
--- /dev/null
+++ b/wm-addons/tabbed/PREPARE
@@ -0,0 +1,9 @@
+config_query TABBED_ALPHA "Apply tabbed alpha patch?" n &&
+config_query TABBED_AUTOHIDE "Apply tabbed autohide patch?" n &&
+
+config_query_list TABBED_XRESOURCES "Apply tabbed xresources patch?" \
+ none \
+ original \
+ signal-reloading &&
+
+config_query TABBED_SEPARATOR "Apply tabbed separator patch?" n
diff --git a/wm-addons/tabbed/PRE_BUILD b/wm-addons/tabbed/PRE_BUILD
new file mode 100755
index 0000000000..2bca3166d7
--- /dev/null
+++ b/wm-addons/tabbed/PRE_BUILD
@@ -0,0 +1,42 @@
+default_pre_build &&
+cd ${SOURCE_DIRECTORY} &&
+
+if [[ $TABBED_ALPHA == y ]]; then
+ verify_file 2 &&
+
+ cat "${SOURCE_CACHE}/${SOURCE2}" > "${SOURCE_DIRECTORY}/${SOURCE2}" &&
+ patch -p0 < "${SPELL_DIRECTORY}/alpha.patch" &&
+
+ patch -p1 < "${SOURCE_DIRECTORY}/${SOURCE2}" || return 1
+fi &&
+
+if [[ $TABBED_AUTOHIDE == y ]]; then
+ verify_file 3 &&
+
+ patch -p1 < "${SOURCE_CACHE}/${SOURCE3}" || return 1
+fi &&
+
+if [[ $TABBED_XRESOURCES == "original" ]]; then
+ verify_file 4 &&
+
+ patch -p1 < "${SOURCE_CACHE}/${SOURCE4}" || return 1
+fi &&
+
+if [[ $TABBED_XRESOURCES == "signal-reloading" ]]; then
+ verify_file 5 &&
+
+ patch -p1 < "${SOURCE_CACHE}/${SOURCE5}" || return 1
+fi
+
+if [[ $TABBED_SEPARATOR == y ]]; then
+ verify_file 6 &&
+
+ if [[ $TABBED_XRESOURCES == "original" ]]; then
+ cat "${SOURCE_CACHE}/${SOURCE6}" > "${SOURCE_DIRECTORY}/${SOURCE6}" &&
+ patch -p0 < "${SPELL_DIRECTORY}/separator_xr.patch" &&
+
+ patch -p1 < "${SOURCE_DIRECTORY}/${SOURCE6}" || return 1
+ else
+ patch -p1 < "${SOURCE_CACHE}/${SOURCE6}" || return 1
+ fi
+fi
diff --git a/wm-addons/tabbed/alpha.patch b/wm-addons/tabbed/alpha.patch
new file mode 100644
index 0000000000..a265ad609a
--- /dev/null
+++ b/wm-addons/tabbed/alpha.patch
@@ -0,0 +1,45 @@
+--- alpha.diff.orig
++++ alpha.diff
+@@ -1,18 +1,14 @@
+-diff --git a/config.mk b/config.mk
+-index 3a71529..095cead 100644
+---- a/config.mk
+-+++ b/config.mk
+-@@ -9,7 +9,7 @@ MANPREFIX = ${PREFIX}/share/man
+-
+- # includes and libs
+- INCS = -I. -I/usr/include -I/usr/include/freetype2
+--LIBS = -L/usr/lib -lc -lX11 -lfontconfig -lXft
+-+LIBS = -L/usr/lib -lc -lX11 -lfontconfig -lXft -lXrender
+-
+- # flags
+- CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE
+-diff --git a/tabbed.c b/tabbed.c
+-index 9a44795..b4d47d1 100644
++--- a/Makefile
+++++ b/Makefile
++@@ -10,7 +10,7 @@
++
++ # use system flags.
++ TABBED_CFLAGS = -I/usr/X11R6/include -I/usr/include/freetype2 ${CFLAGS}
++-TABBED_LDFLAGS = -L/usr/X11R6/lib -lX11 -lfontconfig -lXft ${LDFLAGS}
+++TABBED_LDFLAGS = -L/usr/X11R6/lib -lX11 -lfontconfig -lXft -lXrender ${LDFLAGS}
++ TABBED_CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700L
++
++ # OpenBSD (uncomment)
+ --- a/tabbed.c
+ +++ b/tabbed.c
+ @@ -170,6 +170,9 @@ static char **cmd;
+@@ -33,9 +33,9 @@
+ - DefaultDepth(dpy, screen));
+ + dc.drawable = XCreatePixmap(dpy, win, ww, wh,
+ + 32);
+- if (sel > -1)
+- resize(sel, ww, wh - bh);
+- XSync(dpy, False);
++
++ if (!obh && (wh <= bh)) {
++ obh = bh;
+ @@ -399,7 +402,7 @@ drawtext(const char *text, XftColor col[ColLast])
+ ;
+ }
diff --git a/wm-addons/tabbed/separator_xr.patch b/wm-addons/tabbed/separator_xr.patch
new file mode 100644
index 0000000000..570678044c
--- /dev/null
+++ b/wm-addons/tabbed/separator_xr.patch
@@ -0,0 +1,36 @@
+--- tabbed-separator-20230128-41e2b8f.diff.orig 2023-09-07 07:45:44.579137418 -0700
++++ tabbed-separator-20230128-41e2b8f.diff 2023-09-07 07:50:36.390309833 -0700
+@@ -10,18 +10,24 @@
+
+ diff --git a/config.def.h b/config.def.h
+ index 51bb13d..6936f95 100644
+---- a/config.def.h
++--- a/config.def.h.orig
+ +++ b/config.def.h
+-@@ -14,6 +14,7 @@ static const char titletrim[] = "...";
+- static const int tabwidth = 200;
+- static const Bool foreground = True;
+- static Bool urgentswitch = False;
+-+static const int separator = 4;
+-
++@@ -14,6 +14,7 @@
++ static int tabwidth = 200;
++ static int focusnew = 1;
++ static int urgentswitch = 0;
+++static int separator = 4;
++
+ /*
+ * Where to place a new tab when it is opened. When npisrelative is True,
+-diff --git a/tabbed.c b/tabbed.c
+-index eafe28a..1c38725 100644
++@@ -50,6 +51,7 @@
++ { "tabwidth", INTEGER, &tabwidth},
++ { "focusnew", INTEGER, &focusnew},
++ { "urgentswitch", INTEGER, &urgentswitch},
+++ { "separator", INTEGER, &separator},
++ { "newposition", INTEGER, &newposition},
++ { "npisrelative", INTEGER, &npisrelative},
++ };
+ --- a/tabbed.c
+ +++ b/tabbed.c
+ @@ -381,10 +381,16 @@ drawtext(const char *text, XftColor col[ColLast])
diff --git a/wm-addons/waybar/BUILD b/wm-addons/waybar/BUILD
new file mode 100755
index 0000000000..aa65243d21
--- /dev/null
+++ b/wm-addons/waybar/BUILD
@@ -0,0 +1,2 @@
+OPTS="${WAYBAR_OPTS} $OPTS" &&
+default_build
diff --git a/wm-addons/waybar/CONFIGURE b/wm-addons/waybar/CONFIGURE
new file mode 100755
index 0000000000..b2db2a24e3
--- /dev/null
+++ b/wm-addons/waybar/CONFIGURE
@@ -0,0 +1,4 @@
+. "${GRIMOIRE}/MESON_CONFIGURE" &&
+config_query_option WAYBAR_OPTS "Build tests?" n "tests=enabled" "tests=disabled" &&
+config_query_option WAYBAR_OPTS "Enable experimental features?" n "experimental=true" "experimental=false" &&
+config_query HYPR_WORKSPACES "Patch in support for hyprland workspaces?" n
diff --git a/wm-addons/waybar/DEPENDS b/wm-addons/waybar/DEPENDS
new file mode 100755
index 0000000000..22a55f0dc3
--- /dev/null
+++ b/wm-addons/waybar/DEPENDS
@@ -0,0 +1,107 @@
+. "${GRIMOIRE}/MESON_DEPENDS" &&
+depends gtkmm3 &&
+depends jsoncpp &&
+depends libsigc++3 &&
+depends fmt &&
+depends wayland &&
+depends spdlog &&
+depends wayland-protocols &&
+depends glib2 &&
+depends libxkbcommon &&
+depends chrono-date &&
+
+optional_depends libinput \
+ 'libinput=enabled' \
+ 'libinput=disabled' \
+ 'Enable libinput support for libinput related features?' &&
+
+optional_depends libnl \
+ 'libnl=enabled' \
+ 'libnl=disabled' \
+ 'Enable libnl support for network related features?' &&
+
+optional_depends DEVICE-MANAGER \
+ 'libudev=enabled' \
+ 'libudev=disabled' \
+ 'Enable udev support for udev related features?' &&
+
+optional_depends libevdev \
+ 'libevdev=enabled' \
+ 'libevdev=disabled' \
+ 'Enable libevdev support for evdev related features?' &&
+
+optional_depends pulseaudio \
+ 'pulseaudio=enabled' \
+ 'pulseaudio=disabled' \
+ 'Enable support for pulseaudio?' &&
+
+optional_depends upower \
+ 'upower_glib=enabled' \
+ 'upower_glib=disabled' \
+ 'Enable support for upower?' &&
+
+optional_depends playerctl \
+ 'mpris=enabled' \
+ 'mpris=disabled' \
+ 'Enable support for mpris?' &&
+
+# Needs -sub GTK3
+optional_depends dbusmenu \
+ 'dbusmenu-gtk=enabled' \
+ 'dbusmenu-gtk=disabled' \
+ 'Enable support for tray?' &&
+
+if is_depends_enabled $SPELL dbusmenu; then
+ depends libappindicator
+fi &&
+
+optional_depends scdoc \
+ 'man-pages=enabled' \
+ 'man-pages=disabled' \
+ 'Generate and install man-pages?' &&
+
+optional_depends libmpdclient \
+ 'mpd=enabled' \
+ 'mpd=disabled' \
+ 'Enable support for the Music Player Daemon?' &&
+
+optional_depends gtk-layer-shell \
+ 'gtk-layer-shell=enabled' \
+ 'gtk-layer-shell=disabled' \
+ 'User gtk-layer-shell library for popups support?' &&
+
+if is_depends_enabled $SPELL gtk-layer-shell; then
+ depends gobject-introspection &&
+ depends gtk+3
+fi &&
+
+optional_depends util-linux \
+ 'rfkill=enabled' \
+ 'rfkill=disabled' \
+ 'Enable support for RFKILL?' &&
+
+optional_depends sndio \
+ 'sndio=enabled' \
+ 'sndio=disabled' \
+ 'Enable support for sndio?' &&
+
+optional_depends LOGIN-DAEMON \
+ 'logind=enabled' \
+ 'logind=disabled' \
+ 'Enable support for logind?' &&
+
+if [[ $(get_spell_provider $SPELL DEVICE-MANAGER) == "systemd" ]] ||
+ [[ $(get_spell_provider $SPELL LOGIN-DAEMON) == "systemd" ]]; then
+ config_query_option WAYBAR_OPTS \
+ "Install systemd unit file?" y "systemd=enabled" "systemd=disabled"
+fi &&
+
+optional_depends JACK-DRIVER \
+ 'jack=enabled' \
+ 'jack=disabled' \
+ 'Enable support for JACK?' &&
+
+optional_depends wireplumber \
+ 'wireplumber=enabled' \
+ 'wireplumber=disabled' \
+ 'Enable support for WirePlumber?'
diff --git a/wm-addons/waybar/DETAILS b/wm-addons/waybar/DETAILS
new file mode 100755
index 0000000000..f4e65e33e8
--- /dev/null
+++ b/wm-addons/waybar/DETAILS
@@ -0,0 +1,40 @@
+# Watch: https://github.com/Alexays/Waybar/tags /tags/([0-9.]+)[.]tar
+. "${GRIMOIRE}/MESON_FUNCTIONS"
+ SPELL=waybar
+ SPELLX=Waybar
+ VERSION=0.9.22
+ SOURCE=$SPELLX-$VERSION.tar.gz
+SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELLX-$VERSION
+ SOURCE_URL[0]=https://github.com/Alexays/Waybar/archive/${VERSION}.tar.gz
+ SOURCE_HASH=sha512:0cd2d4fdf51528d1246da756ec1d4be5dd897208f4ec1aef5ab2d2801ab72145bcccef68fa62e55f0b1bb9913d471ce5c748de97f9d785d55c06a5f6717c9849
+ LICENSE[0]=MIT
+ WEB_SITE=https://github.com/Alexays/Waybar/
+ ENTERED=20230227
+ KEYWORDS="wayland bar wlroots"
+ SHORT="wayland bar for sway and wlroots-bases compositors"
+cat << EOF
+Highly customizable Wayland bar for Sway and Wlroots based compositors.
+
+Current features
+
+ * Sway (Workspaces, Binding mode, Focused window name)
+ * River (Mapping mode, Tags, Focused window name)
+ * Hyprland (Focused window name)
+ * Tray #21
+ * Local time
+ * Battery
+ * UPower
+ * Network
+ * Bluetooth
+ * Pulseaudio
+ * Wireplumber
+ * Disk
+ * Memory
+ * Cpu load average
+ * Temperature
+ * MPD
+ * Custom scripts
+ * Custom image
+ * Multiple output configuration
+ * And many more customizations
+EOF \ No newline at end of file
diff --git a/wm-addons/waybar/FINAL b/wm-addons/waybar/FINAL
new file mode 100755
index 0000000000..2d611a2ff9
--- /dev/null
+++ b/wm-addons/waybar/FINAL
@@ -0,0 +1,12 @@
+if [[ $HYPR_WORKSPACES == "y" ]]; then
+ message "\n" \
+ "-----------------------------------\n" \
+ "${PROBLEM_COLOR}ATTENTION!\n" \
+ "${MESSAGE_COLOR}\n" \
+ "Hyprland workspace support has been patched in. In order to make it work,\n" \
+ "edit your waybar config (~/.config/waybar/config) and replace all instances\n" \
+ "of 'sway/workspaces' with 'wlr/workspaces'\n" \
+ "this can be accomplished by running (from your ~/.config/waybar/ directory):\n" \
+ "${YELLOW}sed -i \"s#sway/workspaces#wlr/workspaces#g\" config${DEFAULT_COLOR}\n" \
+ "-----------------------------------\n"
+fi
diff --git a/wm-addons/waybar/HISTORY b/wm-addons/waybar/HISTORY
new file mode 100644
index 0000000000..6efc96e879
--- /dev/null
+++ b/wm-addons/waybar/HISTORY
@@ -0,0 +1,25 @@
+2023-09-15 Conner Clere <xenanthropy@sourcemage.org>
+ * DETAILS: version 0.9.22
+ * BUILD: switch from OPTS+= to OPTS=
+ * DEPENDS: switch rfkill optional dep to util-linux
+
+2023-08-11 Conner Clere <xenanthropy@sourcemage.org>
+ * DETAILS: version 0.9.20
+
+2023-06-25 Conner Clere <xenanthropy@sourcemage.org>
+ * DETAILS: version 0.9.18
+ * patches/*wireplumber.patch: removed
+ * PRE_BUILD: remove patching line
+
+2023-03-24 Conner Clere <xenanthropy@sourcemage.org>
+ * CONFIGURE, PRE_BUILD: add edit for hyprland workspace support
+ * FINAL: added, explain edits needed to make hyprland workspaces work
+
+2023-03-12 Conner Clere <xenanthropy@sourcemage.org>
+ * DEPENDS: add missing chrono-date dep (spell just added)
+ * PRE_BUILD: added, apply patches
+ * patches/*wireplumber.patch: fix issues with wireplumber module
+
+2023-02-27 Conner Clere <xenanthropy@sourcemage.org>
+ * DETAILS, CONFIGURE, DEPENDS, BUILD: version 0.9.17, new spell
+
diff --git a/wm-addons/waybar/PRE_BUILD b/wm-addons/waybar/PRE_BUILD
new file mode 100755
index 0000000000..0864d79393
--- /dev/null
+++ b/wm-addons/waybar/PRE_BUILD
@@ -0,0 +1,6 @@
+default_pre_build &&
+cd "${SOURCE_DIRECTORY}" &&
+
+if [[ $HYPR_WORKSPACES == "y" ]]; then
+ sed -i 's/zext_workspace_handle_v1_activate(workspace_handle_);/const std::string command = "hyprctl dispatch workspace " + name_;\n\tsystem(command.c_str());/g' src/modules/wlr/workspace_manager.cpp
+fi
diff --git a/wm-addons/wlroots/BUILD b/wm-addons/wlroots/BUILD
index 5d863aaf49..c56e57a59b 100755
--- a/wm-addons/wlroots/BUILD
+++ b/wm-addons/wlroots/BUILD
@@ -1,2 +1,10 @@
-OPTS+=" ${WLROOTS_OPTS}" &&
+if ! is_depends_enabled $SPELL xwayland; then
+ OPTS="xwayland=disabled $OPTS"
+fi &&
+
+OPTS="werror=false ${WLROOTS_OPTS} \
+ renderers=${WLROOTS_RENDERERS// /,} \
+ backends=${WLROOTS_BACKENDS// /,} \
+ ${OPTS}" &&
+
default_build
diff --git a/wm-addons/wlroots/CONFIGURE b/wm-addons/wlroots/CONFIGURE
index e138587345..f3604f2cf1 100755
--- a/wm-addons/wlroots/CONFIGURE
+++ b/wm-addons/wlroots/CONFIGURE
@@ -1,4 +1,10 @@
. "${GRIMOIRE}/MESON_CONFIGURE" &&
+. "${GRIMOIRE}/config_query_multi.function" &&
config_query_option WLROOTS_OPTS "Build examples?" \
- "n" "examples=true" "examples=false"
+ "n" "examples=true" "examples=false" &&
+
+config_query_multi WLROOTS_BACKENDS "Which backends to use?" drm libinput x11 &&
+
+config_query_multi WLROOTS_RENDERERS "Which renderers to use?" gles2 vulkan
+
diff --git a/wm-addons/wlroots/DEPENDS b/wm-addons/wlroots/DEPENDS
index 38df8048d9..3d99b6afce 100755
--- a/wm-addons/wlroots/DEPENDS
+++ b/wm-addons/wlroots/DEPENDS
@@ -1,37 +1,65 @@
-. "$GRIMOIRE"/VDEPENDS &&
-. "$GRIMOIRE"/MESON_DEPENDS &&
+. "$GRIMOIRE"/VDEPENDS &&
+. "$GRIMOIRE"/MESON_DEPENDS &&
+. "$GRIMOIRE"/depends_one_of.function &&
-if [[ '${WLROOTS_BRANCH}' == 'scm' ]]; then
- depends git
-fi &&
-
-depends python3 &&
-depends DEVICE-MANAGER &&
-#depends libinput &&
-depends libxkbcommon &&
-depends OPENGL &&
-depends pixman &&
-depends seatd &&
-depends wayland &&
+depends python3 &&
+depends libxkbcommon &&
+depends pixman &&
+depends wayland &&
depends wayland-protocols &&
-depends xcb-util-errors &&
vdepends <<! &&
libdrm >= 2.4.109
!
-#optional_depends libcap \
-# 'libcap=enabled' \
-# 'libcap=disabled' \
-# 'to enable rootless session support' &&
+if list_find "${WLROOTS_RENDERERS}" "gles2"; then
+ optional_depends -sub GLES2 mesa '' '' 'Use mesa for gles2? If no, uses nvidia' &&
+ if ! is_depends_enabled $SPELL mesa; then
+ depends NVIDIA z-rejected
+ fi
+else
+ depends OPENGL
+fi &&
+if list_find "${WLROOTS_RENDERERS}" "vulkan"; then
+ depends vulkan-headers &&
+ depends vulkan-loader &&
+ depends glslang
+fi &&
-optional_depends libinput '' '' 'input backend' &&
-optional_depends libxcb '' '' 'enable X11 backend' &&
+if list_find "${WLROOTS_BACKENDS}" "libinput"; then
+ depends libinput
+fi &&
-optional_depends vulkan-headers '' '' 'build Vulkan renderer' &&
-if is_depends_enabled $SPELL vulkan-headers;then
- depends vulkan-loader &&
- depends glslang
+if list_find "${WLROOTS_BACKENDS}" "drm"; then
+ depends libdisplay-info &&
+ depends libliftoff
fi &&
-optional_depends xwayland '' '' 'X11 support'
+
+if list_find "${WLROOTS_BACKENDS}" "x11"; then
+ depends xwayland 'xwayland=enabled' &&
+ depends libxcb &&
+ depends xcb-util-wm &&
+ depends xcb-util-renderutil &&
+
+ optional_depends xcb-util-errors \
+ 'xcb-errors=enabled' \
+ 'xcb-errors=disabled' \
+ 'Enable improved error reporting?'
+fi &&
+
+if [[ "${WLROOTS_BRANCH}" == "scm" ]]; then
+ depends git
+fi &&
+
+ if ! list_find "${WLROOTS_BACKENDS}" "drm" &&
+ ! list_find "${WLROOTS_BACKENDS}" "libinput"; then
+
+ optional_depends seatd \
+ 'session=enabled' \
+ 'session=disabled' \
+ 'Enable session support?'
+ else
+ depends seatd &&
+ depends DEVICE-MANAGER
+ fi
diff --git a/wm-addons/wlroots/DETAILS b/wm-addons/wlroots/DETAILS
index b97f4d0258..f5d5d09693 100755
--- a/wm-addons/wlroots/DETAILS
+++ b/wm-addons/wlroots/DETAILS
@@ -1,27 +1,33 @@
+# Watch: https://gitlab.freedesktop.org/wlroots/wlroots/-/tags
. "${GRIMOIRE}/FUNCTIONS"
. "${GRIMOIRE}/MESON_FUNCTIONS"
SPELL="wlroots"
-if [[ "${WLROOTS_BRANCH}" == "scm" ]]; then
+case "${WLROOTS_BRANCH}" in
+(scm)
VERSION="$(get_scm_version)"
SOURCE="${SPELL}-git.tar.xz"
- FORCE_DOWNLOAD="on"
- SOURCE_URL[0]="https://gitlab.freedesktop.org/wlroots/wlroots.git"
- SOURCE2=$SOURCE.sig
- SOURCE2_URL[0]=${SOURCE_URL[0]}.sig
- SOURCE_GPG=sway.gpg:$SOURCE.sig:UPSTREAM_KEY
- SOURCE2_IGNORE=signature
+ SOURCE_URL[0]="git_http://gitlab.freedesktop.org/${SPELL}/${SPELL}.git:${SPELL}-git"
SOURCE_IGNORE="volatile"
-SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-git"
-else
- VERSION=0.15.1
- SOURCE="${SPELL}-${VERSION}.tar.gz"
-SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}"
- SOURCE_URL[0]="https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${VERSION}/downloads/$SOURCE"
+ FORCE_DOWNLOAD=on
+;;
+(hyprland)
+ VERSION=0.18.0-50eae512d9cecbf0
+ WLROOTS_COMMIT="50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b"
+ SOURCE_HASH="sha512:ce09d175f12cf25021caf18c0eac56aad97d238b3e2c4bfcc071d12d1bb8a44ee5c3aceab72ce3002928ca3c2c833bb5992b4820b44e0d0985c343ae903d056e"
+ SOURCE="${SPELL}-${WLROOTS_COMMIT}.tar.gz"
+ SOURCE_URL[0]="https://gitlab.freedesktop.org/${SPELL}/${SPELL}/-/archive/${WLROOTS_COMMIT}/${SOURCE}.tar.gz"
+;;
+(*)
+ VERSION=0.17.2
+ SOURCE="$SPELL-$VERSION.tar.gz"
+ SOURCE_URL[0]="https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/$VERSION/downloads/$SOURCE"
SOURCE2=$SOURCE.sig
SOURCE2_URL[0]=${SOURCE_URL[0]}.sig
SOURCE_GPG=sway.gpg:$SOURCE.sig:UPSTREAM_KEY
SOURCE2_IGNORE=signature
-fi
+;;
+esac
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/${SOURCE%.tar.gz}"
LICENSE[0]="MIT"
WEB_SITE="https://swaywm.org"
ENTERED="20181223"
diff --git a/wm-addons/wlroots/HISTORY b/wm-addons/wlroots/HISTORY
index 2711cf203a..55c0a4ec37 100644
--- a/wm-addons/wlroots/HISTORY
+++ b/wm-addons/wlroots/HISTORY
@@ -1,3 +1,107 @@
+2024-03-26 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: removed redundant case operator
+
+2024-03-25 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: update hyprland commit id for hyprland 0.37.1 to
+ 0.18.0-50eae512d9cecbf0
+
+2024-03-12 Treeve Jelbert <treeve@sourcemage.org>
+ * DETAILS: version 0.17.2
+
+2024-02-24 Treeve Jelbert <treeve@sourcemage.org>
+ * DETAILS: rewmove special case for sway
+ VERSION= 0.17.1
+
+2024-02-17 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: update hyprland commit id for hyprland 0.35.0 to
+ 0.18.0-00b869c1a96f300a
+
+2024-01-25 Ismael Luceno <ismael@sourcemage.org>
+ * DETAILS: fixed to use proper version numbers; git commit ids are
+ not appropriate
+
+2023-12-24 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: update HYPRLAND commit id for hyprland 0.33.1, alignment++
+
+2023-11-29 Pavel Vinogradov <public@sourcemage.org>
+ * DEPENDS, DETAILS, PREPARE, PRE_SUB_DEPENDS, SUB_DEPENDS,
+ REPAIR^all^PRE_SUB_DEPENDS: added tag for sway, reorganized queries
+
+2023-11-28 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: update HYPRLAND commit id for hyprland 0.32.3
+ * DEPENDS: doesn't need git if built for hyprland
+
+2023-11-27 Treeve Jelbert <treeve@sourcemage.org>
+ * DETAILS: version 0.17.0
+ * DEPENDS: adjust depends for new stable version
+
+2023-10-25 Conner Clere <xenanthropy@sourcemage.org>
+ * DETAILS: update HYPRLAND commit id for hyprland 0.31.0,
+ change hyprland wlroots source to grab tarballs from gitlab
+
+2023-10-14 Conner Clere <xenanthropy@sourcemage.org>
+ * DETAILS: update HYPRLAND commit id for hyprland 0.30.0,
+ add source hash when checking out for hyprland
+
+2023-09-02 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: updated HYPRLAND commit id for hyprland 0.29.0
+
+2023-08-17 Conner Clere <xenanthropy@sourcemage.org>
+ * PRE_BUILD: removed, no longer needed for patching
+ * patches/session.patch: removed, no longer working
+ * DEPENDS: reworked depends to give more options for renderers and backends
+ * CONFIGURE: added options for renderers and backends
+ * BUILD: update to use new CONFIGURE options
+
+2023-08-06 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: updated HYPRLAND commit id for hyprland 0.28.0
+
+2023-07-20 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: updated HYPRLAND commit id for hyprland 0.27.2, now uses more
+ substitutions in scm urls
+
+2023-05-07 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: updated HYPRLAND commit id for hyprland 0.25.0
+
+2023-04-08 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: updated HYPRLAND commit id for hyprland 0.24.0
+
+2023-03-20 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: updated HYPRLAND commit id for hyprland 0.23.0
+
+2023-03-10 Conner Clere <xenanthropy@sourcemage.org>
+ * DEPENDS: check for scm branch for libliftoff and libdisplay-info deps
+ * PRE_BUILD: added, patch
+ * patches/session.patch: add session meson option to stable branch
+
+2023-03-08 Conner Clere <xenanthropy@sourcemage.org>
+ * PREPARE: add HYPRLAND config_query
+ * DETAILS: if HYPRLAND=y then SOURCE_URL = commit id
+ to sync wlroots version with hyprland
+ * DEPENDS: reworked dependencies (seatd, DEVICE-MANAGER,
+ xcb-util-errors, hwdata optional) xwayland hard dep if
+ x11 backend enabled; new (possible) deps: xcb-util-renderutil,
+ xcb-util-wm, libdisplay-info, libliftoff
+ * PRE_BUILD: removed
+ * PRE_SUB_DEPENDS, SUB_DEPENDS, 'REPAIR^all^PRE_SUB_DEPENDS': add HYPRLAND
+
+2023-03-06 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: https -> git_http for scm branch, dropped signature too
+ * DEPENDS: ' -> " for scm branch check
+
+2023-02-26 Pavel Vinogradov <public@sourcemage.org>
+ * *SUB_DEPENDS: added for SCM sub_dependency
+
+2023-02-23 Pavel Vinogradov <public@sourcemage.org>
+ * DETAILS: version 0.16.2
+
+2022-12-12 Pavel Vinogradov <public@sourcemage.org>
+ * BUILD: disabled -Werror
+ * DEPENDS: needs hwdata because of libdrm
+
+2022-11-12 Treeve Jelbert <treeve@sourcemage.org>
+ * DETAILS: version 0.16.0
+
2022-05-28 Florian Franzmann <bwlf@bandrate.org>
* DEPENDS: use MESON_DEPENDS
diff --git a/wm-addons/wlroots/PREPARE b/wm-addons/wlroots/PREPARE
index e38d86f7e9..c672c974e5 100755
--- a/wm-addons/wlroots/PREPARE
+++ b/wm-addons/wlroots/PREPARE
@@ -1,2 +1,5 @@
. "${GRIMOIRE}/FUNCTIONS" &&
-prepare_select_branch stable scm
+
+persistent_remove HYPRLAND &&
+
+prepare_select_branch stable scm hyprland sway
diff --git a/wm-addons/wlroots/PRE_SUB_DEPENDS b/wm-addons/wlroots/PRE_SUB_DEPENDS
new file mode 100755
index 0000000000..9839f64e76
--- /dev/null
+++ b/wm-addons/wlroots/PRE_SUB_DEPENDS
@@ -0,0 +1,7 @@
+case "${THIS_SUB_DEPENDS}" in
+ SCM) [[ "${WLROOTS_BRANCH}" == "scm" ]] ;;
+ HYPRLAND) [[ "${WLROOTS_BRANCH}" == "hyprland" ]] ;;
+ SWAY) [[ "${WLROOTS_BRANCH}" == "sway" ]] ;;
+ *) message "${PROBLEM_COLOR}bogus sub_depends: $SPELL $THIS_SUB_DEPENDS${DEFAULT_COLOR}" &&
+ return 1 ;;
+esac
diff --git a/wm-addons/wlroots/REPAIR^all^PRE_SUB_DEPENDS b/wm-addons/wlroots/REPAIR^all^PRE_SUB_DEPENDS
new file mode 100755
index 0000000000..9839f64e76
--- /dev/null
+++ b/wm-addons/wlroots/REPAIR^all^PRE_SUB_DEPENDS
@@ -0,0 +1,7 @@
+case "${THIS_SUB_DEPENDS}" in
+ SCM) [[ "${WLROOTS_BRANCH}" == "scm" ]] ;;
+ HYPRLAND) [[ "${WLROOTS_BRANCH}" == "hyprland" ]] ;;
+ SWAY) [[ "${WLROOTS_BRANCH}" == "sway" ]] ;;
+ *) message "${PROBLEM_COLOR}bogus sub_depends: $SPELL $THIS_SUB_DEPENDS${DEFAULT_COLOR}" &&
+ return 1 ;;
+esac
diff --git a/wm-addons/wlroots/SUB_DEPENDS b/wm-addons/wlroots/SUB_DEPENDS
new file mode 100755
index 0000000000..00d718e901
--- /dev/null
+++ b/wm-addons/wlroots/SUB_DEPENDS
@@ -0,0 +1,10 @@
+case "${THIS_SUB_DEPENDS}" in
+ SCM) echo "SCM branch needed, forcing it." &&
+ [[ "${WLROOTS_BRANCH}" == "scm" ]] || WLROOTS_BRANCH="scm" ;;
+HYPRLAND) echo "HYPRLAND commit-id needed, forcing it." &&
+ [[ "${WLROOTS_BRANCH}" == "hyprland" ]] || WLROOTS_BRANCH="hyprland" ;;
+SWAY) echo "Sway commit-id needed, forcing it." &&
+ [[ "${WLROOTS_BRANCH}" == "sway" ]] || WLROOTS_BRANCH="sway" ;;
+ *) message "${PROBLEM_COLOR}bogus sub_depends: $SPELL $THIS_SUB_DEPENDS${DEFAULT_COLOR}" &&
+ return 1 ;;
+esac