You are not logged in.
i personally keep using github for visibility of my projects, i'm just slow at mirroring everything to other forges like gitlab and codeberg.
ya know, instead of managing the pipewire services as exec inside hyprland why not use shed, it provides an implementation of user services and can handle wayland sessions.
https://github.com/eylles/shed
the manpage provides an example for using with sway, my latest shed development related forum post gives some insight on what shed can do and how it may be used for wayland sessions, mind you i got no idea how those are started beyond that the compositor is also the windowing server so it needs to have environment preparation before running, which shed can do
https://dev1galaxy.org/viewtopic.php?pid=63141#p63141
mind you my only frame of refference for wayland stuff is https://wiki.gentoo.org/wiki/Sway#Starting_Sway
but i can guarantee you that in my x11 setup shed is able to perfectly manage pipewire.
the state of shed as of today, year 2026, month 04 (april) day 10
this is to address what works, which features ara available and how shed can be used as of the latest commit to master (c4f77b1), what is still to be implemented, what features does shed need and also as a request for feedback from prospective users to gather interest on either cutting a release of shed this week or wait until more capabilities are implemented, any further commits pushed today to the repo will only be documentation related.
What shed can do right now:
shed can run as the x session process leader, that is if you use startx to start your x11 session from tty your .xinitrc (or .xsession in debian and all derivates) file can perfectly well be just a shebang with the line "exec shed" right below, shed will work as the session process and so long as you logout with "shedc logout" the session will be terminated correctly.
shed can also be used as the session process for a wayland session, however i'm barely versed in wayland beyond the minimum needed to make shed into something that can work for the architecture of how a wayland's session leader is not just their window manager but their compositor and actual windowing server.
that said in the current state both x11 and wayland sessions can be started from a display manager like sddm just needing the correct .desktop files to be provided, for example:
the current shed x11 session could be /usr/share/xsessions/shed.desktop
[Desktop Entry]
Name=shed
Comment=an x11 session in shed
Exec=shed
Type=Applicationthe current shed wayland session could be /usr/share/wayland-sessions/shed.desktop
[Desktop Entry]
Name=shed
Comment=a wayland session in shed
Exec=shed
Type=Applicationof note to the interest of wayland users, as far as i know shed is the only tool out there that can be a viable alternative to the Universal Wayland Session Manager (UWSM), which is the only other generic tool for managing wayland compositors and it does so with systemd units.
current capabilities of a shed session daemon are:
set XDG_RUNTIME_DIR - meaning you can even run without elogind, just shed.
set XDG_SESSION_ID - the only feature so far that CANNOT be used as is in *BSD as it gets the session id from cgroups
set XDG_SESSION_DESKTOP and XDG_CURRENT_DESKTOP - env vars used to identify the desktop environment AND xdg-portals config for using the xdg-portals
set xdg home dirs - the XDG_DATA_HOME as $HOME/.local/share, XDG_CACHE_HOME as $HOME/.cache, XDG_STATE_HOME as $HOME/.local/state, not to mention XDG_DESKTOP_DIR, XDG_DOWNLOAD_DIR, XDG_TEMPLATES_DIR, XDG_PUBLICSHARE_DIR, XDG_DOCUMENTS_DIR, XDG_MUSIC_DIR, XDG_PICTURES_DIR, XDG_VIDEOS_DIR, defined with xdg-user-dirs-update, worth mentioning that for this purpose shed only exports their ENV var values it however does not initialize (mkdir) the directories as that step is not a strong requirement imposed on all session processes as far as i know.
can also export an "exports" file in shell loadable format containing the values of XDG_RUNTIME_DIR, XDG_SESSION_ID and shed's own SHED_SESSION_PID, this was an option that previously could be a requirement back when shed could not run as the session process, i'm keeping it for the time being as an option that may be of use to someone tho removal of this capability is open to possibility.
besides the configuration file shed supports:
loading of .env files to set up the environment during session initialization and before starting of components and services, .env files are just posix compliant shell scripts (no bashisms) which are to be stored in ${XDG_CONFIG_HOME:-${HOME}/.config}/shed/shallow.d for the files to be loaded during the shallow phase and ${XDG_CONFIG_HOME:-${HOME}/.config}/shed/env.d for the ones to be loaded during the transient phase, shed will only ever load them during the initial run as loading of .env files is ignored during reloads such as when calling shedc reload and shedc relaunch.
starting session components, session component definitions are stored in ${XDG_CONFIG_HOME:-${HOME}/.config}/shed/components, session components are services that will only be started at session start and terminated upon logout, meaning no attempt is made to start them from shed re-executions.
starting and managing user-services, one of the main reasons i wrote shed and the core functionality that was extended to session components, service definition files are stored in ${XDG_CONFIG_HOME:-${HOME}/.config}/shed/services, oneshot and daemon type services are supported, worth mentioning that with daemon type services the called program must NOT fork to background and exec to daemonize itself, such behaviour breaks the way that shed manages services, i know sysvinit in debian has no problem with that thanks to leveraging start-stop-daemon but shed does not use that program instead going for pure shell in hopes of portability.
do a shallow to transient initialization process in which shed starts in shallow mode only setting up the environment, then checks for a "transient" script which should be executable, if the check succeeds the script is ran with exec allowing it to inherit the PID of the shed instance, then it has to execute the program that will become session leader (also with exec so it inherites the session pid) and then the program has to launch a new instance of shed as a child, if the check fails shed will simply execute itself again, at this point execution of shed converging and completeing the session by starting session components and user services
what shed cannot do:
start programs from the xdg-autostart spec, in theory user services are better as they are explicit with their lifecycle behaviour (daemon or oneshot), tho a way to support xdg-autostart entries would be to run a script to parse and convert them into the shed service definition format, an additional feature would be required from shed when starting services to keep polling on the pid for a while and checking the exec name and flags to ensure it is the same program and so determine if it is a daemon or was a one shot, for that reason i did not have support for xdg-autostart as a goal for release v0.3.0 from the start of the development cycle.
use a proper implementation of the XDG_CONFIG standar, in fact shed only supports to have ONE set of configurations for ONE session, changes are planned to re-structure the shed configuration from:
$XDG_CONFIG_HOME/shed/
|- shed.rc
|- shallow.d/
|- env.d/
|- components/
|- services/
|- transientto:
/etc/shed
|- sessions/
|- session_name/
|- shed.rc
|- shallow.d/
|- env.d/
|- components/
|- services/
|- transient$XDG_CONFIG_HOME/shed
|- sessions
|- session_name
|- shed.rc
|- shallow.d/
|- env.d/
|- components/
|- services/
|- transient
as this schema would allow for distributors to ship sessions, say if tomorrow someone wanted to create their own "desktop environment" using shed, say it was named Joe's Desktop Environment, and it was to use pekwm, picom, pipewire, xfce-polkit, and betterxsecurelock, then the default files that would be shipped for that session would be:
/etc/shed
|- sessions/
|- JDM/
|- shed.rc
|- shallow.d/
|- env.d/
|- xrdb.env
|- components/
|- 99x11-windowmanager
|- services/
|- compositor
|- pipewire-daemon
|- pipewire-daemon-pulse
|- pipewire-media-session
|- polkit-agent
|- xscreenlocker
however i'm very tempted to make the release of shed v0.3.0 and just leave these pending features for the dev cycle of v0.4.0 as i personally have no use for them and so far i feel shed has not gained enough traction to justify working on them.
well oneshots are finally handled reliably and i think every part of shed that needed to be refactored in preparation for session components has been refactored, i'll work on the session components tomorrow and making shed a more proper x-session-manager, i feel tempted to cut the release for shed v0.3.0 at just being able to use shed as an x-session-manager that works for minimal x11 pseudo-desktops, ie; environments built upon window managers and independent components much in the style of the bunsenlabs desktop, antix, miyo and mabox, cuz adding support for stuff like wayland and more traditional desktop environment setups requires a lot more work like introducing the architecture of "shed shallow" -> "gui leader" - "shed transient", which for example in a wayland setup would be:
a "shallow" shed instance, which just sets up the environment vars like the XDG_RUNTIME_DIR if needed, loads the user profile into the environment if indicated, then proceeds to write it's pid onto a file and export it as the SESSION_LEADER to then exec the wayland compositor from the corresponding session component definition file, so that the wayland compositor can become that PID.
the wayland compositor then comes, does the setting of GUI environments it requires to do, starts a new shed instance within it's environment.
the "transient" shed instance then writes it's own pid at the shed.started file and continues starting all the other session components and services needed for completeing the session.but yeh that is a workload i'm considering leaving for the v0.4.0 dev cycle, anyway onto my videogames i go
yeh, i know that the way i'm using pid files is not the best, cleanest or even most reliable, i did have my eyes set on leveraging the start-stop-daemon program early on but decided against it at the start of the project as a proof of concept to see if i could get away without as a dependency, i do want to add use of start-stop-daemon to shed before the v0.3.0 release but as a soft dependency rather than a hard one, as in "do we got 'start-stop-daemon'? yes we do, that will be used and things will be more reliable. no we don't but we can fallback to the less reliable shell backend, that is okay." rather than "ya didn't install 'start-stop-daemon' in this thing? lol get rekt nothing works lmao"
as a sidenote, maybe i should try passing shed as a suckless program, say label it like a "suckless session process", perhaps it would generate more interest that way...
with enough luck by the end of this year (knocking on wood it will be sooner than that) shed will be able to provide a proper x-session-manager + user services in a way that can work with any non Desktop Environment in devuan stable.
@coder-hase ya could always look into "breaking up" components form pico-init to a collection of smaller utilities, ya know to cheat the whole line count.
as for shed i've been working on it and i'm quite satisfied that many of the commits from this week have incurred in deduplication and generalization of code as that has vastly cleaned up the project.
oh government officials and billionares care for children, but only for the children they can use to satisfy their depravity, after all government and tech are ruled by the epstein class.
nah, the age verification daemon must be themed after jeffrey epstein, there's no one whom governments and age verification pushers will trust more on werether someone is underage or not than jeffrey epstein, with only a "virtual" jeffrey epstein coming in second in that level of trust.
is not like a compliant daemon for the american laws is any hard to write, there's this one for example https://github.com/majestrate/aged
and i may write my own just in case that goes a step further and sets a default birthday if none exists, i just haven't decided yet if the default should be september 11 2001 or january 20 1953, Jeffrey Epstein's birthday, as it seems everyone pushing for age verification online is either a friend, client or investor of jeffrey epstein.
edit: i may go with the Jeffrey Epstein birthday, what i'm worriying more about is the name for the daemon, which sounds better "agestein-island" or "agestein-daemon" ?
edit: just thought another one "Virtual Jeffrey Epstein Age Daemon" whichs shortens to vjead
was just noticing, the current development cycle of shed v0.3.0 constitutes more than half of the total commits to shed and yet i've barely made a dent on the pending side of the roadmap... most of the commits have been either tangentially unrelated to the roadmap or refactors and improvements over early poor design decisions when i barely had a concrete vision of what shed was supposed to be...
yeh that's a lot more complete than shed aims to be.
by "x-session-manager" i mean what debian means, which is a program that can work like "xfce4-session" and "lxsession", which is getting exec'd by either the xsession script or display manager, becoming the "session leader process" (the process whose PID keeps the x11 session alive) and has the task of starting every session component, window manager, compositor, panel, etc... AND while we're at it also serve as a way to provide "user services" and eventually have a way to convert XDG_AUTOSTART entries into manageable monitoreable services just like the "user services", for an idea of what "user services" are look at systemd user units, runit user services and since last year openrc user services.
worth clarifiying that altho i mention x11 shed is NOT tied nor enthralled to x11, i need to make some DIR structure changes and introduce some features but once done shed will be able to work as a extremely generic "session manager" meaning the open possibility to use shed for wayland, tty, framebuffer and ssh "sessions".
so it took ages but for @chris2be8 i finally took the time to re-organize my devuan scripts repo and added the screenshots for apt-ui
https://github.com/eylles/devuan-script … cripts/apt
if ya can't see github the devuan scripts has the following mirrors:
https://codeberg.org/eylles/devuan-scripts
https://gitlab.com/eylles/devuan-scripts
https://git.devuan.org/eylles/devuan-scripts
shed is not an "init" program in the manner that sysvinit or runit are, shed is closer to an x-session-manager, as for "bloated linux frameworks" shed does not interact with, understand less alone know about frameworks, all interaction that shed ever has with something like elogind is check if the XDG_RUNTIME_DIR env var was set, if it wasn't then shed sets it to something reasonable, shed is written in purely shell script so it doesn't matter if you don't know something like C, you can go ahead to the code repo and read the code, i suggest ya do read the code, it has some nice shell script tricks, i guarantee your shell scripting will improve from just reading it.
so shed is now able to do logging and have explicit definitions of logfiles to redirect all output from the services onto such files, so far it is working as intended on my setup and i doubt any bug can arise from that in the time being.
i have all my repos in github, been mirroring to gitlab, codeberg and more recently the devuan gitea instance, i'm not getting any repo off github cuz it does help visibility but i do have to update all my readme files with links to the mirrors.
github is a popular forge, which is good for discovery and visibility of a project.
yes, everything is worse than deno security wise, but deno is le rust, rust bad, also rust anything is conflicting with the debian way of packaging thanks to the rust package manager, cargo...
the challenge to package deno for debian is open, but after that comes the challenge of convincing users that something written in rust is not bad.
nope, deno is not needed, all that is needed is a javascript interpreter more complete than the python mini interpreter, due to runtime permissions the yt-dlp project reccomends deno, but nodejs (packaged by debian and available in devuan) just works.
the javascript interpreter is needed only for downloading from youtube, all other video sites work without it.
just install node with sudo apt install nodejs and after updating yt-dlp copy the following to $HOME/.config/yt-dlp/config
## Enable NodeJS or QuickJS usage for YouTube, both options can be uncommented.
## Please see notes as to why you might want to consider carefully when enabling
## https://github.com/yt-dlp/yt-dlp/wiki/EJS#step-1-install-a-supported-javascript-runtime
# prefer the nodejs runtime
--js-runtimes node
# --js-runtimes bun
# --js-runtimes quickjs
## Enable remote components in Deno and Bun, useful to fetch required Ejs scripts
## https://github.com/yt-dlp/yt-dlp/wiki/EJS#step-2-install-ejs-challenge-solver-scripts
# prefer to fetch the challenge solver script from the github repo directly
--remote-components ejs:github
# --remote-components ejs:npmthat is all, you can continue downloading everything from youtube or streaming the videos with mpv (it downloads to a tmp dir)
i still remember this thread about keepassxc https://dev1galaxy.org/viewtopic.php?id=7379
ah, i was kinda expecting ya to build a gui wrapper for pass(1), since that was one of the suggestion for building a complete replacement to stuff like keepassxc in the thread where keepassxc was discussed, there were more suggestion in that thread tho.
using pass as the "backend" or rolled out your own?
everything i cobble together is interesting and unheard of, it just gets no traction.
heh i got into linux back in ubuntu 10.04 but never got used to how synaptic works, dunno didn't mesh with my thought process so a while ago i found a script named "debianUI" which implemented a TUI wrapper over apt with fzf, seems like the author deleted the repo so i began working and created my own version in posix shell, still using fzf and made it configurable, it fuzzy searches packages by name and short description, provide a scrollable preview with the long description of the package under the "cursor".
the script is available at https://github.com/eylles/devuan-script … /apt-ui.sh and https://git.devuan.org/eylles/devuan-sc … /apt-ui.sh
i reckon just a description of a TUI program is not enough to have a couple screenshots, expect colors to be different in your terminal emulator

