woof-CE icon indicating copy to clipboard operation
woof-CE copied to clipboard

labwc preparation

Open 01micko opened this issue 3 years ago • 31 comments

These are things required for a full wayland desktop experience -

  • [x] labwc compositor petbuild
  • [x] yambar panel (or other) #2638
  • [x] swayidle - for screen locking - see https://github.com/johanmalm/labwc/issues/108 - #2668
  • [x] #2749
  • [x] grim - screenshot app for wlroots compositors #2633
  • [ ] wf-recorder (requires ffmpeg) - great for screen capture videos
  • [x] slurp - region selector (useful for grim and wf-recorder) - #2668
  • [x] mixer - using a python mixer for now but at least some volume control is needed - pavucontrol segfaults on wayland - fixed by #2639? ~No - pavucontrol still segfaults~ (fixed upstream), a known issue. gtkdialog volume slider under development. See #2653
  • [x] gtk-layer-shell support for gtkdialog - see https://github.com/dimkr/gtkdialog/tree/meson #2626
  • [x] foot - native wayland terminal emulator - lxterminal also works - use lxterminal
  • [x] file manager - using thunar atm, but pcmanfm maybe more friendly. @peabee do you have a build script? - #2618
  • [ ] wallpaper setter, wwals - https://gist.github.com/01micko/192701ac9b329d3f737194b6623c08f5
  • [x] image viewer - #2621 use imgview #2674
  • [ ] fix or remove non-wayland compliant woof apps #2694 #2688 #2686 #2716 #2709
  • [x] #2702
  • [x] icon font; required for icons in yambar. Besides they are fun! make it a petbuild #2675
  • [x] swaybg #2632
  • [x] monitor configuration #2660
  • [ ] Theme support #2720 #2701 #2719 #2560 #2730

01micko avatar Nov 08 '21 20:11 01micko

  • [ ] file manager - using thunar atm, but pcmanfm maybe more friendly. @peabee do you have a build script?

No - I use the ponce builds: http://ponce.cc/slackware/slackware-current/packages/

peabee avatar Nov 08 '21 22:11 peabee

That's very ambitious! But I'm happy to see you marching forward and onwards into the great unknown.

My only question - is this "pure wayland" going to be the only supported way moving forward, or are you going to keep Xorg support as an option (at least for the foreseeable future?)

jamesbond3142 avatar Nov 09 '21 05:11 jamesbond3142

@01micko I have a pcmanfm petbuild in https://github.com/dimkr/woof-CE/tree/feature/pcmanfm-desktop/woof-code/rootfs-petbuilds/pcmanfm, it should work. But I think it needs to be patched to remove the warnings when running as root. And I won't be surprised if the desktop icons functionality is broken under Wayland, because there's no root window.

EDIT: forgot to mention this, my gtk-layer-shell gtkdialog branch doesn't work. There's a bug there (we select the layer, then always go for the overlay layer), but even after fixing it, the window is always in the same layer. This needs more work, but it's much easier now that we have a labwc petbuild.

dimkr avatar Nov 09 '21 05:11 dimkr

That's very ambitious! But I'm happy to see you marching forward and onwards into the great unknown.

My only question - is this "pure wayland" going to be the only supported way moving forward, or are you going to keep Xorg support as an option (at least for the foreseeable future?)

I'm 100% supportive of the idea of keeping X around, as long as things other than window management that rely on X (for example, starting the screensaver when idle, monitor layout configuration) are taken care of at the Wayland compositor level when using Xwayland - see https://github.com/puppylinux-woof-CE/woof-CE/wiki/Wayland-Support and https://github.com/vanilla-dpup/releases. Maybe X.Org can be dropped at some distant point in the future, at least on x86_64.

dimkr avatar Nov 09 '21 06:11 dimkr

That's very ambitious! But I'm happy to see you marching forward and onwards into the great unknown.

My only question - is this "pure wayland" going to be the only supported way moving forward, or are you going to keep Xorg support as an option (at least for the foreseeable future?)

Just staying on the bleeding edge :rofl:

I intend to release a pure wayland pup - it may not even be based on slacko - perhaps debian testing.

