mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-01-31 16:57:55 +00:00
52 lines
1.3 KiB
Nix
52 lines
1.3 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
let
|
|
hostCfg = config.hosts.ni;
|
|
cfg = hostCfg.setups.desktop;
|
|
|
|
hasAnyWorkflowEnabled = workflows:
|
|
lib.lists.any (workflow: lib.elem workflow config.workflows.enable) workflows;
|
|
in
|
|
{
|
|
options.hosts.ni.setups.desktop.enable =
|
|
lib.mkEnableOption "desktop environment setup";
|
|
|
|
config = lib.mkIf cfg.enable (lib.mkMerge [
|
|
{
|
|
# Bring all of the desktop goodies.
|
|
suites.desktop = {
|
|
enable = true;
|
|
cleanup.enable = true;
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
# Setup the WINE environment.
|
|
wineWowPackages.stable
|
|
bottles # The Windows environment package manager.
|
|
];
|
|
|
|
# Apparently the Emacs of 3D artists.
|
|
programs.blender = {
|
|
enable = true;
|
|
package = pkgs.blender-foodogsquared;
|
|
addons = with pkgs; [
|
|
blender-blendergis
|
|
blender-machin3tools
|
|
];
|
|
};
|
|
|
|
# Make it in multiple languages. Take note the input method engine is set
|
|
# up by the workflow module of choice...
|
|
suites.i18n.enable = true;
|
|
|
|
# ...which is by the way is this one.
|
|
workflows.enable = [ "a-happy-gnome" ];
|
|
}
|
|
|
|
(lib.mkIf (hasAnyWorkflowEnabled [ "a-happy-gnome" "knome" ]) {
|
|
hosts.ni.networking.setup = "networkmanager";
|
|
suites.i18n.setup = "ibus";
|
|
})
|
|
]);
|
|
}
|