2023-12-13 02:45:29 +00:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
let
|
|
|
|
hostCfg = config.hosts.ni;
|
|
|
|
cfg = hostCfg.setups.desktop;
|
2023-12-16 11:58:17 +00:00
|
|
|
|
|
|
|
hasAnyWorkflowEnabled = workflows:
|
2024-05-18 00:50:14 +00:00
|
|
|
lib.lists.any (workflow: lib.elem workflow config.workflows.enable) workflows;
|
2023-12-13 02:45:29 +00:00
|
|
|
in
|
|
|
|
{
|
|
|
|
options.hosts.ni.setups.desktop.enable =
|
|
|
|
lib.mkEnableOption "desktop environment setup";
|
|
|
|
|
2023-12-16 11:58:17 +00:00
|
|
|
config = lib.mkIf cfg.enable (lib.mkMerge [
|
|
|
|
{
|
|
|
|
# Bring all of the desktop goodies.
|
2024-01-22 06:48:55 +00:00
|
|
|
suites.desktop = {
|
2023-12-16 11:58:17 +00:00
|
|
|
enable = true;
|
|
|
|
cleanup.enable = true;
|
|
|
|
};
|
2023-12-13 02:45:29 +00:00
|
|
|
|
2024-01-25 10:52:40 +00:00
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
# Setup the WINE environment.
|
|
|
|
wineWowPackages.stable
|
|
|
|
bottles # The Windows environment package manager.
|
|
|
|
];
|
|
|
|
|
2023-12-16 11:58:17 +00:00
|
|
|
# Apparently the Emacs of 3D artists.
|
|
|
|
programs.blender = {
|
|
|
|
enable = true;
|
|
|
|
package = pkgs.blender-foodogsquared;
|
|
|
|
addons = with pkgs; [
|
|
|
|
blender-blendergis
|
|
|
|
blender-machin3tools
|
|
|
|
];
|
|
|
|
};
|
2023-12-13 02:45:29 +00:00
|
|
|
|
2023-12-16 11:58:17 +00:00
|
|
|
# Make it in multiple languages. Take note the input method engine is set
|
|
|
|
# up by the workflow module of choice...
|
2024-01-22 06:48:55 +00:00
|
|
|
suites.i18n.enable = true;
|
2023-12-13 02:45:29 +00:00
|
|
|
|
2023-12-16 11:58:17 +00:00
|
|
|
# ...which is by the way is this one.
|
2024-05-18 00:50:14 +00:00
|
|
|
workflows.enable = [ "a-happy-gnome" ];
|
2023-12-16 11:58:17 +00:00
|
|
|
}
|
2023-12-13 02:45:29 +00:00
|
|
|
|
2024-03-27 08:40:24 +00:00
|
|
|
(lib.mkIf (hasAnyWorkflowEnabled [ "a-happy-gnome" "knome" ]) {
|
2023-12-16 11:58:17 +00:00
|
|
|
hosts.ni.networking.setup = "networkmanager";
|
2024-01-22 06:48:55 +00:00
|
|
|
suites.i18n.setup = "ibus";
|
2023-12-16 11:58:17 +00:00
|
|
|
})
|
|
|
|
]);
|
2023-12-13 02:45:29 +00:00
|
|
|
}
|