Of course wayland is not quite ready for light weight systems so mainline should be based on X and @dimkr 's cage idea is a brilliant stepping stone offering both worlds.

After I scratch that itch I'll probably play with Xwayland a bit more.

01micko avatar Nov 09 '21 06:11 01micko

Some tasks can be postponed for later - today I found out that when you run rox -p under labwc (and labwc is built with Xwayland support), the pinboard runs in a window. Pinboard icons work, and labwc manages all windows.

(You can see this if you labwc -s "/root/.xinitrc lxterminal")

If we anchor that window to 0,0, move it to the background layer (using the layer shell protocol) and remove the window borders, maybe we can keep using ROX-Filer.

The main problem is that if you have at least one Wayland-incapable application (ROX-Filer, I'm looking at you), you need to have Xwayland installed and running.

(I think this is a good opportunity to get rid of ROX-Filer, which I'm not a big fan of. I also don't use pinboard that much - I usually start applications with Alt-F2.)

I'll see if gpicview works on Wayland, and maybe pavucontrol doesn't work only because it's ~/.xinitrc that starts the PulseAudio daemon.

EDIT: yes, pavucontrol works under labwc -s "/root/.xinitrc urxvt", gpicview segfaults

dimkr avatar Nov 09 '21 06:11 dimkr

I know you don’t like ROX-Filer, but if you are considering using the pinboard, would automatically adding the contents of the ~/Desktop directory to the pinboard be something worth pursuing?

https://forum.puppylinux.com/viewtopic.php?p=15696

woodenshoe-wi avatar Nov 09 '21 15:11 woodenshoe-wi

I know you don’t like ROX-Filer, but if you are considering using the pinboard, would automatically adding the contents of the ~/Desktop directory to the pinboard be something worth pursuing?

I think many Puppy users would love that.

But this is unrelated to the Wayland effort - there's no 'root window' for the wallpaper and desktop icons in Wayland, unless the compositor implements it itself. As I said in a previous comment - maybe we can run the pinboard in a fullscreen Xwayland window without borders in the background layer (below all windows), but I think it won't be trivial.

dimkr avatar Nov 09 '21 16:11 dimkr

I got an email from IcoMoon approving use to redistribute a font I made on their site


IcoMoon Support [email protected] | IcoMoon Support [email protected] | 1:10 PM (7 hours ago)

No problem. We would appreciate a mention in the release notes.

Best Regards, IcoMoon team IcoMoon Support [email protected]

I have added 2 icons (GPLv2) to the IcoMoon Free font, which is GPL. Is it legal for me to redistribute the resultant font, for free of course, as part of an open project? If you need credit I will give it in the release notes.

Regards, Michael Amadio, Puppy Linux developer.


01micko avatar Nov 09 '21 20:11 01micko

I started writing a startlabwc script that can be invoked directly from ~/.profile (labwc -s startlabwc), instead of xwin:

#!/bin/ash

# start a D-Bus session bus for both root and spot, for PulseAudio and applications that don't work without it
eval `dbus-launch --exit-with-x11 --sh-syntax`
run-as-spot dbus-launch --exit-with-x11 > /tmp/.spot-session-bus

# start PulseAudio over the session bus and use it for both root and spot, so they see the same output devices
if [ -e /usr/bin/pulseaudio ]; then
    run-as-spot sh -c "pulseaudio --kill > /dev/null 2>&1; pulseaudio --start --log-target=syslog"
    export PULSE_SERVER=unix:/tmp/runtime-spot/pulse/native
    export PULSE_COOKIE=/home/spot/.config/pulse/cookie
fi

# hack for Firefox
xhost +local:

# TODO: swaybg
# TODO: yambar
# TODO: swayidle + swaylock
# TODO: input device configuration
# TODO: menu generator

# hack until we have a menu generator
lxterminal &

/usr/sbin/delayedrun &

I'll package the various wlroots tools together with labwc in one petbuild. We'll need to add the menu generator to the xdg-puppy petbuild, and input device configuration requires some thought first.

dimkr avatar Nov 09 '21 21:11 dimkr

With #2628 and #2634:

1

(Still need to fix #2560! What a stubborn issue)

dimkr avatar Nov 11 '21 06:11 dimkr

Latest labwc now supports swayidle so I tried running the same string as used in the cage implementation and while xlock locks fine it won't respond to wake up events! Of course! :rofl:

01micko avatar Nov 25 '21 05:11 01micko

~/.config/swayidle/config

timeout 100 'wlr-randr --output DVI-D-1 --off --output VGA-1 --off &' resume 'kanshi &'

That works a treat. I have timing issues on dual/multi monitors with straight out wlr-randr string but I'll try to work on that to reduce dependencies.


EDIT: Ok, this works without kanshi

timeout 100 'wlr-randr --output DVI-D-1 --off --output VGA-1 --off &' resume 'wlr-randr --output DVI-D-1 --pos 0,0 --on --output VGA-1 --pos 1920,0 --on &'

01micko avatar Nov 26 '21 07:11 01micko

20211127_17h13m26s_grim

What it does:

  • loops through available outputs and takes a screenshot, builds gtkdialog xml,
  • writes to a file (not implemented yet) to be run on startup of labwc using wlr-randr

01micko avatar Nov 27 '21 07:11 01micko

The above GUI is now fully working and resumes fine after startup. ~The only thing left to do is get the current config into the GUI instead of wlr-randr defaults~ Done. So far only tested with 2 outputs. ~Oh I need to put a trap in to delete the $TEMPDIR and maybe write the command file elsewhere so it's available to other compositors.~ Done.

wmonitors.sh

#!/bin/bash

# Wmonitors, GPLv2 (/usr/share/doc/legal/)
# requires bash, wlr-randr, grim, gtkdialog, cut, sed, 

TEMPDIR=/tmp/wmon$$
mkdir -p $TEMPDIR
CWD=`pwd`
CFGDIR="$XDG_CONFIG_HOME/wmonitors"
[ -d "$CFGDIR" ] || mkdir -p $CFGDIR
BACKTITLE="$(gettext '<b>Wmonitors</b>. These settings are for monitor resolution, placement of monitors if you have multiple monitors, and screen orientation settings. Set them and press <b>Ok</b>.')"
ICON="graphics"

MONITORS=
exit_error() {
	echo "$1" && exit 1
}

# get outputs
mons() {
	MONITORS="$(while read -r MON REST
	do
		case "${MON:0:3}" in
			[0-9]*|Phy|Ena|Mod|Pos|Tra|Sca)continue;;
		esac
		echo -n "$MON "
	done <$TEMPDIR/wrandr)"
	
	[ -n "$MONITORS" ] || return 1
}

