i3,sway: add bar color options for the focused output #2135
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Both i3bar and swaybar can use different colors for the bar on the currently focused monitor output; add color options for this feature.
It is not possible to add these options using
xsession.windowManager.i3.config.bars.*.extraConfig
while using other bar color options at the same time, because all color options must be inside thecolors { ... }
block, so the only way to useextraConfig
is to move the whole bar color configuration there, losing the convenience of existing options.New tests added for both i3 and sway, and the expected output for existing tests is adjusted (changes are limited to extra blank lines; avoiding the changes completely would result in much less readable code in
modules/services/window-managers/i3-sway/lib/functions.nix
, which would also be significantly different from the code for existing options).New options are not defined using
mkNullableOption
, like the existing options are, becausemkNullableOption
sets the default value to non-null
for state versions < 20.09, and this would break old configs, because these default values would override normal colors that might be configured, so thenull
default is really required.Checklist
Change is backwards compatible.
Code formatted with
./format
.Code tested through
nix-shell --pure tests -A run.all
.Test cases updated/added. See example.
Commit messages are formatted like
See CONTRIBUTING for more information and recent commit messages for examples.