Roblox on Linux has gone through some phases of working and not working. Currently it does work using Sober https://sober.vinegarhq.org/
I haven’t tried Fortnite, but from what I’ve read I think that is a no-go.
Just a basic programmer living in California
Roblox on Linux has gone through some phases of working and not working. Currently it does work using Sober https://sober.vinegarhq.org/
I haven’t tried Fortnite, but from what I’ve read I think that is a no-go.
You can run Roblox on Linux with Sober. My son is a big fan! https://sober.vinegarhq.org/
Docker Compose runs services, manages dependencies between services, isolates each service in a container, manages a private network. Out-of-the-box flakes don’t do any of that - except arguably running one service at a time. What flakes do is build software, which is the thing that Docker Compose doesn’t really do. (Or doesn’t do well.)
I’d compare flakes to Makefiles with waaay more expressiveness and reproducibility. Or maybe a comparison could be to a Dockerfile, minus containerization, with waaay more expressiveness and reproducibility.
There are tools you can add on to get Nix to do what Docker Compose does:
Arion is a Nix frontend for Docker Compose. You’re still using Docker Compose, but it layers on the extra expressiveness and reproducibility of Nix flakes, or other kinds of Nix expressions.
process compose flake is similar, but instead of Docker Compose it is a frontend for Process Compose. You get a similar result, but without containerization. That can potentially avoid the need to run in a VM on non-Linux systems that don’t natively support containers.
I had that symptom, and I found that my laptop was using S2 idle (suspend to idle). I fixed it by switching to S3 sleep (suspend to RAM). I suggest following the instructions in section 3 in this page: https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate
Like many Arch Wiki guides, most of the information on that page is applicable to most Linux distros, not just Arch.
Question, changing the OS on the deck, do you still get all the updates to steam and everything?
Yes, I think so. I haven’t used SteamOS, but it seems like it gives you Steam, and exactly the right drivers for the Steam Deck? Steam is packaged for basically every distro, and you get the same experience everywhere, including “big picture mode” if you opt into that. Bazzite is designed with the Steam Deck in mind so it should have the right drivers.
Distrobox uses either podman or docker to manage containers - you can find details on where data is stored by looking into those directly.
The distrobox docs have info on how to move containers from one system to another. It’s not the same as sharing between two installs, but it might help. https://github.com/89luca89/distrobox/blob/main/docs/useful_tips.md#container-save-and-restore
I really liked the options to cycle through previous prompts in history, and to view output of the last command with at option to search in that output. But then I realized that lots of terminal emulators can do that, and I just needed to learn the hotkeys.
I’m wondering if Wayland support in Wine will encourage Valve to support Wayland in the Steam app too.
On my desktop I run a Wayland window manager that doesn’t implement XWayland so I can’t run Steam directly. So I’ve been running it in Gamescope in big picture mode - which is actually exactly what the Steam Deck does.
I was reading this thread thinking, “this isn’t the time to recommend NixOS that’s not what OP asked about.” But if you’re using Ansible this way NixOS might be a good fit for you. It’s got the advantages of the other immutable distros with the added feature of managing everything through a declarative configuration.
Nice! Thanks!
When I researched this previously I concluded that there are two very good options for regular backups: Borg and Restic. These are especially efficient at backing up a diff of what has changed since the last backup. So you get snapshots of your filesystem state at each backup point without using a huge amount of space. You can mount any snapshot as a virtual directory. After the initial backup, incremental backups take a minute or two.
I use Borg, and I back up to cloud storage on Borgbase. I use Vorta as a GUI for Borg. I have Vorta start automatically when I start my window manager, and I have it set up for daily backups. I set up the same thing on my kid’s computer.
I back up my home directory. I have some excluded directories like ~/.cache
, and Steam’s data directory. I use Baobab to find large directories that I don’t want backed up.
I use the “exclude caches” option in the Borg “create archive” settings. That automatically excludes Rust target/
directories because they follow the Cache Directory Tagging Specification. Not all programming languages’ tooling follows that spec so I also use directory name pattern excludes. For example I have an exclude pattern for .*/node_modules/.*
I use NixOS, and I keep my system config in a git repo so I don’t need backups for anything outside my home directory.
Probably not very similar, but Git Butler is very interesting. It adds its own layer of management so that you can have multiple branches “applied” to your working tree simultaneously. It’s helpful when you have multiple changes that should go into different branches, and some that shouldn’t be committed - it has a system of lanes that help keep track of all that. Or you can test how changes from two branches interact.
Last time I used it, maybe 6 months ago, it was rough around the edges so I didn’t stick with it. But they’ve done lots of work since then so I’m thinking of giving it another go. It is (last I checked) an all-in tool. When you’re using Butler on a project you probably won’t be able to use other git tools.
I think it depends. Lua is great for scripting - like when X happens do Y. I agree that makes sense for a case like Home Assistant. Sometimes you really want the result to be a data structure, not an interactive program, in which case I think more sophisticated configuration (as opposed to scripting) languages might be better.
Yes, there’s a good example. Ansible would make more sense if its configuration language was Nix…
Oh, thanks for calling that out. I think I may have mixed up some of the frustrations I experienced at an old job.
I agree - YAML is not suitable for complex cases that people use it in, like Terraform and Home Assistant. My pet peeve is a YAML config in a situation that really calls for more abstraction, like functions and variables. I’d like to see more use of the class of configuration languages that support that stuff, like Dhall, Cue, and Nickel.
There is another gotcha which is that YAML has more room for ambiguity than, say, JSON. YAML has a lot of ways to say true
and false
, and it’s implicit quoting is a bit complex. So some values that you expect to be strings might be interpreted as something els.
Zed invented tree-sitter which is a great feature. But since tree-sitter is open source it’s also available in neovim and helix.
Yeah the performance differences don’t matter in most cases. Rust makes it tempting to optimize everything because the language is explicit about runtime representations. But that doesn’t mean that optimizing is the best use of your time.
To expand on why generics are preferred, just in case you haven’t seen these points yet: the performance downsides of Box<dyn MyTrait>
are,
There is also a possible type theory objection which is that normally there is a distinction between types and traits. Traits are not types themselves, but instead define sets of types with shared behavior. (That’s why the same feature in Haskell is called a “type class”, because it defines a class of types that have something in common.) But dyn
turns a trait into a type which undermines the type/trait distinction. It’s useful enough to justify being in the language, but a little unsettling from a certain perspective.
I set my kid up with Silverblue recently. After seeing it in use for a bit, as a power user I think it’s got some obnoxious compromises, and NixOS is a much better way to get the same benefits, and encourages safe experimentation at every level of the system. But for a beginner-friendly system that is very stable I think ostree distros like Silverblue make sense. Mostly stuff works fine, but you want to break out rpm-ostree occasionally to get a native package.
I have another kid on Fedora as a control. So far things are fine. Previously I had both kids on Manjaro, but they weren’t able to keep up with upgrades long-term (over the course of a few years) without some intervention from me.
Like I said in Silverblue stuff mostly works nicely:
I think we may have installed steam natively using rpm-ostree. I think we ran into some sort of issue running Overwatch, and I quickly opted for the native steam package to get things working instead of trying to fix the issue using Flatseal. But I don’t remember what that issue was so I can’t say the Flatpack steam won’t just work for you. Maybe it was very slow Vulkan shader processing?
My kid likes Minecraft mods so he needed
java
in his path to run installer jars. AFAICT in immutable distros the options for setting up CLI programs are either to run a different distro with native packages in a container (distrobox), or drop to rpm-ostree. I opted for the latter.On the hardware side I think one of the biggest factors in building a snappy system is choice of SSD. Like you said, spinning metal is out. But the idea that SSDs are all equal is a common misconception. The thing to do nowadays is to use an M.2 form factor which is where you get a little board that goes into a slot directly on the motherboard, sort of like a small, sideways RAM stick. That plugs directly into the PCIe bus which gives it tremendous bandwidth. Drives that support newer PCIe versions can be faster due to having access to more bandwidth, but the design of the drive itself is also a constraint.