# construct comboboxentry <items>
rnr_gui() { # $1 next iter, $2 is the monitor gui, $3 is the next delim until EOF
	cnt=0
	x=1
	while read z ; do 
		if [ "$1" = 'x' ]; then
			echo "$z" | grep -q "$2" && x=0
		fi
		case "$z" in
			"$2"*|Physical*|Enabled*|Modes*)
				continue;;
			Position*) echo "$z"  > $TEMPDIR/${2}.pos
				continue;;
			Transform*) echo "$z"  > $TEMPDIR/${2}.t
				continue;;
			Scale*) echo "$z"  > $TEMPDIR/${2}.s
				continue;;
		esac 
		if [ -z "$3" ]; then
			if echo $z | grep -q 'preferred, current' ; then
				echo "<item>${z/\(preferred, current\)/\*}</item>" >> $TEMPDIR/${2}.xml
				cnt=$(($cnt + $x))
			else
				echo "<item>$z</item>" >> $TEMPDIR/${2}.xml
				cnt=$(($cnt + $x))
			fi
		elif echo "$z" | grep -q "$3" ; then
			break
		else
			if echo $z | grep -q 'preferred, current' ; then
				echo "<item>${z/\(preferred, current\)/\*}</item>" >> $TEMPDIR/${2}.xml
				cnt=$(($cnt + $x))
			else
				echo "<item>$z</item>" >> $TEMPDIR/${2}.xml
				cnt=$(($cnt + $x))
			fi
		fi
	done <$TEMPDIR/wrandr
	[ "$1" = 'x' ] && sed -i "1,${cnt}d" $TEMPDIR/${2}.xml
}

