steam: integrate into sane.programs, and enable for lappy
This commit is contained in:
parent
09a1d286d0
commit
e7f02c057e
|
@ -1,8 +1,8 @@
|
|||
{ lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (builtins) attrNames concatLists;
|
||||
inherit (lib) mapAttrs mapAttrsToList mkDefault mkMerge optional;
|
||||
inherit (lib) mapAttrs mapAttrsToList mkDefault mkIf mkMerge optional;
|
||||
|
||||
flattenedPkgs = pkgs // (with pkgs; {
|
||||
# XXX can't `inherit` a nested attr, so we move them to the toplevel
|
||||
|
@ -218,6 +218,7 @@ let
|
|||
mumble
|
||||
obsidian
|
||||
slic3r
|
||||
steam
|
||||
;
|
||||
};
|
||||
x86GuiPkgs = {
|
||||
|
@ -361,6 +362,11 @@ in
|
|||
# creds, widevine .so download. TODO: could easily manage these statically.
|
||||
spotify.dir = [ ".config/spotify" ];
|
||||
|
||||
steam.dir = [
|
||||
".steam"
|
||||
".local/share/Steam"
|
||||
];
|
||||
|
||||
# sublime music persists any downloaded albums here.
|
||||
# it doesn't obey a conventional ~/Music/{Artist}/{Album}/{Track} notation, so no symlinking
|
||||
# config (e.g. server connection details) is persisted in ~/.config/sublime-music/config.json
|
||||
|
@ -392,5 +398,13 @@ in
|
|||
|
||||
# XXX: this might not be necessary. try removing this and cacert.unbundled (servo)?
|
||||
environment.etc."ssl/certs".source = "${pkgs.cacert.unbundled}/etc/ssl/certs/*";
|
||||
|
||||
# steam requires system-level config for e.g. firewall or controller support
|
||||
programs.steam = mkIf config.sane.programs.steam.enabled {
|
||||
enable = true;
|
||||
# not sure if needed: stole this whole snippet from the wiki
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ config, lib, pkgs, sane-lib, ... }:
|
||||
let
|
||||
inherit (builtins) any elem map;
|
||||
inherit (builtins) any attrValues elem map;
|
||||
inherit (lib)
|
||||
filterAttrs
|
||||
hasAttrByPath
|
||||
|
@ -18,7 +18,7 @@ let
|
|||
;
|
||||
inherit (sane-lib) joinAttrsets;
|
||||
cfg = config.sane.programs;
|
||||
pkgSpec = types.submodule ({ name, ... }: {
|
||||
pkgSpec = types.submodule ({ config, name, ... }: {
|
||||
options = {
|
||||
package = mkOption {
|
||||
type = types.nullOr types.package;
|
||||
|
@ -59,6 +59,12 @@ let
|
|||
place this program on the PATH for some specified user(s).
|
||||
'';
|
||||
};
|
||||
enabled = mkOption {
|
||||
type = types.bool;
|
||||
description = ''
|
||||
generated (i.e. read-only) value indicating if the program is enabled either for any user or for the system.
|
||||
'';
|
||||
};
|
||||
suggestedPrograms = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
|
@ -83,6 +89,9 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
enabled = config.enableFor.system || any (en: en) (attrValues config.enableFor.user);
|
||||
};
|
||||
});
|
||||
toPkgSpec = types.coercedTo types.package (p: { package = p; }) pkgSpec;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user