mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-04-14 01:32:29 -04:00
New neovim theme engine (#1985)
* feat(matugen)!: rework completely neovim's theme engine * fix: link to neovim theme plugin * fix: expect AvengeMedia/base46 instead of Silzinc/base46
This commit is contained in:
@@ -477,6 +477,11 @@ Singleton {
|
|||||||
property bool matugenTemplateEmacs: true
|
property bool matugenTemplateEmacs: true
|
||||||
property bool matugenTemplateZed: true
|
property bool matugenTemplateZed: true
|
||||||
|
|
||||||
|
property var matugenTemplateNeovimSettings: ({
|
||||||
|
"dark": { "baseTheme": "github_dark", "harmony": 0.5 },
|
||||||
|
"light": { "baseTheme": "github_light", "harmony": 0.5 }
|
||||||
|
})
|
||||||
|
|
||||||
property bool showDock: false
|
property bool showDock: false
|
||||||
property bool dockAutoHide: false
|
property bool dockAutoHide: false
|
||||||
property bool dockSmartAutoHide: false
|
property bool dockSmartAutoHide: false
|
||||||
|
|||||||
@@ -292,6 +292,13 @@ var SPEC = {
|
|||||||
matugenTemplateEmacs: { def: true },
|
matugenTemplateEmacs: { def: true },
|
||||||
matugenTemplateZed: { def: true },
|
matugenTemplateZed: { def: true },
|
||||||
|
|
||||||
|
matugenTemplateNeovimSettings: {
|
||||||
|
def: {
|
||||||
|
dark: { baseTheme: "github_dark", harmony: 0.5 },
|
||||||
|
light: { baseTheme: "github_light", harmony: 0.5 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
showDock: { def: false },
|
showDock: { def: false },
|
||||||
dockAutoHide: { def: false },
|
dockAutoHide: { def: false },
|
||||||
dockSmartAutoHide: { def: false },
|
dockSmartAutoHide: { def: false },
|
||||||
|
|||||||
@@ -2568,18 +2568,96 @@ Item {
|
|||||||
onToggled: checked => SettingsData.set("matugenTemplateFoot", checked)
|
onToggled: checked => SettingsData.set("matugenTemplateFoot", checked)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SettingsDivider {
|
||||||
|
visible: neovimThemeToggle.visible && neovimThemeToggle.checked
|
||||||
|
}
|
||||||
|
|
||||||
SettingsToggleRow {
|
SettingsToggleRow {
|
||||||
|
id: neovimThemeToggle
|
||||||
tab: "theme"
|
tab: "theme"
|
||||||
tags: ["matugen", "neovim", "terminal", "template"]
|
tags: ["matugen", "neovim", "terminal", "template"]
|
||||||
settingKey: "matugenTemplateNeovim"
|
settingKey: "matugenTemplateNeovim"
|
||||||
text: "neovim"
|
text: "neovim"
|
||||||
description: getTemplateDescription("nvim", I18n.tr("Requires lazy plugin manager", "neovim template description"))
|
description: getTemplateDescription("nvim", I18n.tr("Required plugin: ") + "https://github.com/AvengeMedia/base46")
|
||||||
descriptionColor: getTemplateDescriptionColor("nvim")
|
descriptionColor: getTemplateDescriptionColor("nvim")
|
||||||
visible: SettingsData.runDmsMatugenTemplates
|
visible: SettingsData.runDmsMatugenTemplates
|
||||||
checked: SettingsData.matugenTemplateNeovim
|
checked: SettingsData.matugenTemplateNeovim
|
||||||
onToggled: checked => SettingsData.set("matugenTemplateNeovim", checked)
|
onToggled: checked => SettingsData.set("matugenTemplateNeovim", checked)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SettingsDropdownRow {
|
||||||
|
text: I18n.tr("Dark mode base")
|
||||||
|
tab: "theme"
|
||||||
|
tags: ["matugen", "neovim", "terminal", "template"]
|
||||||
|
settingKey: "matugenTemplateNeovimSettings"
|
||||||
|
description: "Base to derive dark theme from"
|
||||||
|
visible: neovimThemeToggle.visible && neovimThemeToggle.checked
|
||||||
|
currentValue: SettingsData.matugenTemplateNeovimSettings?.dark?.baseTheme ?? "github_dark"
|
||||||
|
options: ["aquarium", "ashes", "aylin", "ayu_dark", "bearded-arc", "carbonfox", "catppuccin", "chadracula", "chadracula-evondev", "chadtain", "chocolate", "darcula-dark", "dark_horizon", "decay", "default-dark", "doomchad", "eldritch", "embark", "everblush", "everforest", "falcon", "flexoki", "flouromachine", "gatekeeper", "github_dark", "gruvbox", "gruvchad", "hiberbee", "horizon", "jabuti", "jellybeans", "kanagawa", "kanagawa-dragon", "material-darker", "material-deep-ocean", "melange", "midnight_breeze", "mito-laser", "monekai", "monochrome", "mountain", "neofusion", "nightfox", "nightlamp", "nightowl", "nord", "obsidian-ember", "oceanic-next", "onedark", "onenord", "oxocarbon", "palenight", "pastelDark", "pastelbeans", "penumbra_dark", "poimandres", "radium", "rosepine", "rxyhn", "scaryforest", "seoul256_dark", "solarized_dark", "solarized_osaka", "starlight", "sweetpastel", "tokyodark", "tokyonight", "tomorrow_night", "tundra", "vesper", "vscode_dark", "wombat", "yoru", "zenburn"]
|
||||||
|
enableFuzzySearch: true
|
||||||
|
onValueChanged: value => {
|
||||||
|
const settings = SettingsData.matugenTemplateNeovimSettings;
|
||||||
|
settings.dark.baseTheme = value;
|
||||||
|
SettingsData.set("matugenTemplateNeovimSettings", settings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SettingsDropdownRow {
|
||||||
|
text: I18n.tr("Light mode base")
|
||||||
|
tab: "theme"
|
||||||
|
tags: ["matugen", "neovim", "terminal", "template"]
|
||||||
|
settingKey: "matugenTemplateNeovimSettings"
|
||||||
|
description: "Base to derive light theme from"
|
||||||
|
visible: neovimThemeToggle.visible && neovimThemeToggle.checked
|
||||||
|
currentValue: SettingsData.matugenTemplateNeovimSettings?.light?.baseTheme ?? "github_light"
|
||||||
|
options: ["ayu_light", "blossom_light", "catppuccin-latte", "default-light", "everforest_light", "flex-light", "flexoki-light", "github_light", "gruvbox_light", "material-lighter", "nano-light", "oceanic-light", "one_light", "onenord_light", "penumbra_light", "rosepine-dawn", "seoul256_light", "solarized_light", "sunrise_breeze", "vscode_light"]
|
||||||
|
enableFuzzySearch: true
|
||||||
|
onValueChanged: value => {
|
||||||
|
const settings = SettingsData.matugenTemplateNeovimSettings;
|
||||||
|
settings.light.baseTheme = value;
|
||||||
|
SettingsData.set("matugenTemplateNeovimSettings", settings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SettingsSliderRow {
|
||||||
|
text: I18n.tr("Dark mode harmony")
|
||||||
|
tags: ["matugen", "neovim", "terminal", "template"]
|
||||||
|
settingKey: "matugenTemplateNeovimSettings"
|
||||||
|
description: "How much should the base dark theme be tinted"
|
||||||
|
visible: neovimThemeToggle.visible && neovimThemeToggle.checked
|
||||||
|
minimum: 0
|
||||||
|
maximum: 100
|
||||||
|
value: (SettingsData.matugenTemplateNeovimSettings?.dark?.harmony ?? 0.5) * 100
|
||||||
|
defaultValue: 50
|
||||||
|
onSliderValueChanged: value => {
|
||||||
|
const settings = SettingsData.matugenTemplateNeovimSettings;
|
||||||
|
settings.dark.harmony = value / 100;
|
||||||
|
SettingsData.set("matugenTemplateNeovimSettings", settings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SettingsSliderRow {
|
||||||
|
text: I18n.tr("Light mode harmony")
|
||||||
|
tags: ["matugen", "neovim", "terminal", "template"]
|
||||||
|
settingKey: "matugenTemplateNeovimSettings"
|
||||||
|
description: "How much should the base light theme be tinted"
|
||||||
|
visible: neovimThemeToggle.visible && neovimThemeToggle.checked
|
||||||
|
minimum: 0
|
||||||
|
maximum: 100
|
||||||
|
value: (SettingsData.matugenTemplateNeovimSettings?.light?.harmony ?? 0.5) * 100
|
||||||
|
defaultValue: 50
|
||||||
|
onSliderValueChanged: value => {
|
||||||
|
const settings = SettingsData.matugenTemplateNeovimSettings;
|
||||||
|
settings.light.harmony = value / 100;
|
||||||
|
SettingsData.set("matugenTemplateNeovimSettings", settings);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SettingsDivider {
|
||||||
|
visible: neovimThemeToggle.visible && neovimThemeToggle.checked
|
||||||
|
}
|
||||||
|
|
||||||
SettingsToggleRow {
|
SettingsToggleRow {
|
||||||
tab: "theme"
|
tab: "theme"
|
||||||
tags: ["matugen", "alacritty", "terminal", "template"]
|
tags: ["matugen", "alacritty", "terminal", "template"]
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
[templates.dmsneovim]
|
[templates.dmsneovim]
|
||||||
input_path = 'SHELL_DIR/matugen/templates/neovim.lua'
|
input_path = 'SHELL_DIR/matugen/templates/neovim.lua'
|
||||||
output_path = 'CONFIG_DIR/nvim/lua/plugins/dankcolors.lua'
|
output_path = 'CONFIG_DIR/nvim/colors/dms.lua'
|
||||||
|
|||||||
@@ -1,40 +1,83 @@
|
|||||||
return {
|
local present, base46 = pcall(require, "base46")
|
||||||
{
|
if not present or not base46._DMS_SUPPORT then
|
||||||
"RRethy/base16-nvim",
|
vim.notify(
|
||||||
priority = 1000,
|
"base46 plugin not found or incorrect, make sure to install AvengeMedia/base46",
|
||||||
config = function()
|
vim.log.levels.ERROR,
|
||||||
require('base16-colorscheme').setup({
|
{ title = "dms integration" }
|
||||||
|
)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
base00 = '{{colors.background.dark.hex}}',
|
local config_home = vim.env.XDG_CONFIG_HOME
|
||||||
base01 = '{{colors.surface_container_low.dark.hex}}',
|
if config_home == nil or #config_home == 0 then
|
||||||
base02 = '{{colors.surface_container.dark.hex}}',
|
config_home = vim.fs.joinpath(vim.env.HOME, ".config")
|
||||||
base03 = '{{dank16.color8.dark.hex}}',
|
end
|
||||||
base0B = '{{dank16.color3.dark.hex}}',
|
local settings_file_path = vim.fs.joinpath(config_home, "DankMaterialShell", "settings.json")
|
||||||
base04 = '{{dank16.color7.default.hex}}',
|
local settings_file = io.open(settings_file_path, "r")
|
||||||
base05 = '{{dank16.color15.default.hex}}',
|
if settings_file == nil then
|
||||||
base06 = '{{dank16.color15.default.hex}}',
|
vim.notify(
|
||||||
base07 = '{{dank16.color15.default.hex}}',
|
"cannnot read dms settings file at '" .. settings_file_path .. "'",
|
||||||
base08 = '{{dank16.color9.default.hex}}',
|
vim.log.levels.ERROR,
|
||||||
base09 = '{{dank16.color9.default.hex}}',
|
{ title = "dms integration" }
|
||||||
base0A = '{{dank16.color12.default.hex}}',
|
)
|
||||||
base0C = '{{dank16.color14.default.hex}}',
|
return
|
||||||
base0D = '{{dank16.color12.default.hex}}',
|
end
|
||||||
base0E = '{{dank16.color13.default.hex}}',
|
local settings = vim.json.decode(settings_file:read("*a"))
|
||||||
base0F = '{{dank16.color13.default.hex}}',
|
settings_file:close()
|
||||||
})
|
|
||||||
|
|
||||||
local current_file_path = vim.fn.stdpath("config") .. "/lua/plugins/dankcolors.lua"
|
local function deepGet(t, k)
|
||||||
if not _G._matugen_theme_watcher then
|
for _, s in ipairs(k) do
|
||||||
local uv = vim.uv or vim.loop
|
if type(t) ~= "table" then
|
||||||
_G._matugen_theme_watcher = uv.new_fs_event()
|
return
|
||||||
_G._matugen_theme_watcher:start(current_file_path, {}, vim.schedule_wrap(function()
|
|
||||||
local new_spec = dofile(current_file_path)
|
|
||||||
if new_spec and new_spec[1] and new_spec[1].config then
|
|
||||||
new_spec[1].config()
|
|
||||||
print("Theme reload")
|
|
||||||
end
|
|
||||||
end))
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
}
|
t = t[s]
|
||||||
}
|
end
|
||||||
|
return t
|
||||||
|
end
|
||||||
|
|
||||||
|
local current_file_path = debug.getinfo(1, "S").source:sub(2)
|
||||||
|
local theme_base = deepGet(settings, { "matugenTemplateNeovimSettings", vim.o.background, "baseTheme" })
|
||||||
|
or ("github_" .. vim.o.background)
|
||||||
|
local harmony = deepGet(settings, { "matugenTemplateNeovimSettings", vim.o.background, "harmony" }) or 0.5
|
||||||
|
local theme_name = "dms"
|
||||||
|
|
||||||
|
if not _G._matugen_theme_watcher then
|
||||||
|
local uv = vim.uv or vim.loop
|
||||||
|
_G._matugen_theme_watcher = { uv.new_fs_event(), uv.new_fs_event(), reload_timer = uv.new_timer() }
|
||||||
|
|
||||||
|
local debounce_time = 100 -- ms
|
||||||
|
local function handler()
|
||||||
|
_G._matugen_theme_watcher.reload_timer:stop()
|
||||||
|
_G._matugen_theme_watcher.reload_timer:start(
|
||||||
|
debounce_time,
|
||||||
|
0,
|
||||||
|
vim.schedule_wrap(function()
|
||||||
|
base46.theme_tables[theme_name] = nil
|
||||||
|
if vim.g.colors_name == theme_name then
|
||||||
|
vim.cmd.colorscheme(theme_name)
|
||||||
|
vim.notify("Theme reload", vim.log.levels.INFO, { title = "dms integration" })
|
||||||
|
end
|
||||||
|
-- NOTE: contrary to what the documentation says, uv fs events usually do not manage to react to more than one edit.
|
||||||
|
-- I understand that this is not intended: some edit processes in a typical system (e.g. the one neovim uses with
|
||||||
|
-- multiple renames and changes) make things hard to follow for libuv. Therefore, a restart is the best option.
|
||||||
|
_G._matugen_theme_watcher[1]:stop()
|
||||||
|
_G._matugen_theme_watcher[2]:stop()
|
||||||
|
_G._matugen_theme_watcher[1]:start(current_file_path, {}, handler)
|
||||||
|
_G._matugen_theme_watcher[2]:start(settings_file_path, {}, handler)
|
||||||
|
end)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
_G._matugen_theme_watcher[1]:start(current_file_path, {}, handler)
|
||||||
|
_G._matugen_theme_watcher[2]:start(settings_file_path, {}, handler)
|
||||||
|
end
|
||||||
|
|
||||||
|
if not base46.theme_tables[theme_name] or base46.theme_tables[theme_name].type ~= vim.o.background then
|
||||||
|
local builtin = vim.deepcopy(assert(base46.get_builtin_theme(theme_base)))
|
||||||
|
local harmonized = base46.theme_harmonize(builtin, "{{colors.source_color.default.hex}}", harmony)
|
||||||
|
harmonized = base46.theme_set_bg(harmonized, "{{colors.background.default.hex}}")
|
||||||
|
|
||||||
|
base46.theme_tables[theme_name] = harmonized
|
||||||
|
end
|
||||||
|
|
||||||
|
base46.load(theme_name)
|
||||||
|
vim.g.colors_name = theme_name
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -2583,6 +2583,29 @@
|
|||||||
"description": "Mouse pointer appearance",
|
"description": "Mouse pointer appearance",
|
||||||
"conditionKey": "isNiri"
|
"conditionKey": "isNiri"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"section": "matugenTemplateNeovimSettings",
|
||||||
|
"label": "Dark mode base",
|
||||||
|
"tabIndex": 10,
|
||||||
|
"category": "Theme & Colors",
|
||||||
|
"keywords": [
|
||||||
|
"appearance",
|
||||||
|
"base",
|
||||||
|
"colors",
|
||||||
|
"dark",
|
||||||
|
"dark mode",
|
||||||
|
"look",
|
||||||
|
"matugen",
|
||||||
|
"mode",
|
||||||
|
"neovim",
|
||||||
|
"night",
|
||||||
|
"scheme",
|
||||||
|
"style",
|
||||||
|
"template",
|
||||||
|
"terminal",
|
||||||
|
"theme"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"section": "modalDarkenBackground",
|
"section": "modalDarkenBackground",
|
||||||
"label": "Darken Modal Background",
|
"label": "Darken Modal Background",
|
||||||
@@ -3948,20 +3971,17 @@
|
|||||||
"keywords": [
|
"keywords": [
|
||||||
"appearance",
|
"appearance",
|
||||||
"colors",
|
"colors",
|
||||||
"lazy",
|
|
||||||
"look",
|
"look",
|
||||||
"manager",
|
|
||||||
"matugen",
|
"matugen",
|
||||||
"neovim",
|
"neovim",
|
||||||
"plugin",
|
"required",
|
||||||
"requires",
|
|
||||||
"scheme",
|
"scheme",
|
||||||
"style",
|
"style",
|
||||||
"template",
|
"template",
|
||||||
"terminal",
|
"terminal",
|
||||||
"theme"
|
"theme"
|
||||||
],
|
],
|
||||||
"description": "Requires lazy plugin manager"
|
"description": "Required plugin: "
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"section": "matugenTemplateNiri",
|
"section": "matugenTemplateNiri",
|
||||||
@@ -4138,18 +4158,14 @@
|
|||||||
"authentication",
|
"authentication",
|
||||||
"biometric",
|
"biometric",
|
||||||
"enable",
|
"enable",
|
||||||
"enrolled",
|
|
||||||
"fingerprint",
|
"fingerprint",
|
||||||
"fprint",
|
"fprint",
|
||||||
"lock",
|
"lock",
|
||||||
"lockscreen",
|
|
||||||
"login",
|
"login",
|
||||||
"password",
|
"password",
|
||||||
"reader",
|
|
||||||
"screen",
|
"screen",
|
||||||
"security"
|
"security"
|
||||||
],
|
]
|
||||||
"description": "Use fingerprint reader for lock screen authentication (requires enrolled fingerprints)"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"section": "loginctlLockIntegration",
|
"section": "loginctlLockIntegration",
|
||||||
@@ -4182,20 +4198,17 @@
|
|||||||
"keywords": [
|
"keywords": [
|
||||||
"authentication",
|
"authentication",
|
||||||
"enable",
|
"enable",
|
||||||
"enrolled",
|
|
||||||
"fido",
|
"fido",
|
||||||
"hardware",
|
"hardware",
|
||||||
"key",
|
"key",
|
||||||
"lock",
|
"lock",
|
||||||
"lockscreen",
|
|
||||||
"login",
|
"login",
|
||||||
"password",
|
"password",
|
||||||
"screen",
|
"screen",
|
||||||
"security",
|
"security",
|
||||||
"u2f",
|
"u2f",
|
||||||
"yubikey"
|
"yubikey"
|
||||||
],
|
]
|
||||||
"description": "Use a FIDO2/U2F security key (e.g. YubiKey) for lock screen authentication (requires enrolled keys)"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"section": "lockDisplay",
|
"section": "lockDisplay",
|
||||||
@@ -4286,6 +4299,27 @@
|
|||||||
],
|
],
|
||||||
"description": "Automatically lock the screen when DMS starts"
|
"description": "Automatically lock the screen when DMS starts"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"section": "lockBeforeSuspend",
|
||||||
|
"label": "Lock before suspend",
|
||||||
|
"tabIndex": 11,
|
||||||
|
"category": "Lock Screen",
|
||||||
|
"keywords": [
|
||||||
|
"automatic",
|
||||||
|
"automatically",
|
||||||
|
"before",
|
||||||
|
"lock",
|
||||||
|
"login",
|
||||||
|
"password",
|
||||||
|
"prepares",
|
||||||
|
"screen",
|
||||||
|
"security",
|
||||||
|
"sleep",
|
||||||
|
"suspend",
|
||||||
|
"system"
|
||||||
|
],
|
||||||
|
"description": "Automatically lock the screen when the system prepares to suspend"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"section": "lockScreenNotificationMode",
|
"section": "lockScreenNotificationMode",
|
||||||
"label": "Notification Display",
|
"label": "Notification Display",
|
||||||
@@ -6288,27 +6322,6 @@
|
|||||||
"icon": "schedule",
|
"icon": "schedule",
|
||||||
"description": "Gradually fade the screen before locking with a configurable grace period"
|
"description": "Gradually fade the screen before locking with a configurable grace period"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"section": "lockBeforeSuspend",
|
|
||||||
"label": "Lock before suspend",
|
|
||||||
"tabIndex": 21,
|
|
||||||
"category": "Power & Sleep",
|
|
||||||
"keywords": [
|
|
||||||
"automatically",
|
|
||||||
"before",
|
|
||||||
"energy",
|
|
||||||
"lock",
|
|
||||||
"power",
|
|
||||||
"prepares",
|
|
||||||
"screen",
|
|
||||||
"security",
|
|
||||||
"shutdown",
|
|
||||||
"sleep",
|
|
||||||
"suspend",
|
|
||||||
"system"
|
|
||||||
],
|
|
||||||
"description": "Automatically lock the screen when the system prepares to suspend"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"section": "fadeToLockGracePeriod",
|
"section": "fadeToLockGracePeriod",
|
||||||
"label": "Lock fade grace period",
|
"label": "Lock fade grace period",
|
||||||
|
|||||||
@@ -1518,6 +1518,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Available.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "BSSID",
|
"term": "BSSID",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -3653,6 +3660,20 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Dark mode base",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Dark mode harmony",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Darken Modal Background",
|
"term": "Darken Modal Background",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -4003,13 +4024,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Disabled.",
|
|
||||||
"translation": "",
|
|
||||||
"context": "",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Disabling WiFi...",
|
"term": "Disabling WiFi...",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -4647,6 +4661,76 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Enabled, but fingerprint availability could not be confirmed.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Enabled, but no fingerprint reader was detected.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Enabled, but no prints are enrolled yet. Enroll fingerprints and run Sync.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Enabled, but no prints are enrolled yet. Enroll fingerprints to use it.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Enabled, but no registered security key was found yet. Register a key and run Sync.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Enabled, but no registered security key was found yet. Register a key or update your U2F config.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Enabled, but security-key availability could not be confirmed.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Enabled. PAM already provides fingerprint auth.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Enabled. PAM already provides security-key auth.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Enabled. PAM provides fingerprint auth, but no prints are enrolled yet.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Enabling WiFi...",
|
"term": "Enabling WiFi...",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -5529,6 +5613,27 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Fingerprint availability could not be confirmed.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Fingerprint reader detected, but no prints are enrolled yet. You can enable this now and enroll later.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Fingerprint reader detected, but no prints are enrolled yet. You can enable this now and run Sync later.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Finish",
|
"term": "Finish",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -5641,6 +5746,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Focused Monitor Only",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Focused Window",
|
"term": "Focused Window",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -5648,6 +5760,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Focused monitor only",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Fog",
|
"term": "Fog",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -6425,6 +6544,20 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Highlight Active Workspace App",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Highlight the currently focused app inside workspace indicators",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "History",
|
"term": "History",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -7321,6 +7454,20 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Light mode base",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Light mode harmony",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Line",
|
"term": "Line",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -8826,6 +8973,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "No fingerprint reader detected.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "No folders found",
|
"term": "No folders found",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -9121,14 +9275,28 @@
|
|||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"term": "Not available — install fprintd and enroll fingerprints.",
|
"term": "Not available — install fprintd and pam_fprintd, or configure greetd PAM.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
"context": "",
|
"context": "",
|
||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"term": "Not available — install pam_u2f and enroll keys.",
|
"term": "Not available — install fprintd and pam_fprintd.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Not available — install or configure pam_u2f, or configure greetd PAM.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Not available — install or configure pam_u2f.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
"context": "",
|
"context": "",
|
||||||
"reference": "",
|
"reference": "",
|
||||||
@@ -9148,13 +9316,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Not enrolled",
|
|
||||||
"translation": "",
|
|
||||||
"context": "fingerprint not detected status | security key not detected status",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Not paired",
|
"term": "Not paired",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -9394,7 +9555,7 @@
|
|||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"term": "Only off for DMS-managed PAM lines. If greetd includes system-auth/common-auth/password-auth with pam_fprintd, fingerprint still stays enabled.",
|
"term": "Only affects DMS-managed PAM. If greetd already includes pam_fprintd, fingerprint stays enabled.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
"context": "",
|
"context": "",
|
||||||
"reference": "",
|
"reference": "",
|
||||||
@@ -9715,6 +9876,41 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "PAM already provides fingerprint auth. Enable this to show it at login.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "PAM already provides security-key auth. Enable this to show it at login.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "PAM provides fingerprint auth, but availability could not be confirmed.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "PAM provides fingerprint auth, but no prints are enrolled yet.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "PAM provides fingerprint auth, but no reader was detected.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "PIN",
|
"term": "PIN",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -10940,6 +11136,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Required plugin: ",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Requires %1",
|
"term": "Requires %1",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -10968,13 +11171,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Requires lazy plugin manager",
|
|
||||||
"translation": "",
|
|
||||||
"context": "neovim template description",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Requires night mode support",
|
"term": "Requires night mode support",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -11052,6 +11248,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Restore Special Workspace Windows",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Resume",
|
"term": "Resume",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -11640,6 +11843,20 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Security-key availability could not be confirmed.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Security-key support was detected, but no registered key was found yet. You can enable this now and register one later.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Select",
|
"term": "Select",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -12585,6 +12802,20 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Show notification popups only on the currently focused monitor",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"term": "Show notifications only on the currently focused monitor",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Show on Last Display",
|
"term": "Show on Last Display",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -14307,13 +14538,6 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"term": "Use a FIDO2/U2F security key (e.g. YubiKey) for lock screen authentication (requires enrolled keys)",
|
|
||||||
"translation": "",
|
|
||||||
"context": "lock screen U2F security key setting",
|
|
||||||
"reference": "",
|
|
||||||
"comment": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"term": "Use a custom image for the login screen, or leave empty to use your desktop wallpaper.",
|
"term": "Use a custom image for the login screen, or leave empty to use your desktop wallpaper.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -14328,6 +14552,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "Use a security key for lock screen authentication.",
|
||||||
|
"translation": "",
|
||||||
|
"context": "lock screen U2F security key setting",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "Use an external wallpaper manager like swww, hyprpaper, or swaybg.",
|
"term": "Use an external wallpaper manager like swww, hyprpaper, or swaybg.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
@@ -14392,7 +14623,7 @@
|
|||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"term": "Use fingerprint reader for lock screen authentication (requires enrolled fingerprints)",
|
"term": "Use fingerprint authentication for the lock screen.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
"context": "",
|
"context": "",
|
||||||
"reference": "",
|
"reference": "",
|
||||||
@@ -14832,6 +15063,13 @@
|
|||||||
"reference": "",
|
"reference": "",
|
||||||
"comment": ""
|
"comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"term": "When clicking a dock window in a Hyprland special workspace, bring that special workspace back before focusing the window",
|
||||||
|
"translation": "",
|
||||||
|
"context": "",
|
||||||
|
"reference": "",
|
||||||
|
"comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"term": "When enabled, apps are sorted alphabetically. When disabled, apps are sorted by usage frequency.",
|
"term": "When enabled, apps are sorted alphabetically. When disabled, apps are sorted by usage frequency.",
|
||||||
"translation": "",
|
"translation": "",
|
||||||
|
|||||||
Reference in New Issue
Block a user