systemd-sysext
) for Steam DeckNotice: This is a work in progress. See open issues. In particular https://github.com/sebble/1password-sysext-steam-deck/issues/11 (Firefox integration not great any more)
This repository contains instructions to build a system extension for use on a Steam Deck.
A systemd system extension allows you to install software without modifying the read-only file system on /usr
.
Last tested with:
Features
Note: Ensure a full system restart after any updates, this resolves most errors with op CLI in my limited experience.
Quick start
You must run this from a normal SteamOS Terminal within this repo, not within, e.g., VS Code Flatpak.
./scripts/10_download.sh
./scripts/20_build.sh
./scripts/30_install.sh
Or read through the source-code which has been written with in-line documentation. On GitHub (source). On GitHub Pages (rendered)
TODO: Work out how to either use make on the Terminal, or set root file ownership within Flatpaks.
Setting up SSH Agent
Add the following to your ~/.bashrc
if you want all SSH Agent connections to use 1Password.
export SSH_AUTH_SOCK=~/.1password/agent.sock
Why not use the official Arch installation instructions?
See https://support.1password.com/install-linux/#arch-linux.
This will fail at makepkg
, installing the missing dependency will then fail at fakeroot
.
Why not use the official Flatpak?
See https://support.1password.com/install-linux/#flatpak.
Why not follow the instructions for other distributions?
See https://support.1password.com/install-linux/#other-distributions-or-arm-targz.
The installation script sudo /opt/1Password/after-install.sh
will fail when trying to update Polkit as the /usr
partition is read-only (even as sudo).
You could use sudo steamos-readonly disable
but I have chosen not to. See the next question.
Why not enable Steam Deck developer mode and/or make the /usr
partition writable?
See https://help.steampowered.com/en/faqs/view/671A-4453-E8D2-323C.
I don’t want to. System updates will probably revert any changes you have made in here.
What are the downsides of this approach?
Firstly, I made this with very little initial knowledge of systemd-sysext
, Arch, and a few other things. This is for personal use.
Secondly, see https://blogs.igalia.com/berto/2022/09/13/adding-software-to-the-steam-deck-with-systemd-sysext/ (section “Limitations and caveats”) for some very good reasons to be wary of using systemd-sysext
.
Could this be achieved with more permissive Flatpak policies?
I don’t know. I assume not, but when reading about Visual Studio Code Flatpak issues perhaps there are other approaches..? Please share if you have ideas. P.S. I do not know Flatpak either so I would not be able to implement this.
My os-release
is 22.08
If you run the build script within a VS Code Flatpak you will not get the correct values for os-release
and other system properties.
Use a system Terminal session.
Where is the documentation?
I have added comments inline with the main scripts, these are converted to markdown (as long as I remembered to type make docs
before committing). See https://sebble.github.io/1password-sysext-steam-deck/.
I cannot use Make
See “My os-release
is 22.08
”, but this time make
is not installed on SteamOS in general, only inside the VS Code Flatpak. Ignore the Makefile, use the scripts/*.sh
directly. There’s nothing special in the Makefile
and install won’t work, some file ownership also won’t work.
Why do the scripts look funny?
If you mean the # '''shell
lines, that’s because every script is also valid markdown if you remove all ^#
. See “Where is the documentation?”.