Fix blurry JWM wallpaper
It might seem a little bit odd, but there are two layers of wallpapers in EasyOS. The JWM window manager loads a wallpaper, then when ROX-Filer starts it loads a wallpaper and desktop icons. So normally you only see the ROX wallpaper.
However, at shutdown, ROX gets killed and immediately after, there is a dialog asking if you want to save the session. At that point of time, you will be seeing the JWM wallpaper.
In the normal "rox-mode", it is the rox wallpaper that you see. Then there is the mode of no icons on the desktop, that we call "jwm-mode". In that mode, it is the JWM wallpaper that displays.
Here are some blog posts about the icon-free desktop mode:
"Experimental icon-free desktop"
https://bkhome.org/news/202202/experimental-icon-free-desktop.html
"Revisiting icon-free desktop mode"
https://bkhome.org/news/202408/revisiting-icon-free-desktop-mode.html
"Retain icons when switch rox to jwm"
https://bkhome.org/news/202409/retain-icons-when-switch-rox-to-jwm.html
"Icon free desktop tray icon fix"
https://bkhome.org/news/202409/icon-free-desktop-tray-icon-fix.html
The JWM wallpaper is specified in /root/.jwm/jwmrc-personal:
<Desktops width="3" height="1">
<Background type="image">/usr/share/backgrounds/default.jpg</Background>
</Desktops>
The problem is, if the image is bigger than the screen resolution, JWM will shrink it to fit, but in doing so the image will become blurry. This was reported, but has not been fixed:
https://github.com/joewing/jwm/issues/647
There is a partial fix in Easy; /usr/sbin/background_reshape is
called from /root/.xinitrc when X is started, and this cuts the
image vertically or horizontally to have the same proportions as
the screen. So, there will be an image at
/usr/share/backgrounds/160/default.jpg, where that "160" is the
horizontal/vertical screen ratio, calculated in
'background_reshape'. This is in my Zenbook laptop, running at
1680x1050, so compute (1680/1050)*100 gives 160.
It is only a partial fix, because 'background_reshape' doesn't reduce the image to actual screen dimensions, only adjusts the proportions.
I found one problem, 'background_reshape' needs to test if file 'jwmrc-personal' is accessing the correctly-proportioned image. Inserted this at comment "#20260618":
if [ "$UI_DESK_MANAGER" == "rox" ];then
grep -q "<backdrop.*/${ASPECTRATIO}/" /root/Choices/ROX-Filer/PuppyPin
if [ $? -ne 0 ];then
exit 11 #see /root/.xinitrc, will update /root/Choices/ROX-Filer/PuppyPin
fi
#20260618 although jwm wallpaper not used, it will show during shutdown after rox killed...
grep -q "<Background.*/${ASPECTRATIO}/" /root/.jwm/jwmrc-personal
if [ $? -ne 0 ];then
exit 11 #see /root/.xinitrc, will update /root/.jwm/jwmrc-personal
fi
fi
.../root/.xinitrc will detect the exit 11 and will fix 'jwmrc-personal'. However, if the image is bigger than the screen dimensions, it is still going to be blurry when JWM is rendering the wallpaper. The solution is to scale the image, and this is now done in 'background_reshape', using pamscale:
#20260618 scale image to exact screen dimensions (using pamscale)...
$IMAGEPNM "/usr/share/backgrounds/$IMAGEBASE" | \
$PAMCUT -left=0 -top=$(( $CUTVERT / 2 )) -height=$NEWVERT | pamscale -width ${ROOTHORIZ} | \
$PNMIMAGE > /usr/share/backgrounds/${ASPECTRATIO}/${IMAGEBASE}
Haven't tested it yet, but theoretically looks
good.
Tags: easy
BaCon compiler in devx
Forum member Lobster requested it, so now done. I compiled version 5.0.3.
In the devx, the compiler will be /usr/bin/bacon, and
documentation at /usr/share/doc/BaCon
Project homepage:
https://chiselapp.com/user/bacon/repository/bacon/home
Forum:
https://basic-converter.proboards.com/
Online documentation:
I wrote some documentation, but it is very old and out-of-date:
"My first GTK application"
https://easyos.org/dev/bacon/my-1st-gtk-app/index.html
"Internationalization"
https://easyos.org/dev/bacon/international/international.htm
"Window layout"
https://easyos.org/dev/bacon/hug/layout.htm
If you want to use HUG, it will have to be downloaded from the
project homepage. EasyOS has some CLI utilities written in
BaCon.
Tags: easy
CUPS new printer popup help
There is a bug in the version of CUPS in Debian Trixie, as reported last year:
https://bkhome.org/news/202511/workaround-to-fix-printer-setup.html
When someone chooses from the menu "Setup -> CUPS Printer Setup", they might not have seen that blog post, well, highly likely they wouldn't have seen it, so when they see this:

