Add initial support for Steam Deck
This commit is contained in:
parent
9cbf89733a
commit
5b388c59d4
13
flake.nix
13
flake.nix
|
@ -67,6 +67,12 @@
|
||||||
nixos-mailserver.nixosModule
|
nixos-mailserver.nixosModule
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
JimDeck = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {inherit inputs outputs;};
|
||||||
|
modules = [
|
||||||
|
./nixos/deck.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Standalone home-manager configuration entrypoint
|
# Standalone home-manager configuration entrypoint
|
||||||
|
@ -87,6 +93,13 @@
|
||||||
./home-manager/jimbo_server.nix
|
./home-manager/jimbo_server.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
"jimbo@JimDeck" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
extraSpecialArgs = {inherit inputs outputs;};
|
||||||
|
modules = [
|
||||||
|
./home-manager/jimbo_server.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
# Derivation for ssh envrionments on other people's servers
|
# Derivation for ssh envrionments on other people's servers
|
||||||
"jimbo@SSH" = home-manager.lib.homeManagerConfiguration {
|
"jimbo@SSH" = home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
|
37
nixos/deck.nix
Normal file
37
nixos/deck.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# Base configs
|
||||||
|
./base.nix
|
||||||
|
|
||||||
|
# Import users and groups
|
||||||
|
./users/jimbo.nix
|
||||||
|
./users/groups.nix
|
||||||
|
|
||||||
|
# Desktop only
|
||||||
|
./desktop/misc.nix
|
||||||
|
./desktop/sway.nix
|
||||||
|
./desktop/gaming.nix
|
||||||
|
./desktop/pipewire.nix
|
||||||
|
./desktop/bluetooth.nix
|
||||||
|
./desktop/firewall.nix
|
||||||
|
./desktop/fonts.nix
|
||||||
|
./desktop/qt.nix
|
||||||
|
|
||||||
|
# Steam Deck only
|
||||||
|
./deck/jovian.nix
|
||||||
|
|
||||||
|
# Modules
|
||||||
|
./modules/security.nix
|
||||||
|
|
||||||
|
# Hardware
|
||||||
|
./hardware/machines/deck.nix
|
||||||
|
./hardware/systemdboot.nix
|
||||||
|
./hardware/opengl.nix
|
||||||
|
|
||||||
|
# Services
|
||||||
|
./services/openssh.nix
|
||||||
|
./services/mpd.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.hostName = "JimDesktop";
|
||||||
|
}
|
19
nixos/deck/greetd-steam.nix
Normal file
19
nixos/deck/greetd-steam.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
services = {
|
||||||
|
# Configure greetd for "auto" login (single user only)
|
||||||
|
greetd = {
|
||||||
|
enable = true;
|
||||||
|
restart = true;
|
||||||
|
settings = {
|
||||||
|
terminal = {
|
||||||
|
vt = 2;
|
||||||
|
switch = true;
|
||||||
|
};
|
||||||
|
default_session = {
|
||||||
|
command = "start-gamescope-session";
|
||||||
|
user = "jimbo";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
15
nixos/deck/jovian.nix
Normal file
15
nixos/deck/jovian.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./greetd-steam.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
jovian = {
|
||||||
|
steam = {
|
||||||
|
enable = true;
|
||||||
|
desktopSession = "sway";
|
||||||
|
};
|
||||||
|
decky-loader.enable = true;
|
||||||
|
devices.steamdeck.enable = true;
|
||||||
|
steamos.useSteamOSConfig = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -10,6 +10,7 @@
|
||||||
# Desktop only
|
# Desktop only
|
||||||
./desktop/misc.nix
|
./desktop/misc.nix
|
||||||
./desktop/sway.nix
|
./desktop/sway.nix
|
||||||
|
./desktop/greetd-sway.nix
|
||||||
./desktop/printing.nix
|
./desktop/printing.nix
|
||||||
./desktop/gaming.nix
|
./desktop/gaming.nix
|
||||||
./desktop/pipewire.nix
|
./desktop/pipewire.nix
|
||||||
|
|
39
nixos/desktop/greetd-sway.nix
Normal file
39
nixos/desktop/greetd-sway.nix
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
services = {
|
||||||
|
# Configure greetd for "auto" login (single user only)
|
||||||
|
greetd = let
|
||||||
|
startSway = pkgs.writeScript "startsway" ''
|
||||||
|
# Use NVIDIA variables if drivers are in use
|
||||||
|
if lspci -k | grep "Kernel driver in use: nvidia" &> /dev/null; then
|
||||||
|
# NVIDIA/AMD variables
|
||||||
|
export LIBVA_DRIVER_NAME=nvidia
|
||||||
|
export GBM_BACKEND=nvidia-drm
|
||||||
|
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||||
|
export WLR_NO_HARDWARE_CURSORS=1
|
||||||
|
else
|
||||||
|
:
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Sway/Wayland
|
||||||
|
export XDG_CURRENT_DESKTOP=sway
|
||||||
|
export QT_QPA_PLATFORM="wayland;xcb"
|
||||||
|
|
||||||
|
# Start Sway
|
||||||
|
sway --unsupported-gpu
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
restart = true;
|
||||||
|
settings = {
|
||||||
|
terminal = {
|
||||||
|
vt = 2;
|
||||||
|
switch = true;
|
||||||
|
};
|
||||||
|
default_session = {
|
||||||
|
command = "${startSway}";
|
||||||
|
user = "jimbo";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,54 +1,12 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
services = {
|
|
||||||
# Configure greetd for "auto" login (single user only)
|
|
||||||
greetd = let
|
|
||||||
startSway = pkgs.writeScript "startsway" ''
|
|
||||||
# Use NVIDIA variables if drivers are in use
|
|
||||||
if lspci -k | grep "Kernel driver in use: nvidia" &> /dev/null; then
|
|
||||||
# NVIDIA/AMD variables
|
|
||||||
export LIBVA_DRIVER_NAME=nvidia
|
|
||||||
export GBM_BACKEND=nvidia-drm
|
|
||||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
|
||||||
export WLR_NO_HARDWARE_CURSORS=1
|
|
||||||
else
|
|
||||||
:
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Sway/Wayland
|
|
||||||
export XDG_CURRENT_DESKTOP=sway
|
|
||||||
export QT_QPA_PLATFORM="wayland;xcb"
|
|
||||||
|
|
||||||
# Start Sway
|
|
||||||
sway --unsupported-gpu
|
|
||||||
'';
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
restart = true;
|
|
||||||
settings = {
|
|
||||||
terminal = {
|
|
||||||
vt = 2;
|
|
||||||
switch = true;
|
|
||||||
};
|
|
||||||
default_session = {
|
|
||||||
command = "${startSway}";
|
|
||||||
user = "jimbo";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
dbus.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.xwayland = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable backlight and theme control
|
|
||||||
programs = {
|
programs = {
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
light.enable = true;
|
light.enable = true;
|
||||||
|
xwayland.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Packages needed for Wayland
|
services.dbus.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
wdisplays
|
wdisplays
|
||||||
|
|
Loading…
Reference in a new issue