From d0ef8714a3631707e6db11afa82aca1d82b6a20c Mon Sep 17 00:00:00 2001 From: Martin Sekera Date: Tue, 25 Jan 2022 18:33:09 +0100 Subject: [PATCH] add x11-wm/qtile --- x11-wm/qtile/files/qtile-session | 89 ++++++++++++++++++++++++++++++++ x11-wm/qtile/qtile-0.20.0.ebuild | 45 ++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 x11-wm/qtile/files/qtile-session create mode 100644 x11-wm/qtile/qtile-0.20.0.ebuild diff --git a/x11-wm/qtile/files/qtile-session b/x11-wm/qtile/files/qtile-session new file mode 100644 index 0000000..56a96dd --- /dev/null +++ b/x11-wm/qtile/files/qtile-session @@ -0,0 +1,89 @@ +#!/bin/sh +# qtile Xsession starter, based on Xsession from x11-apps/xinit + +# redirect errors to a file in user's home directory if we can +for errfile in "$HOME/.qtile-errors" "${TMPDIR-/tmp}/qtile-$USER" "/tmp/qtile-$USER" +do + if ( cp /dev/null "$errfile" 2> /dev/null ) + then + chmod 600 "$errfile" + exec > "$errfile" 2>&1 + break + fi +done + +userresources=$HOME/.Xresources +usermodmap=$HOME/.Xmodmap +userxkbmap=$HOME/.Xkbmap + +sysresources=/etc/X11/Xresources +sysmodmap=/etc/X11/Xmodmap +sysxkbmap=/etc/X11/Xkbmap + +rh6sysresources=/etc/X11/xinit/Xresources +rh6sysmodmap=/etc/X11/xinit/Xmodmap + +# merge in defaults +if [ -f "$rh6sysresources" ]; then + xrdb -merge "$rh6sysresources" +fi + +if [ -f "$sysresources" ]; then + xrdb -merge "$sysresources" +fi + +if [ -f "$userresources" ]; then + xrdb -merge "$userresources" +fi + +# merge in keymaps +if [ -f "$sysxkbmap" ]; then + setxkbmap `cat "$sysxkbmap"` + XKB_IN_USE=yes +fi + +if [ -f "$userxkbmap" ]; then + setxkbmap `cat "$userxkbmap"` + XKB_IN_USE=yes +fi + +# +# Eeek, this seems like too much magic here +# +if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then + if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then + xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config /etc/X11/xorg.conf` + if [ -n "$xkbsymbols" ]; then + setxkbmap -symbols "$xkbsymbols" + XKB_IN_USE=yes + fi + fi +fi + +# xkb and xmodmap don't play nice together +if [ -z "$XKB_IN_USE" ]; then + if [ -f "$rh6sysmodmap" ]; then + xmodmap "$rh6sysmodmap" + fi + + if [ -f "$sysmodmap" ]; then + xmodmap "$sysmodmap" + fi + + if [ -f "$usermodmap" ]; then + xmodmap "$usermodmap" + fi +fi + +unset XKB_IN_USE + +# run all system xinitrc shell scripts. +if [ -d /etc/X11/xinit/xinitrc.d ]; then + for i in /etc/X11/xinit/xinitrc.d/* ; do + if [ -x "$i" ]; then + . "$i" + fi + done +fi + +exec /usr/bin/qtile diff --git a/x11-wm/qtile/qtile-0.20.0.ebuild b/x11-wm/qtile/qtile-0.20.0.ebuild new file mode 100644 index 0000000..b0a8882 --- /dev/null +++ b/x11-wm/qtile/qtile-0.20.0.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DISTUTILS_USE_SETUPTOOLS=rdepend + +PYTHON_COMPAT=( python3_{8,9,10} ) + +inherit distutils-r1 + +DESCRIPTION="A full-featured, hackable tiling window manager written in Python" +HOMEPAGE="http://qtile.org/" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="amd64 ~arm64 ~riscv ~x86" + +# requires internet and specific +# pulseaudio settings +RESTRICT="test" + +RDEPEND=" + x11-libs/cairo[X,xcb(+)] + x11-libs/pango + dev-python/setuptools[${PYTHON_USEDEP}] + dev-python/setuptools_scm[${PYTHON_USEDEP}] + >=dev-python/cairocffi-0.9.0[${PYTHON_USEDEP}] + >=dev-python/cffi-1.1.0[${PYTHON_USEDEP}] + >=dev-python/six-1.4.1[${PYTHON_USEDEP}] + >=dev-python/xcffib-0.8.1[${PYTHON_USEDEP}] + media-sound/pulseaudio +" + +python_install_all() { + local DOCS=( CHANGELOG README.rst ) + distutils-r1_python_install_all + + insinto /usr/share/xsessions + doins resources/qtile.desktop + + exeinto /etc/X11/Sessions + newexe "${FILESDIR}"/${PN}-session ${PN} +}