Move from features to option based configuration

This commit is contained in:
2024-06-02 20:34:55 -05:00
parent 488fbf47fb
commit 21e825b2d1
28 changed files with 729 additions and 179 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
./hostname

View File

@@ -1,17 +0,0 @@
{ lib, pkgs, localPackages, ... }: {
environment.systemPackages = with pkgs; [
pulseaudio
pavucontrol
feishin
easyeffects
helvum
];
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
}

View File

@@ -3,7 +3,7 @@
protonup-qt protonup-qt
vesktop vesktop
lutris lutris
gamescope-dbg gamescope-old
wine wine
]; ];

View File

@@ -12,10 +12,18 @@
wayland-pipewire-idle-inhibit wayland-pipewire-idle-inhibit
firefox firefox
mpv mpv
cinny-desktop
thunderbird
protonmail-bridge
libsecret
]; ];
programs.sway.enable = true; programs.sway.enable = true;
programs.thunar.enable = true; programs.thunar.enable = true;
programs.dconf.enable = true;
services.gnome.gnome-keyring.enable = true;
services.dbus.packages = [ pkgs.gnome.seahorse ];
xdg.portal.wlr.enable = true; xdg.portal.wlr.enable = true;

12
flake.lock generated
View File

@@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1716930911, "lastModified": 1717316182,
"narHash": "sha256-t4HT5j3Jy7skRB5PINnxcEBCkgE89rGBpwTI7YS4Ffo=", "narHash": "sha256-Xi0EpZcu39N0eW7apLjFfUOR9y80toyjYizez7J1wMI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a9b36cbe9292a649222b89fdb9ae9907e9c74086", "rev": "9b53a10f4c91892f5af87cf55d08fba59ca086af",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -22,11 +22,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1716509168, "lastModified": 1716948383,
"narHash": "sha256-4zSIhSRRIoEBwjbPm3YiGtbd8HDWzFxJjw5DYSDy1n8=", "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bfb7a882678e518398ce9a31a881538679f6f092", "rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
"type": "github" "type": "github"
}, },
"original": { "original": {

115
flake.nix
View File

@@ -9,51 +9,100 @@
outputs = inputs@{ self, nixpkgs, home-manager, ... }: let outputs = inputs@{ self, nixpkgs, home-manager, ... }: let
inherit (self) outputs; inherit (self) outputs;
hostname =
if (builtins.pathExists ./hostname) then
builtins.readFile(./hostname)
else
"default-hostname";
configs."ankaa" = {
openssh = {
enable = true;
port = 2222;
};
backup = {
enable = true;
user = "eesim";
paths = [ "/home/eesim" ];
repo = "rf030789@rf030789.repo.borgbase.com:repo";
excludes = [
"/home/eesim/.local/share/Steam/steamapps/common"
"/home/eesim/.cache"
];
passphrase = "/home/eesim/.ssh/borgbase_passphrase";
key = "/home/eesim/.ssh/id_ed25519_borgbase";
repeat = "daily";
};
audio = {
pipewire.enable = true;
music.enable = true;
tools = {
helvum = true;
easyeffects = true;
};
};
gui = {
enable = true;
protonmail = true;
matrix = true;
};
games.enable = true;
common.nil.enable = true;
networking.wireguard.enable = true;
};
configs."alpheratz" = {
audio = {
pipewire.enable = true;
music.enable = true;
gui = {
enable = true;
protonmail = true;
matrix = true;
};
};
common.nil.enable = true;
networking.wireguard.enable = true;
};
configs."default-hostname" = {
};
in { in {
nixosConfigurations = { nixosConfigurations = {
ankaa = nixpkgs.lib.nixosSystem { "${hostname}" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { specialArgs = {
inherit (outputs) localPackages; inherit (outputs) localPackages;
openssh-port = 2222;
}; };
modules = [ modules = [
./hosts/ankaa/configuration.nix {
./hosts/ankaa/hardware-configuration.nix networking.hostName = hostname;
./features/audio.nix }
./features/common.nix (import ./modules/nix)
./features/gui.nix {
./features/networking.nix simmer = configs."${hostname}";
./features/gaming.nix }
./modules/backups/home-ankaa.nix (./. + "/hosts/${hostname}/system.nix")
./modules/openssh.nix (./. + "/hosts/${hostname}/hardware-configuration.nix")
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.eesim = import ./hosts/ankaa/home.nix; home-manager.users.eesim = import (./. + "/hosts/${hostname}/home.nix");
}
];
};
alpheratz = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit (outputs) localPackages;
};
modules = [
./hosts/alpheratz/configuration.nix
./hosts/alpheratz/hardware-configuration.nix
./features/common.nix
./features/gui.nix
./features/audio.nix
./features/networking.nix
./features/laptop.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.eesim = import ./hosts/alpheratz/home.nix;
} }
]; ];
}; };

