chore: reorganize desktop environment configuration

Cleanup existing desktop environment configuration to allow adding more
desktop environments with shared configs.

Signed-off-by: Chinmay D. Pai <chinmaydpai@gmail.com>
This commit is contained in:
Chinmay D. Pai 2024-09-22 16:43:37 +05:30
parent 66e7dab5aa
commit dfd6c1d42b
Signed by: thunderbottom
GPG Key ID: 75507BE256F40CED
3 changed files with 18 additions and 14 deletions

View File

@ -4,7 +4,10 @@
pkgs, pkgs,
... ...
}: { }: {
options.snowflake.desktop.enable = lib.mkEnableOption "Enable core Desktop Environment configuration"; options.snowflake.desktop = {
enable = lib.mkEnableOption "Enable core Desktop Environment configuration";
fingerprint.enable = lib.mkEnableOption "Enable fingerprint support for Desktop Environments";
};
config = lib.mkIf config.snowflake.desktop.enable { config = lib.mkIf config.snowflake.desktop.enable {
snowflake = { snowflake = {
@ -41,6 +44,12 @@
LIBVA_DRIVER_NAME = "iHD"; LIBVA_DRIVER_NAME = "iHD";
}; };
# Enable fingerprint authentication.
# Requires fingerprint registered using `fprint-enroll` to work.
services.fprintd.enable = true;
services.libinput.enable = true;
services.xserver.enable = true;
# Prevents xterm from being installed. # Prevents xterm from being installed.
# Prefer installing a custom terminal emulator instead. # Prefer installing a custom terminal emulator instead.
services.xserver.excludePackages = [pkgs.xterm]; services.xserver.excludePackages = [pkgs.xterm];
@ -53,6 +62,13 @@
# Additional configuration will be done through individual # Additional configuration will be done through individual
# desktop environment configurations. # desktop environment configurations.
xdg.portal.enable = true; xdg.portal.enable = true;
# Additional configuration for XDG Portal.
xdg.portal.wlr.enable = true;
xdg.portal.xdgOpenUsePortal = true;
xdg.portal.extraPortals = with pkgs; [
xdg-desktop-portal-gtk
xdg-desktop-portal-kde
];
# Set environment variables for the system. # Set environment variables for the system.
environment.variables = { environment.variables = {

View File

@ -10,21 +10,12 @@
config = lib.mkIf config.snowflake.desktop.kde.enable { config = lib.mkIf config.snowflake.desktop.kde.enable {
services = { services = {
libinput.enable = true;
xserver = {
enable = true;
};
displayManager.sddm = { displayManager.sddm = {
enable = true; enable = true;
wayland.enable = true; wayland.enable = true;
wayland.compositor = "kwin"; wayland.compositor = "kwin";
}; };
desktopManager.plasma6.enable = true; desktopManager.plasma6.enable = true;
# Enable fingerprint authentication.
# Requires fingerprint registered using `fprint-enroll` to work.
fprintd.enable = true;
}; };
# Remove bloatware that we do not require. # Remove bloatware that we do not require.
@ -39,11 +30,7 @@
# SDDM does not work well with fingerprint authentication. # SDDM does not work well with fingerprint authentication.
security.pam.services.login.fprintAuth = false; security.pam.services.login.fprintAuth = false;
# Additional configuration for XDG Portal.
xdg.portal.wlr.enable = true;
xdg.portal.xdgOpenUsePortal = true;
xdg.portal.extraPortals = with pkgs; [ xdg.portal.extraPortals = with pkgs; [
xdg-desktop-portal-gtk
xdg-desktop-portal-kde xdg-desktop-portal-kde
]; ];

View File

@ -54,6 +54,7 @@
core.docker.storageDriver = "btrfs"; core.docker.storageDriver = "btrfs";
desktop.enable = true; desktop.enable = true;
desktop.fingerprint.enable = true;
desktop.kde.enable = true; desktop.kde.enable = true;
gaming.steam.enable = true; gaming.steam.enable = true;