{ config, lib, pkgs, user, ... }: with lib; let awesomeLuaModules = with pkgs.luaPackages; [ luarocks luadbi-mysql ]; in { options = { awesome = { enable = mkOption { type = types.bool; default = false; }; }; }; config = mkIf (config.awesome.enable) { xserver.enable = true; rofi.enable = true; services.xserver = { displayManager = { sddm.enable = true; defaultSession = "none+awesome"; }; windowManager.awesome = { enable = true; luaModules = awesomeLuaModules; }; }; home-manager.users.${user} = { xsession.windowManager = { awesome = { enable = true; luaModules = awesomeLuaModules; }; }; home.activation.installAwesomeWMConfig = '' if [ ! -d "$HOME/.config/awesome" ]; then ln -s "/etc/nixos/modules/desktop/awesome" "$HOME/.config/awesome" chmod -R +w "$HOME/.config/awesome" fi ''; }; }; }