1
hostname Normal file
View File

@@ -0,0 +1 @@
ankaa

View File

@@ -5,7 +5,9 @@
}: }:
{ {
imports = []; imports = [
../../modules/home
];
home = { home = {
username = "eesim"; username = "eesim";
@@ -17,42 +19,7 @@
home.file.".config/waybar".source = ./dotfiles/waybar; home.file.".config/waybar".source = ./dotfiles/waybar;
home.file.".config/fish/config.fish".source = ./dotfiles/fish/config.fish; home.file.".config/fish/config.fish".source = ./dotfiles/fish/config.fish;
programs.git = {
enable = true;
userName = "Ethan Simmons";
userEmail = "eesimmons9105@gmail.com";
extraConfig = {
core.sshCommand = "'ssh -i /home/eesim/.ssh/id_ed25519'";
};
};
programs.direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
};
programs.home-manager.enable = true; programs.home-manager.enable = true;
gtk = {
enable = true;
cursorTheme = {
name = "phinger-cursors-dark";
package = pkgs.phinger-cursors;
};
theme = {
name = "adw-gtk3-dark";
package = pkgs.adw-gtk3;
};
};
qt = {
style = {
name = "adwaita-dark";
package = pkgs.adwaita-qt;
};
};
home.stateVersion = "23.11"; home.stateVersion = "23.11";
} }

View File

@@ -36,13 +36,6 @@
"/nix".options = [ "compress=zstd" "noatime" ]; "/nix".options = [ "compress=zstd" "noatime" ];
}; };
networking.hostName = "alpheratz";
networking.networkmanager.enable = true;
networking.nameservers = [ "192.168.0.100" ];
networking.firewall = {
allowedUDPPorts = [ 51820 ];
};
networking.wg-quick.interfaces = { networking.wg-quick.interfaces = {
wg0 = { wg0 = {
address = [ "10.6.0.5" ]; address = [ "10.6.0.5" ];
@@ -55,7 +48,7 @@
publicKey = "pEWHugUnnhWXkJzCIhXryRRZMoCAuvAITDeP4ItenQk="; publicKey = "pEWHugUnnhWXkJzCIhXryRRZMoCAuvAITDeP4ItenQk=";
presharedKeyFile = "/root/wireguard-keys/wg0/preshared"; presharedKeyFile = "/root/wireguard-keys/wg0/preshared";
allowedIPs = [ "10.2.0.0/24" "192.168.0.0/24" ]; allowedIPs = [ "10.2.0.0/24" "192.168.0.0/24" ];
endpoint = "jellyfin.simmer505.com:51820"; endpoint = "simmer505.com:51820";
persistentKeepalive = 25; persistentKeepalive = 25;
} }
]; ];

View File

@@ -280,7 +280,7 @@ exec --no-startup-id ydotoold
exec --no-startup-id easyeffects --gapplication-service exec --no-startup-id easyeffects --gapplication-service
exec --no-startup-id wayland-pipewire-idle-inhibit exec --no-startup-id wayland-pipewire-idle-inhibit
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec --no-startup-id protonmail-bridge exec --no-startup-id protonmail-bridge --noninteractive
exec --no-startup-id swayidle -w \ exec --no-startup-id swayidle -w \
timeout 600 'swaymsg "output * dpms off"' \ timeout 600 'swaymsg "output * dpms off"' \
resume 'swaymsg "output * dpms on"' resume 'swaymsg "output * dpms on"'

