Vivian Lim 03df665213 | ||
---|---|---|
.gitignore | ||
README.md | ||
configuration.nix | ||
deck.nix | ||
disk-config.nix | ||
flake.lock | ||
flake.nix | ||
onscreen-keyboard.nix |
README.md
This is the config for my steam deck, using Jovian-NixOS
Portions of my config are defined in my base flake. 'moduleBundles' are defined in that flake (see flake.nix)
You should not use my configuration without modification, since it includes some personalizations you definitely won't want. (e.g. installing my ssh keys)
This config has the following qualities (at time of writing, and this is not an exhaustive list)
- Full disk encryption + lvm (via nixos-anywhere/disko, see later in this readme)
- Note that entering the encryption password requires attaching a usb keyboard during boot, at the moment.
- Boots up in gamescope (see ./deck.nix)
- Plasma wayland session (from my base)
- maliit-keyboard provides touch keyboard
- steam launches with extest, so you can see the visible cursor move when steam input moves it in wayland sessions
- Flatpak support + Discover (defined in my base)
- nix-ld, which allows running unpatched binaries on nixos (config is in my base)
- obs studio, waydroid, retroarch, some other misc stuff (see ./configuration.nix)
- support for various game controllers, in my base (also a tool for the wii u gamecube controller adapter, but the udev rules might not work)
- flakes are enabled and used instead of channels
How I installed it
I booted the steam deck from nixos install media via netboot.xyz and used nixos-anywhere
I also tried to use nixos-anywhere directly on steamos but that didn't work.
This config uses disko to set up lvm with full disk encryption. nixos-anywhere interactively prompts you for a password if you don't provide a secret (which is very nice) See disk-config.nix for my config. If you want to use this, you'll need to change the path to the disk (I use disk ID with disko so I am less likely to wipe the wrong disk)
nix run github:nix-community/nixos-anywhere -- --flake .#vivdeck root@vivdeck-ip-addresss
How I'm pushing changes to it
I'd rather not build on the deck itself since that'll make it hotter than it needs to be. Instead I build on another machine and deploy with colmena, which is a single command:
colmena apply -v
(the target ip address is configured in flake.nix)