...the natural thing will be to click on the "Add Printer" button. Which is not good; instead, they must first click on "Find New Printers".
Consequently, I have edited /usr/sbin/cups_shell to put up a message at the top-centre of the screen. The code is:
case "${LANG/_*/}" in
da) M1='For at konfigurere en printer skal du klikke på knappen <b>Find nye printere</b>' ;;
de) M1='Um einen Drucker einzurichten, klicken Sie bitte auf die Schaltfläche <b>Neue Drucker suchen</b>' ;;
es) M1='Para configurar una impresora, haga clic en el botón <b>Encontrar nuevas impresora</b>' ;;
fr) M1='Pour configurer une imprimante, veuillez cliquer sur le bouton <b>Trouver de nouvelles imprimantes</b>' ;;
ja) M1='プリンターを設定するには、<b>新しいプリンターの検索</b>ボタンをクリックしてください。' ;;
pt) M1='Para configurar uma impressora, clique no botão <b>Encontrar novas impressoras</b>' ;;
ru) M1='Для настройки принтера нажмите кнопку <b>Найти новый принтер</b>' ;;
*) M1='To setup a printer, please click on <b>Find New Printers</b> button' ;;
esac
popup "background=#ffa0ff level=top name=cupsui placement=top-middle terminate=12 timecount=dn|<big>${M1} </big>"
...the CUPS web interface only supports those languages, and I found the exact name of the "Find New Printers" button for each language. This is what it looks like:
![]()
A small thing, but helpful for a newcomer who might otherwise
become confused with setting up a printer.
Tags: easy
Fix Chromium warning message at startup
Forum member Miminou has reported the warning message when start chromium in a terminal, missing 'upower' package, now fixed:
https://forum.puppylinux.com/viewtopic.php?p=172410#p172410
Tags: easy
Getting rid of gimp and mpv warning messages
Forum member Miminou has been testing starting apps from a terminal.
Starting Gimp, there is a warning about missing images. Now fixed:
https://forum.puppylinux.com/viewtopic.php?p=172401#p172401
Starting MPV, there is a warning about missing 'client.conf'. Have a fix for that also:
https://forum.puppylinux.com/viewtopic.php?p=172407#p172407
OK, they are hack fixes, but they work.
Tags: easy
Set Chromium colour theme to match system
The current system theme is kind of orange, but Chromium starts up as a blue theme inside the window. In a new tab, at bottom-right of the window, there is a "Customize Chromium" button, where you can choose a colour theme.
However, I would like to set it automatically appropriately as the default. In /root/.packages/default-theme, there is a new variable:
#choose chromium theme (default is blue). allowed values: "orange", "yellow"
DEFAULT_THEME_CHROMIUM='orange'
In woofQ2, script woofq2/rootfs/4post-process-rootfs reads this
and appends the appropriate text:
#chromium theme (default is blue)...
case "$DEFAULT_THEME_CHROMIUM" in
orange) echo -n ',"theme":{"color_variant2":1,"user_color2":-32768}' >> rootfs/root/.config/chromium/Default/Preferences ;;
yellow) echo -n ',"theme":{"color_variant2":1,"user_color2":-336013}' >> rootfs/root/.config/chromium/Default/Preferences ;;
esac
However, as Chromium defaults to run as user "chromium", the script /usr/bin/chromium will copy these default settings into /home/chromium:
if [ ! -d /home/chromium/.config/chromium/Default ];then
mkdir -p /home/chromium/.config/chromium
cp -a /root/.config/chromium/Default /home/chromium/.config/chromium/
cp -a -f "/root/.config/chromium/Local State" /home/chromium/.config/chromium/
chown -R ${UGID}:${UGID} /home/chromium
However, this will only work in a new installation, when Chromium has not yet been run. If you are updating an existing installation, you will have to manually choose the colour theme, as described in the first paragraph above.
I was thinking, if a later version of Easy reverted to a blue theme, perhaps a version update could delete that /home/chromium/.config/chromium/Preferences file, but that would wipe out other preferences.
EDIT 2026-06-18:
I received an email from Otto, advising me of an alternative
method to set the Chromium theme. He sent this link:
https://www.januschka.com/chromium-omarchy.html
...this is very interesting. It offers a lot to think about, but a quick implementation is this in the '4post-process-rootfs' script:
case "$DEFAULT_THEME_CHROMIUM" in
orange) Bclr='ff8b55' ;;
yellow) Bclr='fff065' ;;
grey) Bclr='a0a0a0' ;;
*) Bclr='559bff' ;; #blue
esac
mkdir -p rootfs/etc/chromium/policies/managed
echo "{
\"BrowserThemeColor\": \"#${Bclr}\"
}" > rootfs/etc/chromium/policies/managed/theme.json
A downside is that it disables user-setting of theme from within Chromium.
Tags: easy
New easy-to-see mouse cursors
One thing I realised when creating the first video for a proposed series on EasyOS in YouTube, is that it is difficult for the viewer to see where the mouse is pointing. Specifically for the videos, want a big and very easy-to-see mouse pointer; well, this is going to interest many users also.
Easy has an xcursor creation tool, in the menu "Utility -> SXC Simple Xcursor Creator"; however, got some ready-made ones from here:
https://futurehorizondesign.net.au/portfolio/hackneyedhighcontraststaticcursors.html
These are very nice. For the next video, intend to use the magenta 48 pixel xcursors; here is the pointer:

