Bloggings https://wittamore.fr Ramblings from Brittany 2026-07-02T10:22:43,069276386+02:00 upgrade to dwm 6.8 2026-06-29 Philip A. Wittamore https://wittamore.fr/articles/2026/upgrade-to-dwm-6.8.html https://wittamore.fr/articles/2026/upgrade-to-dwm-6.8.html dwm with some patches

I've been using dwm 6.5 for a while now, so I thought it was time to upgrade to dwm 6.8.

Ideally I'd settle for a horizontal scrolling wm as my Thinkpad screen is small, but after flirting with nwm I'm staying with dwm for now.

I've added a few patches and shortcuts that make it easy for me to circulate between windows and workspaces. I haven't added the xrdb patch this time, instead I added the colorbar patch which nicely colours the dwmblocks status bar and keeps things simple. Many of the tiling patches I added to 6.5 have been left out as I just don't use them. On a small 1366x768 screen splitting it renders it useless so instead I use the monocle layout by default and switch workspaces with super+right and left, and switch windows with super+up and down.

It's up on my git server if you are interested.

]]>
Freedos thoughts 2026-06-11 Philip A. Wittamore https://wittamore.fr/articles/2026/Freedos-thoughts.html https://wittamore.fr/articles/2026/Freedos-thoughts.html Maybe I have the best system already

I've been looking at Freedos for the retrocomputing nostalgia value and the text-only goodness.

I wound up using Qemu on my X270 as Freedos on bare metal means my 14 year old Thinkpad X220 is way too modern.

Yes there's some crazy good software, and it's fun. But using fullscreen in Qemu means a fuzzy display, and I came to measure how the terminal on Linux is truly light years ahead.

In fact it pushes home that my Artix / DWM / Kitty setup is the veritable retrocomputing bees knees

]]>
semware-tse-editor 2026-06-13 Philip A. Wittamore https://wittamore.fr/articles/2026/semware-tse-editor.html https://wittamore.fr/articles/2026/semware-tse-editor.html A very interesting editor for DOS, Linux and Windows

semware editor screenshot

I stumbled upon the #Semware editor (TSE) for #Linux, Windows and #Dos and thought I'd share it here. Originally named Qedit in 1985, the latest version is dated May 2026. I don't know about Windows (as I haven't used it in years), but the Linux version is a pleasant CLI app with many features, including it's own application language. The more I look at it, the more I realise that it is a profound piece of software.

www.semware.com
Knud Vaneeded YT videos

]]>
Living on Snac's bleeding edge 2026-05-25 Philip A. Wittamore https://wittamore.fr/articles/2026/Living-on-Snac's-bleeding-edge.html https://wittamore.fr/articles/2026/Living-on-Snac's-bleeding-edge.html Autoupdate script

I like living on the bleeding edge of snac2, so I added this (banal) script to /etc/cron.daily.

#!/usr/bin/env bash
# snaceto
# Social Networks Are Crap Except This One

cd /home/snac/src/snac2 || exit

sudo -u snac git remote update
UPDATED="$(git status -uno | grep -c 'up to date')"

if [ "$UPDATED" -ne "1" ] ; then
    echo "Updating..."
    systemctl stop snac.service
	# backup data before update
	TODAY=$(date "+%Y-%m-%d-%H-%m")
	BACKUPDIR="/opt/backups"
	mkdir -p "$BACKUPDIR"
	FILENAME="$BACKUPDIR/pre-update-snac-$TODAY.tar.gz"
	tar -zcf "$FILENAME" /home/snac/data
	# pull latest
	sudo -u snac git pull
	sudo -u snac make
	make install
	sudo -u snac snac upgrade /home/snac/data
	systemctl start snac.service
	VERSION="$(snac | head -n2)"
	toot post "My bleeding edge #snac2 server has been updated
$VERSION" fi
]]>
Web sites that work well in Dillo 2026-06-19 Philip A. Wittamore https://wittamore.fr/articles/2026/Web-sites-that-work-well-in-Dillo.html https://wittamore.fr/articles/2026/Web-sites-that-work-well-in-Dillo.html and other minimal browsers

