You are not logged in.
well the "sudio" metapackage would certainly be the more complex and hard to create package but something like a "bunsen desktop" would be an easier package to create, after all it would require to package in devuan is a diver for thunar https://github.com/BunsenLabs/bunsen-th … r.postinst and set of configs https://github.com/BunsenLabs/bunsen-configs
again that is purely as an example.
maybe the wording of "workflows" is worse than "pico-distributions" and the term chomwitt was searching for is "flavours" a-la ubuntu or "respins" a la manjaro.
to give an example some such respin could be an openbox + thunar + tint2 + jgmenu to provide an alternative to the xfce, gnome and kde desktops, call the metapackage something like "bunsen desktop" as those 4 component are what bunsenlabs linux builds their desktop with, another metapackage could be an equivalent of the "ubuntu studio", something like a "devuan studio" package that pulls other 4 metapackages for "audio" "graphics" "photography" and "video"
to such an assortment of metapackages we could then come and define multiple community maintained metapackages to provide various desktop experiences and workflows.
tho there would require some standarization to have all this metapackages depend on standar xdg-destktop features so that there won't be a package that "implodes and doesn't work" unless someone goes out of the way to do something super custom, at which point installing these "workflows" and "pico-distro" metapackages would be counterproductive.
i'm currently using vimwiki inside neovim, used to use joplin notes but i really had no use for the encryption of the notes nor was really notetaking on the phone.
you are on a forum for a niche linux distro, why niche? 'cuz a lotta users don't care what happens in between the press of the power button and the login screen showing up on their display.
as for the users on the forum my bet is a good lot of us are on the "20 to 30 and has never had an actual date" demographic.
yes, it can be relaxing after hours of debugging your code cuz it doesn't work as intended.
you could give this thing i made a shot, it was originally made with the x11 achitecture in mind but it is written in pure posix shell and should be flexible enough to work with wayland, tho i still got to add some more stuff to differentiate the managed daemons in groups other than the current session service group
yeh, "centralizing" those configs under /etc/security/limits.conf for the global limits config and having the per program limits configs at /etc/security/limits.d/*.conf is a good thing, it sorta kinda follows the logic of /etc/sysctl.d/*.conf configs and makes setting the limits and max map count as easy as just writing 2 files.
yeh i've been having problems with blueman on excalibur for a while so i've been doing everything through the bluetoothctl cli
ah Xitter, i abandoned it back in hmmm 2017 or was it 2018?
oh well don't remember exactly but using the fediverse is a much better experience than Xitter will ever be, for a start you curate your own timeline and the interactions go all the way from pics of cats and anime reviews to the latest AI stock market conspiracy theory all from the same guy, then you can also find yourself discuting with the free software absolutists on the licensing terms for a shell script that wraps a an MIT licensed binary all in the same hour, the old unhinged internet energy is refreshing to be honest you just gotta pick an instance that fits your taste.
you can get mirror urls from https://www.devuan.org/get-devuan
if you don't feel like editing apt sources manually you can use https://github.com/eylles/devuan-script … mirrors.sh which is not really automatic but it allows you to simply put the bare urls inside a config file and let the script do the rest.
another option is to use an inline script as a function with a heredoc.
here's an example of what is a posix compliant shell script that wraps the program nsxiv to add functionality but since there's no good way to decode a uri to a path with just the core utils a simple python script is used from a function, this sort of thing can be done with any interpreter for any language, say you want an awk script or a perl script, even a bash script the process would be all the same.
#!/bin/sh
TMPDIR="${TMPDIR:-/tmp}"
tmp="$TMPDIR/nsxiv_rifle_$$"
is_img_extension() {
grep -iE '\.(jpe?g|png|gif|svg|jxl|webp|tiff|heif|avif|ico|bmp|pam|pbm|ppm|tga|qoi|ff|jpg_large)$'
}
listfiles() {
if [ -n "$SORT_BY_TIME" ]; then
find -L "$1" -maxdepth 1 -type f -printf '%T@\t%p\n' |
sort -n | cut -f2 | is_img_extension | tee "$tmp"
else
find -L "$1" -maxdepth 1 -type f -print |
is_img_extension | sort -Vfd | tee "$tmp"
fi
}
open_img() {
file="$1"; shift;
# only go through listfiles() if the file has a valid img extension
if echo "$file" | is_img_extension >/dev/null 2>&1; then
trap 'rm -f $tmp' EXIT
count="$(listfiles "///${file%/*}" | grep -nF "$file")"
fi
if [ -n "$count" ]; then
nsxiv-env -i -n "${count%%:*}" "$@" -- < "$tmp"
else
# fallback incase file didn't have a valid extension, or we couldn't
# find it inside the list
nsxiv-env "$@" -- "$file"
fi
}
uri2path() {
python3 - "$@" <<'___HEREDOC'
from urllib.parse import unquote, urlparse
from sys import argv
for arg in argv[1:]:
print(unquote(urlparse(arg).path))
___HEREDOC
}
[ "$1" = '--' ] && shift
case "$1" in
"") echo "Usage: ${0##*/} PICTURES" >&2; exit 1 ;;
/*) open_img "$1" ;;
"~"/*) open_img "$HOME/${1#"~"/}" ;;
file:///*) open_img "$(uri2path "$1")" ;;
trash:///*)
trash_dir="${XDG_DATA_HOME:-$HOME/.local/share}/Trash/files"
open_img "${trash_dir}$(uri2path "$1")" -N "nsxiv_trash"
;;
*) open_img "$PWD/$1" ;;
esac
another option is to have sub-scripts that may live in library paths, something like /usr/local/lib/mycronscript/module and then you run that module from inside your script as another executable.
well, terrible idea but if you are a vim/nvim user there's always vimwiki.
but if you want something more stand alone there's joplin https://joplinapp.org/
use sudo but with -A and set your
$SUDO_ASKPASS
to
/usr/bin/ssh-askpass
just install
ssh-askpass-gnome
to provide the askpass.
for editing config files there are also ways that don't involve running a text editor as root, but running it as a normal user and then using tee with sudo and an askpass program to create an authentication prompt so that the current buffer of the text editor (for example vim) is sent to tee and then tee which has root priviledges just writes the text onto the file.
other option is to make use of sudoedit
nano works fine, so does vim for editing that sort of text files without adding other extraneous bits, bytes and chars that should not be there.
on the offhand you can also use something like the https://github.com/eylles/devuan-script … mirrors.sh script from devuan-scripts, which does some automation to set the sources.list correctly for the current suites.
oh man i know that, got a couple rolls of sheet metal, some 1/8th spools of wire, some lenghts of industrial 4 conductor wire i gotta turn to extension cords one day and a good hold of pvc pipe that i keep telling myself i'll turn into a phone holder for an old tripod and the rest into a recurve bow... and that is just the stuff i've more or less thought about what to do with, then i got a good chunk of half written software i gotta sit down and polish
thanks, i either make stuff that is very useful or very useless, no in between.
fun i just so happen to have some useful pieces of code on other scripts in https://github.com/eylles/devuan-scripts/ (check every single one, take every piece of code ya want, it is licensed apache2)
in short is to decide if using sudo, sudo with askpass or pkexec:
has_tty=""
if tty | grep -qF -e "dev/tty" -e "dev/pts"; then
has_tty=1
fi
if [ -n "$has_tty" ]; then
sudo command
else
if [ -n "$SUDO_ASKPASS" ]; then
sudo -A command
else
pkexec command
fi
fi
the content of $SUDO_ASKPASS is usually some program to read a password from the user, some use dmenu or rofi but both programs advice not to use them for password prompts... on my system i set SUDO_ASKPASS to /usr/bin/ssh-askpass which is provided by the ssh-askpass-gnome package, tho i also got a polkit authentication agent for programs like gparted and the like, on my case i run /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 as a daemon inside my user session the program is provided by the policykit-1-gnome package.
boot up manager went by as bum in the debian packages https://tracker.debian.org/pkg/bum wonder if there's a way to get the source packages from debian jessie somehow
edit: took me a while but i found something on the archive of old ubuntu releases https://old-releases.ubuntu.com/ubuntu/ … rse/b/bum/
edit 2: so it is a program written in perl, somehow not surprised...
what services are we speaking of tho? services that are ran as root or their own user, ie the ones in /etc/init.d OR services to run as part of the user session?
if it is the first then it is okay to use update-rc.d for sysvinit, tho for other inits such as runit or open rc it would just be a question of detecting which init system is being used and instead of using update-rc.d use a different command, the machinery inside the wrapper will remain the same just changing update-rc.d for the corresponding command to the init system.
and speaking of, i jumped the gun and cobbled a script that for the time being i'm calling initctl that wraps update-rc.d and service at https://github.com/eylles/devuan-script … er/initctl
for the second case it i already got a solution of sorts that i've been working on for a while now, it still is alpha software, it works but i still have to implement some more features like separating the main session processes (window manager, status bar, etc) from the more secondary processes (compositor, clipboard manager, network applet, blueman, etc...) and adding singleshot type processes as right now it assumes everything is a daemon of sorts, it is implementen in pure posix shell https://github.com/eylles/shed
yeh i noticed i F'ed up badly there, fixed the snippet
update-rc.d is a perl script, you can always set up a wrapper around it, my suggestion for a graphical wrapper is to do it in 2 parts, one part a pure shell script that does the job of taking an action (enable disable) and multiple inputs to distribute them to update-rc.d, so that you can do:
wrapper disable cups bluetooth cups-registryd and then inside the script do something like this:
args=""
# while the number of arguments is greater than 0
while [ "$#" -gt 0 ]; do
case "$1" in
enable|disable|defaults|remove|defaults-disable)
action="$1"
;;
*) args="$args $1"
;;
esac
shift
done
for service in $args; do
update-rc.d "$service" "$action"
done
then on your GUI frontend with either yad zenity or the program to display menus and create GUIs of your choice you can take multiple inputs from the user and send them with either sudo -A (ensure a SUDO_ASKPASS program is set, i use ssh-askpass-gnome which is linked on /usr/bin/ssh-askpas) or pkexec run the wrapper script, this ensure that you are protecting the enabling|disabling|removal requiring sudo authentication and that you are authenticating only once for a call to the wrapper so that all the services get the action applied to them instead of having to require an authentication per service to be enabled|disbaled.
ah yes the PATH shenanigans, i simply append to path in my .profile
PATH="$PATH:/usr/local/sbin:/usr/sbin:/sbin:$HOME/.local/bin"
this way i always get the sbin programs on my path, they will still require sudo to run.
i've looked some times at the power profiles daemon, if you think it will do the job you want just feed the systemd unit to https://github.com/RosstheRoss/sysd2v and it will output an init-d-script style initscript, you can read more about that framework with man 5 init-d-script
speaking of the power profiles daemon you do have to "manually" change which power profile you want to use, i personally much prefer something more automatic since i do not like to be thinking about what "profile" i want as i usually want my laptop to respond to
A) power source state, ie: is it running on battery or the AC adapter is connected.
B) the load on the system, the more cpu demanding some task is the higher performance options i want.
for that matter i considered rolling an initscript to use https://github.com/AdnanHodzic/auto-cpufreq but after reading the code it does additional stuff that i don't need and is running on a python interpreter which is not lightweight to say... so i ended up rolling out my own solution which is a very lightweight shellscript that only makes use of very few utilities not to mention can react to the usage of the gamemoderun tool which i use for prioritizing games over other processes when gaming, finally my solution does set some of kernel tunables wihch auto-cpufreq doesn't even touch (tho TLP does set some from what i've seen).
you can grab the latest release tarball from the releases section https://github.com/eylles/afreq.sh and install with a simple sudo make install install-sysv , the daemon is highly configurable tho i have not made a manpage yet, neither does it support pstates for intel or amd tho it is on my list to implement support for those.
congratulations, i just knew devuan back in december of 2020 but it instantly became my daily driver and distro of choice after years of hopping between flavours of debian, ubuntu, linux mint and even giving arch, void and artix a try i found the experience i wanted with devuan on the testing suite, a distro that was free of systemd like in the days of ubuntu 10.04 and debian squeeze but with reasonably up to date software.
let's hope for another 10 years of devuan!