# capture outputs
scr_cap() {
	grim -o $1 $TEMPDIR/${1}.png
}

# defaults from config
conf_def() {
	 grep "$1" $CFGDIR/wmon_cmd | grep -o "${2}.*" | \
		sed -e 's/ \-.*//' -e "s/^${2} //" -e 's/ \\//'
}

# combo gui
combo() {
	if [ -e "$CFGDIR/wmon_cmd" ]; then
		# current defaults
		DEF=$(conf_def $1 mode)
		DEFITEM="<item>$DEF</item>"
		DEFPOS=$(conf_def $1 pos)
		DEFPOSX=${DEFPOS%,*}
		DEFPOSY=${DEFPOS#*,}
		DEFTRANS=$(conf_def $1 transform)
		DEFSCL=$(conf_def $1 scale)
	else
		# wlr-randr defaults
		DEF=$(grep '\*' $TEMPDIR/${1}.xml | sed -e 's%<item>%%' -e 's%<\/item>%%' -e 's%\*%%')
		DEFITEM=$(grep '\*' $TEMPDIR/${1}.xml | sed -e 's%\*%%')
		DEFPOS=$(cat $TEMPDIR/${1}.pos | cut -d ' ' -f2)
		DEFPOSX=${DEFPOS%,*}
		DEFPOSY=${DEFPOS#*,}
		DEFTRANS=$(cat $TEMPDIR/${1}.t | cut -d ' ' -f2)
		DEFSCL=$(cat $TEMPDIR/${1}.s | cut -d ' ' -f2)
	fi
	
	echo -e "	<frame>
		<vbox>
			<hbox space-expand=\"true\" space-fill=\"true\" height-request=\"200\">
			<vbox>
			<pixmap>
				<width>300</width>
				<input file>$TEMPDIR/${1}.png</input>
			</pixmap>
			<text use-markup=\"true\">
				<label>\"<big>$1</big>\"</label>
			</text>
			</vbox>
			</hbox>
			<hbox space-expand=\"true\" space-fill=\"true\">
				<comboboxtext space-expand=\"true\" space-fill=\"true\" tooltip-text=\"$(gettext 'Set the resolution of') $1\">
					<default>$DEF</default>
					$DEFITEM
					$(cat $TEMPDIR/${1}.xml)
					<variable>RES${2}</variable>
				</comboboxtext>
			</hbox>
			<hbox space-expand=\"true\" space-fill=\"true\">
			<vbox>
				<frame Position X>
					<spinbutton range-min=\"0\" range-max=\"6000\" range-step=\"10\" tooltip-text=\"$(gettext 'Set the X position of') ${1}. $(gettext 'Be sure to calculate the correct position in regard to other monitors')\">
						<default>$DEFPOSX</default>
						<variable>POSX${2}</variable>
					</spinbutton>
				</frame>
				<frame Position Y>
					<spinbutton range-min=\"0\" range-max=\"3000\" range-step=\"10\" tooltip-text=\"$(gettext 'Set the Y position of') ${1}. $(gettext 'Be sure to calculate the correct position in regard to other monitors')\">
						<default>$DEFPOSY</default>
						<variable>POSY${2}</variable>
					</spinbutton>
				</frame>
			</vbox>
			<vbox>
				<frame Transform>
					<comboboxtext tooltip-text=\"$(gettext 'Set the transformation of') $1\">
						<item>$DEFTRANS</item>
						<item>normal</item>
						<item>90</item>
						<item>180</item>
						<item>270</item>
						<item>flipped</item>
						<item>flipped-90</item>
						<item>flipped-180</item>
						<item>flipped-270</item>
						<variable>TRANS${2}</variable>
					</comboboxtext>
				</frame>
				<frame Scale>
					<spinbutton range-min=\"0\" range-max=\"2\" range-step=\"0.01\" tooltip-text=\"$(gettext 'Set the scale of') $1\">
						<default>$DEFSCL</default>
						<variable>SCL${2}</variable>
					</spinbutton>
				</frame>
			</vbox>
			</hbox>
		</vbox>
	</frame>" >> $TEMPDIR/combo.xml
}

# process variables $1 screen output, $2 resoluton@freq, $3 $4 position, $5 trans, $6 scale, $7 line join
proc_vars() {
	RES0="${2/ px, /@}"
	R="${RES0/ /}"
	R="${RES0/ \*/}"
	echo "--output $1 --mode $R --pos $3,$4 --transform $5 --scale $6 $7" 
	echo -e "\t--output $1 --mode $R --pos $3,$4 --transform $5 --scale $6 $7" >>  $TEMPDIR/command
}

# trap - clean up
_trap_exit() {
	cd $CWD
	rm -rf $TEMPDIR
	echo killed
}
trap _trap_exit EXIT

wlr-randr > $TEMPDIR/wrandr

mons || exit_error "error"
i=0
read a b c d e f <<<$MONITORS
while [ 1 ]; do
	case $i in 
		0) rnr_gui y $a $b; scr_cap $a; combo $a $i;;
		1) [ -n "$b" ] || break; rnr_gui x $b $c; scr_cap $b; combo $b $i;;
		2) [ -n "$c" ] || break; rnr_gui x $c $d; scr_cap $c; combo $c $i;;
		3) [ -n "$d" ] || break; rnr_gui x $d $e; scr_cap $d; combo $d $i;;
		4) [ -n "$e" ] || break; rnr_gui x $e $f; scr_cap $e; combo $e $i;;
		5) [ -n "$f" ] || break; rnr_gui x $f $g; scr_cap $f; combo $f $i;; # support 6 monitors ($g is empty)
	esac
	i=$((i + 1))
