# Configuration for my xmonad desktop requirements { config, pkgs, ... }: { imports = [ ../profiles/picom.nix ]; services = { devmon.enable = true; # Enable external device automounting. udev = { packages = with pkgs; [ gnome3.gnome-settings-daemon ]; }; udisks2.enable = true; # Enable udisks2. xserver = { enable = true; # Enable the X11 windowing system. desktopManager = { xterm.enable = false; # Disable NixOS default desktop manager. gnome3.enable = true; # Enable GNOME desktop environment }; displayManager = { defaultSession = "none+xmonad"; # Set xmonad as the default window manager. gdm.enable = true; # Enable the GNOME display manager }; layout = "us"; # Set your preferred keyboard layout. libinput.enable = true; # Enable touchpad support. windowManager = { # Open configuration for the window manager. xmonad.enable = true; # Enable xmonad. xmonad.enableContribAndExtras = true; # Enable xmonad contrib and extras. xmonad.extraPackages = hpkgs: [ # Open configuration for additional Haskell packages. hpkgs.xmonad-contrib # Install xmonad-contrib. hpkgs.xmonad-extras # Install xmonad-extras. hpkgs.xmonad # Install xmonad itself. ]; }; }; }; sound = { mediaKeys = { enable = true; volumeStep = "5%"; }; }; # Install any additional fonts that I require to be used with xmonad fonts.fonts = with pkgs; [ opensans-ttf # Used in in my xmobar configuration ]; # Install other packages that I require to be used with xmonad. environment.systemPackages = with pkgs; [ feh # A light-weight image viewer to set backgrounds gnome-themes-extra # Provides Adwaita-dark gnome3.gnome-tweaks # A tool to customize advanced GNOME 3 options haskellPackages.libmpd # Shows MPD status in xmobar haskellPackages.xmobar # A minimalistic text based status bar haskellPackages.xmonad # Required for user rebuild with (ie: [alt]+Q) haskellPackages.xmonad-extras # Required for user rebuild with (ie: [alt]+Q) haskellPackages.xmonad-contrib # Required for user rebuild with (ie: [alt]+Q) libnotify # Notification client for my Xmonad setup lxqt.lxqt-notificationd # The notify daemon itself mpc_cli # CLI for MPD, called from xmonad scrot # CLI screen capture utility trayer # A system tray for use with xmonad xbrightness # X11 brigthness and gamma software control xflux # Adjusts your screen to emit warmer light at night xorg.xrandr # CLI to X11 RandR extension xscreensaver # My preferred screensaver xsettingsd # A lightweight desktop settings server ]; programs.dconf.enable = true; }