Compare commits

..

14 Commits

Author SHA1 Message Date
Giulio De Pasquale
95d8b8405e Merge branch 'master' of ssh://git.giugl.io/peperunas/nixos 2025-01-01 15:21:15 +00:00
Giulio De Pasquale
3b651d5dc1 feat: added pepeflake 2025-01-01 15:20:48 +00:00
Giulio De Pasquale
f40cc64b59 feat(sunshine.nix): add Steam with Hue Lights app configuration 2025-01-01 15:20:29 +00:00
Giulio De Pasquale
c95a59028a fix(sunshine.nix): improve error messages and add checks 2024-12-28 12:21:49 +00:00
Giulio De Pasquale
e5dca361d2 refactor(sunshine.nix): remove hardcoded Modeline configurations 2024-12-28 12:13:34 +00:00
Giulio De Pasquale
e450732d3a bump: update lock 2024-12-27 22:31:46 +00:00
Giulio De Pasquale
ab7c0c3f07 refactor(homeassistant.nix): comment out unused extraPackages 2024-12-27 22:31:41 +00:00
Giulio De Pasquale
cb75e914cc feat(homeassistant.nix): enable WAN access for Home Assistant 2024-12-20 12:45:50 +00:00
Giulio De Pasquale
f8184fbd87 bump: update lock 2024-12-19 12:26:30 +00:00
Giulio De Pasquale
145f84415a refactor(sunshine.nix): switch from XFCE to GNOME and modify display manager settings
- Replaced XFCE with GNOME as the desktop manager
- Updated `displayManager` configuration to use GDM instead of SDDM
- Added `autoSuspend = false` for GDM
- Set `defaultSession` to "gnome-xorg"
- Disabled `NetworkManager-wait-online` service using `mkForce`
2024-12-18 14:07:39 +00:00
Giulio De Pasquale
5925e20119 fix(sunshine.nix): add -pipewire flag to Steam command 2024-12-17 17:19:36 +00:00
Giulio De Pasquale
6198e4bca1 fix(sunshine.nix): update cudaPackages to version 12.4 2024-12-16 13:38:46 +00:00
Giulio De Pasquale
049174c54c Revert "fix/feat(sunshine.nix): update CUDA version and refactor gamescope arguments"
This reverts commit 3424fb4b9f.
2024-12-16 13:37:09 +00:00
Giulio De Pasquale
3424fb4b9f fix/feat(sunshine.nix): update CUDA version and refactor gamescope arguments 2024-12-16 13:21:39 +00:00
4 changed files with 109 additions and 97 deletions

79
flake.lock generated
View File

