forked from aylac.top/nixcfg
this repo has no description
1{ 2 pkgs, 3 config, 4 lib, 5 ... 6}: { 7 imports = [ 8 ./gnome 9 ./plasma 10 ]; 11 12 options.myNixOS.desktop.enable = lib.mkOption { 13 default = 14 config.myNixOS.desktop.gnome.enable or config.myNixOS.desktop.hyprland.enable 15 or config.myNixOS.desktop.kde.enable; 16 description = "Desktop environment configuration."; 17 type = lib.types.bool; 18 }; 19 20 config = lib.mkIf config.myNixOS.desktop.enable { 21 boot = { 22 consoleLogLevel = 0; 23 initrd.verbose = false; 24 plymouth.enable = true; 25 }; 26 27 environment = { 28 sessionVariables.NIXOS_OZONE_WL = "1"; 29 30 # stem darkening for prettier fonts 31 variables = { 32 FREETYPE_PROPERTIES = "autofitter:no-stem-darkening=0 autofitter:darkening-parameters=500,0,1000,500,2500,500,4000,0 cff:no-stem-darkening=0 type1:no-stem-darkening=0 t1cid:no-stem-darkening=0"; 33 QT_NO_SYNTHESIZED_BOLD = 1; 34 }; 35 }; 36 37 # other font settings 38 fonts = { 39 fontconfig = { 40 enable = true; 41 includeUserConf = true; 42 subpixel = { 43 lcdfilter = "none"; 44 rgba = "none"; 45 }; 46 antialias = true; 47 hinting = { 48 enable = true; 49 style = "slight"; 50 autohint = false; 51 }; 52 53 # have i told you how much i despise fontconfig. literally zero reason to pick bitmap fonts over noto fonts but it always does. 54 localConf = '' 55 <?xml version="1.0"?> 56 <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> 57 <fontconfig> 58 <description>Reject bitmap fonts except bitmap emoji fonts</description> 59 <!-- Reject bitmap fonts --> 60 <selectfont> 61 <rejectfont> 62 <pattern> 63 <patelt name="outline"><bool>false</bool></patelt> 64 <patelt name="scalable"><bool>false</bool></patelt> 65 </pattern> 66 </rejectfont> 67 </selectfont> 68 </fontconfig> 69 ''; 70 }; 71 72 packages = with pkgs; [ 73 noto-fonts 74 noto-fonts-cjk-sans 75 noto-fonts-emoji 76 noto-fonts-color-emoji 77 nerd-fonts.jetbrains-mono 78 ]; 79 }; 80 81 home-manager.sharedModules = [ 82 { 83 config.myHome.desktop.enable = true; 84 } 85 ]; 86 87 programs.system-config-printer.enable = true; 88 89 services = { 90 avahi = { 91 enable = true; 92 nssmdns4 = true; 93 openFirewall = true; 94 95 publish = { 96 enable = true; 97 addresses = true; 98 userServices = true; 99 workstation = true; 100 }; 101 }; 102 103 gnome.gnome-keyring.enable = true; 104 gvfs.enable = true; # Mount, trash, etc. 105 libinput.enable = true; 106 107 pipewire = { 108 enable = true; 109 110 alsa = { 111 enable = true; 112 support32Bit = true; 113 }; 114 115 pulse.enable = true; 116 }; 117 118 printing.enable = false; 119 120 pulseaudio = { 121 support32Bit = true; 122 }; 123 124 system-config-printer.enable = true; 125 126 xserver = { 127 enable = true; 128 excludePackages = with pkgs; [xterm]; 129 }; 130 }; 131 132 system.nixos.tags = ["desktop"]; 133 }; 134}