View File

@@ -3,9 +3,12 @@
pkgs, pkgs,
... ...
}: }:
{ {
imports = []; imports = [
../../modules/home
];
home = { home = {
username = "eesim"; username = "eesim";
@@ -22,39 +25,7 @@
# Fix for slow steam download speeds https://old.reddit.com/r/linux_gaming/comments/16e1l4h/slow_steam_downloads_try_this/ # Fix for slow steam download speeds https://old.reddit.com/r/linux_gaming/comments/16e1l4h/slow_steam_downloads_try_this/
home.file.".steam/steam/steam_dev.cfg".source = ./dotfiles/steam/steam_dev.cfg; home.file.".steam/steam/steam_dev.cfg".source = ./dotfiles/steam/steam_dev.cfg;
programs.git = {
enable = true;
userName = "Ethan Simmons";
userEmail = "eesimmons9105@gmail.com";
};
programs.direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
};
programs.home-manager.enable = true; programs.home-manager.enable = true;
gtk = {
enable = true;
iconTheme = {
name = "awaida-dark";
package = pkgs.gnome.adwaita-icon-theme;
};
theme = {
name = "adw-gtk3-dark";
package = pkgs.adw-gtk3;
};
};
qt = {
style = {
name = "adwaita-dark";
package = pkgs.adwaita-qt;
};
};
home.stateVersion = "23.11"; home.stateVersion = "23.11";
} }

View File

@@ -33,10 +33,6 @@
"/nix".options = [ "compress=zstd" "noatime" ]; "/nix".options = [ "compress=zstd" "noatime" ];
}; };
networking.hostName = "ankaa";
networking.networkmanager.enable = true;
networking.nameservers = [ "192.168.0.100" ];
# Set your time zone. # Set your time zone.
time.timeZone = "America/Chicago"; time.timeZone = "America/Chicago";

View File

@@ -1,23 +0,0 @@
{ pkgs, lib, ... }: {
services.borgbackup.jobs = {
home-ankaa =
let
user = "eesim";
home = "/home/${user}";
excludes = [ ".local/share/Steam/steamapps/common" ".cache" ];
in
{
inherit user;
paths = [ home ];
exclude = builtins.map (e: "${home}/${e}") excludes;
repo = "rf030789@rf030789.repo.borgbase.com:repo";
encryption = {
mode = "repokey-blake2";
passCommand = "cat ${home}/.ssh/borgbase_passphrase";
};
environment.BORG_RSH = "ssh -i ${home}/.ssh/id_ed25519_borgbase";
compression = "auto,lzma";
startAt = "daily";
};
};
}

14
modules/home/default.nix Normal file
View File

@@ -0,0 +1,14 @@
{ lib
, pkgs
, config
, ...
}:
{
imports = [
./git.nix
./direnv.nix
./git.nix
./qt.nix
];
}

26
modules/home/direnv.nix Normal file
View File

@@ -0,0 +1,26 @@
{ lib
, pkgs
, config
, ...
}:
with lib; let
cfg = config.simmer.direnv;
in
{
options.simmer.direnv = {
enable = mkOption {
description = "Whether to install and configure direnv";
type = types.bool;
default = true;
};
};
config = mkIf cfg.enable {
programs.direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
};
};
}

26
modules/home/git.nix Normal file
View File

@@ -0,0 +1,26 @@
{ lib
, pkgs
, config
, ...
}:
with lib; let
cfg = config.simmer.git;
in
{
options.simmer.git = {
enable = mkOption {
description = "Whether to install and configure git";
type = types.bool;
default = true;
};
};
config = mkIf cfg.enable {
programs.git = {
enable = true;
userName = "Ethan Simmons";
userEmail = "eesimmons9105@gmail.com";
};
};
}

