102 lines
2.3 KiB
Nix
102 lines
2.3 KiB
Nix
# TODO: Proper desktop module
|
|
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
username,
|
|
...
|
|
}: {
|
|
# Needed for nvidia and steam
|
|
nixpkgs.config.allowUnfree = true;
|
|
|
|
settei.user.config = {
|
|
common.desktop.enable = true;
|
|
home.packages = with pkgs; [brightnessctl dmenu];
|
|
|
|
xsession.windowManager.i3 = {
|
|
enable = true;
|
|
config = {
|
|
terminal = "wezterm";
|
|
modifier = "Mod4";
|
|
};
|
|
};
|
|
|
|
home.file.".xinitrc".source = pkgs.writeShellScript "xinitrc" ''
|
|
xrandr --setprovideroutputsource modesetting NVIDIA-0
|
|
xrandr --auto
|
|
exec dbus-run-session i3
|
|
'';
|
|
};
|
|
|
|
programs.steam = {
|
|
enable = true;
|
|
remotePlay.openFirewall = true;
|
|
dedicatedServer.openFirewall = true;
|
|
gamescopeSession = {};
|
|
};
|
|
|
|
hardware.steam-hardware.enable = true;
|
|
|
|
services.logind =
|
|
lib.genAttrs
|
|
["lidSwitch" "lidSwitchDocked" "lidSwitchExternalPower"]
|
|
(_: "ignore");
|
|
|
|
services.pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
pulse.enable = true;
|
|
};
|
|
|
|
programs.dconf.enable = true;
|
|
services.dbus.enable = true;
|
|
|
|
users.users.${username}.extraGroups = ["video" "input"];
|
|
|
|
# NVIDIA stuff
|
|
services.xserver = {
|
|
enable = true;
|
|
excludePackages = [pkgs.xterm];
|
|
videoDrivers = ["nvidia"];
|
|
xkb.layout = "pl";
|
|
displayManager.startx.enable = true;
|
|
config = lib.mkForce ''
|
|
Section "OutputClass"
|
|
Identifier "intel"
|
|
MatchDriver "i915"
|
|
Driver "modesetting"
|
|
EndSection
|
|
|
|
Section "OutputClass"
|
|
Identifier "nvidia"
|
|
MatchDriver "nvidia-drm"
|
|
Driver "nvidia"
|
|
Option "AllowEmptyInitialConfiguration"
|
|
Option "PrimaryGPU" "yes"
|
|
ModulePath "${config.hardware.nvidia.package.bin}/lib/xorg/modules"
|
|
ModulePath "${pkgs.xorg.xorgserver}/lib/xorg/modules"
|
|
EndSection
|
|
|
|
Section "InputClass"
|
|
Identifier "touchpad"
|
|
Driver "libinput"
|
|
MatchIsTouchpad "on"
|
|
Option "Tapping" "on"
|
|
Option "TappingButtonMap" "lrm"
|
|
Option "NaturalScrolling" "true"
|
|
EndSection
|
|
'';
|
|
exportConfiguration = true;
|
|
libinput.enable = true;
|
|
};
|
|
|
|
hardware.nvidia = {
|
|
patch.enable = true;
|
|
modesetting.enable = true;
|
|
};
|
|
|
|
hardware.opengl = {
|
|
enable = true;
|
|
driSupport32Bit = true;
|
|
};
|
|
}
|