Awesome
awesome is a highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license.
Enabling
To enable awesomeWM set services.xserver.windowManager.awesome.enable to true. For example:
{ config, pkgs, ... }:
...
services.displayManager = {
sddm.enable = true;
defaultSession = "none+awesome";
};
services.xserver = {
enable = true;
windowManager.awesome = {
enable = true;
luaModules = with pkgs.luaPackages; [
# add any lua packages required by your configuration here
luarocks # is the package manager for Lua modules
luadbi-mysql # Database abstraction layer
];
};
};
...
}
Similar configuration using Home Manager.
Awesome provides a default config file rc.lua which is generated at
/run/current-system/sw/etc/xdg/awesome/rc.lua. Copy the file to ~/.config/awesome/ and make changes.
AwesomeWM Flake
If you wish to run the development build of AwesomeWM (i.e. the source code at the git master branch), you can use a flake as shown below:
{
inputs = {
# ...
awesome-flake.url = "github:Souheab/awesomewm-git-nix-flake";
};
outputs = {nixpkgs, ...} @ inputs: {
nixosConfigurations.YOUR_HOSTNAME = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
./configuration.nix
# ...
];
};
};
}
And here's how you can install the package:
{inputs, pkgs, ...}: {
services.xserver = {
enable = true;
windowManager.awesome = {
enable = true;
package = inputs."awesome-flake".packages.${pkgs.stdenv.hostPlatform.system}.default;
};
};
}
Note: This uses an unofficial third party flake which is not officially associated with the AwesomeWM project
Flake reference: https://github.com/Souheab/awesomewm-git-nix-flake