# Configuration for my xmonad desktop requirements { config, pkgs, ... }: { imports = [../profiles/picom.nix]; services = { devmon.enable = true; # Enable external device automounting. udisks2.enable = true; # Enable udisks2. xserver = { enable = true; # Enable the X11 windowing system. desktopManager = { xterm.enable = false; # Disable NixOS default desktop manager. gnome.enable = false; # Enable GNOME desktop environment plasma5.enable = true; # Enable Plasma desktop environment }; displayManager = { defaultSession = "none+xmonad"; # Set to use xmonad as default gdm.enable = false; # Enable the GNOME display manager sddm.enable = false; # Enable the Plasma display manager lightdm.greeters.pantheon.enable = true; }; layout = "us"; # Set your preferred keyboard layout. libinput = { enable = true; # Enable touchpad support. tapping = true; tappingButtonMap = "lrm"; # Set the touchpad button mappeing }; windowManager = { # Open configuration for the window manager. xmonad.enable = true; # Enable xmonad. xmonad.enableContribAndExtras = true; # Enable xmonad contrib and extras. xmonad.extraPackages = haskellPackages: [ # Open configuration for additional Haskell packages. haskellPackages.dbus haskellPackages.xmonad-contrib # Install xmonad-contrib. haskellPackages.xmonad-extras # Install xmonad-extras. haskellPackages.xmonad ]; }; }; }; sound = { mediaKeys = { enable = true; volumeStep = "5%"; }; }; # Install any additional fonts that I require to be used with xmonad fonts.fonts = with pkgs; [ open-sans # Used in in my polybar configuration ]; # Install other packages that I require to be used with xmonad. environment.systemPackages = with pkgs; [ dunst # Lightweight and customizable notification daemon feh # A light-weight image viewer to set backgrounds haskellPackages.libmpd # Shows MPD status in polybar mpc_cli # CLI for MPD, called from xmonad libnotify # Notification client for my Xmonad setup polybarFull # A fast and easy-to-use tool for creating status bars rofi # run dialog and dmenu replacement flameshot # Powerful yet simple to use screenshot software 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 (haskellPackages.ghcWithPackages (hpkgs: [ hpkgs.xmonad hpkgs.xmonad-contrib ])) ]; programs.dconf.enable = true; programs.light.enable = true; # install backlight control and udev rules }