mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-08-01 19:18:28 -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 niriLayoutRadiusOverride: -1
|
||||
property int niriLayoutBorderSize: -1
|
||||
property bool niriLayoutXrayEnabled: false
|
||||
property bool niriLayoutBarXrayEnabled: true
|
||||
property int hyprlandLayoutGapsOverride: -1
|
||||
property int hyprlandLayoutRadiusOverride: -1
|
||||
property int hyprlandLayoutBorderSize: -1
|
||||
property bool hyprlandResizeOnBorder: false
|
||||
property bool hyprlandLayoutXrayEnabled: false
|
||||
property bool hyprlandLayoutBarXrayEnabled: true
|
||||
property int mangoLayoutGapsOverride: -1
|
||||
property int mangoLayoutRadiusOverride: -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) {
|
||||
const activeBars = (configs || []).filter(c => c && c.enabled && (c.visible ?? true));
|
||||
return activeBars.every(c => !c.autoHide);
|
||||
const list = configs || [];
|
||||
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)
|
||||
|
||||
@@ -28,14 +28,10 @@ var SPEC = {
|
||||
niriLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||
niriLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||
niriLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" },
|
||||
niriLayoutXrayEnabled: { def: false, onChange: "updateCompositorLayout" },
|
||||
niriLayoutBarXrayEnabled: { def: true, onChange: "updateCompositorLayout" },
|
||||
hyprlandLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||
hyprlandLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||
hyprlandLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" },
|
||||
hyprlandResizeOnBorder: { def: false, onChange: "updateCompositorLayout" },
|
||||
hyprlandLayoutXrayEnabled: { def: false, onChange: "updateCompositorLayout" },
|
||||
hyprlandLayoutBarXrayEnabled: { def: true, onChange: "updateCompositorLayout" },
|
||||
mangoLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||
mangoLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" },
|
||||
mangoLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" },
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import QtCore
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import qs.Common
|
||||
import qs.Services
|
||||
import qs.Widgets
|
||||
@@ -22,6 +21,7 @@ Item {
|
||||
readonly property bool readOnly: CompositorService.isHyprland && layoutIncludeStatus.readOnly === true
|
||||
property bool checkingInclude: false
|
||||
property bool fixingInclude: false
|
||||
property string xrayConflictSource: ""
|
||||
|
||||
function getLayoutConfigPaths() {
|
||||
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: {
|
||||
if (CompositorService.isNiri || CompositorService.isHyprland || CompositorService.isMango)
|
||||
if (CompositorService.isNiri || CompositorService.isHyprland || CompositorService.isMango) {
|
||||
checkLayoutIncludeStatus();
|
||||
checkXrayConflicts();
|
||||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
width: parent.width
|
||||
tags: ["niri", "layout", "gaps", "radius", "window", "border"]
|
||||
@@ -312,25 +364,13 @@ Item {
|
||||
}
|
||||
|
||||
SettingsToggleRow {
|
||||
visible: CompositorService.isNiri
|
||||
tags: ["niri", "xray", "blur", "background-effect", "performance"]
|
||||
settingKey: "niriLayoutXrayEnabled"
|
||||
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")
|
||||
checked: SettingsData.niriLayoutXrayEnabled
|
||||
onToggled: checked => SettingsData.set("niriLayoutXrayEnabled", 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)
|
||||
description: I18n.tr("Blurred surfaces show the wallpaper instead of the content beneath")
|
||||
checked: NiriService.layoutXrayEnabled
|
||||
onToggled: checked => NiriService.setLayoutXray(checked)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -440,25 +480,13 @@ Item {
|
||||
}
|
||||
|
||||
SettingsToggleRow {
|
||||
visible: CompositorService.isHyprland
|
||||
tags: ["hyprland", "xray", "blur", "background-effect", "performance"]
|
||||
settingKey: "hyprlandLayoutXrayEnabled"
|
||||
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")
|
||||
checked: SettingsData.hyprlandLayoutXrayEnabled
|
||||
onToggled: checked => SettingsData.set("hyprlandLayoutXrayEnabled", 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)
|
||||
description: I18n.tr("Blurred surfaces show the wallpaper instead of the content beneath")
|
||||
checked: HyprlandService.layoutXrayEnabled
|
||||
onToggled: checked => HyprlandService.setLayoutXray(checked)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1816,7 +1816,7 @@ Item {
|
||||
Item {
|
||||
width: parent.width
|
||||
height: xrayHintRow.implicitHeight
|
||||
visible: CompositorService.isNiri || CompositorService.isHyprland || CompositorService.isMango
|
||||
visible: CompositorService.isNiri || CompositorService.isHyprland
|
||||
|
||||
Row {
|
||||
id: xrayHintRow
|
||||
@@ -1833,7 +1833,7 @@ Item {
|
||||
StyledText {
|
||||
width: parent.width - Theme.iconSizeSmall - Theme.spacingS
|
||||
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
|
||||
color: Theme.primary
|
||||
wrapMode: Text.Wrap
|
||||
|
||||
@@ -32,6 +32,11 @@ Singleton {
|
||||
property int _frameTransitionRevision: 0
|
||||
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 {
|
||||
id: layoutGenerationAction
|
||||
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) {
|
||||
if (!CompositorService.isHyprland)
|
||||
return;
|
||||
@@ -275,6 +302,10 @@ Singleton {
|
||||
function doGenerateLayoutConfig() {
|
||||
if (layoutGenerationRunning)
|
||||
return;
|
||||
if (!_layoutXrayLoaded) {
|
||||
loadLayoutXrayState();
|
||||
return;
|
||||
}
|
||||
layoutGenerationPending = false;
|
||||
const requestRevision = _layoutRequestRevision;
|
||||
if (!canWriteLuaConfig("layout")) {
|
||||
@@ -295,12 +326,10 @@ Singleton {
|
||||
const gaps = (typeof SettingsData !== "undefined" && SettingsData.hyprlandLayoutGapsOverride >= 0) ? SettingsData.hyprlandLayoutGapsOverride : defaultGaps;
|
||||
const borderSize = (typeof SettingsData !== "undefined" && SettingsData.hyprlandLayoutBorderSize >= 0) ? SettingsData.hyprlandLayoutBorderSize : defaultBorderSize;
|
||||
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 frameConnectedMode = frameEnabled && SettingsData.frameMode === "connected";
|
||||
// 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");
|
||||
|
||||
let content = `-- Auto-generated by DMS — do not edit manually
|
||||
@@ -318,7 +347,7 @@ hl.config({
|
||||
})
|
||||
`;
|
||||
|
||||
if (xrayEnabled) {
|
||||
if (layoutXrayEnabled) {
|
||||
content += `
|
||||
hl.layer_rule({
|
||||
match = { namespace = "^dms:.*$" },
|
||||
@@ -326,7 +355,7 @@ hl.layer_rule({
|
||||
})
|
||||
`;
|
||||
}
|
||||
if (barFrameXrayEnabled && barFrameTargetNamespace) {
|
||||
if (barFrameTargetNamespace) {
|
||||
content += `
|
||||
hl.layer_rule({
|
||||
match = { namespace = "^${barFrameTargetNamespace}$" },
|
||||
|
||||
@@ -49,6 +49,11 @@ Singleton {
|
||||
property string _lastGeneratedAlttabContent: ""
|
||||
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"
|
||||
property string pendingScreenshotPath: ""
|
||||
|
||||
@@ -1094,6 +1099,28 @@ Singleton {
|
||||
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) {
|
||||
if (!CompositorService.isNiri)
|
||||
return;
|
||||
@@ -1108,6 +1135,10 @@ Singleton {
|
||||
function doGenerateNiriLayoutConfig() {
|
||||
if (writeConfigProcess.running || _awaitingLayoutReloadRevision > _layoutAppliedRevision)
|
||||
return;
|
||||
if (!_layoutXrayLoaded) {
|
||||
loadLayoutXrayState();
|
||||
return;
|
||||
}
|
||||
configGenerationPending = false;
|
||||
log.debug("Generating layout config...");
|
||||
|
||||
@@ -1118,63 +1149,65 @@ Singleton {
|
||||
const cornerRadius = (typeof SettingsData !== "undefined" && SettingsData.niriLayoutRadiusOverride >= 0) ? SettingsData.niriLayoutRadiusOverride : defaultRadius;
|
||||
const gaps = (typeof SettingsData !== "undefined" && SettingsData.niriLayoutGapsOverride >= 0) ? SettingsData.niriLayoutGapsOverride : defaultGaps;
|
||||
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 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");
|
||||
|
||||
// Xray is niri's default blur, so only the off state needs a rule
|
||||
let xrayRules = "";
|
||||
if (!xrayEnabled) {
|
||||
if (!layoutXrayEnabled) {
|
||||
xrayRules += `
|
||||
layer-rule {
|
||||
match namespace=".*"
|
||||
background-effect {
|
||||
|
||||
layer-rule {
|
||||
background-effect {
|
||||
xray false
|
||||
}
|
||||
}`;
|
||||
}
|
||||
}`;
|
||||
}
|
||||
if (barFrameXrayEnabled && barFrameTargetNamespace) {
|
||||
|
||||
if (barFrameTargetNamespace) {
|
||||
xrayRules += `
|
||||
layer-rule {
|
||||
match namespace="^${barFrameTargetNamespace}$"
|
||||
background-effect {
|
||||
|
||||
layer-rule {
|
||||
match namespace="^${barFrameTargetNamespace}$"
|
||||
background-effect {
|
||||
xray true
|
||||
}
|
||||
}`;
|
||||
}
|
||||
}`;
|
||||
}
|
||||
|
||||
const dmsWarning = `// ! DO NOT EDIT !
|
||||
// ! AUTO-GENERATED BY DMS !
|
||||
// ! CHANGES WILL BE OVERWRITTEN !
|
||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||
// ! AUTO-GENERATED BY DMS !
|
||||
// ! CHANGES WILL BE OVERWRITTEN !
|
||||
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
|
||||
|
||||
`;
|
||||
`;
|
||||
|
||||
const configContent = dmsWarning + `layout {
|
||||
gaps ${gaps}
|
||||
gaps ${gaps}
|
||||
|
||||
border {
|
||||
border {
|
||||
width ${borderSize}
|
||||
}
|
||||
}
|
||||
|
||||
focus-ring {
|
||||
focus-ring {
|
||||
width ${borderSize}
|
||||
}
|
||||
}
|
||||
window-rule {
|
||||
geometry-corner-radius ${cornerRadius}
|
||||
clip-to-geometry true
|
||||
tiled-state true
|
||||
draw-border-with-background false
|
||||
}` + xrayRules;
|
||||
}
|
||||
}
|
||||
|
||||
window-rule {
|
||||
geometry-corner-radius ${cornerRadius}
|
||||
clip-to-geometry true
|
||||
tiled-state true
|
||||
draw-border-with-background false
|
||||
}` + xrayRules;
|
||||
|
||||
const alttabContent = dmsWarning + `recent-windows {
|
||||
highlight {
|
||||
highlight {
|
||||
corner-radius ${cornerRadius}
|
||||
}
|
||||
}`;
|
||||
}
|
||||
}`;
|
||||
|
||||
const configDir = Paths.strip(StandardPaths.writableLocation(StandardPaths.ConfigLocation));
|
||||
const niriDmsDir = configDir + "/niri/dms";
|
||||
@@ -1203,7 +1236,6 @@ Singleton {
|
||||
log.warn("Failed to ensure " + name + ".kdl, exit code:", exitCode);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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"
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"label": "Hyprland Layout Overrides",
|
||||
@@ -9202,26 +9128,28 @@
|
||||
"appearance",
|
||||
"background",
|
||||
"background-effect",
|
||||
"beneath",
|
||||
"bg",
|
||||
"blur",
|
||||
"blurred",
|
||||
"content",
|
||||
"custom",
|
||||
"customize",
|
||||
"desktop",
|
||||
"effect",
|
||||
"hyprland",
|
||||
"image",
|
||||
"makes",
|
||||
"performance",
|
||||
"personal",
|
||||
"personalization",
|
||||
"picture",
|
||||
"through",
|
||||
"visible",
|
||||
"show",
|
||||
"surfaces",
|
||||
"wallpaper",
|
||||
"windows",
|
||||
"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",
|
||||
@@ -9232,26 +9160,28 @@
|
||||
"appearance",
|
||||
"background",
|
||||
"background-effect",
|
||||
"beneath",
|
||||
"bg",
|
||||
"blur",
|
||||
"blurred",
|
||||
"content",
|
||||
"custom",
|
||||
"customize",
|
||||
"desktop",
|
||||
"effect",
|
||||
"image",
|
||||
"makes",
|
||||
"niri",
|
||||
"performance",
|
||||
"personal",
|
||||
"personalization",
|
||||
"picture",
|
||||
"through",
|
||||
"visible",
|
||||
"show",
|
||||
"surfaces",
|
||||
"wallpaper",
|
||||
"windows",
|
||||
"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",
|
||||
|
||||
@@ -20,6 +20,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "%1 Startup Failed",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "%1 active session",
|
||||
"translation": "",
|
||||
@@ -111,20 +118,6 @@
|
||||
"reference": "",
|
||||
"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",
|
||||
"translation": "",
|
||||
@@ -1357,6 +1350,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "An xray rule at %1 may conflict with the Xray settings below",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Analog",
|
||||
"translation": "",
|
||||
@@ -1490,6 +1490,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "App name or identity (e.g., firefox)",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Appearance",
|
||||
"translation": "",
|
||||
@@ -2533,13 +2540,6 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Binds Include Missing",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Binds include added",
|
||||
"translation": "",
|
||||
@@ -2673,6 +2673,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Blurred surfaces show the wallpaper instead of the content beneath",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Body",
|
||||
"translation": "",
|
||||
@@ -2869,6 +2876,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Browse and set wallpapers",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Browse or search plugins",
|
||||
"translation": "",
|
||||
@@ -3366,6 +3380,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Choose wallpaper folder",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Choose where notification popups appear on screen",
|
||||
"translation": "",
|
||||
@@ -3492,13 +3513,6 @@
|
||||
"reference": "",
|
||||
"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.",
|
||||
"translation": "",
|
||||
@@ -3506,13 +3520,6 @@
|
||||
"reference": "",
|
||||
"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.",
|
||||
"translation": "",
|
||||
@@ -3646,6 +3653,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Clock, calendar, system info and profile",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Close",
|
||||
"translation": "",
|
||||
@@ -3745,7 +3759,7 @@
|
||||
"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": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
@@ -4298,7 +4312,7 @@
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Controls outlines around blurred foreground cards, pills, and notification cards",
|
||||
"term": "Controls outlines around foreground cards, pills, and notification cards",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
@@ -4724,20 +4738,6 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Cursor Config Not Configured",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Cursor Include Missing",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Cursor Size",
|
||||
"translation": "",
|
||||
@@ -5060,6 +5060,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Dank Dash",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "DankBar",
|
||||
"translation": "",
|
||||
@@ -6019,6 +6026,13 @@
|
||||
"reference": "",
|
||||
"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",
|
||||
"translation": "",
|
||||
@@ -6026,6 +6040,13 @@
|
||||
"reference": "",
|
||||
"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.",
|
||||
"translation": "",
|
||||
@@ -6061,6 +6082,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Drop here",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Drop your override for %1 so the DMS default action re-applies?",
|
||||
"translation": "",
|
||||
@@ -6159,6 +6187,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Edge Hover Reveal",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Edge Spacing",
|
||||
"translation": "",
|
||||
@@ -6754,6 +6789,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Excluded Media Players",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Exclusive Zone Offset",
|
||||
"translation": "",
|
||||
@@ -7090,13 +7132,6 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Failed to enable plugin: %1",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Failed to fetch network QR code: %1",
|
||||
"translation": "",
|
||||
@@ -7713,20 +7748,6 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Fix Now",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Fixing...",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Flags",
|
||||
"translation": "",
|
||||
@@ -7867,6 +7888,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Focused Display",
|
||||
"translation": "",
|
||||
"context": "workspace appearance tab",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Focused Monitor Only",
|
||||
"translation": "",
|
||||
@@ -8077,6 +8105,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Forecast and conditions",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Foreground Layers",
|
||||
"translation": "",
|
||||
@@ -8791,6 +8826,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Hidden until weather is enabled",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Hide",
|
||||
"translation": "",
|
||||
@@ -9057,6 +9099,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Hover Popouts",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "How often the server polls for new updates.",
|
||||
"translation": "",
|
||||
@@ -9736,6 +9785,20 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Jump to page",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Jump to page (1 - %1)",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Keep Awake",
|
||||
"translation": "",
|
||||
@@ -11647,6 +11710,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Next page",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Night",
|
||||
"translation": "",
|
||||
@@ -12018,6 +12088,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "No excluded players configured",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "No features enabled",
|
||||
"translation": "",
|
||||
@@ -12270,6 +12347,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "No screenshot provided",
|
||||
"translation": "",
|
||||
"context": "plugin browser no screenshot",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "No session selected",
|
||||
"translation": "",
|
||||
@@ -12648,6 +12732,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Now playing and media controls",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Numbers",
|
||||
"translation": "",
|
||||
@@ -12837,6 +12928,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Open Delay",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Open Dir",
|
||||
"translation": "",
|
||||
@@ -12928,6 +13026,20 @@
|
||||
"reference": "",
|
||||
"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...",
|
||||
"translation": "",
|
||||
@@ -13075,13 +13187,6 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Outputs Include Missing",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Overcast",
|
||||
"translation": "",
|
||||
@@ -13782,6 +13887,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Plugin dependency missing",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Plugin disabled: %1",
|
||||
"translation": "",
|
||||
@@ -14146,6 +14258,13 @@
|
||||
"reference": "",
|
||||
"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",
|
||||
"translation": "",
|
||||
@@ -14167,6 +14286,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Previous page",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Primary",
|
||||
"translation": "",
|
||||
@@ -14671,6 +14797,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Related: %1",
|
||||
"translation": "",
|
||||
"context": "related plugins",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Release",
|
||||
"translation": "",
|
||||
@@ -14881,6 +15014,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Reorder & Group",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Repeat",
|
||||
"translation": "",
|
||||
@@ -15553,10 +15693,17 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Screenshot unavailable",
|
||||
"translation": "",
|
||||
"context": "plugin browser screenshot error",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Scroll",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"context": "wallpaper fill mode",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
@@ -16071,6 +16218,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Separate Appearance for Unfocused Display(s)",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Separate Light & Dark Themes",
|
||||
"translation": "",
|
||||
@@ -16078,6 +16232,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Separate appearance for unfocused displays is not supported on this compositor.",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Separator",
|
||||
"translation": "",
|
||||
@@ -16190,6 +16351,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Setting up...",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Settings",
|
||||
"translation": "",
|
||||
@@ -16337,6 +16505,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Shortcut that opens this settings window",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Shortcuts",
|
||||
"translation": "",
|
||||
@@ -16884,7 +17059,7 @@
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Show foreground surfaces on blurred panels for stronger contrast",
|
||||
"term": "Show foreground surfaces on panels for stronger contrast",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
@@ -17289,6 +17464,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Sort wallpapers",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Sorting & Layout",
|
||||
"translation": "",
|
||||
@@ -18073,6 +18255,13 @@
|
||||
"reference": "",
|
||||
"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.",
|
||||
"translation": "",
|
||||
@@ -18227,6 +18416,13 @@
|
||||
"reference": "",
|
||||
"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.",
|
||||
"translation": "",
|
||||
@@ -18381,6 +18577,13 @@
|
||||
"reference": "",
|
||||
"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",
|
||||
"translation": "",
|
||||
@@ -18892,6 +19095,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Unfocused Display(s)",
|
||||
"translation": "",
|
||||
"context": "workspace appearance tab",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Ungrouped",
|
||||
"translation": "",
|
||||
@@ -19382,6 +19592,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Use different workspace colors on displays that are not focused",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Use fingerprint authentication for the lock screen.",
|
||||
"translation": "",
|
||||
@@ -20271,20 +20488,6 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Window Rules Include Missing",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Window Rules Not Configured",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Wipe",
|
||||
"translation": "",
|
||||
@@ -20404,6 +20607,13 @@
|
||||
"reference": "",
|
||||
"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).",
|
||||
"translation": "",
|
||||
@@ -20411,6 +20621,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Xray options are in Compositor → Layout",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "Y",
|
||||
"translation": "",
|
||||
@@ -20530,6 +20747,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "boregard is required",
|
||||
"translation": "",
|
||||
"context": "",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "brandon",
|
||||
"translation": "",
|
||||
@@ -20607,20 +20831,6 @@
|
||||
"reference": "",
|
||||
"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",
|
||||
"translation": "",
|
||||
@@ -20943,6 +21153,13 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "reviewed",
|
||||
"translation": "",
|
||||
"context": "plugin status",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "seconds",
|
||||
"translation": "",
|
||||
@@ -21027,13 +21244,6 @@
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "verified",
|
||||
"translation": "",
|
||||
"context": "plugin status",
|
||||
"reference": "",
|
||||
"comment": ""
|
||||
},
|
||||
{
|
||||
"term": "wtype not available - install wtype for paste support",
|
||||
"translation": "",
|
||||
|
||||
Reference in New Issue
Block a user