mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 21:42:51 -05:00
hypr: add disable output option
This commit is contained in:
@@ -205,6 +205,27 @@ Singleton {
|
||||
const result = {};
|
||||
const lines = content.split("\n");
|
||||
for (const line of lines) {
|
||||
const disableMatch = line.match(/^\s*monitor\s*=\s*([^,]+),\s*disable\s*$/);
|
||||
if (disableMatch) {
|
||||
const name = disableMatch[1].trim();
|
||||
result[name] = {
|
||||
"name": name,
|
||||
"logical": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"scale": 1.0,
|
||||
"transform": "Normal"
|
||||
},
|
||||
"modes": [],
|
||||
"current_mode": -1,
|
||||
"vrr_enabled": false,
|
||||
"vrr_supported": false,
|
||||
"hyprlandSettings": {
|
||||
"disabled": true
|
||||
}
|
||||
};
|
||||
continue;
|
||||
}
|
||||
const match = line.match(/^\s*monitor\s*=\s*([^,]+),\s*(\d+)x(\d+)@([\d.]+),\s*(-?\d+)x(-?\d+),\s*([\d.]+)/);
|
||||
if (!match)
|
||||
continue;
|
||||
@@ -842,6 +863,8 @@ Singleton {
|
||||
|
||||
for (const outputId in pendingHyprlandChanges) {
|
||||
const changes = pendingHyprlandChanges[outputId];
|
||||
if (changes.disabled !== undefined)
|
||||
changeDescriptions.push(outputId + ": " + I18n.tr("Disabled") + " → " + (changes.disabled ? I18n.tr("Yes") : I18n.tr("No")));
|
||||
if (changes.bitdepth !== undefined)
|
||||
changeDescriptions.push(outputId + ": " + I18n.tr("Bit Depth") + " → " + changes.bitdepth);
|
||||
if (changes.colorManagement !== undefined)
|
||||
|
||||
@@ -71,6 +71,13 @@ Column {
|
||||
}
|
||||
property bool isHdrMode: currentCm === "hdr" || currentCm === "hdredid"
|
||||
|
||||
DankToggle {
|
||||
width: parent.width
|
||||
text: I18n.tr("Disable Output")
|
||||
checked: DisplayConfigState.getHyprlandSetting(root.outputData, root.outputName, "disabled", false)
|
||||
onToggled: checked => DisplayConfigState.setHyprlandSetting(root.outputData, root.outputName, "disabled", checked)
|
||||
}
|
||||
|
||||
DankDropdown {
|
||||
width: parent.width
|
||||
text: I18n.tr("Mirror Display")
|
||||
@@ -138,26 +145,26 @@ Column {
|
||||
options: [I18n.tr("Auto (Wide)"), I18n.tr("Wide (BT2020)"), "DCI-P3", "Apple P3", "Adobe RGB", "EDID", "HDR", I18n.tr("HDR (EDID)")]
|
||||
|
||||
property var cmValueMap: ({
|
||||
[I18n.tr("Auto (Wide)")]: "auto",
|
||||
[I18n.tr("Wide (BT2020)")]: "wide",
|
||||
"DCI-P3": "dcip3",
|
||||
"Apple P3": "dp3",
|
||||
"Adobe RGB": "adobe",
|
||||
"EDID": "edid",
|
||||
"HDR": "hdr",
|
||||
[I18n.tr("HDR (EDID)")]: "hdredid"
|
||||
})
|
||||
[I18n.tr("Auto (Wide)")]: "auto",
|
||||
[I18n.tr("Wide (BT2020)")]: "wide",
|
||||
"DCI-P3": "dcip3",
|
||||
"Apple P3": "dp3",
|
||||
"Adobe RGB": "adobe",
|
||||
"EDID": "edid",
|
||||
"HDR": "hdr",
|
||||
[I18n.tr("HDR (EDID)")]: "hdredid"
|
||||
})
|
||||
|
||||
property var cmLabelMap: ({
|
||||
"auto": I18n.tr("Auto (Wide)"),
|
||||
"wide": I18n.tr("Wide (BT2020)"),
|
||||
"dcip3": "DCI-P3",
|
||||
"dp3": "Apple P3",
|
||||
"adobe": "Adobe RGB",
|
||||
"edid": "EDID",
|
||||
"hdr": "HDR",
|
||||
"hdredid": I18n.tr("HDR (EDID)")
|
||||
})
|
||||
"auto": I18n.tr("Auto (Wide)"),
|
||||
"wide": I18n.tr("Wide (BT2020)"),
|
||||
"dcip3": "DCI-P3",
|
||||
"dp3": "Apple P3",
|
||||
"adobe": "Adobe RGB",
|
||||
"edid": "EDID",
|
||||
"hdr": "HDR",
|
||||
"hdredid": I18n.tr("HDR (EDID)")
|
||||
})
|
||||
|
||||
onValueChanged: value => {
|
||||
const cmValue = cmValueMap[value] || "auto";
|
||||
|
||||
@@ -35,6 +35,11 @@ Singleton {
|
||||
const identifier = getOutputIdentifier(output, outputName);
|
||||
const outputSettings = settings[identifier] || {};
|
||||
|
||||
if (outputSettings.disabled) {
|
||||
lines.push("monitor = " + identifier + ", disable");
|
||||
continue;
|
||||
}
|
||||
|
||||
let resolution = "preferred";
|
||||
if (output.modes && output.current_mode !== undefined) {
|
||||
const mode = output.modes[output.current_mode];
|
||||
@@ -73,10 +78,7 @@ Singleton {
|
||||
|
||||
lines.push(monitorLine);
|
||||
|
||||
const needsMonitorv2 = outputSettings.supportsHdr || outputSettings.supportsWideColor ||
|
||||
outputSettings.sdrMinLuminance !== undefined || outputSettings.sdrMaxLuminance !== undefined ||
|
||||
outputSettings.minLuminance !== undefined || outputSettings.maxLuminance !== undefined ||
|
||||
outputSettings.maxAvgLuminance !== undefined;
|
||||
const needsMonitorv2 = outputSettings.supportsHdr || outputSettings.supportsWideColor || outputSettings.sdrMinLuminance !== undefined || outputSettings.sdrMaxLuminance !== undefined || outputSettings.minLuminance !== undefined || outputSettings.maxLuminance !== undefined || outputSettings.maxAvgLuminance !== undefined;
|
||||
|
||||
if (needsMonitorv2) {
|
||||
let block = "monitorv2 {\n";
|
||||
|
||||
Reference in New Issue
Block a user