Why not use systemd user units [0]? You can drop service files under `~/.config/systemd/user/` and enable them to be launched at login with `systemctl --user enable foo`. This is how the Crankshaft plugin loader autostarts itself on the Steam Deck [1]. It's published as a Flatpak [2] which you can install and update from SteamOS's built-in Discover software manager - on first run, the Flatpak drops the service file and enables it.
Xe here! Fun fact: the original draft of that article went on a slight diatribe on what "spicy" means in that context. I think it was something like this:
> When I add something to my daily notes, if it's most directly related to another thing then I will try to describe it as a "spicy" or "diet" version of that other thing. "Spicy" means that there were things added and "diet" means things were removed. A systemd timer is a spicy cronjob because you can do a lot more with it than cron can on its own. An OpenRC service is a diet systemd service because you can do a lot more with systemd than with OpenRC. Think about how to describe things you don't really understand like this in your notes. It will help you a lot.
Its pretty crazy how frequently her personal blogs and company articles come up when I'm looking for answers the past several months. Sure, most of what I'm looking for is Nix related, but shes written (and recorded) a ton of useful material. Its saved me so much time / frustration. Thanks Xe!
This article jumps through so many weird hoops to avoid reinstalling Tailscale on (relatively rare) system OS updates and while I appreciate the author's creativity and dedication to user experience - just write a script. Your actual _settings_ / config / user data doesn't get overwritten, it's just the stuff in /usr so reinstalling means everything is exactly back to where it was before
Every system update (which again, is rare, Steam Client updates are much more common and don't change the OS), I SSH in and run `sudo ./reinstall-software.sh`.
I think the last point gives away the reason. He wants to make it a packaged thing that users can install with very little knowledge. The blog post is more as an insight into a dev process than it is a 'howto' for others - although obviously it's that as well!
I've had my deck since launch and have gone through several OS updates, it's not super common but I wouldn't call it relatively rare.
The only reason I noticed every update is because it kept wiping the screen keyboard I installed, because I couldn't get the built in one working at first. It wasn't until later that I found out the actual steam client has to be running in the desktop environment for the built in keyboard to work.
I didn't know about the Steam Deck. A sleek handheld gaming console with PC hardware running Arch Linux under the hood. Looks like it even supports multiple operating systems. Didn't think I'd ever see something like this. As expected, it's held back by the massive power consumption of PC hardware. Imagine an Apple M1 Steam Deck...
I'd really like a handheld programming device. I wonder how easy it is to write software with it.
Oddly enough I was just talking to some friends about my plan for the Steam Deck and my confusion on its update process - since the source code showed both partition image updates and pacman updates.
My day 1 goal is to get the system working with tailscale and games over NFS. Second is getting that managed by home-manager as a OK workaround for the A/B update system.
The long term project is to get the stock OS recreated in NixOS. Testing the system using a newer kernel for better Btrfs and Zen performance and faster gamescope (Wayland micron compositor) updates seems like a really interesting project.
Every systemd-sysext image needs the OS and version hard coded in. In order to provide canned downloads, I'd need to make at least 4 images per release (one for every publicly available version of SteamOS) and it's honestly easier and arguably better to have the target device take what we already ship and make an image out of that on the heckin device.
I don't quite understand what this project is. How does it work with Moonlight or is it a replacement for Moonlight? (The docs don't seem to explain why I'd want to use it.)
It's because they've achieved darling status on HN, which is what happens when a startup has founder/product/community/technical/intellectual fit and knows how to write.
I wrote a longer description of this phenomenon at https://news.ycombinator.com/item?id=30070287 (in the bottom third of the comment, starting with "Stripe succeeded on HN" - skip the tedious stuff before that).
There was also an entire thread about this a few weeks ago:
Have you used their product? It’s a gd joy to use. In casual use, I haven’t run into any bugs at all. It took me all of about ten minutes to get set up, it just works, and I didn’t have to think too hard about it.
What’s their secret? A great product that people want to talk about.
The post from earlier today got me thinking about their blog post about the Steam Deck from last month. I was kinda surprised that someone hadn't already submitted it.
for what its worth a lot of the stuff in this post can be applied to a lot of things that aren't tailscale. you can just consider tailscale an arbitrary example of something really cool that you can do with your steam deck.
that said tailscale is also just an awesome company with an awesome product
[+] [-] mintplant|3 years ago|reply
[0] https://wiki.archlinux.org/title/systemd/User
[1] https://crankshaft.space/docs/usage/autostart
[2] https://flathub.org/apps/details/space.crankshaft.Crankshaft
[+] [-] zaarn|3 years ago|reply
[+] [-] xena|3 years ago|reply
[+] [-] kixiQu|3 years ago|reply
Anybody rig up anything weird on their deck yet?
[+] [-] xena|3 years ago|reply
> When I add something to my daily notes, if it's most directly related to another thing then I will try to describe it as a "spicy" or "diet" version of that other thing. "Spicy" means that there were things added and "diet" means things were removed. A systemd timer is a spicy cronjob because you can do a lot more with it than cron can on its own. An OpenRC service is a diet systemd service because you can do a lot more with systemd than with OpenRC. Think about how to describe things you don't really understand like this in your notes. It will help you a lot.
[+] [-] geoffeg|3 years ago|reply
[+] [-] JamesSwift|3 years ago|reply
Its pretty crazy how frequently her personal blogs and company articles come up when I'm looking for answers the past several months. Sure, most of what I'm looking for is Nix related, but shes written (and recorded) a ton of useful material. Its saved me so much time / frustration. Thanks Xe!
[+] [-] obowersa|3 years ago|reply
It's been fun and I feel like I'm just scratching the surface of it
[+] [-] anaisbetts|3 years ago|reply
Every system update (which again, is rare, Steam Client updates are much more common and don't change the OS), I SSH in and run `sudo ./reinstall-software.sh`.
Example script:
https://gist.github.com/anaisbetts/194def8511823c2290dbb9ecf...
[+] [-] rkangel|3 years ago|reply
[+] [-] Goz3rr|3 years ago|reply
The only reason I noticed every update is because it kept wiping the screen keyboard I installed, because I couldn't get the built in one working at first. It wasn't until later that I found out the actual steam client has to be running in the desktop environment for the built in keyboard to work.
[+] [-] RosanaAnaDana|3 years ago|reply
[+] [-] matheusmoreira|3 years ago|reply
I'd really like a handheld programming device. I wonder how easy it is to write software with it.
[+] [-] KingMachiavelli|3 years ago|reply
My day 1 goal is to get the system working with tailscale and games over NFS. Second is getting that managed by home-manager as a OK workaround for the A/B update system.
The long term project is to get the stock OS recreated in NixOS. Testing the system using a newer kernel for better Btrfs and Zen performance and faster gamescope (Wayland micron compositor) updates seems like a really interesting project.
[+] [-] yepguy|3 years ago|reply
[1]: https://github.com/Jovian-Experiments/Jovian-NixOS
[+] [-] sandstrom|3 years ago|reply
Here is a comparison between ZeroTier and Tailscale from a year ago: https://news.ycombinator.com/item?id=27491133
(they both have pros and cons)
[+] [-] vitno|3 years ago|reply
https://tailscale.com/kb/1121/ipv6/
[+] [-] jbverschoor|3 years ago|reply
[+] [-] dolmen|3 years ago|reply
But I wonder: if the best solution is to use a systemd-sysext image, why Tailscale doesn't just provide that kind of image as a download package?
https://pkgs.tailscale.com/stable/
[+] [-] xena|3 years ago|reply
[+] [-] jannes|3 years ago|reply
[+] [-] vchuravy|3 years ago|reply
The whole systemd-sysext seems like a good way to make that happen.
[+] [-] logistark|3 years ago|reply
https://github.com/LizardByte/Sunshine
[+] [-] geoffeg|3 years ago|reply
[+] [-] aborsy|3 years ago|reply
[deleted]
[+] [-] dang|3 years ago|reply
I wrote a longer description of this phenomenon at https://news.ycombinator.com/item?id=30070287 (in the bottom third of the comment, starting with "Stripe succeeded on HN" - skip the tedious stuff before that).
There was also an entire thread about this a few weeks ago:
Ask HN: What's the Deal with Tailscale? - https://news.ycombinator.com/item?id=31957059 - July 2022 (47 comments)
[+] [-] cweagans|3 years ago|reply
What’s their secret? A great product that people want to talk about.
[+] [-] ghuntley|3 years ago|reply
[+] [-] geoffeg|3 years ago|reply
[+] [-] risho|3 years ago|reply
that said tailscale is also just an awesome company with an awesome product
[+] [-] imwillofficial|3 years ago|reply
[+] [-] fomine3|3 years ago|reply
[+] [-] unknown|3 years ago|reply
[deleted]