diff --git a/docs/release-notes/rl-2305.adoc b/docs/release-notes/rl-2305.adoc index 8c737db12..6d16e784a 100644 --- a/docs/release-notes/rl-2305.adoc +++ b/docs/release-notes/rl-2305.adoc @@ -16,4 +16,8 @@ This release has the following notable changes: The state version in this release includes the changes below. These changes are only active if the `home.stateVersion` option is set to "23.05" or later. -* No changes. +* The <>, +<>, +<>, +<>, options now default to `true` which +is consistent with the default values for those options used by `i3` and `sway`. diff --git a/modules/misc/news.nix b/modules/misc/news.nix index 9ed95f3d1..f59d50b59 100644 --- a/modules/misc/news.nix +++ b/modules/misc/news.nix @@ -877,6 +877,15 @@ in A new module is available: 'services.clipman'. ''; } + + { + time = "2023-01-07T10:47:03+00:00"; + condition = hostPlatform.isLinux; + message = '' + 'xsession.windowManager.i3.config.[window|floating].titlebar' and + 'wayland.windowManager.sway.config.[window|floating].titlebar' now default to 'true'. + ''; + } ]; }; } diff --git a/modules/services/window-managers/i3-sway/i3.nix b/modules/services/window-managers/i3-sway/i3.nix index dc4ffc2f1..453367cee 100644 --- a/modules/services/window-managers/i3-sway/i3.nix +++ b/modules/services/window-managers/i3-sway/i3.nix @@ -9,7 +9,6 @@ let commonOptions = import ./lib/options.nix { inherit config lib cfg pkgs; moduleName = "i3"; - isGaps = cfg.package == pkgs.i3-gaps; }; configModule = types.submodule { @@ -209,16 +208,7 @@ in { xsession.windowManager.i3 = { enable = mkEnableOption "i3 window manager"; - package = mkOption { - type = types.package; - default = pkgs.i3; - defaultText = literalExpression "pkgs.i3"; - example = literalExpression "pkgs.i3-gaps"; - description = '' - i3 package to use. - If 'i3.config.gaps' settings are specified, 'pkgs.i3-gaps' will be set as a default package. - ''; - }; + package = mkPackageOption pkgs "i3" { }; config = mkOption { type = types.nullOr configModule; @@ -260,10 +250,7 @@ in { }; } - (mkIf (cfg.config != null) { - xsession.windowManager.i3.package = - mkDefault (if (cfg.config.gaps != null) then pkgs.i3-gaps else pkgs.i3); - }) + (mkIf (cfg.config != null) { xsession.windowManager.i3.package = pkgs.i3; }) (mkIf (cfg.config != null) { warnings = (optional (isList cfg.config.fonts) diff --git a/modules/services/window-managers/i3-sway/lib/options.nix b/modules/services/window-managers/i3-sway/lib/options.nix index 600121e0d..d04a11762 100644 --- a/modules/services/window-managers/i3-sway/lib/options.nix +++ b/modules/services/window-managers/i3-sway/lib/options.nix @@ -1,5 +1,4 @@ -{ config, lib, moduleName, cfg, pkgs, capitalModuleName ? moduleName -, isGaps ? true }: +{ config, lib, moduleName, cfg, pkgs, capitalModuleName ? moduleName }: with lib; @@ -7,6 +6,8 @@ let isI3 = moduleName == "i3"; isSway = !isI3; + inherit (config.home) stateVersion; + fontOptions = types.submodule { options = { names = mkOption { @@ -77,7 +78,7 @@ let barModule = types.submodule { options = let - versionAtLeast2009 = versionAtLeast config.home.stateVersion "20.09"; + versionAtLeast2009 = versionAtLeast stateVersion "20.09"; mkNullableOption = { type, default, ... }@args: mkOption (args // { type = types.nullOr type; @@ -158,7 +159,7 @@ let defaultText = "i3bar"; description = "Command that will be used to start a bar."; example = if isI3 then - "\${pkgs.i3-gaps}/bin/i3bar -t" + "\${pkgs.i3}/bin/i3bar -t" else "\${pkgs.waybar}/bin/waybar"; }; @@ -389,11 +390,17 @@ in { options = { titlebar = mkOption { type = types.bool; - default = !isGaps; - defaultText = if isI3 then - "xsession.windowManager.i3.package != nixpkgs.i3-gaps (titlebar should be disabled for i3-gaps)" + default = if versionOlder stateVersion "23.05" then + (isI3 && (cfg.config.gaps == null)) else - "false"; + true; + defaultText = if isI3 then '' + true for state version ≥ 23.05 + config.gaps == null for state version < 23.05 + '' else '' + true for state version ≥ 23.05 + false for state version < 23.05 + ''; description = "Whether to show window titlebars."; }; @@ -432,11 +439,17 @@ in { options = { titlebar = mkOption { type = types.bool; - default = !isGaps; - defaultText = if isI3 then - "xsession.windowManager.i3.package != nixpkgs.i3-gaps (titlebar should be disabled for i3-gaps)" + default = if versionOlder stateVersion "23.05" then + (isI3 && (cfg.config.gaps == null)) else - "false"; + true; + defaultText = if isI3 then '' + true for state version ≥ 23.05 + config.gaps == null for state version < 23.05 + '' else '' + true for state version ≥ 23.05 + false for state version < 23.05 + ''; description = "Whether to show floating window titlebars."; }; @@ -670,7 +683,7 @@ in { bars = mkOption { type = types.listOf barModule; - default = if versionAtLeast config.home.stateVersion "20.09" then [{ + default = if versionAtLeast stateVersion "20.09" then [{ mode = "dock"; hiddenState = "hide"; position = "bottom"; @@ -826,10 +839,8 @@ in { }; }); default = null; - description = if isSway then '' + description = '' Gaps related settings. - '' else '' - i3Gaps related settings. The i3-gaps package must be used for these features to work. ''; };