37
modules/home/gtk.nix Normal file
View File

@@ -0,0 +1,37 @@
{ lib
, pkgs
, config
, ...
}:
with lib; let
cfg = config.simmer.gtk;
gui = config.simmer.gui;
in
{
options.simmer.gtk = {
theme.enable = mkOption {
description = "Whether to enable gtk themes";
type = types.bool;
default = gui.enable;
};
};
config = {
gtk = mkIf cfg.enable {
enable = true;
cursorTheme = {
name = "phinger-cursors-dark";
package = pkgs.phinger-cursors;
};
iconTheme = {
name = "awaida-dark";
package = pkgs.gnome.adwaita-icon-theme;
};
theme = {
name = "adw-gtk3-dark";
package = pkgs.adw-gtk3;
};
};
};
}

26
modules/home/qt.nix Normal file
View File

@@ -0,0 +1,26 @@
{ lib
, pkgs
, config
, ...
}:
with lib; let
cfg = config.simmer.qt;
gui = config.simmer.gui;
in
{
options.simmer.qt = {
theme.enable = mkOption {
description = "Whether to enable qt themes";
type = types.bool;
default = gui.enable;
};
};
config = {
qt.style = mkIf cfg.theme.enable {
name = "adwaita-dark";
package = pkgs.adwaita-qt;
};
};
}

78
modules/nix/audio.nix Normal file
View File

@@ -0,0 +1,78 @@
{ lib
, pkgs
, config
, ...
}:
with lib; let
cfg = config.simmer.audio;
in
{
options.simmer.audio = {
pipewire = {
enable = mkOption {
description = "Enable pipewire";
type = types.bool;
default = false;
};
pulseSupport = mkOption {
description = "Enable pulse support for pipewire";
type = types.bool;
default = true;
};
alsaSupport = mkOption {
description = "Enable alsa support for pipewire";
type = types.bool;
default = true;
};
};
music = {
enable = mkOption {
description = "Install music player";
type = types.bool;
default = false;
};
};
tools = {
helvum = mkOption {
description = "Install helvum";
type = types.bool;
default = false;
};
easyeffects = mkOption {
description = "Install easyeffects";
type = types.bool;
default = false;
};
pavucontrol = mkOption {
description = "Install pavucontrol";
type = types.bool;
default = cfg.pipewire.enable;
};
};
};
config = {
environment.systemPackages =
with pkgs; []
++ optional cfg.tools.helvum helvum
++ optional cfg.tools.easyeffects easyeffects
++ optional cfg.tools.pavucontrol pavucontrol
++ optional cfg.pipewire.pulseSupport pulseaudio
++ optional cfg.music.enable feishin;
security.rtkit.enable = mkIf cfg.pipewire.enable true;
services.pipewire = mkIf cfg.pipewire.enable {
enable = true;
alsa = mkIf cfg.pipewire.alsaSupport {
enable = true;
support32Bit = true;
};
pulse.enable = mkIf cfg.pipewire.pulseSupport true;
};
};
}

74
modules/nix/backup.nix Normal file
View File

@@ -0,0 +1,74 @@
{ pkgs
, lib
, config
, ...
}:
with lib; let
cfg = config.simmer.backup;
in
{
options.simmer.backup = {
enable = mkOption {
description = "Whether backups should be enabled";
type = types.bool;
default = false;
};
repo = mkOption {
description = "Which repository to backup to";
type = types.str;
};
paths = mkOption {
description = "Which paths to backup";
type = types.listOf types.str;
};
user = mkOption {
description = "Which user to run backup commands with";
type = types.str;
default = "root";
};
excludes = mkOption {
description = "Which directories to exclude";
type = types.listOf types.str;
default = [];
};
passphrase = mkOption {
description = "path to file containing passphrase";
type = types.path;
};
key = mkOption {
description = "Path to file containing SSH Key";
type = types.path;
};
repeat = mkOption {
description = "How often to run the backup (hourly, daily, weekly)";
type = types.enum [ "hourly" "daily" "weekly" ];
};
};
config = mkIf cfg.enable {
services.borgbackup.jobs = {
backup = {
user = cfg.user;
paths = cfg.paths;
exclude = cfg.excludes;
repo = cfg.repo;
encryption = {
mode = "repokey-blake2";
passCommand = "cat ${cfg.passphrase}";
};
environment.BORG_RSH = "ssh -i ${cfg.key}";
compression = "auto,lzma";
startAt = cfg.repeat;
};
};
};
}

