The officially official Devuan Forum!

You are not logged in.

#1 Re: Off-topic » Is AI going to become a Frankenstein monster? » 2025-12-31 18:57:33

a frankenstein monster? you mean a sentience forced into life to satiate the ego of it's creator, also a missunderstood existance victim of the monstrosity of it's creator whom explicitly refused to care for or to nurture his creation beyond what served to ego jerk himself?

cuz if that is the case then AI is already a frankenstein creature, it and us being just victims to the many victor frankenstein aspirers out there that have an ongoing ego cock measuring contest...

#2 Re: Other Issues » [SOLVED] tmp files now stored in a tempfs? Excalibur/Trixie » 2025-12-31 04:16:39

debian trixie does that with a systemd service iirc, devuan is not affected, not that you cannot mount /tmp or any other dir as a tmpfs if you want to for some usecase, just do it in fstab i guess.

as for the output of mount in a devuan excalibur system

mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=7816860k,nr_inodes=1954215,mode=755,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=600,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1576544k,mode=755,inode64)
/dev/nvme0n1p4 on / type btrfs (rw,noatime,compress=zstd:10,ssd,discard=async,space_cache=v2,subvolid=256,subvol=/@rootfs)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,inode64)
securityfs on /sys/kernel/security type securityfs (rw,relatime)
pstore on /sys/fs/pstore type pstore (rw,relatime)
none on /sys/firmware/efi/efivars type efivarfs (rw,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=7840540k,inode64)
/dev/nvme0n1p2 on /boot type ext2 (rw,relatime)
/dev/nvme0n1p1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
/dev/nvme0n1p5 on /home type btrfs (rw,noatime,compress=zstd:10,ssd,discard=async,space_cache,subvolid=5,subvol=/)
/dev/sda1 on /media/storage type btrfs (rw,noatime,compress=zstd:10,ssd,discard=async,space_cache,subvolid=5,subvol=/)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
tmpfs on /run/user/112 type tmpfs (rw,nosuid,nodev,relatime,size=1576540k,nr_inodes=394135,mode=700,uid=112,gid=121,inode64)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=1576540k,nr_inodes=394135,mode=700,uid=1000,gid=1000,inode64)
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

#3 Re: Installation » Brave browser, OnlyOffice and FreeOffice » 2025-12-25 22:04:44

if ya wanna be lazy and barely type commands to install brave there's always https://github.com/eylles/devuan-script … -installer

just run the script as brave-installer install and it takes care of the installation, it uses classic style sources tho, i have to add the option to use the deb822 format

#4 Re: Desktop and Multimedia » Multiple Windows programs in a single wine config? » 2025-12-22 06:21:33

speaking of image viewers, in my opinion nothing beats nsxiv https://codeberg.org/nsxiv/nsxiv the interface may be super minimalist but the extensibility and scripting are unmatched, not to mention the latest release is available on devuan stable.

as for optimizing images... i just convert jpg and webp to png and run the pngs through optipng with these scripts

topng

#!/bin/sh

myname="${0##*/}"

convert_to_png () {
    img="$1"
    imgname="${img%.*}"
    pngname="${imgname}.png"

    if [ -f "$pngname" ]; then
        printf 'image: %s already exists!\n' "$pngname"
        if [ -f "$img" ]; then
            trash-put "$img"
            printf 'image: %s deleted\n' "$img"
        fi
    else
        convert "$img" "$pngname"
        printf 'image: %s created\n' "$pngname"
        if [ -f "$img" ]; then
            trash-put "$img"
            printf 'image: %s deleted\n' "$img"
        fi
        optipng -quiet "$pngname"
        printf 'image: %s optimized\n' "$pngname"
    fi
}

