mio-ops/profiles/xmonad.nix

83 lines
2.8 KiB
Nix
Raw Normal View History

2019-10-26 23:12:04 +00:00
# Configuration for my xmonad desktop requirements
{
2022-03-07 14:26:15 +00:00
config,
pkgs,
...
}: {
imports = [../profiles/picom.nix];
2021-05-13 00:35:35 +00:00
2020-04-21 08:23:43 +00:00
services = {
2021-11-16 04:57:23 +00:00
devmon.enable = true; # Enable external device automounting.
udisks2.enable = true; # Enable udisks2.
2020-04-21 08:23:43 +00:00
xserver = {
2021-11-16 04:57:23 +00:00
enable = true; # Enable the X11 windowing system.
2020-04-21 08:23:43 +00:00
desktopManager = {
2021-11-16 04:57:23 +00:00
xterm.enable = false; # Disable NixOS default desktop manager.
2022-03-07 14:26:15 +00:00
gnome.enable = false; # Enable GNOME desktop environment
plasma5.enable = true; # Enable Plasma desktop environment
2020-04-21 08:23:43 +00:00
};
displayManager = {
2023-09-06 00:59:19 +00:00
defaultSession = "none+xmonad"; # Set to use xmonad as default
2022-03-07 14:26:15 +00:00
gdm.enable = false; # Enable the GNOME display manager
2023-09-06 00:59:19 +00:00
sddm.enable = false; # Enable the Plasma display manager
lightdm.greeters.pantheon.enable = true;
2020-04-21 08:23:43 +00:00
};
2021-11-16 04:57:23 +00:00
layout = "us"; # Set your preferred keyboard layout.
2023-12-05 10:30:21 +00:00
libinput = {
enable = true; # Enable touchpad support.
tapping = true;
tappingButtonMap = "lrm"; # Set the touchpad button mappeing
};
2022-03-07 14:26:15 +00:00
windowManager = {
# Open configuration for the window manager.
2021-11-16 04:57:23 +00:00
xmonad.enable = true; # Enable xmonad.
xmonad.enableContribAndExtras =
true; # Enable xmonad contrib and extras.
2022-03-07 14:26:15 +00:00
xmonad.extraPackages = haskellPackages: [
# Open configuration for additional Haskell packages.
haskellPackages.dbus
haskellPackages.xmonad-contrib # Install xmonad-contrib.
haskellPackages.xmonad-extras # Install xmonad-extras.
2022-05-31 01:31:46 +00:00
haskellPackages.xmonad
2022-03-07 14:26:15 +00:00
];
2020-04-21 08:23:43 +00:00
};
};
2019-10-26 23:12:04 +00:00
};
sound = {
mediaKeys = {
enable = true;
volumeStep = "5%";
};
};
# Install any additional fonts that I require to be used with xmonad
2022-03-07 14:26:15 +00:00
fonts.fonts = with pkgs; [
2023-09-06 00:59:19 +00:00
open-sans # Used in in my polybar configuration
2022-03-07 14:26:15 +00:00
];
2019-10-26 23:12:04 +00:00
# Install other packages that I require to be used with xmonad.
environment.systemPackages = with pkgs; [
dunst # Lightweight and customizable notification daemon
2021-11-16 04:57:23 +00:00
feh # A light-weight image viewer to set backgrounds
2023-09-06 00:59:19 +00:00
haskellPackages.libmpd # Shows MPD status in polybar
2021-11-16 04:57:23 +00:00
mpc_cli # CLI for MPD, called from xmonad
2022-03-16 23:04:46 +00:00
libnotify # Notification client for my Xmonad setup
2023-09-06 00:59:19 +00:00
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
2021-11-16 04:57:23 +00:00
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
2023-09-06 00:59:19 +00:00
(haskellPackages.ghcWithPackages (hpkgs: [
hpkgs.xmonad
hpkgs.xmonad-contrib
]))
2019-10-26 23:12:04 +00:00
];
2020-05-04 09:03:21 +00:00
programs.dconf.enable = true;
2023-09-06 00:59:19 +00:00
programs.light.enable = true; # install backlight control and udev rules
2019-10-26 23:12:04 +00:00
}