Like these so much decided to add some builtin. So in the next release of Easy, the menu "Desktop -> SXS Simple Xcursor Selector" will have these:

Note, I wrote about SXS and SXC before:
"Simple Xcursor Creator and Selector is back"
https://bkhome.org/news/202511/simple-xcursor-creator-and-selector-is-back.html
"Easy-to-see mouse pointer"
https://bkhome.org/news/202307/easy-to-see-mouse-pointer.html
I think, for my own daily use, the magenta 36 pixel xcursor set is great.
EDIT 2026-06-18:
Have added this variable to /root/.packages/default-theme:
#20260618 xcursor themes are in /usr/share/icons
# exs: blue_animated_36 blue_animated_48 magenta_animated_36 magenta_animated_48 simple_blue_28 simple_white_28 simple_white_32 simple_yellow_28
DEFAULT_THEME_XCURSOR='magenta_animated_36'
In woofQ2, script '4post-process-rootfs', have inserted this:
if [ -n "$DEFAULT_THEME_XCURSOR" ];then
mkdir -p rootfs/usr/share/icons/default
echo "[Icon Theme]
Inherits=${DEFAULT_THEME_XCURSOR}" > rootfs/usr/share/icons/default/index.theme
fi
Looking good.
Tags: easy
Gajim jabber-client must run non-root
Forum member libertas reported a problem with running Gajim:
https://forum.puppylinux.com/viewtopic.php?p=172326#p172326
Some apps must be run non-root. I have modified script /usr/local/petget/installpreview.sh, inserted this at line 800:
gajim) ASKflg=0; RETASK='nonroot'; ;; #20260615
...so when install, it won't ask if you want to run the app as root or non-root, it will install to run as user "gajim".
Interesting, the package does not have a .desktop file, so nothing appears in the menu. But during install there is offer to create a desktop icon, which I did.
Here is the Gajim homepage:
During installation, there is a report that package
'python3-importlib-metadata' is missing. Hmmm, yes, 'apt' failed
to install it, but PKGget does checking after installation and
discovered the missing dependency. The absence of that package
didn't stop Gajim from running. But anyway, I went into PKGget and
installed it.
Tags: easy