83 lines
2.8 KiB
Nix
83 lines
2.8 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 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
|
|
}
|