yay kde-cli-tools
Short IT recipes
i.e. some stuff and junk about Python, Perl, Matlab, Ruby, Mac X, Linux, Solaris, ...
Saturday, May 09, 2026
gwenview: Does not start due to setting rendering to OpenGL
Delete its config file:
rm ~/.config/gwenviewrc
Labels:
gwenview
distrobox: Opening Images in Native GIMP from IrfanView Running Under Wine in Distrobox
I use IrfanView via Wine inside a Distrobox container and wanted its external editor feature to open images directly in native GIMP. IrfanView passes the image path in Windows format (Z:\home\home-folder\Pictures\photo.jpg), so a small Python script handles the conversion and launches GIMP. Sounds simple. It wasn't.
Two things needed fixing before GIMP would even start. First, GIMP's sandboxed image loader (glycin) uses bubblewrap, which cannot create user namespaces inside a container — fixed with GLYCIN_DISABLE_SANDBOX=1. Second, any process launched from the script died the moment the script exited, because Wine kills all child processes when its own child (the Python script) returns.
Even after solving those, GIMP crashed every time it tried to open a file, with a GTK3 assertion failure inside GtkFileChooserWidget. The same command worked perfectly from the shell. The environment variables were identical. The difference turned out to be invisible to env: Wine installs a seccomp filter on its processes, and that filter is inherited by every child process across fork and exec. No amount of environment tweaking or session detachment can clear an inherited seccomp filter. GTK's file chooser widget makes a syscall during initialisation that Wine's filter blocks, and GIMP crashes.
The fix is to launch GIMP as a transient systemd user service with systemd-run --user --no-block. A process started this way is owned by systemd, not Wine — clean process state, no inherited seccomp filter, completely outside Wine's process tree.
Save it somewhere on your Linux filesystem, point IrfanView's external editor to the Z: path equivalent, and it works. The same trick applies to any native Linux app you need to launch cleanly from within Wine.
Two things needed fixing before GIMP would even start. First, GIMP's sandboxed image loader (glycin) uses bubblewrap, which cannot create user namespaces inside a container — fixed with GLYCIN_DISABLE_SANDBOX=1. Second, any process launched from the script died the moment the script exited, because Wine kills all child processes when its own child (the Python script) returns.
Even after solving those, GIMP crashed every time it tried to open a file, with a GTK3 assertion failure inside GtkFileChooserWidget. The same command worked perfectly from the shell. The environment variables were identical. The difference turned out to be invisible to env: Wine installs a seccomp filter on its processes, and that filter is inherited by every child process across fork and exec. No amount of environment tweaking or session detachment can clear an inherited seccomp filter. GTK's file chooser widget makes a syscall during initialisation that Wine's filter blocks, and GIMP crashes.
The fix is to launch GIMP as a transient systemd user service with systemd-run --user --no-block. A process started this way is owned by systemd, not Wine — clean process state, no inherited seccomp filter, completely outside Wine's process tree.
#!/usr/bin/python
import os, sys, subprocess
def convert_wine_path(p):
return p.replace('\\', '/').replace('Z:', '')
env = os.environ.copy()
img_file = convert_wine_path(sys.argv[1]) if len(sys.argv) == 2 else None
cmd = [
'systemd-run', '--user', '--no-block',
'--setenv=GLYCIN_DISABLE_SANDBOX=1',
f'--setenv=DISPLAY={env["DISPLAY"]}',
f'--setenv=HOME={env["HOME"]}',
f'--setenv=XDG_RUNTIME_DIR={env["XDG_RUNTIME_DIR"]}',
'/usr/bin/gimp'
]
if img_file:
cmd.append(img_file)
subprocess.run(cmd)
Save it somewhere on your Linux filesystem, point IrfanView's external editor to the Z: path equivalent, and it works. The same trick applies to any native Linux app you need to launch cleanly from within Wine.
Friday, May 08, 2026
gentoo: There was an error during CUPS operation: "No such file or directory".
This happend for me with gentoo, cups and hplip. Had to install filters:
emerge --ask net-print/cups-filters
End then
systemctl restart cups
gentoo and distrobox: OCI runtime exec failed: exec failed: unable to start container process: error starting setns process: exec: already started
I have gentoo host, with systemd, nvidia and docker. When I want to create a distrobox image with systemd in the container, e.g.:
I was getting:
The solution was to use crun container runtime, instead of default runc. To do this
1. Install crun:
2. Create `/etc/decker/daemon.json` with the content:
3. Restart docker
distrobox create --nvidia -i archlinux -n abox -H ~/home-abox --init --additional-packages "systemd"
I was getting:
OCI runtime exec failed: exec failed: unable to start container process: error starting setns process: exec: already started
The solution was to use crun container runtime, instead of default runc. To do this
1. Install crun:
emerge -av app-containers/crun
2. Create `/etc/decker/daemon.json` with the content:
{
"runtimes": {
"crun": {
"path": "/usr/bin/crun"
}
},
"default-runtime": "crun"
}
3. Restart docker
sudo systemctl restart docker
Thursday, May 07, 2026
bedrock linux: share getnoo's /etc/portage with stratas
For example file managers install in strta, e.g. mc, yazi, will not be able to go /etc/portage of gentoo. To fix that, share portage folder in
Add portage to [global] in /bedrock/etc/bedrock.conf:
Then
Add portage to [global] in /bedrock/etc/bedrock.conf:
etc = adjtime, crypttab, default/grub, fstab, group, group+, group-, group.OLD, group.org, gshadow, gshadow+, gshadow-, gshadow.OLD, gshadow.org, hostname, hosts, login.defs, machine-id, modprobe.d/blacklist.conf, passwd, passwd+, passwd-, passwd.OLD, passwd.org, rc.local, resolv.conf, resolvconf/run, shadow, shadow+, shadow-, shadow.OLD, shadow.org, sudoers, portage
Then
sudo brl apply
Tuesday, May 05, 2026
librewolf: dissable adding application for mailto links
about:config
Set:
network.protocol-handler.external.mailto
to false.
xterm: set font size
Create ~/.Xresources with the content:
Run the following to take effect:
From: https://askubuntu.com/a/1138738
! Use a truetype font and size.
xterm*faceName: Monospace
xterm*faceSize: 14
Run the following to take effect:
xrdb -merge ~/.Xresources
From: https://askubuntu.com/a/1138738
Monday, May 04, 2026
gentoo: example make.use
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-O2 -pipe -march=native"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# NOTE: This stage was built with the bindist USE flag enabled
# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C.UTF-8
RUSTFLAGS="${RUSTFLAGS} -C target-cpu=native"
MAKEOPTS="-j4 -l5"
USE="dist-kernel"
# Appending getbinpkg to the list of values within the FEATURES variable
FEATURES="${FEATURES} getbinpkg"
# Require signatures
FEATURES="${FEATURES} binpkg-request-signature"
ACCEPT_LICENSE="*"
EMERGE_DEFAULT_OPTS="--binpkg-respect-use=n"
gentoo: set --binpkg-respect-use in make.use
Add to make.use:
EMERGE_DEFAULT_OPTS="--binpkg-respect-use=n
Subscribe to:
Posts (Atom)