From b404639e764a8b1ea6413d98ccdecb67c7b03036 Mon Sep 17 00:00:00 2001 From: Kabbone Date: Thu, 27 Jul 2023 21:28:57 +0200 Subject: [PATCH] hosts: steamdeck: disable gnome for now --- modules/desktop/gnome/default.nix | 52 +++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/modules/desktop/gnome/default.nix b/modules/desktop/gnome/default.nix index fb6d93e..104d886 100644 --- a/modules/desktop/gnome/default.nix +++ b/modules/desktop/gnome/default.nix @@ -43,15 +43,63 @@ services = { xserver = { - enable = true; + enable = false; desktopManager.gnome.enable = true; displayManager = { gdm.wayland = true; - defaultSession = "steam-wayland"; + # defaultSession = "steam-wayland"; autoLogin.enable = true; autoLogin.user = "kabbone"; }; }; }; + systemd.services.gamescope-switcher = { + wantedBy = [ "graphical.target" ]; + serviceConfig = { + User = 2000; + PAMName = "login"; + WorkingDirectory = "~"; + + TTYPath = "/dev/tty7"; + TTYReset = "yes"; + TTYVHangup = "yes"; + TTYVTDisallocate = "yes"; + + StandardInput = "tty-fail"; + StandardOutput = "journal"; + StandardError = "journal"; + + UtmpIdentifier = "tty7"; + UtmpMode = "user"; + + Restart = "always"; + }; + + script = '' + set-session () { + mkdir -p ~/.local/state + >~/.local/state/steamos-session-select echo "$1" + } + consume-session () { + if [[ -e ~/.local/state/steamos-session-select ]]; then + cat ~/.local/state/steamos-session-select + rm ~/.local/state/steamos-session-select + else + echo "gamescope" + fi + } + while :; do + session=$(consume-session) + case "$session" in + plasma) + dbus-run-session -- gnome-shell --display-server --wayland + ;; + gamescope) + steam-session + ;; + esac + done + ''; + }; }