done

XML="$(cat $TEMPDIR/combo.xml)"

# main gui
export MAIN_GUI='<window title="Wmonitors" resizable="false">
	<vbox space-expand="true" space-fill="true">
		<hbox>
		'`/usr/lib/gtkdialog/xml_info fixed "$ICON.svg" 60 "${BACKTITLE}"`'
		</hbox>
		<hbox space-expand="true" space-fill="true" scrollable="true" hscrollbar-policy="1" vscrollbar-policy="2">
		'"$XML"'
		</hbox>
		<hbox>
			<button ok></button>
			<button cancel></button>
		</hbox>
	</vbox>
</window>'
. /usr/lib/gtkdialog/xml_info gtk #build bg_pixmap for gtk-theme
eval $(gtkdialog -p MAIN_GUI --styles=/tmp/gtkrc_xml_info.css)
case $EXIT in
	OK);;
	*)exit 0;;
esac
# process vars from MAIN_GUI
c=0
num=$(echo ${MONITORS} | wc -w)
echo 'wlr-randr \' > $TEMPDIR/command
for e in $MONITORS ; do
	[ $c -lt $((num -1)) ] && d='\' || d=''
	case $c in
		0)proc_vars $e "$RES0" $POSX0 $POSY0 $TRANS0 $SCL0 $d;;
		1)[ -z "$e" ] && break; proc_vars $e "$RES1" $POSX1 $POSY1 $TRANS1 $SCL1 $d;;
		2)[ -z "$e" ] && break; proc_vars $e "$RES2" $POSX2 $POSY2 $TRANS2 $SCL2 $d;;
		3)[ -z "$e" ] && break; proc_vars $e "$RES3" $POSX3 $POSY3 $TRANS3 $SCL3 $d;;
		4)[ -z "$e" ] && break; proc_vars $e "$RES4" $POSX4 $POSY4 $TRANS4 $SCL4 $d;;
		5)[ -z "$e" ] && break; proc_vars $e "$RES5" $POSX5 $POSY5 $TRANS5 $SCL5 $d;;
	esac
	c=$(($c + 1))
done
cp -af $TEMPDIR/command $CFGDIR/wmon_cmd || exit_error failure
# execute
. $CFGDIR/wmon_cmd


01micko avatar Nov 28 '21 02:11 01micko

Look! :sound:

