Nix modules: add recommendedEnvironment option

This commit is contained in:
Mihai Fufezan 2022-09-09 15:40:30 +03:00 committed by Mihai Fufezan
parent 928158bbfb
commit 9370c7aa8a
2 changed files with 28 additions and 15 deletions

View file

@ -67,6 +67,16 @@ in {
''; '';
}; };
recommendedEnvironment = lib.mkOption {
type = lib.types.bool;
default = true;
defaultText = lib.literalExpression "true";
example = lib.literalExpression "false";
description = ''
Whether to set the recommended environment variables.
'';
};
imports = [ imports = [
( (
lib.mkRenamedOptionModule lib.mkRenamedOptionModule
@ -81,14 +91,10 @@ in {
lib.optional (cfg.package != null) cfg.package lib.optional (cfg.package != null) cfg.package
++ lib.optional cfg.xwayland.enable pkgs.xwayland; ++ lib.optional cfg.xwayland.enable pkgs.xwayland;
home.sessionVariables = { home.sessionVariables = lib.mkIf cfg.recommendedEnvironment {
CLUTTER_BACKEND = "wayland";
GDK_BACKEND = "wayland"; GDK_BACKEND = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1"; _JAVA_AWT_WM_NONREPARENTING = "1";
MOZ_ENABLE_WAYLAND = "1";
NIXOS_OZONE_WL = "1"; NIXOS_OZONE_WL = "1";
QT_QPA_PLATFORM = "wayland;xcb";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
XCURSOR_SIZE = toString config.home.pointerCursor.size or "24"; XCURSOR_SIZE = toString config.home.pointerCursor.size or "24";
XDG_SESSION_TYPE = "wayland"; XDG_SESSION_TYPE = "wayland";
}; };

View file

@ -30,21 +30,28 @@ in {
Hyprland package to use. Hyprland package to use.
''; '';
}; };
recommendedEnvironment = mkOption {
type = types.bool;
default = true;
defaultText = literalExpression "true";
example = literalExpression "false";
description = ''
Whether to set the recommended environment variables.
'';
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment = { environment = {
systemPackages = lib.optional (cfg.package != null) cfg.package; systemPackages = lib.optional (cfg.package != null) cfg.package;
sessionVariables = {
CLUTTER_BACKEND = lib.mkDefault "wayland"; sessionVariables = mkIf cfg.recommendedEnvironment {
GDK_BACKEND = lib.mkDefault "wayland"; GDK_BACKEND = "wayland";
_JAVA_AWT_WM_NONREPARENTING = lib.mkDefault "1"; _JAVA_AWT_WM_NONREPARENTING = "1";
MOZ_ENABLE_WAYLAND = lib.mkDefault "1"; NIXOS_OZONE_WL = "1";
NIXOS_OZONE_WL = lib.mkDefault "1"; XCURSOR_SIZE = "24";
QT_QPA_PLATFORM = lib.mkDefault "wayland;xcb"; XDG_SESSION_TYPE = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = lib.mkDefault "1";
XCURSOR_SIZE = lib.mkDefault "24";
XDG_SESSION_TYPE = lib.mkDefault "wayland";
}; };
}; };
fonts.enableDefaultFonts = mkDefault true; fonts.enableDefaultFonts = mkDefault true;