Awesome: Difference between revisions
imported>Nix m add Software category |
Added information about using a flake to install the development build of AwesomeWM. Additonally for transparency's sake I would like to mention that I am the developer of the flake mentioned here. |
||
| (5 intermediate revisions by 5 users not shown) | |||
| Line 11: | Line 11: | ||
... | ... | ||
services.displayManager = { | |||
sddm.enable = true; | |||
defaultSession = "none+awesome"; | |||
}; | |||
services.xserver = { | services.xserver = { | ||
enable = true; | enable = true; | ||
windowManager.awesome = { | windowManager.awesome = { | ||
enable = true; | enable = true; | ||
luaModules = with pkgs.luaPackages; [ | luaModules = with pkgs.luaPackages; [ | ||
# add any lua packages required by your configuration here | |||
luarocks # is the package manager for Lua modules | luarocks # is the package manager for Lua modules | ||
luadbi-mysql # Database abstraction layer | luadbi-mysql # Database abstraction layer | ||
]; | ]; | ||
}; | }; | ||
}; | }; | ||
| Line 35: | Line 34: | ||
}} | }} | ||
Similar configuration using | Similar configuration using [[Home Manager]]. | ||
Reference: https://github.com/rycee/home-manager/blob/master/modules/services/window-managers/awesome.nix#blob-path | Reference: https://github.com/rycee/home-manager/blob/master/modules/services/window-managers/awesome.nix#blob-path | ||
| Line 44: | Line 43: | ||
}} | }} | ||
== 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: | |||
{{File|3={ | |||
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 | |||
# ... | |||
]; | |||
}; | |||
}; | |||
}|name=flake.nix|lang=nix}} | |||
And here's how you can install the package: | |||
{{File|3={inputs, pkgs, ...}: { | |||
services.xserver = { | |||
enable = true; | |||
windowManager.awesome = { | |||
enable = true; | |||
package = inputs."awesome-flake".packages.${pkgs.stdenv.hostPlatform.system}.default; | |||
}; | |||
}; | |||
}|name=configuration.nix|lang=nix}} | |||
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 | |||
== References == | == References == | ||
| Line 51: | Line 80: | ||
[[Category:Window managers]] | [[Category:Window managers]] | ||
[[Category: | [[Category:Applications]] | ||
Latest revision as of 20:22, 1 December 2025
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