the default service is not FOSS
You mean server? If so, the server is also open source (https://github.com/bitwarden/server), but the default instance (bitwarden.com) is not totaly free - you have to have a payed subscription for some of the features. If you self-host, then you have all the features (free and/or premium) - and this can also be done with Vaultwarden which is a FOSS alternative to the official server.
XMPP is an old protocol. GTalk (google talk) and Whatsapp used it, then extended it, then didn’t give back to the community. So here we are…
The problem with alternative protocols and apps and whatnot is that people are reluctant to change and won’t try anything new if only 2-3 other people use that protocol/service. I can’t even convince my best friends to use Signal, let alone XMPP.
I don’t work for Proton, but I don’t think you looked for the required info: you can set up OpenVPN or wireguard without using NetworkManager or the ProtonVPN application:
https://protonvpn.com/support/linux-openvpn/
https://protonvpn.com/support/wireguard-manual-linux/
But all other criticisms stand. I’m using Protonmail at the moment and I hate that they don’t have native integration of contacts/calendar for Android. I think I’ll move out next year, when my subscription expires.
OK… challenge accepted. Maybe you don’t know about systemd user services.
Content of mytrojan.sh
:
#!/usr/bin/env bash
echo "Writing the service unit file"
cat > ~/.config/systemd/user/my_test_service.service << EOF
[Unit]
Description=Script Daemon For Test User Services
[Service]
Type=simple
User=
#Group=
ExecStart=/home/user/bin/myscript.sh
Restart=on-failure
StandardOutput=file:%h/log_file
[Install]
WantedBy=default.target
EOF
echo "Reloading systemd for the user"
systemctl --user daemon-reload || exit 1
echo "Enabling and starting the service"
systemctl --user enable --now my_test_service.service
Content of myscript.sh
:
$ cat ~/bin/myscript.sh
#!/usr/bin/env bash
while true
do
now=$(date)
me=$(whoami)
echo "User $me at $now"
sleep 10
done
Now run the script (mytrojan.sh
) and check service status after that:
$ ./mytrojan.sh
Writing the service unit file
Reloading systemd for the user
Enabling and starting the service
$ systemctl --user status my_test_service.service
● my_test_service.service - Script Daemon For Test User Services
Loaded: loaded (/home/user/.config/systemd/user/my_test_service.service; enabled; vendor preset: ena>
Active: active (running) since Thu 2023-10-19 12:15:21 EEST; 6s ago
Main PID: 1666383 (myscript.sh)
Tasks: 2 (limit: 18757)
Memory: 556.0K
CPU: 4ms
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/my_test_service.service
├─1666383 /bin/bash /home/user/bin/myscript.sh
└─1666387 sleep 10
Oct 19 12:15:21 tesla systemd[1866318]: Started Script Daemon For Test User Services
I understood a word: networking.