mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-23 02:05:33 +07:00
Add disable-monitor-names debug flag
This commit is contained in:
@@ -1535,6 +1535,8 @@ pub struct DebugConfig {
|
|||||||
pub disable_transactions: bool,
|
pub disable_transactions: bool,
|
||||||
#[knuffel(child)]
|
#[knuffel(child)]
|
||||||
pub keep_laptop_panel_on_when_lid_is_closed: bool,
|
pub keep_laptop_panel_on_when_lid_is_closed: bool,
|
||||||
|
#[knuffel(child)]
|
||||||
|
pub disable_monitor_names: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(knuffel::DecodeScalar, Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(knuffel::DecodeScalar, Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
|
|||||||
+34
-5
@@ -749,7 +749,12 @@ impl Tty {
|
|||||||
|
|
||||||
let device = self.devices.get_mut(&node).context("missing device")?;
|
let device = self.devices.get_mut(&node).context("missing device")?;
|
||||||
|
|
||||||
let output_name = make_output_name(&device.drm, connector.handle(), connector_name.clone());
|
let output_name = make_output_name(
|
||||||
|
&device.drm,
|
||||||
|
connector.handle(),
|
||||||
|
connector_name.clone(),
|
||||||
|
self.config.borrow().debug.disable_monitor_names,
|
||||||
|
);
|
||||||
|
|
||||||
let non_desktop = find_drm_property(&device.drm, connector.handle(), "non-desktop")
|
let non_desktop = find_drm_property(&device.drm, connector.handle(), "non-desktop")
|
||||||
.and_then(|(_, info, value)| info.value_type().convert_value(value).as_boolean())
|
.and_then(|(_, info, value)| info.value_type().convert_value(value).as_boolean())
|
||||||
@@ -1568,8 +1573,12 @@ impl Tty {
|
|||||||
for (connector, crtc) in device.drm_scanner.crtcs() {
|
for (connector, crtc) in device.drm_scanner.crtcs() {
|
||||||
let connector_name = format_connector_name(connector);
|
let connector_name = format_connector_name(connector);
|
||||||
let physical_size = connector.size();
|
let physical_size = connector.size();
|
||||||
let output_name =
|
let output_name = make_output_name(
|
||||||
make_output_name(&device.drm, connector.handle(), connector_name.clone());
|
&device.drm,
|
||||||
|
connector.handle(),
|
||||||
|
connector_name.clone(),
|
||||||
|
self.config.borrow().debug.disable_monitor_names,
|
||||||
|
);
|
||||||
|
|
||||||
let surface = device.surfaces.get(&crtc);
|
let surface = device.surfaces.get(&crtc);
|
||||||
let current_crtc_mode = surface.map(|surface| surface.compositor.pending_mode());
|
let current_crtc_mode = surface.map(|surface| surface.compositor.pending_mode());
|
||||||
@@ -1828,7 +1837,12 @@ impl Tty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let connector_name = format_connector_name(connector);
|
let connector_name = format_connector_name(connector);
|
||||||
let output_name = make_output_name(&device.drm, connector.handle(), connector_name);
|
let output_name = make_output_name(
|
||||||
|
&device.drm,
|
||||||
|
connector.handle(),
|
||||||
|
connector_name,
|
||||||
|
self.config.borrow().debug.disable_monitor_names,
|
||||||
|
);
|
||||||
let config = self
|
let config = self
|
||||||
.config
|
.config
|
||||||
.borrow()
|
.borrow()
|
||||||
@@ -1887,7 +1901,12 @@ impl Tty {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let connector_name = format_connector_name(connector);
|
let connector_name = format_connector_name(connector);
|
||||||
let output_name = make_output_name(&device.drm, connector.handle(), connector_name);
|
let output_name = make_output_name(
|
||||||
|
&device.drm,
|
||||||
|
connector.handle(),
|
||||||
|
connector_name,
|
||||||
|
self.config.borrow().debug.disable_monitor_names,
|
||||||
|
);
|
||||||
if output_name.matches(target) {
|
if output_name.matches(target) {
|
||||||
return Some(output_name);
|
return Some(output_name);
|
||||||
}
|
}
|
||||||
@@ -2485,7 +2504,17 @@ fn make_output_name(
|
|||||||
device: &DrmDevice,
|
device: &DrmDevice,
|
||||||
connector: connector::Handle,
|
connector: connector::Handle,
|
||||||
connector_name: String,
|
connector_name: String,
|
||||||
|
disable_monitor_names: bool,
|
||||||
) -> OutputName {
|
) -> OutputName {
|
||||||
|
if disable_monitor_names {
|
||||||
|
return OutputName {
|
||||||
|
connector: connector_name,
|
||||||
|
make: None,
|
||||||
|
model: None,
|
||||||
|
serial: None,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
let info = get_edid_info(device, connector)
|
let info = get_edid_info(device, connector)
|
||||||
.map_err(|err| warn!("error getting EDID info for {connector_name}: {err:?}"))
|
.map_err(|err| warn!("error getting EDID info for {connector_name}: {err:?}"))
|
||||||
.ok();
|
.ok();
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ debug {
|
|||||||
disable-resize-throttling
|
disable-resize-throttling
|
||||||
disable-transactions
|
disable-transactions
|
||||||
keep-laptop-panel-on-when-lid-is-closed
|
keep-laptop-panel-on-when-lid-is-closed
|
||||||
|
disable-monitor-names
|
||||||
}
|
}
|
||||||
|
|
||||||
binds {
|
binds {
|
||||||
@@ -179,6 +180,20 @@ debug {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### `disable-monitor-names`
|
||||||
|
|
||||||
|
<sup>Since: 0.1.10</sup>
|
||||||
|
|
||||||
|
Disables the make/model/serial monitor names, as if niri fails to read them from the EDID.
|
||||||
|
|
||||||
|
Use this flag to work around a crash present in 0.1.9 and 0.1.10 when connecting two monitors with matching make/model/serial.
|
||||||
|
|
||||||
|
```kdl
|
||||||
|
debug {
|
||||||
|
disable-monitor-names
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Key Bindings
|
### Key Bindings
|
||||||
|
|
||||||
These are not debug options, but rather key bindings.
|
These are not debug options, but rather key bindings.
|
||||||
|
|||||||
Reference in New Issue
Block a user