mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-08-07 22:18:30 -04:00
niri/xray: make bar xray implicit, add conflict detection for
configuration
This commit is contained in:
@@ -176,14 +176,10 @@ Singleton {
|
|||||||
property int niriLayoutGapsOverride: -1
|
property int niriLayoutGapsOverride: -1
|
||||||
property int niriLayoutRadiusOverride: -1
|
property int niriLayoutRadiusOverride: -1
|
||||||
property int niriLayoutBorderSize: -1
|
property int niriLayoutBorderSize: -1
|
||||||
property bool niriLayoutXrayEnabled: false
|
|
||||||
property bool niriLayoutBarXrayEnabled: true
|
|
||||||
property int hyprlandLayoutGapsOverride: -1
|
property int hyprlandLayoutGapsOverride: -1
|
||||||
property int hyprlandLayoutRadiusOverride: -1
|
property int hyprlandLayoutRadiusOverride: -1
|
||||||
property int hyprlandLayoutBorderSize: -1
|
property int hyprlandLayoutBorderSize: -1
|
||||||
property bool hyprlandResizeOnBorder: false
|
property bool hyprlandResizeOnBorder: false
|
||||||
property bool hyprlandLayoutXrayEnabled: false
|
|
||||||
property bool hyprlandLayoutBarXrayEnabled: true
|
|
||||||
property int mangoLayoutGapsOverride: -1
|
property int mangoLayoutGapsOverride: -1
|
||||||
property int mangoLayoutRadiusOverride: -1
|
property int mangoLayoutRadiusOverride: -1
|
||||||
property int mangoLayoutBorderSize: -1
|
property int mangoLayoutBorderSize: -1
|
||||||
@@ -1020,9 +1016,14 @@ Singleton {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
// Bar xray is only safe when no window can end up underneath: auto-hide and overlay-layer
|
||||||
|
// bars float over windows, and negative spacing pulls windows under the strip
|
||||||
function _standaloneBarXrayAvailable(configs) {
|
function _standaloneBarXrayAvailable(configs) {
|
||||||
const activeBars = (configs || []).filter(c => c && c.enabled && (c.visible ?? true));
|
const list = configs || [];
|
||||||
return activeBars.every(c => !c.autoHide);
|
const activeBars = list.filter(c => c && c.enabled && (c.visible ?? true));
|
||||||
|
const gapsOverride = (typeof CompositorService !== "undefined" && CompositorService.isHyprland) ? hyprlandLayoutGapsOverride : niriLayoutGapsOverride;
|
||||||
|
const layoutGaps = gapsOverride >= 0 ? gapsOverride : Math.max(4, (list[0]?.spacing ?? 4));
|
||||||
|
return activeBars.every(c => !c.autoHide && !(c.useOverlayLayer ?? false) && (c.spacing ?? 4) + (c.bottomGap ?? 0) + layoutGaps >= 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly property bool standaloneBarXrayAvailable: _standaloneBarXrayAvailable(barConfigs)
|
readonly property bool standaloneBarXrayAvailable: _standaloneBarXrayAvailable(barConfigs)
|
||||||
|
|||||||
@@ -28,14 +28,10 @@ var SPEC = {
|
|||||||
niriLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" },
|
niriLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||||
niriLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" },
|
niriLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||||
niriLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" },
|
niriLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" },
|
||||||
niriLayoutXrayEnabled: { def: false, onChange: "updateCompositorLayout" },
|
|
||||||
niriLayoutBarXrayEnabled: { def: true, onChange: "updateCompositorLayout" },
|
|
||||||
hyprlandLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" },
|
hyprlandLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||||
hyprlandLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" },
|
hyprlandLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||||
hyprlandLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" },
|
hyprlandLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" },
|
||||||
hyprlandResizeOnBorder: { def: false, onChange: "updateCompositorLayout" },
|
hyprlandResizeOnBorder: { def: false, onChange: "updateCompositorLayout" },
|
||||||
hyprlandLayoutXrayEnabled: { def: false, onChange: "updateCompositorLayout" },
|
|
||||||
hyprlandLayoutBarXrayEnabled: { def: true, onChange: "updateCompositorLayout" },
|
|
||||||
mangoLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" },
|
mangoLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||||
mangoLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" },
|
mangoLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||||
mangoLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" },
|
mangoLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" },
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import QtCore
|
import QtCore
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
|
||||||
import qs.Common
|
import qs.Common
|
||||||
import qs.Services
|
import qs.Services
|
||||||
import qs.Widgets
|
import qs.Widgets
|
||||||
@@ -22,6 +21,7 @@ Item {
|
|||||||
readonly property bool readOnly: CompositorService.isHyprland && layoutIncludeStatus.readOnly === true
|
readonly property bool readOnly: CompositorService.isHyprland && layoutIncludeStatus.readOnly === true
|
||||||
property bool checkingInclude: false
|
property bool checkingInclude: false
|
||||||
property bool fixingInclude: false
|
property bool fixingInclude: false
|
||||||
|
property string xrayConflictSource: ""
|
||||||
|
|
||||||
function getLayoutConfigPaths() {
|
function getLayoutConfigPaths() {
|
||||||
const configDir = Paths.strip(StandardPaths.writableLocation(StandardPaths.ConfigLocation));
|
const configDir = Paths.strip(StandardPaths.writableLocation(StandardPaths.ConfigLocation));
|
||||||
@@ -120,9 +120,28 @@ Item {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkXrayConflicts() {
|
||||||
|
if (!CompositorService.isNiri)
|
||||||
|
return;
|
||||||
|
const configDir = Paths.strip(StandardPaths.writableLocation(StandardPaths.ConfigLocation));
|
||||||
|
const script = `cd "${configDir}/niri" 2>/dev/null || exit 0
|
||||||
|
files="config.kdl"
|
||||||
|
for f in $(sed -nE 's/^[[:space:]]*include[[:space:]]+"([^"]+)".*/\\1/p' config.kdl 2>/dev/null); do
|
||||||
|
case "$f" in dms/*|/*dms/*) continue ;; esac
|
||||||
|
[ -f "$f" ] && files="$files $f"
|
||||||
|
done
|
||||||
|
awk '$1 == "xray" { print FILENAME ":" FNR; exit }' $files 2>/dev/null`;
|
||||||
|
|
||||||
|
Proc.runCommand("check-xray-conflict", ["sh", "-c", script], (output, exitCode) => {
|
||||||
|
xrayConflictSource = exitCode === 0 ? output.trim() : "";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
if (CompositorService.isNiri || CompositorService.isHyprland || CompositorService.isMango)
|
if (CompositorService.isNiri || CompositorService.isHyprland || CompositorService.isMango) {
|
||||||
checkLayoutIncludeStatus();
|
checkLayoutIncludeStatus();
|
||||||
|
checkXrayConflicts();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DankFlickable {
|
DankFlickable {
|
||||||
@@ -215,6 +234,39 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
StyledRect {
|
||||||
|
width: parent.width
|
||||||
|
height: xrayConflictRow.implicitHeight + Theme.spacingL * 2
|
||||||
|
radius: Theme.cornerRadius
|
||||||
|
color: Theme.withAlpha(Theme.primary, 0.15)
|
||||||
|
border.color: Theme.withAlpha(Theme.primary, 0.3)
|
||||||
|
border.width: 1
|
||||||
|
visible: root.xrayConflictSource !== ""
|
||||||
|
|
||||||
|
Row {
|
||||||
|
id: xrayConflictRow
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: Theme.spacingL
|
||||||
|
spacing: Theme.spacingM
|
||||||
|
|
||||||
|
DankIcon {
|
||||||
|
name: "warning"
|
||||||
|
size: Theme.iconSize
|
||||||
|
color: Theme.primary
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
width: parent.width - Theme.iconSize - Theme.spacingM
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
text: I18n.tr("An xray rule at %1 may conflict with the Xray settings below").arg(root.xrayConflictSource)
|
||||||
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
|
color: Theme.surfaceVariantText
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SettingsCard {
|
SettingsCard {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
tags: ["niri", "layout", "gaps", "radius", "window", "border"]
|
tags: ["niri", "layout", "gaps", "radius", "window", "border"]
|
||||||
@@ -312,25 +364,13 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SettingsToggleRow {
|
SettingsToggleRow {
|
||||||
|
visible: CompositorService.isNiri
|
||||||
tags: ["niri", "xray", "blur", "background-effect", "performance"]
|
tags: ["niri", "xray", "blur", "background-effect", "performance"]
|
||||||
settingKey: "niriLayoutXrayEnabled"
|
settingKey: "niriLayoutXrayEnabled"
|
||||||
text: I18n.tr("Xray Blur Effect")
|
text: I18n.tr("Xray Blur Effect")
|
||||||
description: SettingsData.niriLayoutXrayEnabled ? I18n.tr("Xray on makes the windows background visible through to the wallpaper") : I18n.tr("Xray off shows the real background beneath the blurred surfaces")
|
description: I18n.tr("Blurred surfaces show the wallpaper instead of the content beneath")
|
||||||
checked: SettingsData.niriLayoutXrayEnabled
|
checked: NiriService.layoutXrayEnabled
|
||||||
onToggled: checked => SettingsData.set("niriLayoutXrayEnabled", checked)
|
onToggled: checked => NiriService.setLayoutXray(checked)
|
||||||
}
|
|
||||||
|
|
||||||
SettingsToggleRow {
|
|
||||||
// Hidden in Frame Connected mode, where it has no target
|
|
||||||
visible: !(SettingsData.frameEnabled && SettingsData.frameMode === "connected")
|
|
||||||
enabled: SettingsData.frameEnabled || SettingsData.standaloneBarXrayAvailable
|
|
||||||
opacity: enabled ? 1 : 0.5
|
|
||||||
tags: ["niri", "xray", "bar", "frame", "performance"]
|
|
||||||
settingKey: "niriLayoutBarXrayEnabled"
|
|
||||||
text: SettingsData.frameEnabled ? I18n.tr("Frame Xray") : I18n.tr("Dank Bar Xray")
|
|
||||||
description: !SettingsData.frameEnabled && !SettingsData.standaloneBarXrayAvailable ? I18n.tr("Unavailable while using Auto Hide as Xray would reveal the wallpaper through windows") : (SettingsData.niriLayoutBarXrayEnabled ? (SettingsData.frameEnabled ? I18n.tr("Xray on makes the Frame's border visible through to the wallpaper; more efficient") : I18n.tr("Xray on makes the Dank Bar visible through to the wallpaper; more efficient")) : (SettingsData.frameEnabled ? I18n.tr("Xray off shows the real background beneath the Frame's border") : I18n.tr("Xray off shows the real background beneath the Dank Bar")))
|
|
||||||
checked: SettingsData.niriLayoutBarXrayEnabled
|
|
||||||
onToggled: checked => SettingsData.set("niriLayoutBarXrayEnabled", checked)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -440,25 +480,13 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SettingsToggleRow {
|
SettingsToggleRow {
|
||||||
|
visible: CompositorService.isHyprland
|
||||||
tags: ["hyprland", "xray", "blur", "background-effect", "performance"]
|
tags: ["hyprland", "xray", "blur", "background-effect", "performance"]
|
||||||
settingKey: "hyprlandLayoutXrayEnabled"
|
settingKey: "hyprlandLayoutXrayEnabled"
|
||||||
text: I18n.tr("Xray Blur Effect")
|
text: I18n.tr("Xray Blur Effect")
|
||||||
description: SettingsData.hyprlandLayoutXrayEnabled ? I18n.tr("Xray on makes the windows background visible through to the wallpaper") : I18n.tr("Xray off shows the real background beneath the blurred surfaces")
|
description: I18n.tr("Blurred surfaces show the wallpaper instead of the content beneath")
|
||||||
checked: SettingsData.hyprlandLayoutXrayEnabled
|
checked: HyprlandService.layoutXrayEnabled
|
||||||
onToggled: checked => SettingsData.set("hyprlandLayoutXrayEnabled", checked)
|
onToggled: checked => HyprlandService.setLayoutXray(checked)
|
||||||
}
|
|
||||||
|
|
||||||
SettingsToggleRow {
|
|
||||||
// Hidden in Frame Connected mode, where it has no target
|
|
||||||
visible: !(SettingsData.frameEnabled && SettingsData.frameMode === "connected")
|
|
||||||
enabled: SettingsData.frameEnabled || SettingsData.standaloneBarXrayAvailable
|
|
||||||
opacity: enabled ? 1 : 0.5
|
|
||||||
tags: ["hyprland", "xray", "bar", "frame", "performance"]
|
|
||||||
settingKey: "hyprlandLayoutBarXrayEnabled"
|
|
||||||
text: SettingsData.frameEnabled ? I18n.tr("Frame Xray") : I18n.tr("Dank Bar Xray")
|
|
||||||
description: !SettingsData.frameEnabled && !SettingsData.standaloneBarXrayAvailable ? I18n.tr("Unavailable while an enabled Dank Bar uses Auto Hide because Xray would reveal the wallpaper through windows") : (SettingsData.hyprlandLayoutBarXrayEnabled ? (SettingsData.frameEnabled ? I18n.tr("Xray on makes the Frame's border visible through to the wallpaper; more efficient") : I18n.tr("Xray on makes the Dank Bar visible through to the wallpaper; more efficient")) : (SettingsData.frameEnabled ? I18n.tr("Xray off shows the real background beneath the Frame's border") : I18n.tr("Xray off shows the real background beneath the Dank Bar")))
|
|
||||||
checked: SettingsData.hyprlandLayoutBarXrayEnabled
|
|
||||||
onToggled: checked => SettingsData.set("hyprlandLayoutBarXrayEnabled", checked)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1816,7 +1816,7 @@ Item {
|
|||||||
Item {
|
Item {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: xrayHintRow.implicitHeight
|
height: xrayHintRow.implicitHeight
|
||||||
visible: CompositorService.isNiri || CompositorService.isHyprland || CompositorService.isMango
|
visible: CompositorService.isNiri || CompositorService.isHyprland
|
||||||
|
|
||||||
Row {
|
Row {
|
||||||
id: xrayHintRow
|
id: xrayHintRow
|
||||||
@@ -1833,7 +1833,7 @@ Item {
|
|||||||
StyledText {
|
StyledText {
|
||||||
width: parent.width - Theme.iconSizeSmall - Theme.spacingS
|
width: parent.width - Theme.iconSizeSmall - Theme.spacingS
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
text: I18n.tr("Xray specific options for blurred surfaces live in Compositor → Layout")
|
text: I18n.tr("Xray options are in Compositor → Layout")
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: Theme.primary
|
color: Theme.primary
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
|
|||||||
@@ -32,6 +32,11 @@ Singleton {
|
|||||||
property int _frameTransitionRevision: 0
|
property int _frameTransitionRevision: 0
|
||||||
readonly property bool frameLayoutReady: _layoutAppliedRevision >= _frameTransitionRevision
|
readonly property bool frameLayoutReady: _layoutAppliedRevision >= _frameTransitionRevision
|
||||||
|
|
||||||
|
// dms/layout.lua is the source of truth for xray; parsed once before the first regeneration
|
||||||
|
property bool layoutXrayEnabled: false
|
||||||
|
property bool _layoutXrayLoaded: false
|
||||||
|
property bool _layoutXrayLoading: false
|
||||||
|
|
||||||
DeferredAction {
|
DeferredAction {
|
||||||
id: layoutGenerationAction
|
id: layoutGenerationAction
|
||||||
onTriggered: root.doGenerateLayoutConfig()
|
onTriggered: root.doGenerateLayoutConfig()
|
||||||
@@ -262,6 +267,28 @@ Singleton {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setLayoutXray(enabled) {
|
||||||
|
layoutXrayEnabled = enabled;
|
||||||
|
_layoutXrayLoaded = true;
|
||||||
|
generateLayoutConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadLayoutXrayState() {
|
||||||
|
if (_layoutXrayLoading)
|
||||||
|
return;
|
||||||
|
_layoutXrayLoading = true;
|
||||||
|
const configDir = Paths.strip(StandardPaths.writableLocation(StandardPaths.ConfigLocation));
|
||||||
|
Proc.runCommand("hypr-read-layout-xray", ["cat", configDir + "/hypr/dms/layout.lua"], (output, exitCode) => {
|
||||||
|
_layoutXrayLoading = false;
|
||||||
|
if (!_layoutXrayLoaded) {
|
||||||
|
layoutXrayEnabled = exitCode === 0 && output.includes('"^dms:.*$"');
|
||||||
|
_layoutXrayLoaded = true;
|
||||||
|
}
|
||||||
|
if (layoutGenerationPending)
|
||||||
|
layoutGenerationAction.schedule();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function generateLayoutConfig(frameTransition) {
|
function generateLayoutConfig(frameTransition) {
|
||||||
if (!CompositorService.isHyprland)
|
if (!CompositorService.isHyprland)
|
||||||
return;
|
return;
|
||||||
@@ -275,6 +302,10 @@ Singleton {
|
|||||||
function doGenerateLayoutConfig() {
|
function doGenerateLayoutConfig() {
|
||||||
if (layoutGenerationRunning)
|
if (layoutGenerationRunning)
|
||||||
return;
|
return;
|
||||||
|
if (!_layoutXrayLoaded) {
|
||||||
|
loadLayoutXrayState();
|
||||||
|
return;
|
||||||
|
}
|
||||||
layoutGenerationPending = false;
|
layoutGenerationPending = false;
|
||||||
const requestRevision = _layoutRequestRevision;
|
const requestRevision = _layoutRequestRevision;
|
||||||
if (!canWriteLuaConfig("layout")) {
|
if (!canWriteLuaConfig("layout")) {
|
||||||
@@ -295,12 +326,10 @@ Singleton {
|
|||||||
const gaps = (typeof SettingsData !== "undefined" && SettingsData.hyprlandLayoutGapsOverride >= 0) ? SettingsData.hyprlandLayoutGapsOverride : defaultGaps;
|
const gaps = (typeof SettingsData !== "undefined" && SettingsData.hyprlandLayoutGapsOverride >= 0) ? SettingsData.hyprlandLayoutGapsOverride : defaultGaps;
|
||||||
const borderSize = (typeof SettingsData !== "undefined" && SettingsData.hyprlandLayoutBorderSize >= 0) ? SettingsData.hyprlandLayoutBorderSize : defaultBorderSize;
|
const borderSize = (typeof SettingsData !== "undefined" && SettingsData.hyprlandLayoutBorderSize >= 0) ? SettingsData.hyprlandLayoutBorderSize : defaultBorderSize;
|
||||||
const resizeOnBorder = (typeof SettingsData !== "undefined" && SettingsData.hyprlandResizeOnBorder) ? true : false;
|
const resizeOnBorder = (typeof SettingsData !== "undefined" && SettingsData.hyprlandResizeOnBorder) ? true : false;
|
||||||
const xrayEnabled = typeof SettingsData !== "undefined" && SettingsData.hyprlandLayoutXrayEnabled;
|
|
||||||
const barFrameXrayEnabled = typeof SettingsData === "undefined" || SettingsData.hyprlandLayoutBarXrayEnabled;
|
|
||||||
const frameEnabled = typeof SettingsData !== "undefined" && SettingsData.frameEnabled;
|
const frameEnabled = typeof SettingsData !== "undefined" && SettingsData.frameEnabled;
|
||||||
const frameConnectedMode = frameEnabled && SettingsData.frameMode === "connected";
|
const frameConnectedMode = frameEnabled && SettingsData.frameMode === "connected";
|
||||||
// Hyprland `xray = false` is still early-development; unset already samples real content, so only force xray=true
|
// Hyprland `xray = false` is still early-development; unset already samples real content, so only force xray=true
|
||||||
// Standalone Bar Xray is safe only while every active bar reserves its strip
|
// Bar/Frame sit flush on the wallpaper, so force the cheap xray blur whenever safe
|
||||||
const barFrameTargetNamespace = !frameEnabled ? (SettingsData.standaloneBarXrayAvailable ? "dms:bar" : null) : (frameConnectedMode ? null : "dms:frame");
|
const barFrameTargetNamespace = !frameEnabled ? (SettingsData.standaloneBarXrayAvailable ? "dms:bar" : null) : (frameConnectedMode ? null : "dms:frame");
|
||||||
|
|
||||||
let content = `-- Auto-generated by DMS — do not edit manually
|
let content = `-- Auto-generated by DMS — do not edit manually
|
||||||
@@ -318,7 +347,7 @@ hl.config({
|
|||||||
})
|
})
|
||||||
`;
|
`;
|
||||||
|
|
||||||
if (xrayEnabled) {
|
if (layoutXrayEnabled) {
|
||||||
content += `
|
content += `
|
||||||
hl.layer_rule({
|
hl.layer_rule({
|
||||||
match = { namespace = "^dms:.*$" },
|
match = { namespace = "^dms:.*$" },
|
||||||
@@ -326,7 +355,7 @@ hl.layer_rule({
|
|||||||
})
|
})
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
if (barFrameXrayEnabled && barFrameTargetNamespace) {
|
if (barFrameTargetNamespace) {
|
||||||
content += `
|
content += `
|
||||||
hl.layer_rule({
|
hl.layer_rule({
|
||||||
match = { namespace = "^${barFrameTargetNamespace}$" },
|
match = { namespace = "^${barFrameTargetNamespace}$" },
|
||||||
|
|||||||
@@ -49,6 +49,11 @@ Singleton {
|
|||||||
property string _lastGeneratedAlttabContent: ""
|
property string _lastGeneratedAlttabContent: ""
|
||||||
readonly property bool frameLayoutReady: _layoutAppliedRevision >= _frameTransitionRevision
|
readonly property bool frameLayoutReady: _layoutAppliedRevision >= _frameTransitionRevision
|
||||||
|
|
||||||
|
// dms/layout.kdl is the source of truth for xray; parsed once before the first regeneration
|
||||||
|
property bool layoutXrayEnabled: true
|
||||||
|
property bool _layoutXrayLoaded: false
|
||||||
|
property bool _layoutXrayLoading: false
|
||||||
|
|
||||||
readonly property string screenshotsDir: Paths.strip(StandardPaths.writableLocation(StandardPaths.PicturesLocation)) + "/Screenshots"
|
readonly property string screenshotsDir: Paths.strip(StandardPaths.writableLocation(StandardPaths.PicturesLocation)) + "/Screenshots"
|
||||||
property string pendingScreenshotPath: ""
|
property string pendingScreenshotPath: ""
|
||||||
|
|
||||||
@@ -1094,6 +1099,28 @@ Singleton {
|
|||||||
return _matchAndEnrichToplevels(toplevels, windows.filter(nw => outputWorkspaceIds.has(nw.workspace_id)));
|
return _matchAndEnrichToplevels(toplevels, windows.filter(nw => outputWorkspaceIds.has(nw.workspace_id)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setLayoutXray(enabled) {
|
||||||
|
layoutXrayEnabled = enabled;
|
||||||
|
_layoutXrayLoaded = true;
|
||||||
|
generateNiriLayoutConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadLayoutXrayState() {
|
||||||
|
if (_layoutXrayLoading)
|
||||||
|
return;
|
||||||
|
_layoutXrayLoading = true;
|
||||||
|
const configDir = Paths.strip(StandardPaths.writableLocation(StandardPaths.ConfigLocation));
|
||||||
|
Proc.runCommand("niri-read-layout-xray", ["cat", configDir + "/niri/dms/layout.kdl"], (output, exitCode) => {
|
||||||
|
_layoutXrayLoading = false;
|
||||||
|
if (!_layoutXrayLoaded) {
|
||||||
|
layoutXrayEnabled = exitCode !== 0 || !output.includes("xray false");
|
||||||
|
_layoutXrayLoaded = true;
|
||||||
|
}
|
||||||
|
if (configGenerationPending)
|
||||||
|
configGenerationAction.schedule();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function generateNiriLayoutConfig(frameTransition) {
|
function generateNiriLayoutConfig(frameTransition) {
|
||||||
if (!CompositorService.isNiri)
|
if (!CompositorService.isNiri)
|
||||||
return;
|
return;
|
||||||
@@ -1108,6 +1135,10 @@ Singleton {
|
|||||||
function doGenerateNiriLayoutConfig() {
|
function doGenerateNiriLayoutConfig() {
|
||||||
if (writeConfigProcess.running || _awaitingLayoutReloadRevision > _layoutAppliedRevision)
|
if (writeConfigProcess.running || _awaitingLayoutReloadRevision > _layoutAppliedRevision)
|
||||||
return;
|
return;
|
||||||
|
if (!_layoutXrayLoaded) {
|
||||||
|
loadLayoutXrayState();
|
||||||
|
return;
|
||||||
|
}
|
||||||
configGenerationPending = false;
|
configGenerationPending = false;
|
||||||
log.debug("Generating layout config...");
|
log.debug("Generating layout config...");
|
||||||
|
|
||||||
@@ -1118,63 +1149,65 @@ Singleton {
|
|||||||
const cornerRadius = (typeof SettingsData !== "undefined" && SettingsData.niriLayoutRadiusOverride >= 0) ? SettingsData.niriLayoutRadiusOverride : defaultRadius;
|
const cornerRadius = (typeof SettingsData !== "undefined" && SettingsData.niriLayoutRadiusOverride >= 0) ? SettingsData.niriLayoutRadiusOverride : defaultRadius;
|
||||||
const gaps = (typeof SettingsData !== "undefined" && SettingsData.niriLayoutGapsOverride >= 0) ? SettingsData.niriLayoutGapsOverride : defaultGaps;
|
const gaps = (typeof SettingsData !== "undefined" && SettingsData.niriLayoutGapsOverride >= 0) ? SettingsData.niriLayoutGapsOverride : defaultGaps;
|
||||||
const borderSize = (typeof SettingsData !== "undefined" && SettingsData.niriLayoutBorderSize >= 0) ? SettingsData.niriLayoutBorderSize : defaultBorderSize;
|
const borderSize = (typeof SettingsData !== "undefined" && SettingsData.niriLayoutBorderSize >= 0) ? SettingsData.niriLayoutBorderSize : defaultBorderSize;
|
||||||
const xrayEnabled = typeof SettingsData !== "undefined" && SettingsData.niriLayoutXrayEnabled;
|
|
||||||
const barFrameXrayEnabled = typeof SettingsData === "undefined" || SettingsData.niriLayoutBarXrayEnabled;
|
|
||||||
const frameEnabled = typeof SettingsData !== "undefined" && SettingsData.frameEnabled;
|
const frameEnabled = typeof SettingsData !== "undefined" && SettingsData.frameEnabled;
|
||||||
const frameConnectedMode = frameEnabled && SettingsData.frameMode === "connected";
|
const frameConnectedMode = frameEnabled && SettingsData.frameMode === "connected";
|
||||||
// Standalone Bar Xray is safe only while every active bar reserves its strip
|
// Bar/Frame sit flush on the wallpaper, so force the cheap xray blur whenever safe
|
||||||
const barFrameTargetNamespace = !frameEnabled ? (SettingsData.standaloneBarXrayAvailable ? "dms:bar" : null) : (frameConnectedMode ? null : "dms:frame");
|
const barFrameTargetNamespace = !frameEnabled ? (SettingsData.standaloneBarXrayAvailable ? "dms:bar" : null) : (frameConnectedMode ? null : "dms:frame");
|
||||||
|
|
||||||
|
// Xray is niri's default blur, so only the off state needs a rule
|
||||||
let xrayRules = "";
|
let xrayRules = "";
|
||||||
if (!xrayEnabled) {
|
if (!layoutXrayEnabled) {
|
||||||
xrayRules += `
|
xrayRules += `
|
||||||
layer-rule {
|
|
||||||
match namespace=".*"
|
layer-rule {
|
||||||
background-effect {
|
background-effect {
|
||||||
xray false
|
xray false
|
||||||
|
}
|
||||||
|
}`;
|
||||||
}
|
}
|
||||||
}`;
|
|
||||||
}
|
if (barFrameTargetNamespace) {
|
||||||
if (barFrameXrayEnabled && barFrameTargetNamespace) {
|
|
||||||
xrayRules += `
|
xrayRules += `
|
||||||
layer-rule {
|
|
||||||
match namespace="^${barFrameTargetNamespace}$"
|
layer-rule {
|
||||||
background-effect {
|
match namespace="^${barFrameTargetNamespace}$"
|
||||||
|
background-effect {
|
||||||
xray true
|
xray true
|
||||||
}
|
}
|
||||||
}`;
|
}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const dmsWarning = `// ! DO NOT EDIT !
|
const dmsWarning = `// ! DO NOT EDIT !
|
||||||
// ! AUTO-GENERATED BY DMS !
|
// ! AUTO-GENERATED BY DMS !
|
||||||
// ! CHANGES WILL BE OVERWRITTEN !
|
// ! CHANGES WILL BE OVERWRITTEN !
|
||||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||||
|
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const configContent = dmsWarning + `layout {
|
const configContent = dmsWarning + `layout {
|
||||||
gaps ${gaps}
|
gaps ${gaps}
|
||||||
|
|
||||||
border {
|
border {
|
||||||
width ${borderSize}
|
width ${borderSize}
|
||||||
}
|
}
|
||||||
|
|
||||||
focus-ring {
|
focus-ring {
|
||||||
width ${borderSize}
|
width ${borderSize}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
window-rule {
|
|
||||||
geometry-corner-radius ${cornerRadius}
|
window-rule {
|
||||||
clip-to-geometry true
|
geometry-corner-radius ${cornerRadius}
|
||||||
tiled-state true
|
clip-to-geometry true
|
||||||
draw-border-with-background false
|
tiled-state true
|
||||||
}` + xrayRules;
|
draw-border-with-background false
|
||||||
|
}` + xrayRules;
|
||||||
|
|
||||||
const alttabContent = dmsWarning + `recent-windows {
|
const alttabContent = dmsWarning + `recent-windows {
|
||||||
highlight {
|
highlight {
|
||||||
corner-radius ${cornerRadius}
|
corner-radius ${cornerRadius}
|
||||||
}
|
}
|
||||||
}`;
|
}`;
|
||||||
|
|
||||||
const configDir = Paths.strip(StandardPaths.writableLocation(StandardPaths.ConfigLocation));
|
const configDir = Paths.strip(StandardPaths.writableLocation(StandardPaths.ConfigLocation));
|
||||||
const niriDmsDir = configDir + "/niri/dms";
|
const niriDmsDir = configDir + "/niri/dms";
|
||||||
@@ -1203,7 +1236,6 @@ Singleton {
|
|||||||
log.warn("Failed to ensure " + name + ".kdl, exit code:", exitCode);
|
log.warn("Failed to ensure " + name + ".kdl, exit code:", exitCode);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateNiriBlurrule() {
|
function generateNiriBlurrule() {
|
||||||
|
|||||||
+1174
-994
File diff suppressed because it is too large
Load Diff
@@ -8642,80 +8642,6 @@
|
|||||||
],
|
],
|
||||||
"description": "Width of window border and focus ring"
|
"description": "Width of window border and focus ring"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"section": "hyprlandLayoutBarXrayEnabled",
|
|
||||||
"label": "Frame Xray",
|
|
||||||
"tabIndex": 37,
|
|
||||||
"category": "Personalization",
|
|
||||||
"keywords": [
|
|
||||||
"appearance",
|
|
||||||
"auto",
|
|
||||||
"background",
|
|
||||||
"bar",
|
|
||||||
"because",
|
|
||||||
"bg",
|
|
||||||
"custom",
|
|
||||||
"customize",
|
|
||||||
"dank",
|
|
||||||
"desktop",
|
|
||||||
"enabled",
|
|
||||||
"frame",
|
|
||||||
"hide",
|
|
||||||
"hyprland",
|
|
||||||
"image",
|
|
||||||
"panel",
|
|
||||||
"performance",
|
|
||||||
"personal",
|
|
||||||
"personalization",
|
|
||||||
"picture",
|
|
||||||
"reveal",
|
|
||||||
"statusbar",
|
|
||||||
"taskbar",
|
|
||||||
"through",
|
|
||||||
"topbar",
|
|
||||||
"unavailable",
|
|
||||||
"uses",
|
|
||||||
"wallpaper",
|
|
||||||
"while",
|
|
||||||
"windows",
|
|
||||||
"would",
|
|
||||||
"xray"
|
|
||||||
],
|
|
||||||
"description": "Unavailable while an enabled Dank Bar uses Auto Hide because Xray would reveal the wallpaper through windows"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"section": "niriLayoutBarXrayEnabled",
|
|
||||||
"label": "Frame Xray",
|
|
||||||
"tabIndex": 37,
|
|
||||||
"category": "Personalization",
|
|
||||||
"keywords": [
|
|
||||||
"appearance",
|
|
||||||
"auto",
|
|
||||||
"background",
|
|
||||||
"bar",
|
|
||||||
"bg",
|
|
||||||
"custom",
|
|
||||||
"customize",
|
|
||||||
"desktop",
|
|
||||||
"frame",
|
|
||||||
"hide",
|
|
||||||
"image",
|
|
||||||
"niri",
|
|
||||||
"performance",
|
|
||||||
"personal",
|
|
||||||
"personalization",
|
|
||||||
"picture",
|
|
||||||
"reveal",
|
|
||||||
"through",
|
|
||||||
"unavailable",
|
|
||||||
"wallpaper",
|
|
||||||
"while",
|
|
||||||
"windows",
|
|
||||||
"would",
|
|
||||||
"xray"
|
|
||||||
],
|
|
||||||
"description": "Unavailable while using Auto Hide as Xray would reveal the wallpaper through windows"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"section": "hyprlandLayout",
|
"section": "hyprlandLayout",
|
||||||
"label": "Hyprland Layout Overrides",
|
"label": "Hyprland Layout Overrides",
|
||||||
@@ -9202,26 +9128,28 @@
|
|||||||
"appearance",
|
"appearance",
|
||||||
"background",
|
"background",
|
||||||
"background-effect",
|
"background-effect",
|
||||||
|
"beneath",
|
||||||
"bg",
|
"bg",
|
||||||
"blur",
|
"blur",
|
||||||
|
"blurred",
|
||||||
|
"content",
|
||||||
"custom",
|
"custom",
|
||||||
"customize",
|
"customize",
|
||||||
"desktop",
|
"desktop",
|
||||||
"effect",
|
"effect",
|
||||||
"hyprland",
|
"hyprland",
|
||||||
"image",
|
"image",
|
||||||
"makes",
|
|
||||||
"performance",
|
"performance",
|
||||||
"personal",
|
"personal",
|
||||||
"personalization",
|
"personalization",
|
||||||
"picture",
|
"picture",
|
||||||
"through",
|
"show",
|
||||||
"visible",
|
"surfaces",
|
||||||
"wallpaper",
|
"wallpaper",
|
||||||
"windows",
|
|
||||||
"xray"
|
"xray"
|
||||||
],
|
],
|
||||||
"description": "Xray on makes the windows background visible through to the wallpaper"
|
"description": "Blurred surfaces show the wallpaper instead of the content beneath",
|
||||||
|
"conditionKey": "isHyprland"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"section": "niriLayoutXrayEnabled",
|
"section": "niriLayoutXrayEnabled",
|
||||||
@@ -9232,26 +9160,28 @@
|
|||||||
"appearance",
|
"appearance",
|
||||||
"background",
|
"background",
|
||||||
"background-effect",
|
"background-effect",
|
||||||
|
"beneath",
|
||||||
"bg",
|
"bg",
|
||||||
"blur",
|
"blur",
|
||||||
|
"blurred",
|
||||||
|
"content",
|
||||||
"custom",
|
"custom",
|
||||||
"customize",
|
"customize",
|
||||||
"desktop",
|
"desktop",
|
||||||
"effect",
|
"effect",
|
||||||
"image",
|
"image",
|
||||||
"makes",
|
|
||||||
"niri",
|
"niri",
|
||||||
"performance",
|
"performance",
|
||||||
"personal",
|
"personal",
|
||||||
"personalization",
|
"personalization",
|
||||||
"picture",
|
"picture",
|
||||||
"through",
|
"show",
|
||||||
"visible",
|
"surfaces",
|
||||||
"wallpaper",
|
"wallpaper",
|
||||||
"windows",
|
|
||||||
"xray"
|
"xray"
|
||||||
],
|
],
|
||||||
"description": "Xray on makes the windows background visible through to the wallpaper"
|
"description": "Blurred surfaces show the wallpaper instead of the content beneath",
|
||||||
|
"conditionKey": "isNiri"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"section": "windowRules",
|
"section": "windowRules",
|
||||||
|
|||||||
@@ -20,6 +20,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "%1 Startup Failed",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "%1 active session",
|
"term": "%1 active session",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -111,20 +118,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "%1 exists but is not included in config. Custom keybinds will not work until this is fixed.",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"term": "%1 exists but is not included. Window rules won't apply.",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "%1 filtered",
|
"term": "%1 filtered",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -1357,6 +1350,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "An xray rule at %1 may conflict with the Xray settings below",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Analog",
|
"term": "Analog",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -1490,6 +1490,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "App name or identity (e.g., firefox)",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Appearance",
|
"term": "Appearance",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -2533,13 +2540,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Binds Include Missing",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Binds include added",
|
"term": "Binds include added",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -2673,6 +2673,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Blurred surfaces show the wallpaper instead of the content beneath",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Body",
|
"term": "Body",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -2869,6 +2876,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Browse and set wallpapers",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Browse or search plugins",
|
"term": "Browse or search plugins",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -3366,6 +3380,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Choose wallpaper folder",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Choose where notification popups appear on screen",
|
"term": "Choose where notification popups appear on screen",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -3492,13 +3513,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Click 'Setup' to create %1 and add include to config.",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Click 'Setup' to create %1 and add include to your compositor config.",
|
"term": "Click 'Setup' to create %1 and add include to your compositor config.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -3506,13 +3520,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Click 'Setup' to create cursor config and add include to your compositor config.",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Click 'Setup' to create the outputs config and add include to your compositor config.",
|
"term": "Click 'Setup' to create the outputs config and add include to your compositor config.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -3646,6 +3653,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Clock, calendar, system info and profile",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Close",
|
"term": "Close",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -3745,7 +3759,7 @@
|
|||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"term": "Color shown for areas not covered by wallpaper (e.g. Fit or Pad modes)",
|
"term": "Color shown for areas not covered by wallpaper",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
"context": "",
|
"context": "",
|
||||||
"reference": "",
|
"reference": "",
|
||||||
@@ -4298,7 +4312,7 @@
|
|||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"term": "Controls outlines around blurred foreground cards, pills, and notification cards",
|
"term": "Controls outlines around foreground cards, pills, and notification cards",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
"context": "",
|
"context": "",
|
||||||
"reference": "",
|
"reference": "",
|
||||||
@@ -4724,20 +4738,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Cursor Config Not Configured",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"term": "Cursor Include Missing",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Cursor Size",
|
"term": "Cursor Size",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -5060,6 +5060,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Dank Dash",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "DankBar",
|
"term": "DankBar",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -6019,6 +6026,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Drag a widget by its handle here to reorder it or drop it into another group",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Drag to Reorder",
|
"term": "Drag to Reorder",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -6026,6 +6040,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Drag to reorder or click to hide tabs. Use ↑/↓ to highlight a tab and Ctrl+↑/↓ to move it.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Drag widgets to reorder within sections. Use the eye icon to hide/show widgets (maintains spacing), or X to remove them completely.",
|
"term": "Drag widgets to reorder within sections. Use the eye icon to hide/show widgets (maintains spacing), or X to remove them completely.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -6061,6 +6082,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Drop here",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Drop your override for %1 so the DMS default action re-applies?",
|
"term": "Drop your override for %1 so the DMS default action re-applies?",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -6159,6 +6187,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Edge Hover Reveal",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Edge Spacing",
|
"term": "Edge Spacing",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -6754,6 +6789,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Excluded Media Players",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Exclusive Zone Offset",
|
"term": "Exclusive Zone Offset",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -7090,13 +7132,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Failed to enable plugin: %1",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Failed to fetch network QR code: %1",
|
"term": "Failed to fetch network QR code: %1",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -7713,20 +7748,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Fix Now",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"term": "Fixing...",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Flags",
|
"term": "Flags",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -7867,6 +7888,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Focused Display",
|
||||||
|
"translation": "",
|
||||||
|
"context": "workspace appearance tab",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Focused Monitor Only",
|
"term": "Focused Monitor Only",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -8077,6 +8105,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Forecast and conditions",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Foreground Layers",
|
"term": "Foreground Layers",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -8791,6 +8826,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Hidden until weather is enabled",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Hide",
|
"term": "Hide",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -9057,6 +9099,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Hover Popouts",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "How often the server polls for new updates.",
|
"term": "How often the server polls for new updates.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -9736,6 +9785,20 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Jump to page",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Jump to page (1 - %1)",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Keep Awake",
|
"term": "Keep Awake",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -11647,6 +11710,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Next page",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Night",
|
"term": "Night",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -12018,6 +12088,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "No excluded players configured",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "No features enabled",
|
"term": "No features enabled",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -12270,6 +12347,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "No screenshot provided",
|
||||||
|
"translation": "",
|
||||||
|
"context": "plugin browser no screenshot",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "No session selected",
|
"term": "No session selected",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -12648,6 +12732,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Now playing and media controls",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Numbers",
|
"term": "Numbers",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -12837,6 +12928,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Open Delay",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Open Dir",
|
"term": "Open Dir",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -12928,6 +13026,20 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Open the launcher by hovering the emerge edge (when free of bar and dock)",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Open widget popouts by hovering over the bar. Moving to another widget switches the popout.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Open with...",
|
"term": "Open with...",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -13075,13 +13187,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Outputs Include Missing",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Overcast",
|
"term": "Overcast",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -13782,6 +13887,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Plugin dependency missing",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Plugin disabled: %1",
|
"term": "Plugin disabled: %1",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -14146,6 +14258,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Prevent specific applications from displaying in the media controllers (e.g., browser audio streams, background tools). Matches player identity or desktop file name case-insensitively.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Preview",
|
"term": "Preview",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -14167,6 +14286,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Previous page",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Primary",
|
"term": "Primary",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -14671,6 +14797,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Related: %1",
|
||||||
|
"translation": "",
|
||||||
|
"context": "related plugins",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Release",
|
"term": "Release",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -14881,6 +15014,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Reorder & Group",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Repeat",
|
"term": "Repeat",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -15553,10 +15693,17 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Screenshot unavailable",
|
||||||
|
"translation": "",
|
||||||
|
"context": "plugin browser screenshot error",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Scroll",
|
"term": "Scroll",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
"context": "",
|
"context": "wallpaper fill mode",
|
||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
@@ -16071,6 +16218,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Separate Appearance for Unfocused Display(s)",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Separate Light & Dark Themes",
|
"term": "Separate Light & Dark Themes",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -16078,6 +16232,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Separate appearance for unfocused displays is not supported on this compositor.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Separator",
|
"term": "Separator",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -16190,6 +16351,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Setting up...",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Settings",
|
"term": "Settings",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -16337,6 +16505,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Shortcut that opens this settings window",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Shortcuts",
|
"term": "Shortcuts",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -16884,7 +17059,7 @@
|
|||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"term": "Show foreground surfaces on blurred panels for stronger contrast",
|
"term": "Show foreground surfaces on panels for stronger contrast",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
"context": "",
|
"context": "",
|
||||||
"reference": "",
|
"reference": "",
|
||||||
@@ -17289,6 +17464,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Sort wallpapers",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Sorting & Layout",
|
"term": "Sorting & Layout",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -18073,6 +18255,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "The 'boregard' tool is not installed or not on your PATH.\n\nInstall it from https://danklinux.com, then re-enable this plugin.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "The 'dgop' tool is required for system monitoring.\nPlease install dgop to use this feature.",
|
"term": "The 'dgop' tool is required for system monitoring.\nPlease install dgop to use this feature.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -18227,6 +18416,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "This install is still using hyprland.conf. Run dms setup to migrate before editing layout settings.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "This install is still using hyprland.conf. Run dms setup to migrate before editing shortcuts in Settings.",
|
"term": "This install is still using hyprland.conf. Run dms setup to migrate before editing shortcuts in Settings.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -18381,6 +18577,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Time to rest on a widget before its popout opens",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Time to wait before hiding after the pointer leaves",
|
"term": "Time to wait before hiding after the pointer leaves",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -18892,6 +19095,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Unfocused Display(s)",
|
||||||
|
"translation": "",
|
||||||
|
"context": "workspace appearance tab",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Ungrouped",
|
"term": "Ungrouped",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -19382,6 +19592,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Use different workspace colors on displays that are not focused",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Use fingerprint authentication for the lock screen.",
|
"term": "Use fingerprint authentication for the lock screen.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -20271,20 +20488,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Window Rules Include Missing",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"term": "Window Rules Not Configured",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Wipe",
|
"term": "Wipe",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -20404,6 +20607,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Xray Blur Effect",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Xray blurs only the wallpaper (efficient) and is the default when Blur is on. Set Xray to Off for regular full blur of everything beneath the window (more expensive).",
|
"term": "Xray blurs only the wallpaper (efficient) and is the default when Blur is on. Set Xray to Off for regular full blur of everything beneath the window (more expensive).",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -20411,6 +20621,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Xray options are in Compositor → Layout",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Y",
|
"term": "Y",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -20530,6 +20747,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "boregard is required",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "brandon",
|
"term": "brandon",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -20607,20 +20831,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "dms/cursor config exists but is not included. Cursor settings won't apply.",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"term": "dms/outputs config exists but is not included in your compositor config. Display changes won't persist.",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "e.g. /usr/bin/my-script --flag",
|
"term": "e.g. /usr/bin/my-script --flag",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -20943,6 +21153,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "reviewed",
|
||||||
|
"translation": "",
|
||||||
|
"context": "plugin status",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "seconds",
|
"term": "seconds",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -21027,13 +21244,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "verified",
|
|
||||||
"translation": "",
|
|
||||||
"context": "plugin status",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "wtype not available - install wtype for paste support",
|
"term": "wtype not available - install wtype for paste support",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
|
|||||||
Reference in New Issue
Block a user