aboutsummaryrefslogtreecommitdiff
path: root/desktop/qtile-extras
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/qtile-extras')
-rw-r--r--desktop/qtile-extras/README1
-rw-r--r--desktop/qtile-extras/python3.9_fixes.patch94
-rw-r--r--desktop/qtile-extras/qtile-extras.SlackBuild89
-rw-r--r--desktop/qtile-extras/qtile-extras.info10
-rw-r--r--desktop/qtile-extras/slack-desc19
5 files changed, 213 insertions, 0 deletions
diff --git a/desktop/qtile-extras/README b/desktop/qtile-extras/README
new file mode 100644
index 0000000000..2149d9c3ca
--- /dev/null
+++ b/desktop/qtile-extras/README
@@ -0,0 +1 @@
+qtile-extras is a collection of mods made by elParaguayo for Qtile.
diff --git a/desktop/qtile-extras/python3.9_fixes.patch b/desktop/qtile-extras/python3.9_fixes.patch
new file mode 100644
index 0000000000..4c6bc34bd1
--- /dev/null
+++ b/desktop/qtile-extras/python3.9_fixes.patch
@@ -0,0 +1,94 @@
+--- a/qtile_extras/layout/decorations/borders.py
++++ b/qtile_extras/layout/decorations/borders.py
+@@ -205,7 +205,7 @@
+ _BorderStyle.__init__(self, **config)
+ self.add_defaults(GradientBorder.defaults)
+
+- if not isinstance(self.colours, list | tuple):
++ if not isinstance(self.colours, (list, tuple)):
+ raise ConfigError("colours must be a list or tuple.")
+
+ if self.offsets is None:
+@@ -261,7 +261,7 @@
+ self.add_defaults(GradientFrame.defaults)
+ self.offsets = [x / (len(self.colours) - 1) for x in range(len(self.colours))]
+
+- if not isinstance(self.colours, list | tuple):
++ if not isinstance(self.colours, (list, tuple)):
+ raise ConfigError("colours must be a list or tuple.")
+
+ self._check_colours()
+@@ -408,7 +408,7 @@
+ _BorderStyle.__init__(self, **config)
+ self.add_defaults(SolidEdge.defaults)
+
+- if not (isinstance(self.colours, list | tuple) and len(self.colours) == 4):
++ if not (isinstance(self.colours, (list, tuple)) and len(self.colours) == 4):
+ raise ConfigError("colours must have 4 values.")
+
+ self._check_colours()
+@@ -488,7 +488,7 @@
+ return self.fallback
+
+ for match, colour in self.matches:
+- if isinstance(match, list | str):
++ if isinstance(match, (list, str)):
+ matched = any(m.compare(win) for m in match)
+ else:
+ matched = match.compare(win)
+--- a/qtile_extras/widget/decorations.py
++++ b/qtile_extras/widget/decorations.py
+@@ -72,9 +72,9 @@
+ self.parent = parent
+
+ def single_or_four(self, value, name: str):
+- if isinstance(value, float | int):
++ if isinstance(value, (float, int)):
+ n = e = s = w = value
+- elif isinstance(value, tuple | list):
++ elif isinstance(value, (tuple, list)):
+ if len(value) == 1:
+ n = e = s = w = value[0]
+ elif len(value) == 4:
+--- a/qtile_extras/widget/groupbox2.py
++++ b/qtile_extras/widget/groupbox2.py
+@@ -24,7 +24,7 @@
+ from copy import deepcopy
+ from enum import Flag, auto
+ from pathlib import Path
+-from typing import TYPE_CHECKING
++from typing import TYPE_CHECKING, Union
+
+ from cairocffi.pixbuf import ImageLoadingError
+ from libqtile import bar, hook
+@@ -39,8 +39,8 @@
+ from typing import Any, Literal
+
+
+-ColorType = str | tuple[int, int, int] | tuple[int, int, int, float]
+-ColorsType = ColorType | list[ColorType]
++ColorType = Union[str, tuple[int, int, int], tuple[int, int, int, float]]
++ColorsType = Union[ColorType, list[ColorType]]
+
+
+ IMAGE_CACHE: dict[str, Img] = {}
+--- a/qtile_extras/widget/statusnotifier.py
++++ b/qtile_extras/widget/statusnotifier.py
+@@ -32,7 +32,7 @@
+ from qtile_extras.widget.mixins import DbusMenuMixin
+
+ if TYPE_CHECKING:
+- from collections.abc import Callable
++ from typing import Callable, Optional
+
+ NO_MENU = "/NO_DBUSMENU"
+
+@@ -55,7 +55,7 @@
+ await self.menu.start()
+
+
+-def get_menu(self, root: int = 0, callback: Callable | None = None):
++def get_menu(self, root: int = 0, callback: Optional[Callable] = None):
+ if self.menu:
+ self.menu.get_menu(root, callback=callback)
+
diff --git a/desktop/qtile-extras/qtile-extras.SlackBuild b/desktop/qtile-extras/qtile-extras.SlackBuild
new file mode 100644
index 0000000000..d11aa1b1fb
--- /dev/null
+++ b/desktop/qtile-extras/qtile-extras.SlackBuild
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+# Slackware build script for qtile-extras
+
+# Copyright 2025 Isaac Yu <isaacyu@protonmail.com>
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=qtile-extras
+VERSION=${VERSION:-0.33.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+SRCNAM=qtile_extras
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+PYVER=$(python3 -c 'import sys; print("%d.%d" % sys.version_info[:2])')
+export PYTHONPATH=/opt/python$PYVER/site-packages/
+
+# Fix TypeErrors (Slackware 15.0 has Python 3.9 installed)
+# View the following commit for more details:
+# https://github.com/elParaguayo/qtile-extras/commit/c65b282d81e6a9b23f91158c41603b2b4909a4e1
+[[ $PYVER == 3.9 ]] && patch -p1 < $CWD/python3.9_fixes.patch
+
+python3 -m build --no-isolation
+python3 -m installer -d "$PKG" dist/*.whl
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGELOG README.md $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/desktop/qtile-extras/qtile-extras.info b/desktop/qtile-extras/qtile-extras.info
new file mode 100644
index 0000000000..b1e38b3aca
--- /dev/null
+++ b/desktop/qtile-extras/qtile-extras.info
@@ -0,0 +1,10 @@
+PRGNAM="qtile-extras"
+VERSION="0.33.0"
+HOMEPAGE="https://github.com/elParaguayo/qtile-extras"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/q/qtile-extras/qtile_extras-0.33.0.tar.gz"
+MD5SUM="52d30941fb741629f66d545640c879ac"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="qtile"
+MAINTAINER="Isaac Yu"
+EMAIL="isaacyu@protonmail.com"
diff --git a/desktop/qtile-extras/slack-desc b/desktop/qtile-extras/slack-desc
new file mode 100644
index 0000000000..afd86bc45a
--- /dev/null
+++ b/desktop/qtile-extras/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+qtile-extras: qtile-extras (extra mods for qtile)
+qtile-extras:
+qtile-extras: qtile-extras is a collection of mods made by elParaguayo for Qtile.
+qtile-extras:
+qtile-extras:
+qtile-extras:
+qtile-extras:
+qtile-extras:
+qtile-extras:
+qtile-extras:
+qtile-extras: