woof-CE
woof-CE copied to clipboard
labwc preparation
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
andwf-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
- [ ] 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/
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?)
@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.
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.
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.
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
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
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.
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.
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.
With #2628 and #2634:
(Still need to fix #2560! What a stubborn issue)
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:
~/.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 &'
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
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
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
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.
We only need some console tool that lists labwc windows and sets the active window.
That'll be the fun part!
#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 😞
Applications configured to run as spot now work and use Wayland (no Xwayland running!):
#2684 and the automated builds in https://github.com/vanilla-dpup/unstable/releases should make it easier to develop and test labwc-related stuff.
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;
}
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.
looks interesting.
- [x] mixer - using a python mixer for now but at least some volume control is needed - pavucontrol segfaults on wayland - fixed by Make PulseAudio work under labwc #2639? ~No -
pavucontrol
still segfaults~ (fixed upstream), a known issue. gtkdialog volume slider under development. See add 'ppavolume' to pulseaudio_FIXUPHACK #2653
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.
Looking forward
-
pipewire
#2844 looks good - #2776 still needs addressing
- I think
sfwbar
should be in andyambar
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! Triallingclaws-mail
Should we create a staging
branch or something?
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.
I have 0
experience with pipewire
.
- is
pavucontrol
still needed? work? - does my
ppavolume
slider still work?
- 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.
- 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!
I think we ditch yambar
(though I love it, but not all that user friendly) and go with sfwbar
.
The main reason is foreign-top-level
. I'm trying to work out the icon bug though. https://github.com/LBCrion/sfwbar/issues/23