nixos/modules/common/desktop.nix
2025-04-17 13:36:43 -04:00

82 lines
1.8 KiB
Nix

{
pkgs,
lib,
config,
flake-self,
...
}: let
cfg = config.lily.desktop;
in {
options.lily.desktop = {
enable = lib.mkEnableOption "activate desktop";
plasma.enable = lib.mkEnableOption "activate plasma desktop environment";
hyprland.enable = lib.mkEnableOption "activate hyprland desktop";
};
config = lib.mkIf cfg.enable {
lily = {
plasma.enable = cfg.plasma.enable;
hyprland.enable = cfg.hyprland.enable;
};
programs = {
dconf.enable = true;
kdeconnect.enable = true;
};
environment.systemPackages = with pkgs; [
vulkan-tools
jq
libqalculate
envsubst
glib
headsetcontrol
];
networking = {
networkmanager.enable = true;
};
fonts = {
enableDefaultPackages = true;
packages = with pkgs; [
jetbrains-mono
noto-fonts-color-emoji
garamond-libre
helvetica-neue-lt-std
# nerd-fonts.jetbrains-mono
];
fontDir.enable = true;
fontconfig = {
defaultFonts = {
monospace = ["JetBrainsMono Bold"];
serif = ["Garamond Libre"];
sansSerif = ["Helvetica Neue LT Std"];
emoji = ["Noto Color Emoji"];
};
};
};
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
audio.enable = true;
wireplumber.enable = true;
pulse.enable = true;
jack.enable = true;
};
# services.printing.enable = true;
# services.flatpak.enable = true;
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
services.udev.packages = [pkgs.headsetcontrol];
# environment.sessionVariables = {
# MOZ_DISABLE_RDD_SANDBOX = "1";
# };
};
}