if [ $# -lt 1 ]; then
    printf '%s\n' "$myname: error no images passed"
    exit 1
fi

while [ $# -gt 0 ]; do
    if [ -f "$1" ]; then
        if file "$1" | grep -q "image"; then
            convert_to_png "$1"
        else
            printf '%s\n' "$myname: '$1' is not an image!"
        fi
    else
        printf '%s\n' "$myname: '$1' does not exist!"
    fi
    shift
done

jpgconvert

#!/bin/sh

for image in "${PWD}"/*.jp*g; do
    topng "$image"
done

back to OP, wine does little assumptions so it only creates the default wine prefix and runs every program with said prefix unless a prefix is explicitly set.

personally i do not like letting wine create .desktop files and prefer to write runscripts and dedicated .desktop files for the programs i want to run with wine, that includes setting their wineprefix, for that reason i got a runscript template that works for most stuff you wanna run through wine

runscript template

#!/bin/sh
# wine runscript

myname="${0##*/}"
execdir=""
execname=""

# load config
configdir="${XDG_CONFIG_HOME:-$HOME/.config}/${myname}/"
config="${configdir}/config.rc"
if [ -r "${config}" ]; then
    . "${config}"
else
    if [ ! -d "$configdir" ]; then
        mkdir -p "$configdir"
    fi
    echo "# ${myname} runscript config" > "$config"
fi

# go to executable directory
cd "$execdir" || exit

# run executable
wine "$execname"

with that the runscript's config can be as follows

# runscript config
# wineprefix
export WINEPREFIX="${HOME}/.local/share/wineprefixes/pref1"

for a real example my photoshop cs6 runscript

#!/bin/sh
# wine runscript

myname="${0##*/}"
execdir="$HOME/Downloads/Photoshop portable/Photoshop cs6 portable/"
execname="PSCS6.exe"
WINEPREFIX="$HOME/.local/share/wineprefixes/photoshop"

# load config
configdir="${XDG_CONFIG_HOME:-$HOME/.config}/${myname}/"
config="${configdir}/config.rc"
if [ -r "${config}" ]; then
    . "${config}"
else
    if [ ! -d "$configdir" ]; then
        mkdir -p "$configdir"
    fi
    cat << __CONF__ > "$config"
# ${myname} runscript config
WINEPREFIX="\$HOME/.local/share/wineprefixes/photoshop"
__CONF__
fi

# go to executable directory
cd "$execdir" || exit

# export prefix
export WINEPREFIX
# run executable
wine "$execname"

#5 Re: Hardware & System Configuration » [SOLVED] fstrim and HDDs » 2025-12-19 00:15:08

ah nice, gotta love western digital, they truly embody their name.

#6 Re: Freedom Hacks » [HowTo] Markdown (ronn) to man » 2025-12-08 18:03:22

i have hand written manpages by hand for scripts that aren't even 500 lines of code long and that is because i have not generalized redundant code into functions enough like for this systemact script https://github.com/eylles/systemact which as far as i know i'm the only user and i don't even use like half of the features i've added...

#7 Re: Freedom Hacks » [HowTo] Markdown (ronn) to man » 2025-12-08 13:36:13

but where is the fun of writing manpages by hand and having formatting not work cuz you typed one extra char after the macro?

#8 Re: Documentation » How to use the Init system? » 2025-11-29 23:21:21

if ya miss the systemctl heuristics there's this script i call initctl which wraps update-rc.d(8) and service(8) in a familiar way while ya learn the ropes of using those commands.

https://github.com/eylles/devuan-script … er/initctl

#9 Re: DIY » easydeb deb packager » 2025-11-29 23:09:24

well this thread if anything vindicates my refusal to create packages for anything i develop, less alone packaging for debian as it is an unnecesarely complicated crapshow or at least everything i've read so far has painted the creation of a new deb package from an upstream source that has not been previously packaged, admitedly i have not read the guide in the link shared by golinux but by this point i don't got high hopes.

#10 Re: DIY » SHED init independient/agnostic user services » 2025-11-27 03:19:51

hope it works in your setup, anyway i go back to my usual unemployed activities, play videogames while pretending i'm working on this one business idea thing that idk if will even work.

#11 Re: DIY » SHED init independient/agnostic user services » 2025-11-27 02:05:00

ah yes, sorry it took me until today but it should be sorta kinda solved-ish in master as of now.

by mistake i was using the hardcoded path of the XDG_RUNTIME_DIR instead of using the env var.... shedc should use the env var now

as for the env var, i added the option to have a shed.rc file inside ${XDG_CONFIG_HOME:-${HOME}/.config}/shed/conf, that file is just loaded as a script file so use with care, there you can set the variable SHED_ENV_EXPORT_LOC to a filepath that your user can write to, say if you are already setting and exporting the GUI_SESSION_PID var inside your .xsession then you should be able to define the var like so:

# this is just a suggestion that hopefully ought to work if you startx in multiple ttys
SHED_ENV_EXPORT_LOC="/tmp/shed_session_${GUI_SESSION_PID}/shed.env"

the shed.rc being a loaded "script" the variable substitution should just work with dash, yes the variable definition should end in a filename at the end of a path, no you cannot just give a path as it will break how it works, no there is no checking of werether the variable definition ends in a path or a file since this is THAT cobbled together.

as for the contents of the export file it would look something akin to this:

export XDG_RUNTIME_DIR="/tmp/1000-runtime-dir"
export XDG_SESSION_ID="67"
export GUI_SESSION_PID="42069"

this ought to let ya just load that file inside your .xsession right after starting shed and before launching the window manager, or at least i hope, otherwise you'll have to use an until waiter loop like this

until [ -f "/tmp/shed_session_${GUI_SESSION_PID}/shed.env" ]; do
    # 50 miliseconds
    sleep 0.050
done

. /tmp/shed_session_${GUI_SESSION_PID}/shed.env"

anyways sorry for shed being such a hacked together thing that works all the time like 60% of the time outside of my setup, the whole thing started as a pair of scripts i cobbled for myself to be part of my dotfiles until i broke it "free" from my dotfiles into it's own script that has only continued to grow at a snailpace cuz i'm the only moron working on it and i mean MORON cuz i don't see anyone else stupid enough to write such a piece of software in posix(-ish) compliant shell...

#12 Re: Hardware & System Configuration » [SOLVED] fstrim and HDDs » 2025-11-26 05:23:04

technically the logs are correct, fstrim sends the trim operation to every mounted partition with a filesystem that supports it, the discard is calculated and then passed from the filesystem (through the kernel i'd assume) onto the drive's firmware, the firmware accepts the trim operation with the provided discard parameters, reports back that the proposed operation was accepted but then ignores it internally as the firmware does it's own handling of empty/unused space, the kernel gets the success status back to fstrim and fstrim reports back that the operation was a success and prints out the output that as far as the process is concerned was correct, fstrim simply has no way to know that the drive's firmware is lying while ignoring the trim and discard so the log output is "correct"

#13 Re: Hardware & System Configuration » [SOLVED] fstrim and HDDs » 2025-11-25 14:58:07

it all depends on the specific hard drive, yours has a firmware scheme that accepts trim but ignores it, others may actively make use of the trim instruction but handle it differently at the firmware/hardware level

#14 Re: DIY » A Survey of User-made Content » 2025-11-25 08:42:41

so i put out a new release of systemact that adds support for consolekit and custom user override functions, say if you rawdog sudo by adding your user to the sudoers list or use doas or something else.

https://github.com/eylles/systemact/releases/tag/0.2.0

#15 Re: DIY » SHED init independient/agnostic user services » 2025-11-22 23:28:03

Of course shed can't export the value, I should have realized a script can't export to its invoking script unless it's sourced. However, in this case, even sourcing doesn't work, probably because shed runs in the background and doesn't exit.

yes i know that, hence why shed is currently flawed and needs to become the session process and be a compliant x-session-manager, to give an example think of say xfce, if you start x11 from a display manager like lightdm and select xfce it will run an x11 session with the program xfce-session as the session "leader" program, xfce-session exports all env vars, starts all session components (window manager, panel program, wallpaper setter, desktop manager (program that provides desktop icons)), starts the settings manager and then runs the xdg-autostart programs, then finally waits and stays running until you logout, reboot or poweroff, in the logout process xfce-session acts as a middleman and cleans after itself killing every process it started (or at least those it knows about), kills every one of it's child processes and then terminates, once the session leader is terminated x11 terminates and you get sent back to the display manager.

when starting from a tty and running startx, the last program specified in your .xinitrc (or .xsession in debian based distros) as exec will become the session process leader, an .xsession can export environment variables before execking the last program, but again say we use xfce, the last line of the .xsession wold be exec xfce-session and then again xfce-session will have all the responsability.

the flaw of shed is that it is not currently the program that starts the window manager, ie the window manager and every GUI program is not a child of shed and thus won't properly inherit it's environment, only the programs started by shed inherit shed's environment, the window manager runs as a sibling of shed, so programs started from within the environment of the window manager have the window manager's environment.

a dirty hack would be to have shed first export all it's environment to a plain text file, then have the .xsession load shed's environment file... but the real solution is still to implement session components so the window manager can be started by shed...

I noticed I was accumulating multiple GUISessionXXXX directories on repeated login/logout cycles, since shed was creating a new directory each time from the new PID. It all gets cleaned out on reboot, but the XDG spec says we're supposed to delete these directories between login sessions.

how do you log out? by all means shedc logout should take care of cleaning after itself, if it doesn't then i gotta fix that.

#16 Re: DIY » SHED init independient/agnostic user services » 2025-11-20 04:30:42

ah thanks coder-hase that is indeed a neat idea, but after some digging turns out that it can be done in a much, much shorter way...

get_shed_cgroup() {
  sed 's@.*::/@@' /proc/"${shed_pid}"/cgroup
}

also it doesn't matter that using /proc/ is a linux only thing since cgroups are also a linux only concept... so if anyone on the bsd world or in other unices like illumos wants to port shed over there will be the need to use another process property to set the XDG_SESSION_ID, the BSD jails seem to be the closest thing to cgroups in BSD but i dunno if that would be the correct property to use, nor i know if the BSD world or other unices would have interest in something like shed as it seems linux is the only unix-like stuck in the absolute obscurantism of obtuse software like systemd and the lack of a generic session process even when the x-session-manager has been a concept in debian for ages...

#17 Re: DIY » SHED init independient/agnostic user services » 2025-11-19 00:45:49

yes, the last release tag (0.2.0) expects you to have elogind OR something else that did define the XDG_RUNTIME_DIR, master since commit cc6d537 will define the XDG_RUNTIME_DIR and since commit 95d95c4 it will fallback to create an XDG_RUNTIME_DIR in a similar manner to the one that gentoo recommends to launch sway from a tty, additionally on linux (not really targetting other unixes at the time) it can also set the XDG_SESSION_ID

but all those are features i've added on master, the warning in the readme was because at the start of the development cycle for 0.3.0 i was breaking stuff more often, while you can do use master safely for now i still have to break more things to add the concept of "sessions" and "session components"

for shed will have to receive an argument specifiying the session name or it fallbacks to default, every session name, including default would be a subdirectory of the XDG_CONFIG_HOME/shed/sessions dir (will need to add fallback dirs for sessions bundled with shed, defined by vendor, defined by admin, and have the user config sessions have priority with falling back to each subsequent dir) where the name is the name of the subdir, each session will have to contain a loadable "session.rc" file that adds configuration and information about the session and how some processes ought to be started and treated, an optional "session.d" directory for other files (scripts) to load, then the "components" subdir for the session components and finally the "services" subdir for the session specific user level services to be managed by shed

the "session components" will be a class of services apart from the "user services" already understood by shed, in that these are meant to be core components of the session like the window manager, compositor, panel, notifications daemon, keyring daemon, etc... they differ in that this class will normally only get started on shed's first run and only get terminated on shed's logout but not touched during reload (when shed execs itself) nor to be touched by the regular stop, start, status and restart operations.

also gotta add support for oneshot services as right now shed assumes every service is a daemon...

those intended changes are so that shed can be used as a proper x-session-manager instead of a very hacked together thing shoved into the .xsession

that said, use shed from master without worry for the time being, just whenever you pull your local copy of the repo to update check the git log to see what (if any) has changed in order to adapt your setup as i continue to develop shed on the road for 0.3.0

#18 Re: Documentation » How to: Devuan 5 Daedalus an pipewire » 2025-11-18 00:25:27

yeh, why do we even bother writing software right?

#19 Re: Documentation » How to: Devuan 5 Daedalus an pipewire » 2025-11-17 18:10:51

it really warms my heart to see the joke fly over everyone's head thanks to my posts being ignored unless i join the whining...

still interesting to see how simple the approach of the start_user_pipewire script is when i went ahead like an idiot and engineered a whole crappy process manager + incomplete session process in shell (not even bash because arrays are the devil) all to have pipewire "just work" with 3 files that barely classify as config files...

https://dev1galaxy.org/viewtopic.php?pid=49728#p49728

#20 Re: Documentation » How to: Devuan 5 Daedalus an pipewire » 2025-11-17 01:37:33

just cancel pipewire and use alsa only + jack every so often, this is literally bloating the desktop with the bloatware of pipewire as if the poettering bloatware of pulseaudio wasn't bad enough, maybe we should all go to a real OS like OpenBSD that has a proper audio stack and system.

#21 Re: Desktop and Multimedia » [SOLVED] Can't suspend, reboot, or shut down in a WM » 2025-11-09 02:22:21

again, the repo i posted is the script i use on my machine, it works nicely for sysvinit + elogind.

#22 Re: Desktop and Multimedia » [SOLVED] Can't suspend, reboot, or shut down in a WM » 2025-11-08 16:39:07

you can always give https://github.com/eylles/systemact a try, it is a "backend" for power menus, (a wrapper for systemctl and loginctl, anyone that wants consolekit support will have to help providing the equivalent commands) that uses yad to provide a confirmation and timeout dialog for every action except lock, it does the heavy lifting and is configurable to support custom logout and lock commands

all needed for icewm would be to make a local copy of the included power menu entry and replace the systemd commands with the corresponding systemact command.

#23 Re: Off-topic » Work - or Support for project » 2025-11-08 03:58:00

open a thread in DIY and post the repo in the opening post, tho if any of my projects is an indication expect no traction nor engagement from the forum whatsoever.

#24 Re: Off-topic » Hard Rust requirements for APT from may next year » 2025-11-07 13:45:32

ah so nice to see the useful and constructive conversations are still ongoing on

#25 Re: Hardware & System Configuration » Concurrent filecopy over USB / onto NAS » 2025-11-05 08:07:29

yeh, desktop environment GUI copy tooling is not great, for large numbers of files rsync is always the way to go, mainly because you can cancel the operation and continue it later by running the same command

there is also grsync to ease things up a little

Board footer

Forum Software