{ config, lib, pkgs, ... }: with lib; let profile = config.fudo.common.profile; common-packages = with pkgs; [ ffmpeg-full libfixposix mono nomacs python37Packages.youtube-dl sqlite system-config-printer ]; gui-packages = with pkgs; [ cool-retro-term corefonts chrome-gnome-shell chromium emacs evince firefox gimp glxinfo gnome3.gnome-shell gnome3.gnome-session google-chrome gtk2 gtk2-x11 gtk3 gtkimageview i3lock mplayer mpv pdftk racket redshift rhythmbox shotwell spotify (steam.override { nativeOnly = true; extraPkgs = pkgs: [ mono fmodex gtk3 gtk3-x11 libgdiplus zlib ]; withJava = true; }).run virtmanager xorg.xev xzgv virtmanager-qt ]; cfg = config.fudo.common; in mkIf ((profile == "desktop") || (profile == "laptop")) { environment.systemPackages = common-packages ++ (if cfg.enable-gui then gui-packages else []); nixpkgs.config.allowBroken = true; services.avahi = { enable = true; browseDomains = [config.fudo.common.domain]; domainName = config.fudo.common.domain; }; # splash screen boot.plymouth.enable = false; boot.tmpOnTmpfs = true; services.xserver = if cfg.enable-gui then { enable = true; layout = "us"; xkbVariant = "dvp"; xkbOptions = "ctrl:nocaps"; desktopManager.gnome3.enable = true; displayManager.gdm.enable = true; # displayManager.defaultSession = "gnome"; windowManager.stumpwm.enable = true; # windowManager.session = pkgs.lib.singleton { # name = "stumpwm"; # start = '' # ${pkgs.lispPackages.stumpwm}/bin/stumpwm & # waidPID=$! # ''; # }; } else { layout = "us"; xkbVariant = "dvp"; xkbOptions = "ctrl:nocaps"; }; services.gnome3 = mkIf cfg.enable-gui { evolution-data-server.enable = pkgs.lib.mkForce false; gnome-user-share.enable = pkgs.lib.mkForce false; }; services.dbus.socketActivated = true; sound.enable = true; hardware.pulseaudio.enable = true; fonts = mkIf cfg.enable-gui { enableFontDir = true; #fontconfig.antialias = true; fontconfig.enable = true; #fontconfig.penultimate.enable = true; #fontconfig.subpixel.lcdfilter = "default"; fonts = with pkgs; [ cantarell_fonts dejavu_fonts dina-font dosemu_fonts fira-code fira-code-symbols freefont_ttf liberation_ttf mplus-outline-fonts #nerdfonts noto-fonts noto-fonts-cjk noto-fonts-emoji proggyfonts terminus_font ubuntu_font_family ucsFonts ultimate-oldschool-pc-font-pack unifont vistafonts xlibs.fontadobe100dpi xlibs.fontadobe75dpi xlibs.fontadobeutopia100dpi xlibs.fontadobeutopia75dpi xlibs.fontadobeutopiatype1 xlibs.fontarabicmisc xlibs.fontbh100dpi xlibs.fontbh75dpi xlibs.fontbhlucidatypewriter100dpi xlibs.fontbhlucidatypewriter75dpi xlibs.fontbhttf xlibs.fontbhtype1 xlibs.fontbitstream100dpi xlibs.fontbitstream75dpi xlibs.fontbitstreamtype1 xlibs.fontcronyxcyrillic xlibs.fontcursormisc xlibs.fontdaewoomisc xlibs.fontdecmisc xlibs.fontibmtype1 xlibs.fontisasmisc xlibs.fontjismisc xlibs.fontmicromisc xlibs.fontmisccyrillic xlibs.fontmiscethiopic xlibs.fontmiscmeltho xlibs.fontmiscmisc xlibs.fontmuttmisc xlibs.fontschumachermisc xlibs.fontscreencyrillic xlibs.fontsonymisc xlibs.fontsunmisc xlibs.fontwinitzkicyrillic xlibs.fontxfree86type1 ]; }; }