Compare commits
13 commits
4eb943d047
...
286052b183
Author | SHA1 | Date | |
---|---|---|---|
286052b183 | |||
1dccfba71a | |||
942a0e41bb | |||
94377f7487 | |||
10b28d08e9 | |||
8ca6adecb4 | |||
3ea2d1bbfb | |||
9557d65423 | |||
249b7d7bc0 | |||
2590f106b6 | |||
54f4de49f4 | |||
2cf855bfae | |||
ecf935a4f7 |
|
@ -116,7 +116,7 @@ in
|
||||||
|
|
||||||
# Enable the KDE desktop environment.
|
# Enable the KDE desktop environment.
|
||||||
# https://kde.org/
|
# https://kde.org/
|
||||||
kde.useX11 = false;
|
kde.enable = false;
|
||||||
|
|
||||||
# Enable the XFCE desktop environment.
|
# Enable the XFCE desktop environment.
|
||||||
# https://xfce.org/
|
# https://xfce.org/
|
||||||
|
|
|
@ -45,13 +45,6 @@ in
|
||||||
|
|
||||||
# Set up TPM if enabled. See https://nixos.wiki/wiki/TPM
|
# Set up TPM if enabled. See https://nixos.wiki/wiki/TPM
|
||||||
(lib.mkIf (cfg.tpm2.enable) {
|
(lib.mkIf (cfg.tpm2.enable) {
|
||||||
boot.initrd = {
|
|
||||||
# Enable systemd for TPM auto-unlocking
|
|
||||||
systemd.enable = true;
|
|
||||||
|
|
||||||
availableKernelModules = [ "tpm_crb" ];
|
|
||||||
kernelModules = [ "tpm_crb" ];
|
|
||||||
};
|
|
||||||
# After installing and rebooting, set it up via https://wiki.archlinux.org/title/Systemd-cryptenroll#Trusted_Platform_Module
|
# After installing and rebooting, set it up via https://wiki.archlinux.org/title/Systemd-cryptenroll#Trusted_Platform_Module
|
||||||
environment.systemPackages = with pkgs; [ tpm2-tss ];
|
environment.systemPackages = with pkgs; [ tpm2-tss ];
|
||||||
security.tpm2 = {
|
security.tpm2 = {
|
||||||
|
|
|
@ -15,12 +15,15 @@ in
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
videoDrivers = [ "amdgpu" ];
|
||||||
|
};
|
||||||
|
|
||||||
hardware.graphics = {
|
hardware.opengl = {
|
||||||
extraPackages = [ pkgs.amdvlk ];
|
extraPackages = [ pkgs.amdvlk ];
|
||||||
# 32-bit application compatibility
|
# 32-bit application compatibility
|
||||||
enable32Bit = true;
|
driSupport32Bit = true;
|
||||||
extraPackages32 = with pkgs; [ driversi686Linux.amdvlk ];
|
extraPackages32 = with pkgs; [ driversi686Linux.amdvlk ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,7 +19,7 @@ in
|
||||||
|
|
||||||
environment.variables.VDPAU_DRIVER = "va_gl";
|
environment.variables.VDPAU_DRIVER = "va_gl";
|
||||||
|
|
||||||
hardware.graphics.extraPackages = with pkgs; [
|
hardware.opengl.extraPackages = with pkgs; [
|
||||||
(
|
(
|
||||||
if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then
|
if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then
|
||||||
vaapiIntel
|
vaapiIntel
|
||||||
|
@ -30,7 +30,7 @@ in
|
||||||
intel-media-driver
|
intel-media-driver
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.graphics.extraPackages32 = with pkgs.driversi686Linux; [
|
hardware.opengl.extraPackages32 = with pkgs.driversi686Linux; [
|
||||||
(
|
(
|
||||||
if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then
|
if (lib.versionOlder (lib.versions.majorMinor lib.version) "23.11") then
|
||||||
vaapiIntel
|
vaapiIntel
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
@ -18,9 +19,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
# Install the latest kernel
|
|
||||||
boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
|
||||||
|
|
||||||
# Set up the environment
|
# Set up the environment
|
||||||
environment = {
|
environment = {
|
||||||
# Install base packages
|
# Install base packages
|
||||||
|
|
|
@ -35,7 +35,7 @@ in
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
jack.enable = true;
|
jack.enable = true;
|
||||||
|
|
||||||
# Reduce audio latency per https://nixos.wiki/wiki/PipeWire#Low-latency_setup
|
# Reduce audio latency per https://wiki.nixos.org/wiki/PipeWire#Low-latency_setup
|
||||||
extraConfig.pipewire = lib.mkIf cfg.enableLowLatency {
|
extraConfig.pipewire = lib.mkIf cfg.enableLowLatency {
|
||||||
"92-low-latency.conf" = {
|
"92-low-latency.conf" = {
|
||||||
"context.properties" = {
|
"context.properties" = {
|
||||||
|
|
|
@ -16,18 +16,17 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
aux.system.ui.desktops = {
|
aux.system.ui.desktops.enable = true;
|
||||||
enable = true;
|
|
||||||
displayManager = lib.mkOptionDefault "lightdm";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
desktopManager.budgie.enable =
|
desktopManager.budgie.enable = true;
|
||||||
if config.services.xserver.desktopManager.gnome.enable then
|
displayManager.lightdm.enable = lib.mkIf (
|
||||||
builtins.abort "Budgie and Gnome cannot be enabled at the same time due to a bug. For details and a possible workaround, please see https://discourse.nixos.org/t/help-i-cant-have-pantheon-gnome-and-plasma-installed-on-my-system-at-the-same-time/47346"
|
!(
|
||||||
else
|
config.services.xserver.displayManager.gdm.enable
|
||||||
true;
|
|| config.services.xserver.displayManager.sddm.enable
|
||||||
|
)
|
||||||
|
) true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,23 +21,13 @@ in
|
||||||
variant = "";
|
variant = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
displayManager = lib.mkOption {
|
|
||||||
description = "The display manager to use to start a desktop session.";
|
|
||||||
type = lib.types.enum [
|
|
||||||
"gdm"
|
|
||||||
"lightdm"
|
|
||||||
"sddm"
|
|
||||||
"sddm_wayland"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
aux.system = {
|
aux.system.ui.audio.enable = true;
|
||||||
bluetooth.enable = true;
|
|
||||||
ui.audio.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
};
|
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
# Enable Plymouth for graphical bootsplash.
|
# Enable Plymouth for graphical bootsplash.
|
||||||
|
@ -47,7 +37,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
# Add kernel parameters
|
# Add kernel parameters
|
||||||
kernelParams = [ "quiet" ];
|
kernelParams = [ "quiet" "splash" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
@ -56,23 +46,12 @@ in
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
# Configure keymap in X11
|
|
||||||
xkb = config.aux.system.ui.desktops.xkb;
|
|
||||||
|
|
||||||
# Set the display manager
|
|
||||||
displayManager = {
|
|
||||||
gdm.enable = (cfg.displayManager == "gdm");
|
|
||||||
lightdm.enable = (cfg.displayManager == "lightdm");
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
displayManager = {
|
|
||||||
sddm.enable = (cfg.displayManager == "sddm");
|
|
||||||
sddm.wayland.enable = (cfg.displayManager == "sddm_wayland");
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled by default in most desktop managers, buuuut just in case).
|
# Enable touchpad support (enabled by default in most desktop managers, buuuut just in case).
|
||||||
libinput.enable = true;
|
libinput.enable = true;
|
||||||
|
|
||||||
|
# Configure keymap in X11
|
||||||
|
xkb = config.aux.system.ui.desktops.xkb;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Support for AppImage files
|
# Support for AppImage files
|
||||||
|
|
|
@ -16,17 +16,15 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
aux.system.ui.desktops = {
|
aux.system.ui.desktops.enable = true;
|
||||||
enable = true;
|
|
||||||
displayManager = lib.mkOverride 500 "gdm";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable Gnome
|
# Enable Gnome
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
# Remove default packages that came with the install
|
# Remove default packages that came with the install
|
||||||
excludePackages = [ pkgs.xterm ];
|
excludePackages = [ pkgs.xterm ];
|
||||||
|
|
||||||
desktopManager.gnome.enable = lib.mkDefault true;
|
desktopManager.gnome.enable = true;
|
||||||
|
displayManager.gdm.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
|
@ -46,9 +44,6 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Manually set askPassword to avoid a conflict with KDE
|
|
||||||
programs.ssh.askPassword = "${pkgs.gnome.seahorse}/libexec/seahorse/ssh-askpass";
|
|
||||||
|
|
||||||
# Gnome UI integration for KDE apps
|
# Gnome UI integration for KDE apps
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -18,10 +18,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
aux.system.ui.desktops = {
|
aux.system.ui.desktops.enable = true;
|
||||||
enable = true;
|
|
||||||
displayManager = if cfg.useX11 then lib.mkDefault "sddm" else lib.mkDefault "sddm_wayland";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
|
@ -33,9 +30,18 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
displayManager.sddm.enable = true;
|
||||||
desktopManager.plasma6.enable = true;
|
desktopManager.plasma6.enable = true;
|
||||||
|
|
||||||
xserver.displayManager = lib.mkIf cfg.useX11 { defaultSession = "plasmaX11"; };
|
xserver.displayManager = lib.mkIf cfg.useX11 {
|
||||||
|
defaultSession = "plasmaX11";
|
||||||
|
sddm.wayland.enable = lib.mkIf (
|
||||||
|
!(
|
||||||
|
config.services.xserver.displayManager.gdm.enable
|
||||||
|
|| config.services.xserver.displayManager.lightdm.enable
|
||||||
|
)
|
||||||
|
) true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable Gnome integration
|
# Enable Gnome integration
|
||||||
|
|
|
@ -16,20 +16,15 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
aux.system.ui.desktops = {
|
aux.system.ui.desktops.enable = true;
|
||||||
enable = true;
|
|
||||||
displayManager = lib.mkOptionDefault "lightdm";
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services.xserver = {
|
||||||
displayManager.defaultSession = "xfce";
|
|
||||||
xserver = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
desktopManager = {
|
desktopManager = {
|
||||||
xterm.enable = false;
|
xterm.enable = false;
|
||||||
xfce.enable = true;
|
xfce.enable = true;
|
||||||
};
|
};
|
||||||
};
|
displayManager.defaultSession = "xfce";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,8 +66,8 @@ with lib;
|
||||||
aggregatedIcons = pkgs.buildEnv {
|
aggregatedIcons = pkgs.buildEnv {
|
||||||
name = "system-icons";
|
name = "system-icons";
|
||||||
paths = with pkgs; [
|
paths = with pkgs; [
|
||||||
(lib.mkIf config.aux.system.ui.desktops.gnome.enable gnome.gnome-themes-extra)
|
(lib.mkIf config.aux.system.ui.gnome.enable gnome.gnome-themes-extra)
|
||||||
(lib.mkIf config.aux.system.ui.desktops.kde.enable kdePackages.breeze-icons)
|
(lib.mkIf config.aux.system.ui.kde.enable kdePackages.breeze-icons)
|
||||||
];
|
];
|
||||||
pathsToLink = [ "/share/icons" ];
|
pathsToLink = [ "/share/icons" ];
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue