i3bar: add support for nonprimary output
Added a new output option `nonprimary` that causes the bar to be displayed on all outputs except the primary one. Fixes #4083
This commit is contained in:
parent
3cd1c45eba
commit
90e7a156a2
@ -29,6 +29,7 @@ working. Please reach out to us in that case!
|
|||||||
• i3-input: add different exit codes for when i3-input fails
|
• i3-input: add different exit codes for when i3-input fails
|
||||||
• allow ppt values in move direction and move position commands
|
• allow ppt values in move direction and move position commands
|
||||||
• i3bar: add coordinates relative to the current output in i3bar click events
|
• i3bar: add coordinates relative to the current output in i3bar click events
|
||||||
|
• i3bar: add “nonprimary” output option
|
||||||
|
|
||||||
┌────────────────────────────┐
|
┌────────────────────────────┐
|
||||||
│ Bugfixes │
|
│ Bugfixes │
|
||||||
|
@ -1484,9 +1484,16 @@ options for different outputs by using multiple 'bar' blocks.
|
|||||||
To make a particular i3bar instance handle multiple outputs, specify the output
|
To make a particular i3bar instance handle multiple outputs, specify the output
|
||||||
directive multiple times.
|
directive multiple times.
|
||||||
|
|
||||||
|
These output names have a special meaning:
|
||||||
|
|
||||||
|
primary::
|
||||||
|
Selects the output that is configured as primary in the X server.
|
||||||
|
nonprimary::
|
||||||
|
Selects every output that is not configured as primary in the X server.
|
||||||
|
|
||||||
*Syntax*:
|
*Syntax*:
|
||||||
---------------
|
---------------
|
||||||
output primary|<output>
|
output primary|nonprimary|<output>
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
*Example*:
|
*Example*:
|
||||||
|
@ -192,11 +192,12 @@ static int outputs_end_map_cb(void *params_) {
|
|||||||
|
|
||||||
/* See if we actually handle that output */
|
/* See if we actually handle that output */
|
||||||
if (config.num_outputs > 0) {
|
if (config.num_outputs > 0) {
|
||||||
|
const bool is_primary = params->outputs_walk->primary;
|
||||||
bool handle_output = false;
|
bool handle_output = false;
|
||||||
for (int c = 0; c < config.num_outputs; c++) {
|
for (int c = 0; c < config.num_outputs; c++) {
|
||||||
if (strcasecmp(params->outputs_walk->name, config.outputs[c]) == 0 ||
|
if ((strcasecmp(params->outputs_walk->name, config.outputs[c]) == 0) ||
|
||||||
(strcasecmp(config.outputs[c], "primary") == 0 &&
|
(strcasecmp(config.outputs[c], "primary") == 0 && is_primary) ||
|
||||||
params->outputs_walk->primary)) {
|
(strcasecmp(config.outputs[c], "nonprimary") == 0 && !is_primary)) {
|
||||||
handle_output = true;
|
handle_output = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user