https://user-images.githubusercontent.com/1019119/143977190-a1288d17-3528-46ec-a9f8-3bdc0bf89ff2.mp4

EDIT: renamed and fixed exit bug

#!/bin/bash

# ppavolume
# requires bash, gtkdialog, pactl, sed, grep etc

# ******************            functions           *******************#
# kill gui on leave-notify-event
check_exit() {
	sleep 0.5
	for i in $(busybox ps | grep -wF HSCALE | grep -o '[1-9][0-9]*'); do 
		kill -9 $i >/dev/null 2>&1
	done
}

# get vulume
get_vol() {
	pactl list sinks|\
	grep -o 'Volume.*right'|grep -o '[0-9]*%.*\/'|sed 's/% \///'
}

# set volume
set_vol() {
	VAL=$1
	#echo $VAL
	pactl -- set-sink-volume 0 ${VAL}%
}

ICN=audio-volume-medium

export -f check_exit get_vol set_vol

# *********************************************************************#

CVOL=`get_vol`

# main gui
export HSCALE='<window edge="topright">
	<hbox>
		<pixmap>
			<height>20</height>
			<input file icon="'$ICN'"></input>
		</pixmap>
		<hscale width-request="375" height-request="60" \
range-min="0" range-max="150" range-step="0.5" value-pos="3" digits="2">
			<default>'$CVOL'</default>
			<variable>VOL</variable>
			<action>set_vol ${VOL%\.*}</action>
			<action funtion="refresh">$SPKR</action>
			<item>"0 |2|0"</item>
			<item>"50 |2|50"</item>
			<item>"100|2|100"</item>
			<item>"150|2|150"</item>
			<action signal="leave-notify-event">check_exit</action>
		</hscale>
	</hbox>
</window>'
gtkdialog -p HSCALE >/dev/null 2>&1

01micko avatar Nov 30 '21 05:11 01micko

Just a thought - why don't we write a gtkdialog-based panel? We only need some console tool that lists labwc windows and sets the active window.

dimkr avatar Dec 19 '21 10:12 dimkr

We only need some console tool that lists labwc windows and sets the active window.

That'll be the fun part!

01micko avatar Dec 19 '21 10:12 01micko

#2684, after dbus-launch labwc from VT:

Any things are broken (including ptheme!) but it looks like the GTK+ 3 theme is set correctly, and pavucontrol works. Many things (xdg-open is one of them) are broken because ROX-Filer is missing. Firefox still runs via Xwayland 😞

dimkr avatar Dec 20 '21 19:12 dimkr

Applications configured to run as spot now work and use Wayland (no Xwayland running!):

firefox

#2684 and the automated builds in https://github.com/vanilla-dpup/unstable/releases should make it easier to develop and test labwc-related stuff.

dimkr avatar Dec 24 '21 14:12 dimkr

Simple numlock - although it doesn't toggle. @dimkr you are most welcome to hack it to bits!

numlockt.c

#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <linux/uinput.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
	struct uinput_setup setup = {.name = "numlockt"};
	struct input_event ev;
	int uinput, i;

	uinput = open("/dev/uinput", O_WRONLY | O_NONBLOCK);
	if (uinput < 0) {
		return EXIT_FAILURE;
	}

	if ((ioctl(uinput, UI_SET_EVBIT, EV_KEY) < 0) ||
		(ioctl(uinput, UI_SET_EVBIT, EV_SYN) < 0) ||
		(ioctl(uinput, UI_SET_KEYBIT, KEY_NUMLOCK) < 0) ||
		(ioctl(uinput, UI_DEV_SETUP, &setup) < 0) ||
		(ioctl(uinput, UI_DEV_CREATE) < 0)) {
                close(uinput);
                return EXIT_FAILURE;
	}

	for(i=1; i>=0; i--) {
		usleep(200000);
		ev.type = EV_KEY;
		ev.code = KEY_NUMLOCK;
		ev.value = i;

		if (write(uinput, &ev, sizeof(ev)) != sizeof(ev)) {
			return EXIT_FAILURE;
		}
	}

            ev.type = EV_SYN;
            ev.code = 0;
            ev.value = 0;

	if (write(uinput, &ev, sizeof(ev)) != sizeof(ev)) {
		return EXIT_FAILURE;
	}

	ioctl(uinput, UI_DEV_DESTROY);
	close(uinput);

	return EXIT_SUCCESS;

}