I'm always looking for sane web sites. By sane I mean websites that are not bloated with useless eye candy, nor have any ketamin fired javascript. Sites that just want to display data in the form of easily readable text with or without some images.

There is an increasing number of web sites that do this, as it's a normal backlash to the slop infested, obfuscated tar pit that the internet has sadly become. I haven't found a single compendium of sites, but I'll list some here.

One of the things I find realy interesting are web proxies that render sites into a saner version, like Textise or Textdot. I fact I'm wondering if I could roll my own simple version using php and rdrview.

This list incomplete list will be updated as I find them, or maybe you dear reader might have suggestions?

Directory of useful sites that work reasonably well on Dillo

Wiby search engine

Text only web sites

]]>
Ghostbsd installation 2026-06-14 Philip A. Wittamore https://wittamore.fr/articles/2026/Ghostbsd-installation.html https://wittamore.fr/articles/2026/Ghostbsd-installation.html messing around on a sunday

So now we have Microsoft delivering Linux, and the Arch based AUR getting wrecked by people who should be locked into a public pillory, and I have some free time. Well in fact a lot of free time now that I'm retired.

So. I downloaded the latest #Ghostbsd Mate and cut a usb key, then plugged it into my Thinkpad X220.

The installation was simple and uneventful, and it booted without problem. Everything worked out of the box. Mate seems pretty and unobfuscated, just like me.

So far I've done just two things:

(1) to get some thinkpad function keys to work I've added in /boot/loader.conf

acpi_ibm_load="YES"

Printscreen works, brightness and volume controls work, vol mute works, lid led works, but the MICMUTE button doesn't work.
For the X220 MICMUTE key, which is F20 or 0xBE (190), unfortunately Ghostbsd's acpi_ibm doesn't pass on the event, so any script for it in /etc/devd won't be fired. Checking the source code, acpi_ibm only accepts a subset of events accepted by Linux's thinkpad_acpi, which appears to cover them all. It's unfortunate as I'm a bit pedantic about keys but I guess I'll have to live with it as the code is 20 years old and I doubt it will change anytime soon.

FYI, acpi_ibm accepts only these keyboard events:

        LCD_BACKLIGHT
        SUSPEND_TO_RAM
        BLUETOOTH
        SCREEN_EXPAND
        SUSPEND_TO_DISK
        BRIGHTNESS_UP
        BRIGHTNESS_DOWN
        THINKLIGHT
        ZOOM
        VOLUME_UP
        VOLUME_DOWN
        MUTE
        ACCESS_IBM_BUTTON
        

(2) to enable the automounting of usb storage media:

sudo pkg install automount

I've replaced the default Firefox with Librewolf, and I'm not too sure about zsh instead of bash, and why not doas instead of sudo?

Ghostbsd is a very nice BSD distribution that's been around since 2010.

https://www.ghostbsd.org

]]>
displaying MATE on a 1366x768 screen 2026-06-15 Philip A. Wittamore https://wittamore.fr/articles/2026/displaying-MATE-on-a-1366x768-screen.html https://wittamore.fr/articles/2026/displaying-MATE-on-a-1366x768-screen.html xrandr to the rescue

Unfortunately several Ghostbsd MATE configuration windows are taller than my Thinkpad X220's 768 pixels. I made both the top and bottom panels autohide, but a better solution is to use xrandr:

sudo pkg install xrandr

type xrandr to get the name of your display, in my case LVDS-1 on my Thinkpad X220.

To change 16:9 screen resolution, you can type:

xrandr --output LVDS-1 --panning 1600x900  --scale 1.171x1.172

or

xrandr --output LVDS-1 --panning 1920x1080 --scale 1.406x1.406

To get back to the original resolution type:

xrandr --output LVDS-1 --panning 1366x768 --scale 1x1

Here's a simple bash script that will rotate the screen resolution on each call. I've added a MATE keyboard shortcut (CTRL+RIGHT) to run this script. It is intended for my 1366x768 screen, so it will need adapting for other screens.

