mio-ops/profiles/xmonad.nix

70 lines
2.3 KiB
Nix

# 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 KDE configured to use xmonad as default
gdm.enable = false; # Enable the GNOME display manager
sddm.enable = true; # Enable the Plasma 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 = 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; [
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
haskellPackages.libmpd # Shows MPD status in xmobar
mpc_cli # CLI for MPD, called from xmonad
libnotify # Notification client for my Xmonad setup
scrot # CLI screen capture utility
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
];
programs.dconf.enable = true;
}