01micko avatar Jan 15 '22 02:01 01micko

https://github.com/LBCrion/sfwbar looks nice. Very configurable and uses GTK+ 3, so it doesn't have to be themed separately. The window switcher works fine with labwc.

tray

dimkr avatar Jan 25 '22 20:01 dimkr

looks interesting.

01micko avatar Jan 26 '22 03:01 01micko

Pat accepted my libcanbera bugfix suggestion - LFS patch on LQ to fix the pavucontrol crash

http://www.slackware.com/changelog/current.php?cpu=x86_64

+--------------------------+
Tue Feb 1 04:37:04 UTC 2022
The sepulchral voice intones, "The cave is now closed."
kde/falkon-3.2.0-x86_64-1.txz: Upgraded.
kde/ktexteditor-5.90.0-x86_64-2.txz: Rebuilt.
       [PATCH] only start programs in user's path.
       [PATCH] only execute diff in path.
       Thanks to gmgf.
       For more information, see:
       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-23853
       (* Security fix *)
l/libcanberra-0.30-x86_64-9.txz: Rebuilt.
       Fix a bug crashing some applications in Wayland desktops.
       Thanks to 01micko.
n/samba-4.15.5-x86_64-1.txz: Upgraded.

I might amend ppavolume to allow it to open pavucontrol - that's another menu entry we can purge.

Slackware-15.0 is soon going by the comment at top. :rofl:

Thank you Pat Volkerding.

01micko avatar Feb 01 '22 07:02 01micko

Looking forward

  • pipewire #2844 looks good
  • #2776 still needs addressing
  • I think sfwbar should be in and yambar out; though I do like yambar I'm not sure it is as user friendly (read: foreign-top-level)
  • quicksetup needs a major overhaul. As said in https://github.com/vanilla-dpup/unstable/issues/1 it doesn't work at all
  • ptheme #2719 (WIP)
  • purge the rest of gtk-2.0 - sylpheed, I'm looking at you! Trialling claws-mail

Should we create a staging branch or something?

01micko avatar Feb 05 '22 20:02 01micko

Should we create a staging branch or something?

I think testing is the right place for both new stuff and fixes. I constantly cherry-pick bug fixes from testing into https://github.com/vanilla-dpup/woof-CE/commits/vanilladpup-9.1.x and https://github.com/vanilla-dpup/woof-CE/commits/vanilladpup-9.0.x, and this works very well.

Whenever you want to build Slacko 8.x or a start stabilizing a labwc-based Puppy, we can create a branch and cherry-pick fixes.

dimkr avatar Feb 05 '22 20:02 dimkr

I have 0 experience with pipewire.

  • is pavucontrol still needed? work?
  • does my ppavolume slider still work?

01micko avatar Feb 05 '22 21:02 01micko

  • is pavucontrol still needed? work?

Yes and yes.

  • does my ppavolume slider still work?

Some gtkdialog (?) crash prevents it from working here, but it should work. The PulseAudio API and tools like pamixer work, so there's no reason why ppavolume won't.

dimkr avatar Feb 06 '22 06:02 dimkr

  • is pavucontrol still needed? work?

Yes and yes.

  • does my ppavolume slider still work?

Some gtkdialog (?) crash prevents it from working here, but it should work. The PulseAudio API and tools like pamixer work, so there's no reason why ppavolume won't.

It's a pulse crash :cry: and causes unfilled vars which crash gtkdialog. I often have to exit to conslole, restart alsa and then pulse regains it's feet and ppavolume works either for a long while or a short while!

01micko avatar Mar 01 '22 12:03 01micko

I think we ditch yambar (though I love it, but not all that user friendly) and go with sfwbar.

20220301_21h56m36s_grim

The main reason is foreign-top-level. I'm trying to work out the icon bug though. https://github.com/LBCrion/sfwbar/issues/23

01micko avatar Mar 01 '22 12:03 01micko