#!/usr/bin/env bash
        
RES="$(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/')"
# xdpy results can vary by 1 or two pixels 
# so take the first two characters
RES="${RES:0:2}"
        
case "$RES" in
  "13")
  xrandr --output LVDS-1 --panning 1600x900  --scale 1.171x1.172
  ;;
  "16")
  xrandr --output LVDS-1 --panning 1920x1080 --scale 1.406x1.406
  ;;
  *)
  xrandr --output LVDS-1 --panning 1366x768 --scale 1x1
  ;;
esac
        

I doubt you can do that in Wayland.

]]>
Oops! I did it again 2026-05-31 Philip A. Wittamore https://wittamore.fr/articles/2026/Oops!-I-did-it-again.html https://wittamore.fr/articles/2026/Oops!-I-did-it-again.html More blog improvements

This blog now sits in my git repository, so I made a few changes.

One is the blogsend bash script which now does a git commit on my local machine, and a git pull on the remote web server. The other is the git repos itself which now has the web site in one repos, and the bash scripts in another.

All this is probably of little interest to anyone other than myself, but if you want to run a smol blog you might find it useful, after all that's why I'm posting it.

]]>
smolweb validation in Dillo 2026-06-22 .dillo/actions/smolcheck.sh Philip A. Wittamore https://wittamore.fr/articles/2026/smolweb-validation-in-Dillo.html https://wittamore.fr/articles/2026/smolweb-validation-in-Dillo.html a simple page_action script

I added smolweb-validator as a page action in Dillo. It's a bit of a pain as the validator is a java application. The action script is brutal so far but it works.

#!/bin/sh

#smolweb validator location
smp="$HOME/src/smolweb-validator"

# validate
cd $smp
output="$(java -cp "jsoup-1.21.2.jar:." SmolwebValidator $url --verbose)"
echo "$output" | dilloc rawload

The action is added to ~/.dillo/dillorc and appears in Dillo's right-click menu

page_action="Smolcheck:~/.dillo/actions/smolcheck.sh"

see https://codeberg.org/smolweb/smolweb-validator

 

]]>
Updated blogthis script 2026-06-16 Philip A. Wittamore https://wittamore.fr/articles/2026/Updated-blogthis-script.html https://wittamore.fr/articles/2026/Updated-blogthis-script.html now with markdown

I've updated my blogthis script so I can write articles in markdown.

It saves me having to write html in the articles and avoids errors.

I've uploaded it to my git server

]]>
Hebdogiciel 2026-06-07 Philip A. Wittamore https://wittamore.fr/articles/2026/Hebdogiciel.html https://wittamore.fr/articles/2026/Hebdogiciel.html Flashback to the 80's

After my ZX81 I purchased an Amstrad CPC464, and oh joy I discovered Hebdogiciel. Before the internet this magazine printed the code for games and programs that you could painfully copy out. Today I discovered that there's an online archive:

abandonware-magazines

1983–1987: Imagine a weekly magazine that, in addition to providing us with a weekly program to type out and delivering uncompromising hardware and software reviews (and that’s saying something), also featured TV listings, movie, music, and comic book releases, assembly language tutorials, a comic strip, a discount club, walkthroughs... A tone that blew you away from the first page to the last, Carali’s drawings filling in the gaps, lawsuits galore… Simply extraordinary, unmatched.

]]>
More on Dillo 2026-06-21 Philip A. Wittamore https://wittamore.fr/articles/2026/More-on-Dillo.html https://wittamore.fr/articles/2026/More-on-Dillo.html update on yesterday's post

The git version of dillo has a new option: page_action, which enables running rdrview on the current page if the setting:

page_action="Reader mode:dilloc dump | rdrview -H | dilloc load"

is set in dillorc.