58
modules/nix/common.nix Normal file
View File

@@ -0,0 +1,58 @@
{ lib
, pkgs
, localPackages
, config
, ...
}:
with lib; let
cfg = config.simmer.common;
in
{
options.simmer.common = {
neovim.enable = mkOption {
description = "Whether to install neovim and set as default editor";
type = types.bool;
default = true;
};
nil.enable = mkOption {
description = "Whether to install nil";
type = types.bool;
default = false;
};
shell = mkOption {
description = "Default shell to use (fish)";
type = types.enum [ "fish" ];
default = "fish";
};
};
config = {
environment.systemPackages = with pkgs; [
curl
wget
git
killall
vim
eza
ripgrep
fzf
ncdu
btop
]
++ optional cfg.nil.enable nil;
programs.neovim = mkIf cfg.neovim.enable {
enable = true;
defaultEditor = true;
};
programs.fish.enable = mkIf (cfg.shell == "fish") true;
};
}

17
modules/nix/default.nix Normal file
View File

@@ -0,0 +1,17 @@
{ lib
, pkgs
, config
, ...
}:
{
imports = [
./openssh.nix
./backup.nix
./audio.nix
./gui.nix
./common.nix
./networking.nix
./games.nix
];
}

61
modules/nix/games.nix Normal file
View File

@@ -0,0 +1,61 @@
{ lib
, pkgs
, config
, localPackages
, ...
}:
with lib; let
cfg = config.simmer.games;
in
{
options.simmer.games = {
enable = mkOption {
description = "Whether to enable games";
type = types.bool;
default = false;
};
protonup.enable = mkOption {
description = "Whether to install protonup";
type = types.bool;
default = true;
};
lutris.enable = mkOption {
description = "Whether to install lutris";
type = types.bool;
default = false;
};
steam.enable = mkOption {
description = "Whether to install steam";
type = types.bool;
default = true;
};
gamescope.enable = mkOption {
description = "Whether to install gamescope";
type = types.bool;
default = cfg.steam.enable;
};
discord.enable = mkOption {
description = "Whether to install discord";
type = types.bool;
default = true;
};
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; with localPackages.x86_64-linux;
[]
++ optional cfg.protonup.enable protonup-qt
++ optional cfg.gamescope.enable gamescope-old
++ optional cfg.discord.enable vesktop
++ optionals cfg.lutris.enable [ lutris wine ];
programs.steam = mkIf cfg.steam.enable {
enable = true;
};
};
}

85
modules/nix/gui.nix Normal file
View File

@@ -0,0 +1,85 @@
{ lib
, pkgs
, config
, localPackages
, ...
}:
with lib; let
cfg = config.simmer.gui;
in
{
options.simmer.gui = {
enable = mkOption {
description = "Enable gui";
type = types.bool;
default = false;
};
wm = mkOption {
description = "Which window manager to install";
type = types.enum [ "sway" ];
default = "sway";
};
terminal = mkOption {
description = "Which terminal to install (alacritty)";
type = types.enum [ pkgs.alacritty ];
default = pkgs.alacritty;
};
protonmail = mkOption {
description = "Whether to install protonmail bridge and mail application";
type = types.bool;
default = false;
};
secrets = mkOption {
description = "Whether to enable secrets handling with gnomke-keyring";
type = types.bool;
default = cfg.protonmail;
};
matrix = mkOption {
description = "Whether to install a matrix client";
type = types.bool;
default = false;
};
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; with localPackages.x86_64-linux; []
++ optionals (cfg.wm == "sway") [
wl-clipboard
grim
slurp
waybar
swaybg
kickoff
kickoff-dot-desktop
wayland-pipewire-idle-inhibit
firefox
mpv
]
++ [ cfg.terminal ]
++ optional cfg.matrix cinny-desktop
++ optional cfg.secrets libsecret
++ optionals cfg.protonmail [ thunderbird protonmail-bridge ];
programs.sway.enable = mkIf (cfg.wm == "sway") true;
programs.dconf.enable = mkIf cfg.secrets true;
services.gnome.gnome-keyring.enable = mkIf cfg.secrets true;
services.dbus.packages = mkIf cfg.secrets [ pkgs.gnome.seahorse ];
xdg.portal.wlr.enable = true;
programs.thunar.enable = true;
fonts.packages = with pkgs; [
font-awesome
];
};
}

