Personal-NixOS-Configuration/modules/nixos/cspark-desktop-plasma/module.nix

78 lines
2.2 KiB
Nix

{ lib, config, pkgs, modulesPath, ... }:
let
cfg = config.cspark-desktop-plasma;
in
{
options.cspark-desktop-plasma = {
enable
= lib.mkEnableOption "Enable Custom Plasma Desktop Setup";
};
config = lib.mkIf cfg.enable {
services.xserver = {
# Enable the X11 windowing system.
enable = true;
# Remove/disable xterm, we are using Konsole.
desktopManager.xterm.enable = false;
excludePackages = with pkgs; [ xterm ];
# Enable the SDDM display manager
displayManager.sddm = {
enable = true;
wayland.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# libinput.enable = true;
};
# Enable the KDE Plasma Desktop Environment.
services.desktopManager.plasma6.enable = true;
environment.plasma6.excludePackages = with pkgs.kdePackages; [ elisa ];
# GTK themes are not applied in Wayland applications / Window Decorations missing / Cursor looks different
programs.dconf.enable = true;
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Set konsole to be default terminal
environment.sessionVariables = {
TERM = "konsole";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
};
environment.variables = {
TERM = "konsole";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
};
environment.systemPackages = with pkgs; [
wl-clipboard
wev # Clone of X11 xev for wayland
# libsForQt5.polonium
];
};
}