nixos/modules/common/desktop.nix

91 lines
2 KiB
Nix
Raw Normal View History

2025-03-29 21:03:07 -04:00
{
pkgs,
lib,
config,
2025-04-01 12:16:35 -04:00
inputs,
2025-03-29 21:03:07 -04:00
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
2025-04-01 12:16:35 -04:00
flatpak
2025-03-29 21:03:07 -04:00
];
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;
2025-04-01 12:16:35 -04:00
services.flatpak.enable = true;
2025-03-29 21:03:07 -04:00
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
services.udev.packages = [pkgs.headsetcontrol];
# environment.sessionVariables = {
# MOZ_DISABLE_RDD_SANDBOX = "1";
# };
2025-04-01 12:16:35 -04:00
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
# Add any missing dynamic libraries for unpackaged programs
# here, NOT in environment.systemPackages
];
2025-03-29 21:03:07 -04:00
};
}