first commit

This commit is contained in:
alyx 2025-07-15 21:03:35 +01:00
commit 37b1818720
No known key found for this signature in database
12 changed files with 1054 additions and 0 deletions

14
base/fonts.nix Normal file
View file

@ -0,0 +1,14 @@
{pkgs, ...}:{
fonts.packages = with pkgs; [
font-awesome
jetbrains-mono
nerd-fonts.iosevka
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
source-han-sans
source-han-sans-japanese
source-han-serif-japanese
comfortaa
];
}

92
base/overrides.nix Normal file
View file

@ -0,0 +1,92 @@
{pkgs, config, ...}:{
environment.systemPackages = with pkgs; [
(lutris.override {
extraPkgs = pkgs: [
wineWowPackages.waylandFull
gamescope
antimicrox
sc-controller
winetricks
];
extraLibraries = pkgs: [
nspr
xorg.libXdamage
xorg.libXfixes
openal
gnutls
libidn2
libssh2
libpsl
brotli
pkgsi686Linux.expat
pkgsi686Linux.openal
pkgsi686Linux.nvidia_cg_toolkit
pkgsi686Linux.tcp_wrappers
pkgsi686Linux.libasyncns
pkgsi686Linux.libapparmor
pkgsi686Linux.xorg.libXrandr
pkgsi686Linux.xorg.libxcb
pkgsi686Linux.xorg.libXi
pkgsi686Linux.libsndfile
pkgsi686Linux.libmpg123
# gnome2.GConf
icu
openldap
];
})
];
# stuff to make steam behave nicely, amongst other things (Gamemode, gamescope)
programs.gamemode = {
enable = true;
enableRenice = true;
settings = {
general = {
softrealtime = "auto";
renice = 10;
};
custom = {
start = "notify-send -a 'Gamemode' 'Optimizations activated'";
end = "notify-send -a 'Gamemode' 'Optimizations deactivated'";
};
};
};
programs.gamescope = {
enable = true;
capSysNice = false;
};
programs.steam = {
enable = true;
extest.enable = true;
gamescopeSession.enable = true;
protontricks.enable = true;
extraPackages = with pkgs; [
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
xorg.libxcb
libpng
libpulseaudio
libvorbis
stdenv.cc.cc.lib
libkrb5
keyutils
gamemode
procps
usbutils
] ++ config.fonts.packages;
extraCompatPackages = with pkgs; [
steamtinkerlaunch
proton-ge-bin
];
remotePlay.openFirewall = true; # Open ports in the fire>
dedicatedServer.openFirewall = true; # Open ports in the>
localNetworkGameTransfers.openFirewall = true; # Open po>
};
}

View file

@ -0,0 +1,149 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, lib, inputs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
services.desktopManager.plasma6.enable = true;
jovian.devices.steamdeck.enable = true;
jovian.steam.autoStart = true;
jovian.steam.enable = true;
jovian.steam.user = "alyx";
jovian.steam.desktopSession = "plasma";
jovian.devices.steamdeck.autoUpdate = true;
jovian.decky-loader.enable = true;
programs = {
};
services.journald.extraConfig = ''
SystemMaxUse=2G
'';
boot.supportedFilesystems = ["exfat" "ntfs" "xfs"];
boot.loader.limine.enable = true;
boot.loader.limine.style.wallpapers = [];
boot.loader.limine.additionalFiles = {
"efi/memtest86.efi" = "${pkgs.memtest86-efi}/BOOTX64.efi";
"efi/shell.efi" = "${pkgs.edk2-uefi-shell}/shell.efi";
};
boot.loader.efi.canTouchEfiVariables = true;
boot.initrd.systemd.enable = true;
boot.initrd.kernelModules = [ "amdgpu" ];
boot.loader.efi.efiSysMountPoint = "/boot/";
networking.hostName = "patio"; # Define your hostname.
powerManagement.cpuFreqGovernor = "performance";
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [mesa.opencl libvdpau-va-gl vaapiVdpau vulkan-validation-layers];
extraPackages32 = with pkgs; [driversi686Linux.amdvlk driversi686Linux.mesa.opencl];
};
hardware.bluetooth.enable = true;
services.blueman.enable = true;
networking.networkmanager = {
enable = true;
wifi.backend = "iwd";
};
# Set your time zone.
time.timeZone = "Europe/London";
# Select internationalisation properties.
i18n.defaultLocale = "en_GB.UTF-8";
services.udisks2.enable = true;
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_GB.UTF-8";
LC_IDENTIFICATION = "en_GB.UTF-8";
LC_MEASUREMENT = "en_GB.UTF-8";
LC_MONETARY = "en_GB.UTF-8";
LC_NAME = "en_GB.UTF-8";
LC_NUMERIC = "en_GB.UTF-8";
LC_PAPER = "en_GB.UTF-8";
LC_TELEPHONE = "en_GB.UTF-8";
LC_TIME = "en_GB.UTF-8";
};
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
# Enable the X11 windowing system.
services.xserver.enable = true;
programs.dconf.enable = true;
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Enable CUPS to print documents.
services.printing.enable = true;
services.printing.drivers = [pkgs.gutenprint];
security = {
rtkit.enable = true;
};
# Enable sound with pipewire.
services.pulseaudio.enable = false;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
jack.enable = true;
};
# Define a user account. Don't forget to set a password with passwd.
users.users.alyx = {
isNormalUser = true;
description = "Alyx";
extraGroups = [ "networkmanager" "wheel" "camera" ];
packages = with pkgs; [
];
};
services.libinput.enable = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
wget
neovim
git
pulseaudio
steamdeck-firmware
jupiter-dock-updater-bin
maliit-keyboard
];
system.stateVersion = "24.11"; # Did you read the comment?
}

9
base/patio/default.nix Normal file
View file

@ -0,0 +1,9 @@
{config, pkgs, ...}:{
imports = [
./configuration.nix
../overrides.nix
../ssh.nix
../substituters.nix
../fonts.nix
];
}

View file

@ -0,0 +1,41 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/bab406a9-e86a-462c-9187-d94e71b3246c";
fsType = "xfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/4DF5-0706";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/a133d06d-4112-443a-8b52-e278a6a66f0e"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp4s0f3u1u4c2.useDHCP = lib.mkDefault true;
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

11
base/ssh.nix Normal file
View file

@ -0,0 +1,11 @@
{
networking.firewall.allowedTCPPorts = [22];
services.openssh = {
enable = true;
settings = {
PasswordAuthentication = false;
KbdInteractiveAuthentication = false;
};
};
}

30
base/substituters.nix Normal file
View file

@ -0,0 +1,30 @@
{
inputs,
config,
pkgs,
lib,
...
}: {
nix.settings.substituters = [
"https://nix-community.cachix.org"
"https://niri.cachix.org"
"https://nixpkgs-wayland.cachix.org"
"https://cache.garnix.io"
];
nix.settings.trusted-substituters = [
"https://nix-community.cachix.org"
"https://niri.cachix.org"
"https://nixpkgs-wayland.cachix.org"
"https://cache.garnix.io"
];
nix.settings.trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
];
}