desktop-jovian: unify steam/jovian config across yarn + patiodeck
- modules/desktop-jovian.nix: shared Jovian deck-mode config (unfree predicate, jovian.steam, sddm, gamescope override, imports desktop-steam-update.nix) - home/progs/steam-shortcuts.nix: declarative non-Steam shortcuts (Prism Launcher); add new entries here for all Jovian hosts - hosts/yarn/default.nix: reduced to host-specific config only - hosts/patiodeck/default.nix: same
This commit is contained in:
29
home/progs/steam-shortcuts.nix
Normal file
29
home/progs/steam-shortcuts.nix
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Declarative non-Steam game shortcuts for the Steam library.
|
||||||
|
# Add entries to the `shortcuts` list to have them appear in Steam's UI.
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.json2steamshortcut.homeModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
services.steam-shortcuts = {
|
||||||
|
enable = true;
|
||||||
|
overwriteExisting = true;
|
||||||
|
steamUserId = lib.strings.toInt (
|
||||||
|
lib.strings.trim (builtins.readFile ../../secrets/home/steam-user-id)
|
||||||
|
);
|
||||||
|
shortcuts = [
|
||||||
|
{
|
||||||
|
AppName = "Prism Launcher";
|
||||||
|
Exe = "${pkgs.prismlauncher}/bin/prismlauncher";
|
||||||
|
Icon = "${pkgs.prismlauncher}/share/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg";
|
||||||
|
Tags = [ "Game" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
username,
|
username,
|
||||||
inputs,
|
inputs,
|
||||||
site_config,
|
site_config,
|
||||||
@@ -9,12 +7,11 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../modules/desktop-common.nix
|
../../modules/desktop-common.nix
|
||||||
../../modules/desktop-steam-update.nix
|
../../modules/desktop-jovian.nix
|
||||||
./disk.nix
|
./disk.nix
|
||||||
./impermanence.nix
|
./impermanence.nix
|
||||||
|
|
||||||
inputs.impermanence.nixosModules.impermanence
|
inputs.impermanence.nixosModules.impermanence
|
||||||
inputs.jovian-nixos.nixosModules.default
|
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.hostId = "a1b2c3d4";
|
networking.hostId = "a1b2c3d4";
|
||||||
@@ -37,30 +34,5 @@
|
|||||||
site_config.ssh_keys.laptop
|
site_config.ssh_keys.laptop
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.config.allowUnfreePredicate =
|
jovian.devices.steamdeck.enable = true;
|
||||||
pkg:
|
|
||||||
builtins.elem (lib.getName pkg) [
|
|
||||||
"steamdeck-hw-theme"
|
|
||||||
"steam-jupiter-unwrapped"
|
|
||||||
"steam"
|
|
||||||
"steam-original"
|
|
||||||
"steam-unwrapped"
|
|
||||||
"steam-run"
|
|
||||||
];
|
|
||||||
|
|
||||||
jovian = {
|
|
||||||
devices.steamdeck.enable = true;
|
|
||||||
steam = {
|
|
||||||
enable = true;
|
|
||||||
autoStart = true;
|
|
||||||
desktopSession = "niri";
|
|
||||||
user = username;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Jovian-NixOS requires sddm
|
|
||||||
services.displayManager.sddm.wayland.enable = true;
|
|
||||||
|
|
||||||
# disable gamescope from desktop-common.nix to avoid conflict with jovian
|
|
||||||
programs.gamescope.enable = lib.mkForce false;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,8 @@
|
|||||||
{
|
{ ... }:
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../home/profiles/gui.nix
|
../../home/profiles/gui.nix
|
||||||
../../home/profiles/desktop.nix
|
../../home/profiles/desktop.nix
|
||||||
inputs.json2steamshortcut.homeModules.default
|
../../home/progs/steam-shortcuts.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
services.steam-shortcuts = {
|
|
||||||
enable = true;
|
|
||||||
overwriteExisting = true;
|
|
||||||
steamUserId = lib.strings.toInt (
|
|
||||||
lib.strings.trim (builtins.readFile ../../secrets/home/steam-user-id)
|
|
||||||
);
|
|
||||||
shortcuts = [
|
|
||||||
{
|
|
||||||
AppName = "Prism Launcher";
|
|
||||||
Exe = "${pkgs.prismlauncher}/bin/prismlauncher";
|
|
||||||
Icon = "${pkgs.prismlauncher}/share/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg";
|
|
||||||
Tags = [ "Game" ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
config,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
username,
|
username,
|
||||||
@@ -10,14 +9,13 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../modules/desktop-common.nix
|
../../modules/desktop-common.nix
|
||||||
../../modules/desktop-steam-update.nix
|
../../modules/desktop-jovian.nix
|
||||||
../../modules/no-rgb.nix
|
../../modules/no-rgb.nix
|
||||||
./disk.nix
|
./disk.nix
|
||||||
./impermanence.nix
|
./impermanence.nix
|
||||||
./vr.nix
|
./vr.nix
|
||||||
|
|
||||||
inputs.impermanence.nixosModules.impermanence
|
inputs.impermanence.nixosModules.impermanence
|
||||||
inputs.jovian-nixos.nixosModules.default
|
|
||||||
];
|
];
|
||||||
|
|
||||||
fileSystems."/media/games" = {
|
fileSystems."/media/games" = {
|
||||||
@@ -84,31 +82,6 @@
|
|||||||
|
|
||||||
systemd.services.lactd.serviceConfig.ExecStartPre = "${lib.getExe pkgs.bash} -c \"sleep 3s\"";
|
systemd.services.lactd.serviceConfig.ExecStartPre = "${lib.getExe pkgs.bash} -c \"sleep 3s\"";
|
||||||
|
|
||||||
nixpkgs.config.allowUnfreePredicate =
|
# yarn is not a Steam Deck
|
||||||
pkg:
|
jovian.devices.steamdeck.enable = false;
|
||||||
builtins.elem (lib.getName pkg) [
|
|
||||||
"steamdeck-hw-theme"
|
|
||||||
"steam-jupiter-unwrapped"
|
|
||||||
"steam"
|
|
||||||
"steam-original"
|
|
||||||
"steam-unwrapped"
|
|
||||||
"steam-run"
|
|
||||||
];
|
|
||||||
|
|
||||||
jovian = {
|
|
||||||
devices.steamdeck.enable = false;
|
|
||||||
steam = {
|
|
||||||
enable = true;
|
|
||||||
autoStart = true;
|
|
||||||
desktopSession = "niri";
|
|
||||||
user = username;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Jovian-NixOS requires sddm
|
|
||||||
# https://github.com/Jovian-Experiments/Jovian-NixOS/commit/52f140c07493f8bb6cd0773c7e1afe3e1fd1d1fa
|
|
||||||
services.displayManager.sddm.wayland.enable = true;
|
|
||||||
|
|
||||||
# Disable gamescope from common.nix to avoid conflict with jovian-nixos
|
|
||||||
programs.gamescope.enable = lib.mkForce false;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../home/profiles/gui.nix
|
../../home/profiles/gui.nix
|
||||||
../../home/profiles/desktop.nix
|
../../home/profiles/desktop.nix
|
||||||
inputs.json2steamshortcut.homeModules.default
|
../../home/progs/steam-shortcuts.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
@@ -27,20 +24,4 @@
|
|||||||
obs-pipewire-audio-capture
|
obs-pipewire-audio-capture
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.steam-shortcuts = {
|
|
||||||
enable = true;
|
|
||||||
overwriteExisting = true;
|
|
||||||
steamUserId = lib.strings.toInt (
|
|
||||||
lib.strings.trim (builtins.readFile ../../secrets/home/steam-user-id)
|
|
||||||
);
|
|
||||||
shortcuts = [
|
|
||||||
{
|
|
||||||
AppName = "Prism Launcher";
|
|
||||||
Exe = "${pkgs.prismlauncher}/bin/prismlauncher";
|
|
||||||
Icon = "${pkgs.prismlauncher}/share/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg";
|
|
||||||
Tags = [ "Game" ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
40
modules/desktop-jovian.nix
Normal file
40
modules/desktop-jovian.nix
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# Jovian-NixOS deck-mode configuration shared by all hosts running Steam
|
||||||
|
# in gamescope (yarn, patiodeck). Host-specific settings (like
|
||||||
|
# jovian.devices.steamdeck.enable) stay in the host's default.nix.
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
username,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./desktop-steam-update.nix
|
||||||
|
inputs.jovian-nixos.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfreePredicate =
|
||||||
|
pkg:
|
||||||
|
builtins.elem (lib.getName pkg) [
|
||||||
|
"steamdeck-hw-theme"
|
||||||
|
"steam-jupiter-unwrapped"
|
||||||
|
"steam"
|
||||||
|
"steam-original"
|
||||||
|
"steam-unwrapped"
|
||||||
|
"steam-run"
|
||||||
|
];
|
||||||
|
|
||||||
|
jovian.steam = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
desktopSession = "niri";
|
||||||
|
user = username;
|
||||||
|
};
|
||||||
|
|
||||||
|
# jovian overrides the display manager; sddm is required
|
||||||
|
services.displayManager.sddm.wayland.enable = true;
|
||||||
|
|
||||||
|
# desktop-common.nix enables programs.gamescope which conflicts with
|
||||||
|
# jovian's own gamescope wrapper
|
||||||
|
programs.gamescope.enable = lib.mkForce false;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user