When you right click on a page the menu will now include the option "Reader Mode".

]]>
Installation of Snac2 on Artix Linux 2026-05-20 add user In /home/snac/data/server.json edit these settings: As root, create the dinit script: /etc/dinit.d/snac2 enable snac2 NGINX Media caching in /etc/nginx/nginx.conf http section add: make cache folder /etc/nginx/sites-available/example.com add pleroma relay Philip A. Wittamore https://wittamore.fr/articles/2026/Installation-of-Snac2-on-Artix-Linux.html https://wittamore.fr/articles/2026/Installation-of-Snac2-on-Artix-Linux.html Installation of snac2 on Artix Linux +Nginx +Dinit
useradd -m -s /bin/bash snac
passwd snac
usermod -aG wheel snac
su - snac
mkdir src
cd src
git clone https://codeberg.org/grunfink/snac2.git
cd snac2
make
sudo make install
snac init ~/data
Host name: your.server.domain
Path prefix: leave empty
Network address: 127.0.0.1
Port: 8001
snac adduser ~/data
admin_email
admin_account
title
short_description

and add this line:

"proxy_media: true
type = process
run-as = snac
command = /usr/local/bin/snac httpd /home/snac/data
depends-on = NetworkManager
restart = true
smooth-recovery = yes
log-type = file
logfile = /var/log/dinit/snac2.log
dinitcl enable snac2

see it-notes.fragas.net

see comam.es.
Use $host not $http_host (gixy)

proxy_cache_path /var/cache/nginx/snac_cache levels=1:2 keys_zone=snac:10m max_size=1g inactive=1440m use_temp_path=off;
mkdir -p /var/cache/nginx/snac_cache
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.com;

    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    # openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

location / {
    proxy_pass http://127.0.0.1:8001;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
}

location ~ ^/.+/s/ {
    proxy_cache snac;
    proxy_pass http://127.0.0.1:8001;
    proxy_set_header Host $host;
    proxy_cache_valid 200 1d;
    proxy_cache_valid 404 1h;
    proxy_ignore_headers "Cache-Control" "Expires";
    proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    proxy_cache_lock on;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header X-Proxy-Cache $upstream_cache_status;
}
}

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

see relaylist.com

su - snac
snac adduser ~/data relay
snac follow ~/data relay https://relay.toot.io/actor
]]>
Funeral blues 2026-05-07 Philip A. Wittamore https://wittamore.fr/articles/2026/Funeral-blues.html https://wittamore.fr/articles/2026/Funeral-blues.html A poem by W.H.Auden (1907-1973)

This poem was read in the film "Four marriages and a funeral"

I just stumbled upon it and wanted to write it down.

Funeral Blues Stop all the clocks, cut off the telephone. Prevent the dog from barking with a juicy bone, Silence the pianos and with muffled drum Bring out the coffin, let the mourners come. Let aeroplanes circle moaning overhead Scribbling in the sky the message He is Dead, Put crêpe bows round the white necks of the public doves, Let the traffic policemen wear black cotton gloves. He was my North, my South, my East and West, My working week and my Sunday rest My noon, my midnight, my talk, my song; I thought that love would last forever, I was wrong. The stars are not wanted now; put out every one, Pack up the moon and dismantle the sun. Pour away the ocean and sweep up the wood; For nothing now can ever come to any good. ]]>
From minimalist to smolweb 2026-05-06 Philip A. Wittamore https://wittamore.fr/articles/2026/From-minimalist-to-smolweb.html https://wittamore.fr/articles/2026/From-minimalist-to-smolweb.html When smarter people get things done

In 2023 about what I was feeling at the time on the sorry state of the web.

I'm happy to say that the people at smolweb.org have made a far better statement than mine.

As this blog is now a few years old, I'll be working on making it pass the smolweb validation test.

]]>
De Gaulle - Two films 2026-06-04 Philip A. Wittamore https://wittamore.fr/articles/2026/De-Gaulle---Two-films.html https://wittamore.fr/articles/2026/De-Gaulle---Two-films.html De Gaulle is more popular than ever

People who choose a country to be their home are often patriotic as it's their choice, not mere circumstance.

Personally I'm patriotic but certainly not nationalist.

