add a pile of stuff
This commit is contained in:
parent
1fa5931ca3
commit
37df1799ab
|
@ -2,26 +2,70 @@
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
./disk-config.nix
|
./disk-config.nix
|
||||||
|
./deck.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
jovian.steam = {
|
# just kind of a grab bag of stuff
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
tailscale
|
||||||
|
rustup
|
||||||
|
(wrapOBS {
|
||||||
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
wlrobs
|
||||||
|
obs-backgroundremoval
|
||||||
|
obs-pipewire-audio-capture
|
||||||
|
obs-livesplit-one
|
||||||
|
obs-multi-rtmp
|
||||||
|
obs-vaapi
|
||||||
|
obs-gstreamer
|
||||||
|
input-overlay
|
||||||
|
obs-3d-effect
|
||||||
|
obs-composite-blur
|
||||||
|
obs-gradient-source
|
||||||
|
waveform
|
||||||
|
];
|
||||||
|
})
|
||||||
|
(retroarch.override {
|
||||||
|
cores = with libretro; [
|
||||||
|
bsnes
|
||||||
|
bsnes-mercury-balanced
|
||||||
|
gambatte
|
||||||
|
genesis-plus-gx
|
||||||
|
gpsp
|
||||||
|
mgba
|
||||||
|
mupen64plus
|
||||||
|
parallel-n64
|
||||||
|
sameboy
|
||||||
|
snes9x
|
||||||
|
tgbdual
|
||||||
|
vba-next
|
||||||
|
];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.supportedFilesystems = [ "ntfs" ]; # i would like to be able towrite to ntfs please
|
||||||
|
|
||||||
|
services.tailscale = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoStart = true;
|
useRoutingFeatures = "client";
|
||||||
|
extraUpFlags = [
|
||||||
desktopSession = "plasmawayland";
|
];
|
||||||
|
|
||||||
user = "vivlim";
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
jovian.decky-loader = {
|
virtualisation = {
|
||||||
enable = true;
|
waydroid.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
jovian.devices.steamdeck = {
|
networking.firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoUpdate = false; # firmware / bios. not sure if i want it yet
|
interfaces = {
|
||||||
|
tailscale0 = {
|
||||||
|
allowedTCPPortRanges = []; # [{ from = 1000; to = 2000; }]
|
||||||
|
allowedUDPPortRanges = []; # [{ from = 1000; to = 2000; }]
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
boot.loader.grub = {
|
boot.loader.grub = {
|
||||||
# no need to set devices, disko will add all devices that have a EF02 partition to the list already
|
# no need to set devices, disko will add all devices that have a EF02 partition to the list already
|
||||||
|
@ -33,6 +77,7 @@
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
|
|
||||||
|
# unfree as in unfreedom
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# these were set in base.
|
# these were set in base.
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
{ modulesPath, config, lib, pkgs, ... }: {
|
||||||
|
# Generic steam deck-specific configs that are reasonable for other people to refer to / use
|
||||||
|
jovian.steam = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Boot straight into gamescope
|
||||||
|
autoStart = true;
|
||||||
|
|
||||||
|
# We have to use this instead of services.xserver.displayManager.defaultSession
|
||||||
|
# https://jovian-experiments.github.io/Jovian-NixOS/options.html#jovian.steam.desktopSession
|
||||||
|
desktopSession = "plasmawayland";
|
||||||
|
|
||||||
|
user = "vivlim"; # it's me!
|
||||||
|
};
|
||||||
|
|
||||||
|
# Need to have this or we won't have steam available on the desktop (which is *very* funny)
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
jovian.decky-loader = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
jovian.devices.steamdeck = {
|
||||||
|
enable = true; # apply a bunch of deck-specific stuff
|
||||||
|
autoUpdate = false; # auto-update firmware / bios. the tools for doing the manually are added to systemPackages below
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
steamdeck-firmware # gives us `jupiter-biosupdate` and `jupiter-controller-update` https://jovian-experiments.github.io/Jovian-NixOS/devices/valve-steam-deck/index.html
|
||||||
|
jupiter-dock-updater-bin # `jupiter-dock-updater`
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
type = "lvm_vg";
|
type = "lvm_vg";
|
||||||
lvs = {
|
lvs = {
|
||||||
root = {
|
root = {
|
||||||
size = "100%"; # expand later if needed
|
size = "100%FREE"; # expand later if needed
|
||||||
content = {
|
content = {
|
||||||
type = "filesystem";
|
type = "filesystem";
|
||||||
format = "ext4";
|
format = "ext4";
|
||||||
|
|
|
@ -10,11 +10,11 @@
|
||||||
"unstable": "unstable"
|
"unstable": "unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710228223,
|
"lastModified": 1710310808,
|
||||||
"narHash": "sha256-nqie8+sN9dh00wdA3WpU3CblWDlV1jQDk8dhDWLkJU8=",
|
"narHash": "sha256-EmrJeUgqvrMCKaBVzRR1Zdj8iNEM1F53bn2xvjZmO50=",
|
||||||
"owner": "vivlim",
|
"owner": "vivlim",
|
||||||
"repo": "nix-base",
|
"repo": "nix-base",
|
||||||
"rev": "3b19c4b48f785437c7d082e90f1af06617cb5047",
|
"rev": "dd9b5e20885497a31a950baacce02b3c0f091756",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
40
flake.nix
40
flake.nix
|
@ -31,26 +31,46 @@
|
||||||
({ config, pkgs, ... }: { nixpkgs.overlays = [ jovian.overlays.default ]; });
|
({ config, pkgs, ... }: { nixpkgs.overlays = [ jovian.overlays.default ]; });
|
||||||
machineFactory = base.machineFactory;
|
machineFactory = base.machineFactory;
|
||||||
colmenaTargetFactory = base.colmenaTargetFactory;
|
colmenaTargetFactory = base.colmenaTargetFactory;
|
||||||
in {
|
|
||||||
# nix build .#nixosConfigurations.vivdeck.config.system.build.toplevel
|
# Using a wrapper I have in `base` that unpacks 'moduleBundles' defined there.
|
||||||
nixosConfigurations = with base; {
|
machineFactoryArgs = {
|
||||||
vivdeck = (machineFactory {
|
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
hostname = "vivdeck";
|
hostname = "vivdeck";
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
modules = [
|
modules = [
|
||||||
disko.nixosModules.disko
|
disko.nixosModules.disko
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
moduleBundles.system-base
|
base.moduleBundles.system-base
|
||||||
moduleBundles.plasma-desktop
|
base.moduleBundles.plasma-desktop
|
||||||
moduleBundles.system-physical
|
base.moduleBundles.system-physical
|
||||||
moduleBundles.gaming-hardware
|
base.moduleBundles.gaming-hardware
|
||||||
moduleBundles.amd
|
base.moduleBundles.amd
|
||||||
sops-nix.nixosModules.sops
|
sops-nix.nixosModules.sops
|
||||||
jovian.nixosModules.jovian
|
jovian.nixosModules.jovian
|
||||||
overlayModule
|
overlayModule
|
||||||
];
|
];
|
||||||
});
|
};
|
||||||
|
|
||||||
|
in {
|
||||||
|
# nix build .#nixosConfigurations.vivdeck.config.system.build.toplevel
|
||||||
|
nixosConfigurations = {
|
||||||
|
vivdeck = (base.machineFactory machineFactoryArgs);
|
||||||
|
};
|
||||||
|
|
||||||
|
colmena = {
|
||||||
|
meta = {
|
||||||
|
nixpkgs = import nixpkgs {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
};
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
vivdeck = (base.colmenaTargetFactory machineFactoryArgs)
|
||||||
|
// {
|
||||||
|
deployment.targetHost = "192.168.1.167"; # todo: change to tailscale hostname after it's added.
|
||||||
|
deployment.targetUser = "root";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells = base.devShells;
|
devShells = base.devShells;
|
||||||
|
|
Loading…
Reference in New Issue