View File

@@ -0,0 +1,74 @@
{ lib
, pkgs
, localPackages
, config
, ...
}:
with lib; let
cfg = config.simmer.networking;
openssh = config.simmer.openssh;
in
{
options.simmer.networking = {
firewall = {
enable = mkOption {
description = "Whether to enable firewall";
type = types.bool;
default = true;
};
allowedTCPPorts = mkOption {
description = "Which tcp ports to allow through firewall";
type = types.listOf types.int;
default = []
++ optional openssh.enable openssh.port;
};
allowedUDPPorts = mkOption {
description = "Which udp ports to allow through firewall";
type = types.listOf types.int;
default = [];
};
};
wireguard = {
enable = mkOption {
description = "Whether to install wireguard";
type = types.bool;
default = false;
};
};
networkmanager = {
enable = mkOption {
description = "Whether to enable network manager";
type = types.bool;
default = true;
};
};
nameservers = mkOption {
description = "Which nameservers to use";
type = types.listOf types.str;
default = [ "1.1.1.1" ];
};
};
config = {
environment.systemPackages = with pkgs; [
ldns
]
++ optional cfg.wireguard.enable wireguard-tools;
networking.networkmanager.enable = cfg.networkmanager.enable;
networking.nameservers = cfg.nameservers;
networking.firewall = {
enable = cfg.firewall.enable;
allowedTCPPorts = cfg.firewall.allowedTCPPorts;
allowedUDPPorts = cfg.firewall.allowedUDPPorts;
};
};
}

42
modules/nix/openssh.nix Normal file
View File

@@ -0,0 +1,42 @@
{ lib
, pkgs
, config
, ...
}:
with lib; let
cfg = config.simmer.openssh;
in
{
options.simmer.openssh = {
enable = mkOption {
description = "Whether to enable openssh server";
type = types.bool;
default = false;
};
port = mkOption {
description = "What port the server should run on";
type = types.int;
default = 22;
};
allow-password = mkOption {
description = "Whether the server should allow password authenitication" ;
type = types.bool;
default = false;
};
};
config = mkIf cfg.enable {
services.openssh = {
enable = true;
ports = [ cfg.port ];
settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
};
};
};
}

View File

@@ -1,16 +0,0 @@
{ lib
, pkgs
, openssh-port ? 22
, ...
}:
{
services.openssh = {
enable = true;
ports = [ openssh-port ];
settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
};
};
}

View File

@@ -144,6 +144,8 @@ stdenv.mkDerivation (finalAttrs: {
--add-needed ${libgcc.lib}/lib/libasan.so.8 \ --add-needed ${libgcc.lib}/lib/libasan.so.8 \
--add-needed libvulkan.so.1 --add-needed libvulkan.so.1
LD_PRELOAD="${libgcc.lib}/lib/libasan.so.8"
# --debug-layers flag expects these in the path # --debug-layers flag expects these in the path
wrapProgram "$out/bin/gamescope" \ wrapProgram "$out/bin/gamescope" \
--prefix PATH : ${with xorg; lib.makeBinPath [xprop xwininfo]} --prefix PATH : ${with xorg; lib.makeBinPath [xprop xwininfo]}