“The difference between patriotism and nationalism is that the patriot is proud of his country for what it does, and the nationalist is proud of his country no matter what it does; the first attitude creates a feeling of responsibility, but the second a feeling of blind arrogance that leads to war.”Sydney J. Harris

]]>
Ladybird turns into a squashed bug 2026-06-06 Philip A. Wittamore https://wittamore.fr/articles/2026/Ladybird-turns-into-a-squashed-bug.html https://wittamore.fr/articles/2026/Ladybird-turns-into-a-squashed-bug.html Sponsored software hype

Last year I had high hopes for Ladybird, a web browser with a brand new engine written, from scratch and open source.

Unfortunately the code has now been locked, and the code was moved from Swift to Rust because ... AI code.

--> The fash browser developed by "AI" hypeboys

]]>
My own private search engine 2026-06-02 Philip A. Wittamore https://wittamore.fr/articles/2026/My-own-private-search-engine.html https://wittamore.fr/articles/2026/My-own-private-search-engine.html Messing around with a bad back in stormy weather

I made a bad movement in the shower this morning and made my back scream again, so no woodworking today. One of the benefits of retirement is that I get to choose the days activities.

I had installed SearxNG previously more than two years ago, but as I'm constantly fiddling it wound up in the bin.

Convalescing in the armchair I saw that my current vps is mostly idle running just snac2, my blog, xmpp, gophernicus and other bits, so I reinstalled SearxNG.

It's fast, responsive, and private. I have it behind an Nginx reverse proxy, and only accepting my own IP address for now.

Another thing I did was to play around with the Fresh editor. Like Micro, it can be configured to use prettier, the code formatter. Ok, it's written in Rust, but it is a nice editor with a retro computing vibe. It won't replace Micro as my daily editor, but if I ever need a TUI IDE it could be a good choice.

]]>
Filtering the web 2026-06-20 Philip A. Wittamore https://wittamore.fr/articles/2026/Filtering-the-web.html https://wittamore.fr/articles/2026/Filtering-the-web.html A browser that says no

To me the problem with the smolweb is that there's isn't a browser that applies these rules. Dillo comes close, even though it needs a makeover.

Dillo also has an rdrview plugin, but you have to manually write rdrview: in front of the url in the url bar of every page to see the results.

A better solution would be a smolweb plugin that filters the entire html page rejecting anything that doesn't validate or pass to rdrview . Degrees of acceptance could be set in settings.

A dedicated browser wouldn't require searching for smolweb / smallweb / indieweb blogs, sites, or articles. (There seems to be no such thing as a smolweb search engine, although points for wiby, marginalia, kagi and mojeek).

Just point the browser to any web site and if it borks, display the "errors" or ignore it with a 418 I'm a teapot error: after all it's the web site author's responsibility to provide clean, readable web sites.

Imagine a world where this plugin would be as ubiquitous as ublock-origin, it could even change web site development.

]]>
Updated poem 2026-06-01 Philip A. Wittamore https://wittamore.fr/articles/2026/Updated-poem.html https://wittamore.fr/articles/2026/Updated-poem.html Existance is the prize itself

Sadly a childhood friend of one of my nieces recently died at 36 of a brain tumour. I gave this poem a re-write.

Life is but a long farewell
While clawing at eternity's shell
No rhyme nor reason, no justice in sight 
A frantic push against entropy's might
This fleeting hare 
Brings grave dispair
But pointless is a daily dread
Of closing circuit in our bed
Here then gone, a spark in the night?
Our passing through is never trite
Best keep your malaise on the shelf
Existance is the prize itself
]]>
This blog wasn't so bad after all 2026-05-05 Philip A. Wittamore https://wittamore.fr/articles/2026/This-blog-wasn't-so-bad-after-all.html https://wittamore.fr/articles/2026/This-blog-wasn't-so-bad-after-all.html Smolweb, Fediverse and blogs

For several months I've been using Gopher exclusively, I find it's minimalist raw text files appealing.

It does have several drawbacks however. Recently I've been self hosting my own fediverse instance at social.wittamore.fr.

Looking around for a fediverse blog, I realised that this html blog wasn't so bad after all.

It's work in progress, as I would like to have it smolweb validated, and needs a clean up.

]]>