2023-07-23 20:12:02 +02:00
|
|
|
#
|
|
|
|
# Gnome configuration
|
|
|
|
#
|
|
|
|
# flake.nix
|
|
|
|
# ├─ ./hosts
|
|
|
|
# │ └─ ./laptop
|
|
|
|
# │ └─ default.nix
|
|
|
|
# └─ ./modules
|
|
|
|
# └─ ./desktop
|
|
|
|
# └─ ./gnome
|
|
|
|
# └─ default.nix *
|
|
|
|
#
|
|
|
|
{ config, lib, user, pkgs, jovian-nixos, ... }:
|
|
|
|
|
|
|
|
{
|
|
|
|
imports = [
|
|
|
|
(jovian-nixos + "/modules")
|
|
|
|
];
|
|
|
|
|
|
|
|
jovian = {
|
|
|
|
steam.enable = true;
|
|
|
|
devices.steamdeck = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-07-27 21:26:41 +02:00
|
|
|
hardware.pulseaudio.enable = lib.mkForce false;
|
|
|
|
|
2023-07-23 20:12:02 +02:00
|
|
|
hardware.opengl = {
|
|
|
|
enable = true;
|
|
|
|
driSupport = true;
|
|
|
|
driSupport32Bit = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
gnome.gnome-terminal
|
|
|
|
gnomeExtensions.dash-to-dock
|
|
|
|
steamdeck-firmware
|
|
|
|
rocm-opencl-icd
|
|
|
|
rocm-opencl-runtime
|
|
|
|
clinfo
|
|
|
|
];
|
|
|
|
|
|
|
|
services = {
|
|
|
|
xserver = {
|
2023-07-27 21:28:57 +02:00
|
|
|
enable = false;
|
2023-07-23 20:12:02 +02:00
|
|
|
desktopManager.gnome.enable = true;
|
|
|
|
displayManager = {
|
|
|
|
gdm.wayland = true;
|
2023-07-27 21:28:57 +02:00
|
|
|
# defaultSession = "steam-wayland";
|
2023-07-23 20:12:02 +02:00
|
|
|
autoLogin.enable = true;
|
|
|
|
autoLogin.user = "kabbone";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-07-27 21:28:57 +02:00
|
|
|
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
|
|
|
|
'';
|
|
|
|
};
|
2023-07-23 20:12:02 +02:00
|
|
|
}
|