this post was submitted on 03 May 2024
75 points (96.3% liked)

Steam Deck

14892 readers
52 users here now

A place to discuss and support all things Steam Deck.

Replacement for r/steamdeck_linux.

As Lemmy doesn't have flairs yet, you can use these prefixes to indicate what type of post you have made, eg:
[Flair] My post title

The following is a list of suggested flairs:
[Discussion] - General discussion.
[Help] - A request for help or support.
[News] - News about the deck.
[PSA] - Sharing important information.
[Game] - News / info about a game on the deck.
[Update] - An update to a previous post.
[Meta] - Discussion about this community.

Some more Steam Deck specific flairs:
[Boot Screen] - Custom boot screens/videos.
[Selling] - If you are selling your deck.

These are not enforced, but they are encouraged.

Rules:

Link to our Matrix Space

founded 3 years ago
MODERATORS
 

Seen a few times bazzite has been mentioned, but just have seen another user say they have OpenSUSE installed.

I'm not sure what the benefits of these options are, especially non-steamOS ISOs?

you are viewing a single comment's thread
view the rest of the comments
[–] DeadMartyr@lemmy.zip 8 points 6 months ago (2 children)

I'm a cs student rn and there's a lot of stuff that I'm learning specifically with UNIX and Linux related things. I use my steamdeck as a daily driver (literally sit in the front of class, pull out my steamdeck with my jsaux case and Bluetooth keyboard/mouse combo)

There's some issues with the walled garden. The way they do system updates is basically by having system stuff on its own partition and overwriting it. It functions well for a "casual" person that doesn't care about linux that much.

The issue is that I have to install things sometimes. Even things as simple as an OpenVPN package so I can use my nordvpn. Updates sometimes will wipe things I install in package manager. Other things (like Xelatex) are simply too big to fit in this partition so I have to install lighter packages even if I want to use the whole thing (Math formulas need a LOT of symbols).

This has actually led me to see if it's worth it to install a third party OS. Bazzite was a good contender but I like Arch with the KDE desktop so ultimately I would just want a steamOS that I could install more things on.

Currently I'm looking into how I can achieve this. I don't know if I should just enlarge the partition holding the system files, or if there is some pacman settings that I could have packages installed elsewhere and automatically symbolically linked in /user or wherever it needs

[–] rklm@lemmy.dbzer0.com 7 points 6 months ago* (last edited 6 months ago) (1 children)

I also use my steam deck as my daily driver (dockcase 10 in 1 with peripherals etc).

I had been using arch for years before I got the steam deck, and for the first 8 months or so I unlocked the btrfs partition and installed everything I needed normally (kvm/qemu, devel libraries and Linux headers for c++ development, etc)... But every update from valve would destroy my environment and I had to run custom scripts to fill my etc directory back in...

For the past many months I've been using distrobox (which I believe comes pre-installed on the latest steamdeck updates) with a rootless arch environment inside, and flatpaks for everything that requires systemd.

You can symlink things like xdg-open from inside the container to your host, and end up with a pretty seamlessly integrated experience (distrobox does a lot of this for you anyway, and comes with utilities which make this pretty easy.)

If you want direct control of the system, this is not going to be a convenient setup, but if you're interested in treating it like an immutable OS, there are userspace ways of getting around it's limitations.

SteamOS has inspired me to make future installs immutable (and atomic/declarative using containers?), because it can be kinda nice once you get used to it.

I hope this helps or was interesting!

Edit: This is specifically what I meant by symlinking xdg-open.

Idk if this is done by default now, but if link handling is broken this is how you fix it

[–] supersquirrel@sopuli.xyz 1 points 6 months ago* (last edited 6 months ago) (1 children)

distrobox

Yes I agree in the vast majority of cases distrobox is the way to go, I made a short post on the "List Of useful tools" post that I might as well put here.

What Distrobox does (following is quoted text)

Simply put it's a fancy wrapper around podman, docker or lilipod to create and start containers highly integrated with the hosts.

The distrobox environment is based on an OCI image. This image is used to create a container that seamlessly integrates with the rest of the operating system by providing access to the user's home directory, the Wayland and X11 sockets, networking, removable devices (like USB sticks), systemd journal, SSH agent, D-Bus, ulimits, /dev and the udev database, etc...

It implements the same concepts introduced by https://github.com/containers/toolbox but in a simplified way using POSIX sh and aiming at broader compatibility.

All the props go to them as they had the great idea to implement this stuff.

It is divided into 12 commands:

distrobox-assemble - creates and destroy containers based on a config file
distrobox-create - creates the container
distrobox-enter - to enter the container
distrobox-ephemeral - create a temporal container, destroy it when exiting the shell
distrobox-list - to list containers created with distrobox
distrobox-rm - to delete a container created with distrobox
distrobox-stop - to stop a running container created with distrobox
distrobox-upgrade - to upgrade one or more running containers created with distrobox at once
distrobox-generate-entry - to create an entry of a created container in the applications list
distrobox-init - the entrypoint of the container (not meant to be used manually)
distrobox-export - it is meant to be used inside the container, useful to export apps and services from the container to the host
distrobox-host-exec - to run commands/programs from the host, while inside of the container

above quoted from here: https://github.com/89luca89/distrobox/blob/main/docs/README.md#what-it-does


Guide For Installing Distrobox On The Steam Deck

https://github.com/89luca89/distrobox/blob/main/docs/posts/steamdeck_guide.md

Quckstart Guide

https://github.com/89luca89/distrobox/blob/main/docs/README.md#quick-start

Distrobox Guide Homepage

https://github.com/89luca89/distrobox/tree/main/docs#readme

note because distrobox is a process that can be run by command line, you could presumably launch distrobox in a terminal window in Gaming Mode and keep everything for that session within that steam Big Picture window no problem. I am gonna have to keep experimenting with this.

[–] rklm@lemmy.dbzer0.com 2 points 6 months ago

This is a great write-up! I'm going to save it for reference.

Thank you!

[–] towerful@programming.dev 7 points 6 months ago

As someone that runs servers, having an immutable os (oe one that "wipes" on updates) is awesome.
The issue is that you are not in control of the config.

Learning to script over it might be worthwhile. Update, apply customisation script, back to normal.
It's good to learn declarative configuration