@ -35,7 +35,7 @@
"teslamate-flake",
"devenv"
],
"nixpkgs": "nixpkgs_3"
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1728672398,
@ -80,7 +80,7 @@
"flake-compat": "flake-compat",
"git-hooks": "git-hooks",
"nix": "nix",
"nixpkgs": "nixpkgs_5"
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1732298876,
@ -250,11 +250,11 @@
]
},
"locked": {
"lastModified": 1733572789,
"narHash": "sha256-zjO6m5BqxXIyjrnUziAzk4+T4VleqjstNudSqWcpsHI=",
"lastModified": 1734366194,
"narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c7ffc9727d115e433fd884a62dc164b587ff651d",
"rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f",
"type": "github"
},
"original": {
@ -300,7 +300,7 @@
],
"flake-parts": "flake-parts",
"libgit2": "libgit2",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"nixpkgs-23-11": [
"teslamate-flake",
"devenv"
@ -331,11 +331,11 @@
},
"nixos-master": {
"locked": {
"lastModified": 1733828764,
"narHash": "sha256-M7UXv4hvFHzWv1N4MUaI4I87twq82khE9APjOj/RwAk=",
"lastModified": 1735328357,
"narHash": "sha256-kD91N+MRvTEkAzJrU7CEhmQ/b9p3OiHQ8JRK4GDHSXg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0693a1e00163dc2ffeb28d7ba3054caa09df8d4c",
"rev": "e45f8499ce642df75a3911aa73a18142a8d14437",
"type": "github"
},
"original": {
@ -347,11 +347,11 @@
},
"nixos-unstable": {
"locked": {
"lastModified": 1733686850,
"narHash": "sha256-NQEO/nZWWGTGlkBWtCs/1iF1yl2lmQ1oY/8YZrumn3I=",
"lastModified": 1735268880,
"narHash": "sha256-7QEFnKkzD13SPxs+UFR5bUFN2fRw+GlL0am72ZjNre4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dd51f52372a20a93c219e8216fe528a648ffcbf4",
"rev": "7cc0bff31a3a705d3ac4fdceb030a17239412210",
"type": "github"
},
"original": {
@ -379,11 +379,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1733826616,
"narHash": "sha256-SZgf5RGx8VirkCQI0EPPIfFGPzXk9KdxB7xXSycWsYQ=",
"lastModified": 1735326919,
"narHash": "sha256-BZlgs4l9CXAauo78giGCZdazMMk5VZNro7o5SHFUuyE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e6aebefe680345c6bab3cf37d1aeca0c1a8320f7",
"rev": "8f0aa155aa29f7d2b471aa2ffd322745bf2b2036",
"type": "github"
},
"original": {
@ -394,6 +394,22 @@
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1735264675,
"narHash": "sha256-MgdXpeX2GuJbtlBrH9EdsUeWl/yXEubyvxM1G+yO4Ak=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d49da4c08359e3c39c4e27c74ac7ac9b70085966",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1730531603,
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
@ -409,7 +425,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_5": {
"locked": {
"lastModified": 1717432640,
"narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
@ -425,7 +441,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_6": {
"locked": {
"lastModified": 1716977621,
"narHash": "sha256-Q1UQzYcMJH4RscmpTkjlgqQDX5yi1tZL0O345Ri6vXQ=",
@ -441,7 +457,7 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_7": {
"locked": {
"lastModified": 1732014248,
"narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=",
@ -465,11 +481,11 @@
"utils": "utils"
},
"locked": {
"lastModified": 1733768882,
"narHash": "sha256-9xp5ZH6+CGC3ZyxnbWTRbDVWWZtnGZT85RJRtyI6XfU=",
"lastModified": 1734937677,
"narHash": "sha256-5qKdUBN1cq/LHa6ASIjGcDEYKDnAiaKgNtZCRbBrWEs=",
"owner": "icewind1991",
"repo": "nvidia-patch-nixos",
"rev": "d8ae03727117a15eca58ec21628dda8db3811163",
"rev": "ec2e76e3cd53208c6bcbbddcc043516a24ca71b2",
"type": "github"
},
"original": {
@ -478,6 +494,24 @@
"type": "github"
}
},
"pepeflake": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1735410731,
"narHash": "sha256-7cYfazIAz6DRhtjHze2CBvCD/Qleg8HgGCEF2NPUzQk=",
"ref": "refs/heads/master",
"rev": "619882bbc38afa8650219efb021827060db48c90",
"revCount": 9,
"type": "git",
"url": "https://git.giugl.io/peperunas/pepeflake"
},
"original": {
"type": "git",
"url": "https://git.giugl.io/peperunas/pepeflake"
}
},
"root": {
"inputs": {
"agenix-flake": "agenix-flake",
@ -487,6 +521,7 @@
"nixos-unstable": "nixos-unstable",
"nixpkgs": "nixpkgs_2",
"nvidia-patch": "nvidia-patch",
"pepeflake": "pepeflake",
"teslamate-flake": "teslamate-flake"
}
},
@ -525,7 +560,7 @@
"devenv": "devenv",
"devenv-root": "devenv-root",
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_6",
"nixpkgs": "nixpkgs_7",
"treefmt-nix": "treefmt-nix"
},
"locked": {

View File

@ -4,6 +4,7 @@
nixos-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nixos-master.url = "github:NixOS/nixpkgs/master";
local-unstable.url = "path:///home/giulio/dev/nixpkgs";
pepeflake.url = "git+https://git.giugl.io/peperunas/pepeflake";
teslamate-flake.url = "github:teslamate-org/teslamate/v1.32.0";
agenix-flake.url = "github:ryantm/agenix";
home-manager = {
@ -26,6 +27,7 @@
, teslamate-flake
, nvidia-patch
, agenix-flake
, pepeflake
}:
let
sysLinuxX64 = "x86_64-linux";
@ -64,6 +66,7 @@
localPkgs = importNixpkgs { flake = local-unstable; };
teslamatePkgs = importNixpkgs { flake = teslamate-flake; };
agenixPkgs = importNixpkgs { flake = agenix-flake; };
pepePkgs = pepeflake.packages.${system} // pepeflake.legacyPackages.${system} or { };
additionalOverlays = [
(final: prev: { inherit unstablePkgs; })
@ -71,6 +74,7 @@
(final: prev: { inherit teslamatePkgs; })
(final: prev: { inherit agenixPkgs; })
(final: prev: { inherit masterPkgs; })
(final: prev: { inherit pepePkgs; })
];
in
import nixpkgs {

View File

@ -1113,12 +1113,12 @@ in
"reolink"
"onvif"
];
extraPackages = python3Packages: with python3Packages; [
pkgs.openai-whisper
openai-whisper
pkgs.piper-tts
pkgs.wyoming-piper
];
# extraPackages = python3Packages: with python3Packages; [
# pkgs.openai-whisper
# openai-whisper
# pkgs.piper-tts
# pkgs.wyoming-piper
# ];
};
services.mosquitto = {
@ -1138,6 +1138,7 @@ in
locations."/" = {
port = config.services.home-assistant.config.http.server_port;
allowWAN = true;
allowLan = true;
proxyWebsockets = true;
allow = [

View File

@ -6,7 +6,7 @@ let
name = "sunshine-resolution-script";
text = ''
#!${pkgs.bash}/bin/bash
width=''${1:-1280}
height=''${2:-720}
refresh_rate=''${3:-120}
@ -16,21 +16,26 @@ let
xrandr_mode_str=''${modeline//Modeline \"*\" /}
mode_alias="''${width}x''${height}"
echo "xrandr setting new mode ''${mode_alias} ''${xrandr_mode_str}"
${pkgs.xorg.xrandr}/bin/xrandr --rmmode ''${mode_alias} || echo error
${pkgs.xorg.xrandr}/bin/xrandr --newmode ''${mode_alias} ''${xrandr_mode_str} || echo error
${pkgs.xorg.xrandr}/bin/xrandr --addmode DP-0 ''${mode_alias} || echo error
echo "xrandr setting new mode ''${mode_alias} ''${xrandr_mode_str}"
# Check if mode exists before trying to remove it
if ${pkgs.xorg.xrandr}/bin/xrandr --listmodes | grep -q "^''${mode_alias}"; then
${pkgs.xorg.xrandr}/bin/xrandr --rmmode ''${mode_alias} || echo "Failed to remove existing mode"
fi
${pkgs.xorg.xrandr}/bin/xrandr --newmode ''${mode_alias} ''${xrandr_mode_str} || echo "Failed to create new mode"
${pkgs.xorg.xrandr}/bin/xrandr --addmode DP-0 ''${mode_alias} || echo "Failed to add mode to output"
# Apply new xrandr mode
${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --primary --mode ''${mode_alias} --pos 0x0 --rotate normal || echo error
${pkgs.xorg.xrandr}/bin/xrandr --output DP-0 --primary --mode ''${mode_alias} --pos 0x0 --rotate normal || echo "Failed to apply mode"
${config.boot.kernelPackages.nvidia_x11.settings}/bin/nvidia-settings -a 'SyncToVBlank=0' || echo error
${config.boot.kernelPackages.nvidia_x11.bin}/bin/nvidia-smi --persistence-mode=ENABLED || echo error
${config.boot.kernelPackages.nvidia_x11.settings}/bin/nvidia-settings -a 'SyncToVBlank=0' || echo "Failed to disable VSync"
${config.boot.kernelPackages.nvidia_x11.bin}/bin/nvidia-smi --persistence-mode=ENABLED || echo "Failed to enable persistence mode"
'';
executable = true;
destination = "/bin/resolution.sh";
};
sunshinePkg = (pkgs.localPkgs.sunshine.override { cudaSupport = true; cudaPackages = pkgs.cudaPackages_12_3; boost = pkgs.boost186; });
sunshinePkg = (pkgs.localPkgs.sunshine.override { cudaSupport = true; cudaPackages = pkgs.cudaPackages_12_4; boost = pkgs.boost186; });
in
{
boot.kernelModules = [ "uinput" ];
@ -48,7 +53,7 @@ in
nvidiaSettings = true;
};
};
systemd.services.NetworkManager-wait-online.enable = pkgs.lib.mkForce false;
programs.steam = {
enable = true;
gamescopeSession.enable = true;
@ -100,9 +105,22 @@ in
DXVK_ASYNC = "1";
};
apps = [
{
name = "Steam w/ Hue Lights";
cmd = ''${pkgs.bash}/bin/bash -c "${pkgs.gamescope}/bin/gamescope --immediate-flips --rt -C 3000 -f -e -W ''${SUNSHINE_CLIENT_WIDTH} -H ''${SUNSHINE_CLIENT_HEIGHT} -r ''${SUNSHINE_CLIENT_FPS} -- ${pkgs.steam}/bin/steam -pipewire"'';
detached = [
"${pkgs.pepePkgs.huenicorn}/bin/huenicorn"
];
prep-cmd = [
{
do = ''${pkgs.bash}/bin/bash -c "${resolutionScript}/bin/resolution.sh ''${SUNSHINE_CLIENT_WIDTH} ''${SUNSHINE_CLIENT_HEIGHT}" ''${SUNSHINE_CLIENT_FPS}"'';
undo = ''${pkgs.bash}/bin/bash -c "${pkgs.procps}/bin/pkill gamescope; ${pkgs.procps}/bin/pkill sunshine; ${pkgs.procps}/bin/pkill -KILL huenicorn"'';
}
];
}
{
name = "Steam";
cmd = ''${pkgs.bash}/bin/bash -c "${pkgs.gamescope}/bin/gamescope --immediate-flips --rt -C 3000 -f --hdr-enabled -e -W ''${SUNSHINE_CLIENT_WIDTH} -H ''${SUNSHINE_CLIENT_HEIGHT} -r ''${SUNSHINE_CLIENT_FPS} -- ${pkgs.steam}/bin/steam"'';
cmd = ''${pkgs.bash}/bin/bash -c "${pkgs.gamescope}/bin/gamescope --immediate-flips --rt -C 3000 -f -e -W ''${SUNSHINE_CLIENT_WIDTH} -H ''${SUNSHINE_CLIENT_HEIGHT} -r ''${SUNSHINE_CLIENT_FPS} -- ${pkgs.steam}/bin/steam -pipewire"'';
prep-cmd = [
{
do = ''${pkgs.bash}/bin/bash -c "${resolutionScript}/bin/resolution.sh ''${SUNSHINE_CLIENT_WIDTH} ''${SUNSHINE_CLIENT_HEIGHT}" ''${SUNSHINE_CLIENT_FPS}"'';
@ -114,72 +132,26 @@ in
};
};
displayManager = {
sddm = {
enable = true;
wayland.enable = false;
autoLogin.relogin = true;
};
autoLogin = {
inherit user;
enable = true;
};
};
xserver = {
enable = true;
videoDrivers = [ "nvidia" ];
desktopManager.xfce.enable = true;
desktopManager.gnome.enable = true;
displayManager = {
gdm = {
enable = true;
autoSuspend = false;
autoLogin = {
inherit user;
enable = true;
};
};
defaultSession = "gnome-xorg";
};
monitorSection = ''
HorizSync 5.0 - 1000.0
VertRefresh 5.0 - 1000.0
Option "DPMS"
# 1920x1080 @ 30.00 Hz (GTF) hsync: 32.97 kHz; pclk: 80.18 MHz
Modeline "1920x1080_30.00" 80.18 1920 1984 2176 2432 1080 1081 1084 1099 -HSync +Vsync
# 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz
Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
# 1920x1080 @ 90.00 Hz (GTF) hsync: 102.33 kHz; pclk: 270.15 MHz
Modeline "1920x1080_90.00" 270.15 1920 2072 2280 2640 1080 1081 1084 1137 -HSync +Vsync
# 1920x1080 @ 120.00 Hz (GTF) hsync: 138.84 kHz; pclk: 368.76 MHz
Modeline "1920x1080_120.00" 368.76 1920 2072 2288 2656 1080 1081 1084 1157 -HSync +Vsync
# 2240x1290 @ 30.00 Hz (GTF) hsync: 39.39 kHz; pclk: 113.44 MHz
Modeline "2240x1290_30.00" 113.44 2240 2328 2560 2880 1290 1291 1294 1313 -HSync +Vsync
# 2240x1290 @ 60.00 Hz (GTF) hsync: 80.10 kHz; pclk: 243.50 MHz
Modeline "2240x1290_60.00" 243.50 2240 2400 2640 3040 1290 1291 1294 1335 -HSync +Vsync
# 2240x1290 @ 120.00 Hz (GTF) hsync: 165.84 kHz; pclk: 517.42 MHz
Modeline "2240x1290_120.00" 517.42 2240 2432 2680 3120 1290 1291 1294 1382 -HSync +Vsync
# 2800x1290 @ 30.00 Hz (GTF) hsync: 39.39 kHz; pclk: 141.80 MHz
Modeline "2800x1290_30.00" 141.80 2800 2912 3200 3600 1290 1291 1294 1313 -HSync +Vsync
# 2800x1290 @ 60.00 Hz (GTF) hsync: 80.10 kHz; pclk: 303.74 MHz
Modeline "2800x1290_60.00" 303.74 2800 2992 3296 3792 1290 1291 1294 1335 -HSync +Vsync
# 2800x1290 @ 120.00 Hz (GTF) hsync: 165.84 kHz; pclk: 647.44 MHz
Modeline "2800x1290_120.00" 647.44 2800 3040 3352 3904 1290 1291 1294 1382 -HSync +Vsync
# 2560x1440 @ 30.00 Hz (GTF) hsync: 43.95 kHz; pclk: 146.27 MHz
Modeline "2560x1440_30.00" 146.27 2560 2680 2944 3328 1440 1441 1444 1465 -HSync +Vsync
# 2560x1440 @ 60.00 Hz (GTF) hsync: 89.40 kHz; pclk: 311.83 MHz
Modeline "2560x1440_60.00" 311.83 2560 2744 3024 3488 1440 1441 1444 1490 -HSync +Vsync
# 2560x1440 @ 90.00 Hz (GTF) hsync: 136.44 kHz; pclk: 484.63 MHz
Modeline "2560x1440_90.00" 484.63 2560 2768 3056 3552 1440 1441 1444 1516 -HSync +Vsync
# 2560x1440 @ 120.00 Hz (GTF) hsync: 185.16 kHz; pclk: 660.65 MHz
Modeline "2560x1440_120.00" 660.65 2560 2776 3064 3568 1440 1441 1444 1543 -HSync +Vsync
# 3840x1600 @ 30.00 Hz (GTF) hsync: 48.84 kHz; pclk: 246.15 MHz
Modeline "3840x1600_30.00" 246.15 3840 4040 4440 5040 1600 1601 1604 1628 -HSync +Vsync
# 3840x1600 @ 60.00 Hz (GTF) hsync: 99.36 kHz; pclk: 523.03 MHz
Modeline "3840x1600_60.00" 523.03 3840 4128 4552 5264 1600 1601 1604 1656 -HSync +Vsync
# 3840x1600 @ 90.00 Hz (GTF) hsync: 151.56 kHz; pclk: 807.51 MHz
Modeline "3840x1600_90.00" 807.51 3840 4160 4584 5328 1600 1601 1604 1684 -HSync +Vsync
# 3840x1600 @ 120.00 Hz (GTF) hsync: 205.68 kHz; pclk: 1105.74 MHz
Modeline "3840x1600_120.00" 1105.74 3840 4176 4608 5376 1600 1601 1604 1714 -HSync +Vsync
# 3840x2160 @ 30.00 Hz (GTF) hsync: 65.91 kHz; pclk: 339.57 MHz
Modeline "3840x2160_30.00" 339.57 3840 4080 4496 5152 2160 2161 2164 2197 -HSync +Vsync
# 3840x2160 @ 60.00 Hz (GTF) hsync: 134.10 kHz; pclk: 712.34 MHz
Modeline "3840x2160_60.00" 712.34 3840 4152 4576 5312 2160 2161 2164 2235 -HSync +Vsync
# 3840x2160 @ 90.00 Hz (GTF) hsync: 204.66 kHz; pclk: 1100.25 MHz
Modeline "3840x2160_90.00" 1100.25 3840 4176 4608 5376 2160 2161 2164 2274 -HSync +Vsync
# 3840x2160 @ 120.00 Hz (GTF) hsync: 277.68 kHz; pclk: 1501.69 MHz
Modeline "3840x2160_120.00" 1501.69 3840 4192 4624 5408 2160 2161 2164 2314 -HSync +Vsync
'';
deviceSection = ''