You are not logged in.
you could also give my https://github.com/eylles/zram-service script a try, it just works perfectly on my machine, also i'm planning to make it have some feature parity with what the rust-systemd-zram-generator so that it can also do mounts not just a single zram device as zramswap.
brave, it just works, brave's own adblock is inspired on uBlockOrigin if i remember correctly to the point you should be able to use the same filters in brave brave://settings/shields/filters enable developer mode and you can enter your own custom filters and scriptlets
as for firefox... do not use firefox, use librewolf or try to build gnu icecat, unfortunately some years ago debian dropped the iceweasel project when firefox relaxed their trademark policies, a new fork of firefox really needs to come up but that is a different can of worms...
well taking inspiration from https://docs.xfce.org/xfce/tumbler/available_plugins with the webp thumbnailer i decided to check and turns out that yes, this once again imagemagick comes to the rescue as it can properly understand the xcf format.
just one small caveat, xcf files are multi-layer and while imagemagick can understand multi-frame, multi-page and multi-layer just fine however a simple convert image.xcf image.png will produce
image-0.png
image-1.png
...
image-n.png
for every layer of the xcf file, so a dirty solution if your xcf files got low layer counts is to use /usr/bin/convert "$1[0]" -thumbnail "$2" "$3" to hardcode layer 0, otherwise you got to extract every single layer and compose them in the correct position.
well, after reading some i have a very uh "quick and dirty" solution of sorts at the time for shed to be able to run along a desktop's session manager, mind you this is far from a proper solution but until i implement a better version of this into shed it will have to do...
#!/bin/sh
mon_pid=$(loginctl show-session "$XDG_SESSION_ID" | awk -F '=' '/Leader/{print $2}')
proc_com=$(ps ax -o'cmd' -q "$mon_pid" | tail -n 1)
NO_CONTINUE=0
outHandler () {
echo "exiting on signal: $1"
NO_CONTINUE=1
}
trap 'sigHandler "HUP"' HUP
trap 'sigHandler "USR1"' USR1
trap 'outHandler "EXIT"' EXIT
trap 'outHandler "TERM"' TERM
trap 'outHandler "INT"' INT
trap 'outHandler "QUIT"' QUIT
# 5 cycles per second, 60 seconds per minute, 60 minutes
INTERVAL=$(( 5 * 60 * 60 ))
# 5 cycles per second, 20 seconds
cyc=$(( 5 * 20 ))
while [ "$NO_CONTINUE" -eq 0 ]; do
# is the count of cycle iterations the same as the interval?
if [ "$count" = "$INTERVAL" ]; then
# reset the count to 0
count=0
fi
# check if we need to run shedc logout
if [ $(( count % cyc )) -eq 0 ]; then
if ! kill -0 "$mon_pid" 2>/dev/null; then
shedc logout
else
curr_proc_com=$(ps ax -o'cmd' -q "$mon_pid" | tail -n 1)
if [ "$curr_proc_com" != "$proc_com" ]; then
shedc logout
fi
fi
fi
# increment the count
count=$(( count + 1 ))
# the duty cycle of this daemon is 5 iterations per second
# this is fast enough to feel responsive to signals, yet not hog
# resources, mainly cpu
sleep 0.2
done
development of shed is a slow grind tbh as it is quite the change going from cobbling something that is to eventually be a suitable program to provide the x-session-manager spec as defined by debian to also having the same program be able to provide just user services and not the session manager, as really in an ideal world every session-manager type program should also provide user services not just the rather "incomplete" xdg-autostart spec, but that is more a rant so neither here nor there really
for image viewing i use nsxiv, may be biased in that i sometimes contribute to the repo and have helped cobble some scripts to extend the functionality tho
for a fetch program i use neofetch which i've been tempted to take maintenance of for a while but have not (i mean i've been maintaining a fork of pywal since 2021)
for screenshotting i like flameshot since it already packs everything i need to do the light editing of screenshots, but is not like i could not use maim with imagemagick like i was doing before.
for clipboard manager i have found nothing better than copyq, it just works, supports images and has vi-like bindings by default
for window management i personally like awesome tho i'm not the biggest fan of lua tho i did re-write my neovim config in lua a while ago...
for file management i use both thunar and vifm, most stuff i do in vifm but having thunar as the default is my preference for when the browser opens a file dir
i use webmail but lately i've been thinking of installing thunderbird, used neomutt for a while but it wasn't doing it for me tho, even using luke smith's muttwizard script to set up neomutt it didn't feel "complete" enough so i went back to using webmail
yeh the problem is that to logout with shed in it's current state you need to run
shedc logout
which is not ideal but i have to do quite some refactoring to fix that...
i did start a thread about shed at https://dev1galaxy.org/viewtopic.php?id=5160 but besides Head_on_a_Stick it got no traction it seems, got a little more traction on the artix forum with a moderator, a seasoned user and an artix developer providing feedback to improve the design of shed: https://forum.artixlinux.org/index.php/ … 410.0.html
currently i want to implement some needed features for v0.3.0 but got stuck into refactor purgatory where all my lazy coding and design decisions come to bite me and prevent the addition of more features until the code is more modular and uses less global variables...
shed is something i've been cobbling together for my own use since maybe june or july of 2022 but only pushed the first commit of a usable version to github back in august of 2022, wasn't until the development cycle of v0.2.0 that i decided to adapt the design and code of shed from just being something i wanted for myself towards the roadmap of eventually becoming a full fledged session process for posix that can manage the session's processes in more than just starting every component but actually managing them from a daemon, ensure nothing dangles and lingers across logouts and logins by also taking care of doing logout (well, this means i eventually need to make shed play well with elogind's terminate-session and kill-session), and with enough hope set up a standar that shames the session processes for different desktop environments being utterly unable to implement the minimum of proper management over their session components and autostart programs when something written in shell script just can.
once shed is on the state of "can just work as session process for x11 and wayland" (likely not rn for v0.3.0 but probably for v0.4.0) then i intend to work on submitting a package to debian so that it just becomes part of the pool of packages inherited by every debian derivate, then make the pitch to devuan so that shed is the tool to reccomend not just to provide a session process for stand alone window managers but user services with sysvinit.
wish the code to talk ratio was better tho...
Talk is cheap.
extremely cheap
This isn't going to go away, so which solution do we want?
* Extend sysvinit.
* Switch to an init system that isn't quite so crusty.
* Adopt something else to manage user daemons, such as the examples I mentioned earlier.
* Maintain fragile semi-functional shell hacks for each package that needs this, and deal with the inevitable bugs/jank as they arise.
* Bury our heads in the sand, and let the users figure it out. *status quo*
i wrote my own solution to manage user level services in pure posix shell script very much inspired by my understanding of sysvinit, it works well enough for me but is still 2, well 3 major feature sets (if you want XDG_AUTOSTART to just work seamlessly) away from being a proper session-manager/session-process that is also completely agnostic to the environment (x11, wayland, tty, ssh, whatever) other than requiring a posix shell interpreter and core utils (all which can so far be provided by busybox), but the project has gained basically no traction, so far i've only got some comments and feedback from like 5 or 6 people so my work on the project has been sporadic, i mainly work on the project when I need a new feature or have foolishly done work before applying to a coding job, mind you without results... if anyone's interested (likely not) the link is here: https://github.com/eylles/shed
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