diff --git a/.github/workflows/update-flake.yml b/.github/workflows/update-flake.yml
index 8a12bb051..650020308 100644
--- a/.github/workflows/update-flake.yml
+++ b/.github/workflows/update-flake.yml
@@ -8,6 +8,7 @@ on:
jobs:
update:
runs-on: ubuntu-latest
+ if: ${{ github.repository == 'noctalia-dev/noctalia-shell' }}
permissions:
contents: write
steps:
diff --git a/Assets/Templates/zen-browser/zen-userChrome.css b/Assets/Templates/zen-browser/zen-userChrome.css
index f909038c0..3ac06a191 100644
--- a/Assets/Templates/zen-browser/zen-userChrome.css
+++ b/Assets/Templates/zen-browser/zen-userChrome.css
@@ -108,7 +108,13 @@ toolbar .toolbarbutton-1 {
}
}
}
+.tab-text {
+ color: var(--text);
+}
+toolbarbutton#tabs-newtab-button {
+ color: var(--text) !important;
+}
/* --- URL Bar --- */
#urlbar-input {
@@ -141,6 +147,10 @@ toolbar .toolbarbutton-1 {
color: var(--text) !important;
}
+.urlbarView-row:not([selected]) :is(.urlbarView-title, .urlbarView-action) {
+ color: var(--text) !important;
+}
+
/* --- UI Components --- */
#zen-toast-container {
@@ -175,3 +185,12 @@ toolbar .toolbarbutton-1 {
hbox#titlebar {
background-color: var(--base) !important;
}
+
+.zen-current-workspace-indicator-name {
+ color: var(--text);
+}
+
+.zen-current-workspace-indicator-icon {
+ fill: var(--text) !important;
+}
+
diff --git a/Assets/Translations/cs.json b/Assets/Translations/cs.json
index 51aa9cae2..84eb9592a 100644
--- a/Assets/Translations/cs.json
+++ b/Assets/Translations/cs.json
@@ -96,6 +96,7 @@
"browse-library": "Procházet knihovnu",
"color-selection-description": "Použít barvy motivu na ikony.",
"enable-colorization-description": "Povolit barevné zvýraznění ikony s použitím barev motivu.",
+ "enable-colorization-label": "Povolit kolorizaci",
"icon-description": "Vybrat ikonu z knihovny nebo vlastního souboru.",
"select-custom-icon": "Vybrat vlastní ikonu",
"use-distro-logo-description": "Použít logo vaší distribuce místo vlastní ikony.",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "Zadejte příkaz, který poběží nepřetržitě.",
"dynamic-text": "Dynamický text",
"enable-colorization-description": "Povolit barevné zvýraznění ikony a textu vlastního tlačítka s použitím barev motivu.",
- "enable-colorization-label": "Povolit barevné zvýraznění",
+ "enable-colorization-label": "Povolit obarvení",
"general-tooltip-text-description": "Vlastní text zobrazený v tooltipu tlačítka.",
"general-tooltip-text-label": "Vlastní text tooltipu",
"hide-mode-always-expanded": "Vždy rozbaleno",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Rozbalit při výstupu",
"hide-mode-label": "Režim skrytí",
"hide-mode-max-transparent": "Maximálně rozbaleno, ale průhledné",
+ "icon-color-selection-description": "Použít barvy motivu na ikony.",
"icon-description": "Vybrat ikonu z knihovny.",
+ "icon-position-bottom": "Dole",
+ "icon-position-description": "Vyberte, kde se ikona zobrazí vzhledem k textu.",
+ "icon-position-label": "Pozice ikony",
+ "icon-position-left": "Levé",
+ "icon-position-right": "Vpravo",
+ "icon-position-top": "Nahoře",
"ipc-identifier-description": "Jedinečný identifikátor pro příkazy IPC. Použijte tento identifikátor s 'qs -c noctalia-shell ipc call cb [action] [identifier]' pro ovládání tlačítka přes IPC.",
"ipc-identifier-label": "Identifikátor IPC",
"left-click-description": "Příkaz spuštěný při kliknutí levým tlačítkem myši.",
@@ -145,6 +153,10 @@
"show-icon-label": "Zobrazit ikonu",
"show-text-tooltip-description": "Zobrazit tooltipy s výstupem textového příkazu.",
"show-text-tooltip-label": "Zobrazit tooltipy dynamického textu",
+ "tab-actions": "Akce",
+ "tab-icon": "Ikona",
+ "tab-text": "Textový příkaz",
+ "text-color-selection-description": "Použít barvy motivu na text.",
"text-stream-description": "Streamované řádky z příkazu budou zobrazeny jako text na tlačítku.",
"text-stream-label": "Proud dat",
"wheel-description": "Příkaz spuštěný při použití kolečka myši.
Použijte $delta pro delta hodnotu kolečka v příkazu.",
@@ -517,6 +529,7 @@
"select-color": "Vybrat barvu",
"select-color-description": "Použít barvy motivu pro zvýraznění.",
"select-icon-color": "Vybrat barvu ikony",
+ "select-text-color": "Vybrat barvu textu",
"settings": "Nastavení",
"shortcuts": "Zkratky",
"shutdown": "Vypnout",
diff --git a/Assets/Translations/de.json b/Assets/Translations/de.json
index 3b8819e58..0dd1fe0c8 100644
--- a/Assets/Translations/de.json
+++ b/Assets/Translations/de.json
@@ -95,7 +95,8 @@
"browse-file": "Datei durchsuchen",
"browse-library": "Bibliothek durchsuchen",
"color-selection-description": "Wendet Themenfarben auf Symbole an.",
- "enable-colorization-description": "Farbgebung für das Symbol aktivieren, Designfarben anwenden.",
+ "enable-colorization-description": "Farbgebung durch Themenfarben für das Symbol aktivieren.",
+ "enable-colorization-label": "Kolorierung aktivieren",
"icon-description": "Symbol aus der Bibliothek oder eine benutzerdefinierte Datei auswählen.",
"select-custom-icon": "Benutzerdefiniertes Symbol auswählen",
"use-distro-logo-description": "Logo Ihrer Distribution anstelle eines benutzerdefinierten Symbols verwenden.",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "Geben Sie einen Befehl ein, der kontinuierlich ausgeführt werden soll.",
"dynamic-text": "Dynamischer Text",
"enable-colorization-description": "Farbgebung durch Themenfarben für das benutzerdefinierte Schaltflächensymbol und den Text aktivieren.",
- "enable-colorization-label": "Farbgebung aktivieren",
+ "enable-colorization-label": "Kolorierung aktivieren",
"general-tooltip-text-description": "Benutzerdefinierter Text, der im Tooltip der Schaltfläche angezeigt wird.",
"general-tooltip-text-label": "Benutzerdefinierter Tooltip-Text",
"hide-mode-always-expanded": "Immer erweitert",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Mit Ausgabe erweitern",
"hide-mode-label": "Ausblendmodus",
"hide-mode-max-transparent": "Maximal erweitert aber transparent",
+ "icon-color-selection-description": "Themenfarben auf Symbole anwenden.",
"icon-description": "Symbol aus der Bibliothek auswählen.",
+ "icon-position-bottom": "Unten",
+ "icon-position-description": "Wählen Sie, wo das Symbol relativ zum Text erscheinen soll.",
+ "icon-position-label": "Symbolposition",
+ "icon-position-left": "Links",
+ "icon-position-right": "Rechts",
+ "icon-position-top": "Oben",
"ipc-identifier-description": "Eindeutige Kennung für IPC-Befehle. Verwenden Sie diese Kennung mit 'qs -c noctalia-shell ipc call cb [Aktion] [Kennung]', um diese Schaltfläche über IPC zu steuern.",
"ipc-identifier-label": "IPC-Kennung",
"left-click-description": "Befehl, der ausgeführt wird, wenn die Schaltfläche links angeklickt wird.",
@@ -145,6 +153,10 @@
"show-icon-label": "Symbol anzeigen",
"show-text-tooltip-description": "Zeige Tooltips mit der Ausgabe des Textbefehls.",
"show-text-tooltip-label": "Dynamische Text-Tooltips anzeigen",
+ "tab-actions": "Aktionen",
+ "tab-icon": "Symbol",
+ "tab-text": "Textbefehl",
+ "text-color-selection-description": "Themenfarben auf Text anwenden.",
"text-stream-description": "Gestreamte Zeilen aus dem Befehl werden als Text auf der Schaltfläche angezeigt.",
"text-stream-label": "Stream",
"wheel-description": "Befehl, der bei Verwendung des Scrollrads ausgeführt wird.
Verwenden Sie $delta für die Scrollrad-Delta im Befehl.",
@@ -384,7 +396,7 @@
"add": "Hinzufügen",
"appearance": "Aussehen",
"apply": "Anwenden",
- "auto-connect": "Automatisches Verbinden",
+ "auto-connect": "Automatisch verbinden",
"automation": "Automatisierung",
"available": "Verfügbar",
"back": "Zurück",
@@ -517,6 +529,7 @@
"select-color": "Farbe auswählen",
"select-color-description": "Wendet Themenfarben zur Hervorhebung an.",
"select-icon-color": "Symbolfarbe auswählen",
+ "select-text-color": "Textfarbe auswählen",
"settings": "Einstellungen",
"shortcuts": "Kurzbefehle",
"shutdown": "Herunterfahren",
diff --git a/Assets/Translations/en-GB.json b/Assets/Translations/en-GB.json
index ccb86b543..38ed26c1e 100644
--- a/Assets/Translations/en-GB.json
+++ b/Assets/Translations/en-GB.json
@@ -96,6 +96,7 @@
"browse-library": "Browse Library",
"color-selection-description": "Apply theme colors to icons.",
"enable-colorization-description": "Enable colourisation for icon, applying theme colors.",
+ "enable-colorization-label": "Enable colourisation",
"icon-description": "Select an icon from the library or a custom file.",
"select-custom-icon": "Select a custom icon",
"use-distro-logo-description": "Use your distribution's logo instead of a custom icon.",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Expand when has output",
"hide-mode-label": "Hide mode",
"hide-mode-max-transparent": "Max expanded but transparent",
+ "icon-color-selection-description": "Apply theme colours to icons.",
"icon-description": "Select an icon from the library.",
+ "icon-position-bottom": "Bottom",
+ "icon-position-description": "Select where the icon appears relative to the text.",
+ "icon-position-label": "Icon position",
+ "icon-position-left": "Left",
+ "icon-position-right": "Right",
+ "icon-position-top": "Top",
"ipc-identifier-description": "Unique identifier for IPC commands. Use this identifier with 'qs -c noctalia-shell ipc call cb [action] [identifier]' to control this button via IPC.",
"ipc-identifier-label": "IPC Identifier",
"left-click-description": "Command to execute when the button is left-clicked.",
@@ -145,6 +153,10 @@
"show-icon-label": "Show icon",
"show-text-tooltip-description": "Show tooltips with the output from the text command.",
"show-text-tooltip-label": "Show dynamic text tooltips",
+ "tab-actions": "Actions",
+ "tab-icon": "Icon",
+ "tab-text": "Text Command",
+ "text-color-selection-description": "Apply theme colours to text.",
"text-stream-description": "Streamed lines from the command will be displayed as text on the button.",
"text-stream-label": "Stream",
"wheel-description": "Command to execute when the scroll wheel is used.
Use $delta for the scroll wheel delta in the command.",
@@ -517,6 +529,7 @@
"select-color": "Select colour",
"select-color-description": "Apply theme colors for emphasis.",
"select-icon-color": "Select icon colour",
+ "select-text-color": "Select text colour",
"settings": "Settings",
"shortcuts": "Shortcuts",
"shutdown": "Shutdown",
diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json
index f1a507c16..24dca05a7 100644
--- a/Assets/Translations/en.json
+++ b/Assets/Translations/en.json
@@ -96,6 +96,7 @@
"browse-library": "Browse Library",
"color-selection-description": "Apply theme colors to icons.",
"enable-colorization-description": "Enable colorization for icon, applying theme colors.",
+ "enable-colorization-label": "Enable colorization",
"icon-description": "Select an icon from the library or a custom file.",
"select-custom-icon": "Select a custom icon",
"use-distro-logo-description": "Use your distribution's logo instead of a custom icon.",
@@ -105,13 +106,13 @@
"collapse-condition-description": "If the output text matches this value, the button will collapse.",
"collapse-condition-label": "Collapse condition",
"color-selection-description": "Apply theme colors to icon and text.",
- "icon-color-selection-description": "Apply theme colors to icons.",
- "text-color-selection-description": "Apply theme colors to text.",
"default-tooltip": "Custom button, configure in settings",
"display-command-output-description": "Enter a command to run at a regular interval. The first line of its output will be displayed as text.",
"display-command-output-label": "Display command output",
"display-command-output-stream-description": "Enter a command to run continuously.",
"dynamic-text": "Dynamic text",
+ "enable-colorization-description": "Enable colorization for the custom button icon and text, applying theme colors.",
+ "enable-colorization-label": "Enable colorization",
"general-tooltip-text-description": "Custom text to display in the button's tooltip.",
"general-tooltip-text-label": "Custom tooltip text",
"hide-mode-always-expanded": "Always expanded",
@@ -119,13 +120,14 @@
"hide-mode-expand-with-output": "Expand when has output",
"hide-mode-label": "Hide mode",
"hide-mode-max-transparent": "Max expanded but transparent",
+ "icon-color-selection-description": "Apply theme colors to icons.",
"icon-description": "Select an icon from the library.",
+ "icon-position-bottom": "Bottom",
"icon-position-description": "Select where the icon appears relative to the text.",
"icon-position-label": "Icon position",
"icon-position-left": "Left",
"icon-position-right": "Right",
"icon-position-top": "Top",
- "icon-position-bottom": "Bottom",
"ipc-identifier-description": "Unique identifier for IPC commands. Use this identifier with 'qs -c noctalia-shell ipc call cb [action] [identifier]' to control this button via IPC.",
"ipc-identifier-label": "IPC Identifier",
"left-click-description": "Command to execute when the button is left-clicked.",
@@ -151,6 +153,10 @@
"show-icon-label": "Show icon",
"show-text-tooltip-description": "Show tooltips with the output from the text command.",
"show-text-tooltip-label": "Show dynamic text tooltips",
+ "tab-actions": "Actions",
+ "tab-icon": "Icon",
+ "tab-text": "Text Command",
+ "text-color-selection-description": "Apply theme colors to text.",
"text-stream-description": "Streamed lines from the command will be displayed as text on the button.",
"text-stream-label": "Stream",
"wheel-description": "Command to execute when the scroll wheel is used.
Use $delta for the scroll wheel delta in the command.",
@@ -163,10 +169,7 @@
"wheel-up": "Scroll up",
"wheel-up-description": "Command to execute when the scroll wheel is scrolled up.",
"wheel-up-label": "Wheel up command",
- "wheel-update-text": "Update displayed text on scroll",
- "tab-actions": "Actions",
- "tab-icon": "Icon",
- "tab-text": "Text Command"
+ "wheel-update-text": "Update displayed text on scroll"
},
"keyboard-layout": {
"show-icon-description": "Display the keyboard layout icon."
diff --git a/Assets/Translations/es.json b/Assets/Translations/es.json
index 901bc86bb..3f8ebfea3 100644
--- a/Assets/Translations/es.json
+++ b/Assets/Translations/es.json
@@ -96,6 +96,7 @@
"browse-library": "Explorar biblioteca",
"color-selection-description": "Aplica colores del tema a los iconos.",
"enable-colorization-description": "Habilitar la colorización para el icono, aplicando los colores del tema.",
+ "enable-colorization-label": "Habilitar colorización",
"icon-description": "Selecciona un icono de la biblioteca o un archivo personalizado.",
"select-custom-icon": "Seleccionar un icono personalizado",
"use-distro-logo-description": "Usar el logo de tu distribución en lugar de un icono personalizado.",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "Introduce un comando para ejecutar continuamente.",
"dynamic-text": "Texto dinámico",
"enable-colorization-description": "Habilitar el coloreado para el icono y el texto del botón personalizado, aplicando los colores del tema.",
- "enable-colorization-label": "Habilitar coloreado",
+ "enable-colorization-label": "Habilitar colorización",
"general-tooltip-text-description": "Texto personalizado para mostrar en la descripción emergente del botón.",
"general-tooltip-text-label": "Texto emergente personalizado",
"hide-mode-always-expanded": "Siempre expandido",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Expandir cuando tiene salida",
"hide-mode-label": "Modo de ocultación",
"hide-mode-max-transparent": "Máximo expandido pero transparente",
+ "icon-color-selection-description": "Aplicar colores del tema a los iconos.",
"icon-description": "Selecciona un icono de la biblioteca.",
+ "icon-position-bottom": "Inferior",
+ "icon-position-description": "Selecciona dónde aparece el icono con respecto al texto.",
+ "icon-position-label": "Posición del icono",
+ "icon-position-left": "Izquierda",
+ "icon-position-right": "Derecha",
+ "icon-position-top": "Arriba",
"ipc-identifier-description": "Identificador único para comandos IPC. Utiliza este identificador con 'qs -c noctalia-shell ipc call cb [acción] [identificador]' para controlar este botón a través de IPC.",
"ipc-identifier-label": "Identificador IPC",
"left-click-description": "Comando a ejecutar cuando se hace clic izquierdo en el botón.",
@@ -145,6 +153,10 @@
"show-icon-label": "Mostrar icono",
"show-text-tooltip-description": "Mostrar texto emergente con la salida del comando de texto.",
"show-text-tooltip-label": "Mostrar textos emergentes dinámicos",
+ "tab-actions": "Acciones",
+ "tab-icon": "Icono",
+ "tab-text": "Comando de texto",
+ "text-color-selection-description": "Aplicar colores del tema al texto.",
"text-stream-description": "Las líneas transmitidas desde el comando se mostrarán como texto en el botón.",
"text-stream-label": "Salida del comando",
"wheel-description": "Comando a ejecutar cuando se usa la rueda de desplazamiento.
Usa $delta para el delta de la rueda de desplazamiento en el comando.",
@@ -517,6 +529,7 @@
"select-color": "Seleccionar color",
"select-color-description": "Aplicar colores del tema para enfatizar.",
"select-icon-color": "Seleccionar color de icono",
+ "select-text-color": "Seleccionar color de texto",
"settings": "Ajustes",
"shortcuts": "Atajos",
"shutdown": "Apagar",
diff --git a/Assets/Translations/fr.json b/Assets/Translations/fr.json
index 7171ac8a0..b0e4f6952 100644
--- a/Assets/Translations/fr.json
+++ b/Assets/Translations/fr.json
@@ -96,6 +96,7 @@
"browse-library": "Parcourir la bibliothèque",
"color-selection-description": "Applique les couleurs du thème aux icônes.",
"enable-colorization-description": "Activer la colorisation pour l'icône, en appliquant les couleurs du thème.",
+ "enable-colorization-label": "Activer la colorisation",
"icon-description": "Sélectionnez une icône de la bibliothèque ou un fichier personnalisé.",
"select-custom-icon": "Sélectionner une icône personnalisée",
"use-distro-logo-description": "Utiliser le logo de votre distribution au lieu d'une icône personnalisée.",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "Entrez une commande à exécuter en continu.",
"dynamic-text": "Texte dynamique",
"enable-colorization-description": "Activer la colorisation pour l'icône et le texte du bouton personnalisé, en appliquant les couleurs du thème.",
- "enable-colorization-label": "Activer la colorisation",
+ "enable-colorization-label": "Activer la coloration",
"general-tooltip-text-description": "Texte personnalisé à afficher dans l'infobulle du bouton.",
"general-tooltip-text-label": "Texte d'infobulle personnalisé",
"hide-mode-always-expanded": "Toujours étendu",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Étendre quand il y a une sortie",
"hide-mode-label": "Mode masqué",
"hide-mode-max-transparent": "Étendu au maximum mais transparent",
+ "icon-color-selection-description": "Appliquer les couleurs du thème aux icônes.",
"icon-description": "Sélectionnez une icône dans la bibliothèque.",
+ "icon-position-bottom": "Bas",
+ "icon-position-description": "Sélectionnez où l'icône apparaît par rapport au texte.",
+ "icon-position-label": "Position de l'icône",
+ "icon-position-left": "Gauche",
+ "icon-position-right": "Droite",
+ "icon-position-top": "Haut",
"ipc-identifier-description": "Identifiant unique pour les commandes IPC. Utilisez cet identifiant avec 'qs -c noctalia-shell ipc call cb [action] [identifiant]' pour contrôler ce bouton via IPC.",
"ipc-identifier-label": "Identifiant IPC",
"left-click-description": "Commande à exécuter quand le bouton est cliqué à gauche.",
@@ -145,6 +153,10 @@
"show-icon-label": "Afficher l'icône",
"show-text-tooltip-description": "Afficher les infobulles avec la sortie de la commande texte.",
"show-text-tooltip-label": "Afficher les infobulles de texte dynamiques",
+ "tab-actions": "Actions",
+ "tab-icon": "Icône",
+ "tab-text": "Commande texte",
+ "text-color-selection-description": "Appliquer les couleurs du thème au texte.",
"text-stream-description": "Les lignes diffusées depuis la commande seront affichées sous forme de texte sur le bouton.",
"text-stream-label": "Flux",
"wheel-description": "Commande à exécuter lorsque la molette est utilisée.
Utilisez $delta pour le delta de la molette dans la commande.",
@@ -517,6 +529,7 @@
"select-color": "Sélectionner une couleur",
"select-color-description": "Appliquer les couleurs du thème pour mettre en valeur.",
"select-icon-color": "Sélectionner la couleur de l'icône",
+ "select-text-color": "Sélectionner la couleur du texte",
"settings": "Paramètres",
"shortcuts": "Raccourcis",
"shutdown": "Éteindre",
diff --git a/Assets/Translations/hu.json b/Assets/Translations/hu.json
index c436e911f..4d528c53e 100644
--- a/Assets/Translations/hu.json
+++ b/Assets/Translations/hu.json
@@ -96,6 +96,7 @@
"browse-library": "Könyvtár tallózása",
"color-selection-description": "Témaszínek alkalmazása az ikonokra.",
"enable-colorization-description": "Az ikon színezésének engedélyezése témaszínek alkalmazásával.",
+ "enable-colorization-label": "Színezés engedélyezése",
"icon-description": "Ikon kiválasztása a könyvtárból vagy egy egyéni fájlból.",
"select-custom-icon": "Egyéni ikon kiválasztása",
"use-distro-logo-description": "Disztribúció logó használata egy egyéni ikon helyett.",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Kibontás, ha van kimenet",
"hide-mode-label": "Elrejtési mód",
"hide-mode-max-transparent": "Maximálisan kibontva, de átlátszó",
+ "icon-color-selection-description": "Téma színeinek alkalmazása az ikonokra.",
"icon-description": "Ikon kiválasztása a könyvtárból.",
+ "icon-position-bottom": "Alul",
+ "icon-position-description": "Válaszd ki, hol jelenjen meg az ikon a szöveghez képest.",
+ "icon-position-label": "Ikon pozíciója",
+ "icon-position-left": "Bal",
+ "icon-position-right": "Jobb",
+ "icon-position-top": "Felül",
"ipc-identifier-description": "Egyedi azonosító az IPC parancsokhoz. Használd ezt az azonosítót a 'qs -c noctalia-shell ipc call cb [akció] [azonosító]' paranccsal, hogy vezéreld ezt a gombot IPC-n keresztül.",
"ipc-identifier-label": "IPC-azonosító",
"left-click-description": "Végrehajtandó parancs a gomb bal egérgombbal történő kattintásakor.",
@@ -145,6 +153,10 @@
"show-icon-label": "Ikon megjelenítése",
"show-text-tooltip-description": "Eszköztippek megjelenítése a szöveges parancs kimenetével.",
"show-text-tooltip-label": "Dinamikus szöveges eszköztippek megjelenítése",
+ "tab-actions": "Műveletek",
+ "tab-icon": "Ikon",
+ "tab-text": "Szöveges parancs",
+ "text-color-selection-description": "Téma színeinek alkalmazása a szövegre.",
"text-stream-description": "A parancsból streamelt sorok szövegként jelennek meg a gombon.",
"text-stream-label": "Stream",
"wheel-description": "Végrehajtandó parancs a görgő használatakor.
Használd a $delta változót a parancsban a görgő elmozdulásához.",
@@ -517,6 +529,7 @@
"select-color": "Szín kiválasztása",
"select-color-description": "Témaszínek a kiemeléshez.",
"select-icon-color": "Ikon színének kiválasztása",
+ "select-text-color": "Szövegszín kiválasztása",
"settings": "Beállítások",
"shortcuts": "Gyorsbillentyűk",
"shutdown": "Leállítás",
diff --git a/Assets/Translations/it.json b/Assets/Translations/it.json
index 505939244..be9373c7e 100644
--- a/Assets/Translations/it.json
+++ b/Assets/Translations/it.json
@@ -96,6 +96,7 @@
"browse-library": "Sfoglia libreria",
"color-selection-description": "Applica i colori del tema alle icone.",
"enable-colorization-description": "Abilita la colorazione per l'icona, applicando i colori del tema.",
+ "enable-colorization-label": "Abilita colorazione",
"icon-description": "Seleziona un’icona dalla libreria o un file personalizzato.",
"select-custom-icon": "Seleziona un’icona personalizzata",
"use-distro-logo-description": "Usa il logo della tua distribuzione invece di un’icona personalizzata.",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Espandi quando c’è output",
"hide-mode-label": "Modalità nascondi",
"hide-mode-max-transparent": "Massimo espanso ma trasparente",
+ "icon-color-selection-description": "Applica i colori del tema alle icone.",
"icon-description": "Seleziona un’icona dalla libreria.",
+ "icon-position-bottom": "Inferiore",
+ "icon-position-description": "Seleziona dove l'icona appare rispetto al testo.",
+ "icon-position-label": "Posizione icona",
+ "icon-position-left": "Sinistra",
+ "icon-position-right": "Destra",
+ "icon-position-top": "Alto",
"ipc-identifier-description": "Identificatore univoco per i comandi IPC. Usa questo identificatore con 'qs -c noctalia-shell ipc call cb [action] [identifier]' per controllare questo pulsante via IPC.",
"ipc-identifier-label": "Identificatore IPC",
"left-click-description": "Comando da eseguire al clic sinistro sul pulsante.",
@@ -145,6 +153,10 @@
"show-icon-label": "Mostra icona",
"show-text-tooltip-description": "Mostra tooltip con l’output del comando di testo.",
"show-text-tooltip-label": "Mostra tooltip testo dinamico",
+ "tab-actions": "Azioni",
+ "tab-icon": "Icona",
+ "tab-text": "Comando di testo",
+ "text-color-selection-description": "Applica i colori del tema al testo.",
"text-stream-description": "Le righe in streaming del comando verranno mostrate come testo sul pulsante.",
"text-stream-label": "Flusso",
"wheel-description": "Comando da eseguire quando viene usata la rotella del mouse.
Usa $delta nel comando per il delta della rotella.",
@@ -517,6 +529,7 @@
"select-color": "Seleziona colore",
"select-color-description": "Applica i colori del tema per evidenziare.",
"select-icon-color": "Seleziona colore icona",
+ "select-text-color": "Seleziona colore testo",
"settings": "Impostazioni",
"shortcuts": "Scorciatoie",
"shutdown": "Spegni",
diff --git a/Assets/Translations/ja.json b/Assets/Translations/ja.json
index 8451b1003..4bf6b4b36 100644
--- a/Assets/Translations/ja.json
+++ b/Assets/Translations/ja.json
@@ -96,6 +96,7 @@
"browse-library": "ライブラリを参照",
"color-selection-description": "アイコンに適用するテーマの色を選択します。",
"enable-colorization-description": "アイコンの色付けを有効にし、テーマの色を適用します。",
+ "enable-colorization-label": "色付けを有効にする",
"icon-description": "ライブラリまたはカスタムファイルからアイコンを選択します。",
"select-custom-icon": "カスタムアイコンを選択",
"use-distro-logo-description": "カスタムアイコンの代わりに、ディストリビューションのロゴを使用します。",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "継続的に実行するコマンドを入力します。",
"dynamic-text": "動的テキスト",
"enable-colorization-description": "カスタムボタンのアイコンとテキストのカラーリングを有効にし、テーマカラーを適用します。",
- "enable-colorization-label": "カラーリングを有効化",
+ "enable-colorization-label": "色付けを有効にする",
"general-tooltip-text-description": "ボタンのツールチップに表示するカスタムテキスト。",
"general-tooltip-text-label": "カスタムツールチップテキスト",
"hide-mode-always-expanded": "常に展開",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "出力がある時のみ展開",
"hide-mode-label": "非表示モード",
"hide-mode-max-transparent": "最大展開(透明)",
+ "icon-color-selection-description": "テーマの色をアイコンに適用します。",
"icon-description": "ライブラリからアイコンを選択します。",
+ "icon-position-bottom": "下",
+ "icon-position-description": "アイコンがテキストに対してどこに表示されるかを選択します。",
+ "icon-position-label": "アイコンの位置",
+ "icon-position-left": "左",
+ "icon-position-right": "右",
+ "icon-position-top": "上",
"ipc-identifier-description": "IPCコマンドの一意の識別子。この識別子を「qs -c noctalia-shell ipc call cb [アクション] [識別子]」で使用して、IPC経由でこのボタンを制御します。",
"ipc-identifier-label": "IPC識別子",
"left-click-description": "ボタンを左クリックした際に実行するコマンド。",
@@ -145,6 +153,10 @@
"show-icon-label": "アイコンを表示",
"show-text-tooltip-description": "テキストコマンドの出力を含むツールチップを表示します。",
"show-text-tooltip-label": "動的なテキストツールチップを表示",
+ "tab-actions": "アクション",
+ "tab-icon": "アイコン",
+ "tab-text": "テキストコマンド",
+ "text-color-selection-description": "テーマの色をテキストに適用します。",
"text-stream-description": "コマンドからストリーミングされた行を、ボタン上のテキストとして表示します。",
"text-stream-label": "ストリーム",
"wheel-description": "スクロールホイール操作時に実行するコマンド。
コマンド内で $delta を使用して回転量を取得できます。",
@@ -517,6 +529,7 @@
"select-color": "色を選択",
"select-color-description": "強調のためにテーマの色を適用します。",
"select-icon-color": "アイコンの色を選択",
+ "select-text-color": "テキストの色を選択",
"settings": "設定",
"shortcuts": "ショートカット",
"shutdown": "シャットダウン",
diff --git a/Assets/Translations/ko-KR.json b/Assets/Translations/ko-KR.json
index 7294c6bd7..87df15ad2 100644
--- a/Assets/Translations/ko-KR.json
+++ b/Assets/Translations/ko-KR.json
@@ -96,6 +96,7 @@
"browse-library": "라이브러리 찾아보기",
"color-selection-description": "아이콘에 테마 색상을 적용합니다.",
"enable-colorization-description": "아이콘 색상화를 활성화하고 테마 색상을 적용합니다.",
+ "enable-colorization-label": "색상화 활성화",
"icon-description": "라이브러리 또는 사용자 지정 파일에서 아이콘을 선택합니다.",
"select-custom-icon": "사용자 지정 아이콘 선택",
"use-distro-logo-description": "사용자 지정 아이콘 대신 배포판 로고를 사용합니다.",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "출력이 있을 때 펼침",
"hide-mode-label": "숨기기 모드",
"hide-mode-max-transparent": "최대로 펼치지만 투명하게",
+ "icon-color-selection-description": "테마 색상을 아이콘에 적용합니다.",
"icon-description": "라이브러리에서 아이콘을 선택합니다.",
+ "icon-position-bottom": "하단",
+ "icon-position-description": "아이콘이 텍스트에 대해 어디에 나타날지 선택하세요.",
+ "icon-position-label": "아이콘 위치",
+ "icon-position-left": "왼쪽",
+ "icon-position-right": "오른쪽",
+ "icon-position-top": "위",
"ipc-identifier-description": "IPC 명령을 위한 고유 식별자입니다. IPC를 통해 이 버튼을 제어하려면 'qs -c noctalia-shell ipc call cb [action] [identifier]'와 함께 이 식별자를 사용하세요.",
"ipc-identifier-label": "IPC 식별자",
"left-click-description": "버튼을 왼쪽 클릭했을 때 실행할 명령입니다.",
@@ -145,6 +153,10 @@
"show-icon-label": "아이콘 표시",
"show-text-tooltip-description": "텍스트 명령어의 출력으로 툴팁을 표시합니다.",
"show-text-tooltip-label": "동적 텍스트 툴팁 표시",
+ "tab-actions": "작업",
+ "tab-icon": "아이콘",
+ "tab-text": "텍스트 명령",
+ "text-color-selection-description": "테마 색상을 텍스트에 적용합니다.",
"text-stream-description": "명령에서 스트리밍된 줄이 버튼에 텍스트로 표시됩니다.",
"text-stream-label": "스트림",
"wheel-description": "스크롤 휠을 사용했을 때 실행할 명령입니다.
명령에서 스크롤 휠 델타 값으로 $delta를 사용하세요.",
@@ -517,6 +529,7 @@
"select-color": "색상 선택",
"select-color-description": "강조를 위해 테마 색상을 적용합니다.",
"select-icon-color": "아이콘 색상 선택",
+ "select-text-color": "텍스트 색상 선택",
"settings": "설정",
"shortcuts": "단축키",
"shutdown": "시스템 종료",
diff --git a/Assets/Translations/ku.json b/Assets/Translations/ku.json
index b0c490178..984ca384e 100644
--- a/Assets/Translations/ku.json
+++ b/Assets/Translations/ku.json
@@ -102,7 +102,6 @@
"display-command-output-stream-description": "Fermanekê binivîse ku bi berdewamî bixebite.",
"dynamic-text": "Nivîsa dînamîkî",
"enable-colorization-description": "Rengînkirinê ji bo îkona bişkoka xwerû û nivîsê çalak bike, rengên temayê bi kar bîne.",
- "enable-colorization-label": "Rengînkirinê çalak bike",
"hide-mode-always-expanded": "Her dem berferehkirî",
"hide-mode-description": "Dema ku derana fermanê tune be, dîtina sepanokê kontrol dike.",
"hide-mode-expand-with-output": "Berfireh bike dema ku deran hebe",
diff --git a/Assets/Translations/nl.json b/Assets/Translations/nl.json
index b1e32ffbb..ffaaba6c9 100644
--- a/Assets/Translations/nl.json
+++ b/Assets/Translations/nl.json
@@ -96,6 +96,7 @@
"browse-library": "Bibliotheek doorbladeren",
"color-selection-description": "Themakleuren toepassen op pictogrammen.",
"enable-colorization-description": "Schakel kleurtoepassing voor pictogram in, themakleuren toepassend.",
+ "enable-colorization-label": "Kleuring inschakelen",
"icon-description": "Selecteer een pictogram uit de bibliotheek of een aangepast bestand.",
"select-custom-icon": "Aangepast pictogram selecteren",
"use-distro-logo-description": "Gebruik het logo van je distributie in plaats van een aangepast pictogram.",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "Voer een commando in dat continu wordt uitgevoerd.",
"dynamic-text": "Dynamische tekst",
"enable-colorization-description": "Kleurtoepassing inschakelen voor het aangepaste knoppictogram en de tekst, waarbij themakleuren worden toegepast.",
- "enable-colorization-label": "Kleurtoepassing inschakelen",
+ "enable-colorization-label": "Kleuring inschakelen",
"general-tooltip-text-description": "Aangepaste tekst om weer te geven in de tooltip van de knop.",
"general-tooltip-text-label": "Aangepaste tooltiptekst",
"hide-mode-always-expanded": "Altijd uitgeklapt",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Uitklappen wanneer er uitvoer is",
"hide-mode-label": "Verbergmodus",
"hide-mode-max-transparent": "Maximaal uitgeklapt maar transparant",
+ "icon-color-selection-description": "Themakleuren toepassen op pictogrammen.",
"icon-description": "Selecteer een pictogram uit de bibliotheek.",
+ "icon-position-bottom": "Onderkant",
+ "icon-position-description": "Selecteer waar het pictogram verschijnt ten opzichte van de tekst.",
+ "icon-position-label": "Icoonpositie",
+ "icon-position-left": "Links",
+ "icon-position-right": "Rechts",
+ "icon-position-top": "Boven",
"ipc-identifier-description": "Unieke identificatie voor IPC-opdrachten. Gebruik deze identificatie met 'qs -c noctalia-shell ipc call cb [actie] [identificatie]' om deze knop via IPC te bedienen.",
"ipc-identifier-label": "IPC-identificatie",
"left-click-description": "Commando dat wordt uitgevoerd wanneer met de linkermuisknop op de knop wordt geklikt.",
@@ -145,6 +153,10 @@
"show-icon-label": "Pictogram weergeven",
"show-text-tooltip-description": "Toon tooltips met de uitvoer van het tekstcommando.",
"show-text-tooltip-label": "Dynamische teksttooltips weergeven",
+ "tab-actions": "Acties",
+ "tab-icon": "Pictogram",
+ "tab-text": "Tekstcommando",
+ "text-color-selection-description": "Themakleuren op tekst toepassen.",
"text-stream-description": "Gestreamde regels uit het commando worden als tekst op de knop weergegeven.",
"text-stream-label": "Stream",
"wheel-description": "Commando om uit te voeren wanneer het scrollwiel wordt gebruikt.
Gebruik $delta voor de scrollwiel-delta in het commando.",
@@ -517,6 +529,7 @@
"select-color": "Kleur selecteren",
"select-color-description": "Themakleuren toepassen voor nadruk.",
"select-icon-color": "Icoonkleur selecteren",
+ "select-text-color": "Tekstkleur selecteren",
"settings": "Instellingen",
"shortcuts": "Snelkoppelingen",
"shutdown": "Afsluiten",
diff --git a/Assets/Translations/nn-HN.json b/Assets/Translations/nn-HN.json
index de1f34d7c..279d0c561 100644
--- a/Assets/Translations/nn-HN.json
+++ b/Assets/Translations/nn-HN.json
@@ -108,7 +108,6 @@
"display-command-output-stream-description": "Skriv inn styrebod som skal køyra heile tidi.",
"dynamic-text": "Kvikskrift",
"enable-colorization-description": "Lita fråmerket og teksti på den sjølvgjorde knappen med hamlitene.",
- "enable-colorization-label": "Lita",
"general-tooltip-text-description": "Sjølvvald tekst å syna i hjelpeteksti åt knappen.",
"general-tooltip-text-label": "Sjølvvald hjelpetekst",
"hide-mode-always-expanded": "Stødt vidka",
diff --git a/Assets/Translations/nn-NO.json b/Assets/Translations/nn-NO.json
index 673824369..ba999792b 100644
--- a/Assets/Translations/nn-NO.json
+++ b/Assets/Translations/nn-NO.json
@@ -109,7 +109,6 @@
"display-command-output-stream-description": "Gjev kommando for å køyra heile tida.",
"dynamic-text": "Dynamisk tekst",
"enable-colorization-description": "Gjev temafargane til ikonet og teksten på den eigendefinerte knappen.",
- "enable-colorization-label": "Slå på fargelegging",
"general-tooltip-text-description": "Eigendefinert tekst som skal visast i hjelpeteksta for knappen.",
"general-tooltip-text-label": "Eigendefinert hjelpetekst",
"hide-mode-always-expanded": "Alltid utvida",
diff --git a/Assets/Translations/pl.json b/Assets/Translations/pl.json
index 33e7b08f0..394f13dbf 100644
--- a/Assets/Translations/pl.json
+++ b/Assets/Translations/pl.json
@@ -96,6 +96,7 @@
"browse-library": "Przeglądaj bibliotekę",
"color-selection-description": "Zastosuj kolory motywu do ikon.",
"enable-colorization-description": "Włącz koloryzację ikony, stosując kolory motywu.",
+ "enable-colorization-label": "Włącz koloryzację",
"icon-description": "Wybierz ikonę z biblioteki lub niestandardowy plik.",
"select-custom-icon": "Wybierz własną ikonę",
"use-distro-logo-description": "Użyj logo twojej dystrybucji zamiast niestandardowej ikony.",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "Wpisz polecenie do uruchamiania w trybie ciągłym.",
"dynamic-text": "Dynamiczny tekst",
"enable-colorization-description": "Włącz kolorowanie ikony i tekstu niestandardowego przycisku, stosując kolory motywu.",
- "enable-colorization-label": "Włącz kolorowanie",
+ "enable-colorization-label": "Włącz koloryzację",
"general-tooltip-text-description": "Niestandardowy tekst do wyświetlenia w dymku przycisku.",
"general-tooltip-text-label": "Niestandardowy tekst podpowiedzi",
"hide-mode-always-expanded": "Zawsze rozwinięty",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Rozwiń, gdy jest wynik",
"hide-mode-label": "Tryb ukrywania",
"hide-mode-max-transparent": "Rozwinięty, ale przezroczysty",
+ "icon-color-selection-description": "Zastosuj kolory motywu do ikon.",
"icon-description": "Wybierz ikonę z biblioteki.",
+ "icon-position-bottom": "Dół",
+ "icon-position-description": "Wybierz, gdzie ikona ma się pojawić względem tekstu.",
+ "icon-position-label": "Pozycja ikony",
+ "icon-position-left": "Lewo",
+ "icon-position-right": "Prawo",
+ "icon-position-top": "Góra",
"ipc-identifier-description": "Unikalny identyfikator dla poleceń IPC. Użyj tego identyfikatora z 'qs -c noctalia-shell ipc call cb [akcja] [identyfikator]', aby sterować tym przyciskiem za pomocą IPC.",
"ipc-identifier-label": "Identyfikator IPC",
"left-click-description": "Polecenie do wykonania po kliknięciu lewym przyciskiem myszy.",
@@ -145,6 +153,10 @@
"show-icon-label": "Pokaż ikonę",
"show-text-tooltip-description": "Pokaż dymki z podpowiedzią z wyjściem polecenia tekstowego.",
"show-text-tooltip-label": "Pokaż dynamiczne etykietki tekstowe",
+ "tab-actions": "Akcje",
+ "tab-icon": "Ikona",
+ "tab-text": "Polecenie tekstowe",
+ "text-color-selection-description": "Zastosuj kolory motywu do tekstu.",
"text-stream-description": "Linie przesyłane strumieniowo z polecenia będą wyświetlane jako tekst na przycisku.",
"text-stream-label": "Strumień",
"wheel-description": "Polecenie do wykonania przy użyciu kółka myszy.
Użyj $delta dla wartości przesunięcia kółka w poleceniu.",
@@ -517,6 +529,7 @@
"select-color": "Wybierz kolor",
"select-color-description": "Zastosuj kolory motywu dla podkreślenia.",
"select-icon-color": "Wybierz kolor ikony",
+ "select-text-color": "Wybierz kolor tekstu",
"settings": "Ustawienia",
"shortcuts": "Skróty",
"shutdown": "Wyłącz",
diff --git a/Assets/Translations/pt.json b/Assets/Translations/pt.json
index 7ef10bdf1..4eba7c87b 100644
--- a/Assets/Translations/pt.json
+++ b/Assets/Translations/pt.json
@@ -96,6 +96,7 @@
"browse-library": "Navegar na biblioteca",
"color-selection-description": "Aplica as cores do tema aos ícones.",
"enable-colorization-description": "Ativar colorização para o ícone, aplicando as cores do tema.",
+ "enable-colorization-label": "Ativar colorização",
"icon-description": "Selecione um ícone da biblioteca ou um arquivo personalizado.",
"select-custom-icon": "Selecione um ícone personalizado",
"use-distro-logo-description": "Usar o logo da sua distribuição em vez de um ícone personalizado.",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Expandir quando tem saída",
"hide-mode-label": "Modo de ocultação",
"hide-mode-max-transparent": "Totalmente expandido mas transparente",
+ "icon-color-selection-description": "Aplicar cores do tema aos ícones.",
"icon-description": "Selecione um ícone da biblioteca.",
+ "icon-position-bottom": "Inferior",
+ "icon-position-description": "Seleciona onde o ícone aparece em relação ao texto.",
+ "icon-position-label": "Posição do ícone",
+ "icon-position-left": "Esquerda",
+ "icon-position-right": "Direita",
+ "icon-position-top": "Superior",
"ipc-identifier-description": "Identificador exclusivo para comandos IPC. Use este identificador com 'qs -c noctalia-shell ipc call cb [ação] [identificador]' para controlar este botão via IPC.",
"ipc-identifier-label": "Identificador IPC",
"left-click-description": "Comando a executar quando o botão é clicado com o botão esquerdo.",
@@ -145,6 +153,10 @@
"show-icon-label": "Mostrar ícone",
"show-text-tooltip-description": "Mostrar dicas de ferramentas com a saída do comando de texto.",
"show-text-tooltip-label": "Mostrar dicas de texto dinâmicas",
+ "tab-actions": "Ações",
+ "tab-icon": "Ícone",
+ "tab-text": "Comando de texto",
+ "text-color-selection-description": "Aplicar cores do tema ao texto.",
"text-stream-description": "As linhas transmitidas do comando serão exibidas como texto no botão.",
"text-stream-label": "Transmissão",
"wheel-description": "Comando a executar quando a roda de rolagem é usada.
Use $delta para o delta da roda de rolagem no comando.",
@@ -517,6 +529,7 @@
"select-color": "Selecionar cor",
"select-color-description": "Aplicar cores do tema para enfatizar.",
"select-icon-color": "Selecionar cor do ícone",
+ "select-text-color": "Selecionar cor do texto",
"settings": "Definições",
"shortcuts": "Atalhos",
"shutdown": "Desligar",
diff --git a/Assets/Translations/ro.json b/Assets/Translations/ro.json
index 512db4036..9e3a546fc 100644
--- a/Assets/Translations/ro.json
+++ b/Assets/Translations/ro.json
@@ -3,27 +3,27 @@
"clear-history": "Șterge istoricul",
"close-app": "Închide {app}",
"connect-vpn": "Conectează-te la {name}",
- "cycle-visualizer": "Parcurge vizualizatorul",
+ "cycle-visualizer": "Comută între presetările vizualizatorului",
"disable-bluetooth": "Dezactivează Bluetooth",
- "disable-dnd": "Dezactivează Nu deranjați",
+ "disable-dnd": "Dezactivează modul \"Nu Deranjați\"",
"disable-wifi": "Dezactivează Wi-Fi",
- "disconnect-vpn": "Deconectează {name}",
+ "disconnect-vpn": "Deconectează-te de la {name}",
"dock-settings": "Setări Dock",
"enable-bluetooth": "Activează Bluetooth",
- "enable-dnd": "Activează Nu deranjați",
+ "enable-dnd": "Activează modul \"Nu Deranjați\"",
"enable-wifi": "Activează Wi-Fi",
- "launcher-settings": "Setări lansator",
+ "launcher-settings": "Setări lansator de aplicații",
"lower-to-bottom": "Mută jos",
"open-calendar": "Deschide calendarul",
"open-display-settings": "Setări de afișaj",
- "open-launcher": "Deschide lansatorul",
+ "open-launcher": "Deschide lansatorul de aplicații",
"open-settings": "Deschide setările",
"raise-to-top": "Adu în față",
- "random-wallpaper": "Tapet aleatoriu",
- "run-custom-command": "Execută comandă personalizată",
- "show-active-only": "Afișează doar active",
+ "random-wallpaper": "Wallpaper aleatoriu",
+ "run-custom-command": "Execută o comandă custom",
+ "show-active-only": "Afișează doar ce este activ",
"show-all": "Afișează tot",
- "toggle-mute": "Comută sunetul",
+ "toggle-mute": "Activează/dezactivează sunetul",
"widget-settings": "Setări widget"
},
"authentication": {
@@ -32,37 +32,37 @@
},
"bar": {
"active-window": {
- "colorize-icons-description": "Aplică culorile temei la pictograma ferestrei active.",
- "hide-mode-description": "Controlează cum se comportă widget-ul când nicio fereastră nu este activă.",
- "scrolling-mode-description": "Controlează când derularea textului este activată pentru titlurile lungi ale ferestrelor.",
- "show-app-icon-description": "Afișează iconița aplicației lângă titlul ferestrei.",
+ "colorize-icons-description": "Aplică culorile temei pe pictograma ferestrei active.",
+ "hide-mode-description": "Controlează cum se comportă widget-ul când nu există ferestre active.",
+ "scrolling-mode-description": "Controlează scrollarea textului pentru titlurile lungi ale ferestrelor.",
+ "show-app-icon-description": "Afișează pictograma aplicației lângă titlul ferestrei.",
"show-app-icon-label": "Afișează pictograma aplicației",
"show-app-text-description": "Afișează titlul ferestrei active.",
"show-app-text-label": "Afișează titlul ferestrei"
},
"audio-visualizer": {
- "color-name-description": "Selectează culoarea pentru vizualizator.",
- "color-name-label": "Culoare umplere",
- "height-description": "Lățime personalizată a componentei.",
- "hide-when-idle-description": "Când e activat, vizualizatorul e ascuns decât dacă un player redă activ.",
- "hide-when-idle-label": "Ascunde când nu se redă media",
- "width-description": "Lățime personalizată componentă."
+ "color-name-description": "Selectează culoarea vizualizatorului.",
+ "color-name-label": "Culoarea vizualizatorului",
+ "height-description": "Lungimea widget-ului.",
+ "hide-when-idle-description": "Vizualizatorul este afișat doar dacă un player media redă în mod activ.",
+ "hide-when-idle-label": "Ascunde vizualizatorul când nu se redă niciun media",
+ "width-description": "Lungimea widget-ului."
},
"battery": {
"device-default": "Prestabilit (Dispozitiv de afișare)",
- "device-description": "Selectează ce dispozitiv de baterie să afișezi.",
- "device-label": "Dispozitiv baterie",
- "display-mode-description": "Alege cum este afișată bateria în Bară.",
+ "device-description": "Selectează ce dispozitiv cu baterie este afișat.",
+ "device-label": "Dispozitiv cu baterie afișat",
+ "display-mode-description": "Alege cum este afișată bateria în bară.",
"display-mode-graphic": "Baterie grafică",
"display-mode-graphic-clean": "Baterie grafică (fără %)",
"display-mode-icon-always": "Pictogramă - Întotdeauna afișează %",
- "display-mode-icon-hover": "Icoană - Afișează la trecerea cu mouse-ului",
- "display-mode-icon-only": "Doar pictogramă",
- "hide-if-idle-description": "Ascunde Widget-ul când bateria nu se încarcă sau descarcă.",
- "hide-if-idle-label": "Ascunde la inactivitate",
+ "display-mode-icon-hover": "Pictogramă - Afișare doar la trecerea cursorului (hover)",
+ "display-mode-icon-only": "Doar pictograma",
+ "hide-if-idle-description": "Ascunde Widget-ul când bateria nu se încarcă sau nu se descarcă.",
+ "hide-if-idle-label": "Ascunde în timpul inactivității",
"hide-if-not-detected-description": "Ascunde widget-ul când nu este detectată nicio baterie în sistem.",
- "hide-if-not-detected-label": "Ascunde când nu este detectat",
- "low-battery-threshold-label": "Prag de avertizare baterie slabă",
+ "hide-if-not-detected-label": "Ascunde când nu este detectată nicio baterie",
+ "low-battery-threshold-label": "Prag de avertizare nivel scăzut al bateriei",
"show-noctalia-performance-description": "Afișează comutatorul modului de performanță Noctalia în panoul bateriei.
Dezactivează umbrele și animațiile în Noctalia pentru a reduce utilizarea resurselor.",
"show-noctalia-performance-label": "Afișează comutatorul Noctalia Performance",
"show-power-profile-description": "Afișează selecția profilului de alimentare în panoul bateriei.",
@@ -70,56 +70,64 @@
},
"brightness": {
"apply-all-description": "Schimbă luminozitatea pentru fiecare monitor când folosești rotița de scroll.",
- "apply-all-label": "Aplică modificările de derulare tuturor monitoarelor"
+ "apply-all-label": "Aplică modificările de scroll pe toate monitoarele"
},
"clock": {
- "clock-display-description": "Personalizează afișajul ceasului tău adăugând token-uri din lista de mai jos. Pentru a utiliza formatul de 12 ore, trebuie să incluzi token-ul 'AP'.",
+ "clock-display-description": "Personalizează afișajul ceasului, adăugând token-uri din lista de mai jos. Pentru a utiliza formatul de 12 ore, trebuie să incluzi token-ul 'AP'.",
"clock-display-label": "Afișaj ceas",
- "custom-font-description": "Alege un font personalizat pentru afișajul ceasului.",
- "custom-font-label": "Font personalizat",
- "custom-font-placeholder": "Selectează font personalizat...",
- "custom-font-search-placeholder": "Căutați fonturi...",
- "horizontal-bar-description": "Sfat: Folosește \n pentru a crea o linie nouă.",
+ "custom-font-description": "Alege un font custom pentru afișajul ceasului.",
+ "custom-font-label": "Font custom",
+ "custom-font-placeholder": "Selectează font custom...",
+ "custom-font-search-placeholder": "Caută fonturi...",
+ "horizontal-bar-description": "Sfat: Folosește \\n pentru a crea o linie nouă.",
"horizontal-bar-label": "Bară orizontală",
"preview": "Previzualizare",
- "tooltip-format-description": "Șir de format pentru sfatul de instrument afișat la trecerea cu mouse-ul peste ceas. Lăsați gol pentru a folosi sfatul de instrument implicit.",
- "tooltip-format-label": "Format informații",
- "use-custom-font-description": "Suprascrie selecția implicită de font cu un font personalizat pentru ceas.",
- "use-custom-font-label": "Folosește font personalizat",
- "use-monospaced-font-description": "Când este activat, ceasul va folosi fontul monospațiat.",
- "use-monospaced-font-label": "Folosește font monospațiat",
- "vertical-bar-description": "Folosește un spațiu pentru a separa fiecare parte pe o linie nouă.",
+ "tooltip-format-description": "Șir de formatare pentru tooltip-ul care apare la trecerea cursorului peste ceas. Lasă câmpul gol pentru a utiliza informația implicită.",
+ "tooltip-format-label": "Format tooltip",
+ "use-custom-font-description": "Suprascrie selecția implicită de font cu un font custom pentru ceas.",
+ "use-custom-font-label": "Folosește un font custom",
+ "use-monospaced-font-description": "Ceasul va afișa textul cu un font monospațiat.",
+ "use-monospaced-font-label": "Folosește un font monospațiat",
+ "vertical-bar-description": "Folosește un spațiu liber pentru a separa fiecare parte pe o linie nouă.",
"vertical-bar-label": "Bară verticală"
},
"control-center": {
- "browse-file": "Răsfoiește fișierul",
- "browse-library": "Răsfoiește Biblioteca",
- "color-selection-description": "Aplică culorile temei pictogramelor.",
+ "browse-file": "Căutare fișier",
+ "browse-library": "Căutare bibliotecă",
+ "color-selection-description": "Aplică culorile temei pe pictograme.",
"enable-colorization-description": "Activează colorizarea pentru pictogramă, aplicând culorile temei.",
- "icon-description": "Selectează o pictogramă din bibliotecă sau un fișier personalizat.",
- "select-custom-icon": "Selectează o pictogramă personalizată",
- "use-distro-logo-description": "Folosește logo-ul distribuției tale în loc de o pictogramă personalizată.",
- "use-distro-logo-label": "Folosește logo-ul distribuției în loc de pictogramă"
+ "enable-colorization-label": "Activează colorizarea",
+ "icon-description": "Selectează o pictogramă din bibliotecă sau un fișier custom.",
+ "select-custom-icon": "Selectează o pictogramă custom",
+ "use-distro-logo-description": "Folosește logo-ul distribuției Linux instalată în loc de o pictogramă custom.",
+ "use-distro-logo-label": "Folosește logo-ul distribuției Linux instalată loc de pictogramă"
},
"custom-button": {
- "collapse-condition-description": "Dacă textul de ieșire corespunde acestei valori, butonul se va restrânge.",
+ "collapse-condition-description": "Dacă output-ul corespunde acestei valori, butonul se va restrânge.",
"collapse-condition-label": "Condiție de restrângere",
- "color-selection-description": "Aplică culorile temei pictogramei și textului.",
- "default-tooltip": "Buton personalizat, configurează în setări",
- "display-command-output-description": "Introduceți o comandă de rulat la un interval regulat. Prima linie a ieșirii sale va fi afișată ca text.",
- "display-command-output-label": "Afișează ieșirea comenzii",
- "display-command-output-stream-description": "Introduce o comandă de rulat continuu.",
+ "color-selection-description": "Aplică culorile temei pe pictogramă și pe text.",
+ "default-tooltip": "Buton custom, configurează în setări",
+ "display-command-output-description": "Introdu o comandă de rulat la un interval regulat. Prima linie a output-ului său va fi afișată ca text.",
+ "display-command-output-label": "Afișează output-ul comenzii",
+ "display-command-output-stream-description": "Introdu o comandă de rulat continuu.",
"dynamic-text": "Text dinamic",
- "enable-colorization-description": "Activează colorizarea pentru pictograma și textul butonului personalizat, aplicând culorile temei.",
+ "enable-colorization-description": "Activează colorizarea pentru pictograma și textul butonului custom, aplicând culorile temei.",
"enable-colorization-label": "Activează colorizarea",
- "general-tooltip-text-description": "Text personalizat de afișat în sfatul contextual al butonului.",
- "general-tooltip-text-label": "Text personalizat pentru tooltip",
+ "general-tooltip-text-description": "Text custom de afișat în tooltip-ul butonului.",
+ "general-tooltip-text-label": "Text custom pentru tooltip",
"hide-mode-always-expanded": "Întotdeauna extins",
- "hide-mode-description": "Reglează vizibilitatea widget-ului când comanda nu are ieșire.",
- "hide-mode-expand-with-output": "Extinde când are ieșire",
+ "hide-mode-description": "Reglează vizibilitatea widget-ului când comanda nu are output.",
+ "hide-mode-expand-with-output": "Extinde când are output",
"hide-mode-label": "Mod ascuns",
"hide-mode-max-transparent": "Maxim extins, dar transparent",
+ "icon-color-selection-description": "Aplică culorile temei pictogramelor.",
"icon-description": "Selectați o iconiță din bibliotecă.",
+ "icon-position-bottom": "Jos",
+ "icon-position-description": "Selectează unde apare pictograma în raport cu textul.",
+ "icon-position-label": "Poziția pictogramei",
+ "icon-position-left": "Stânga",
+ "icon-position-right": "Dreapta",
+ "icon-position-top": "Sus",
"ipc-identifier-description": "Identificator unic pentru comenzi IPC. Folosește acest identificator cu 'qs -c noctalia-shell ipc call cb [action] [identifier]' pentru a controla acest buton prin IPC.",
"ipc-identifier-label": "Identificator IPC",
"left-click-description": "Comandă de executat când se face clic stânga pe buton.",
@@ -128,23 +136,27 @@
"max-text-length-horizontal-description": "Număr maxim de caractere de afișat în bara orizontală (0 pentru a ascunde textul).",
"max-text-length-horizontal-label": "Lungime maximă a textului (orizontală)",
"max-text-length-vertical-description": "Număr maxim de caractere de afișat în bara verticală (0 pentru a ascunde textul).",
- "max-text-length-vertical-label": "Lungime maximă text (verticală)",
- "middle-click-description": "Comandă de executat când se face clic cu butonul din mijloc.",
+ "max-text-length-vertical-label": "Lungime maximă a textului (verticală)",
+ "middle-click-description": "Comandă de executat când se face clic mijloc pe buton.",
"middle-click-label": "Clic mijloc",
"middle-click-update-text": "Actualizează textul afișat la clic mijloc",
- "parse-json-description": "Interpretează ieșirea comenzii ca un obiect JSON pentru a seta dinamic textul și pictograma.",
- "parse-json-label": "Analizează ieșirea ca JSON",
+ "parse-json-description": "Interpretează output-ul comenzii ca un obiect JSON pentru a seta dinamic textul și pictograma.",
+ "parse-json-label": "Analizează output-ul ca JSON",
"refresh-interval-description": "Interval în milisecunde.",
- "refresh-interval-label": "Interval de reîmprospătare",
+ "refresh-interval-label": "Interval de refresh",
"right-click-description": "Comanda de executat la click dreapta pe buton.",
"right-click-label": "Click dreapta",
"right-click-update-text": "Actualizează textul afișat la clic dreapta",
- "show-exec-tooltip-description": "Afișează sfaturi informative cu detalii despre comenzi (clic stânga/dreapta/mijloc, rotiță).",
- "show-exec-tooltip-label": "Afișează indicii pentru comenzi",
+ "show-exec-tooltip-description": "Afișează tooltip-uri cu detalii despre comenzi (clic stânga/dreapta/mijloc, rotița de scroll).",
+ "show-exec-tooltip-label": "Afișează tooltip-uri pentru comenzi",
"show-icon-description": "Comută vizibilitatea pictogramei widget-ului.",
"show-icon-label": "Afișează pictograma",
- "show-text-tooltip-description": "Afișează sfaturi contextuale cu rezultatul de la comanda text.",
- "show-text-tooltip-label": "Afișează sfaturi contextuale dinamice",
+ "show-text-tooltip-description": "Afișează tooltip-uri cu rezultatul de la comanda text.",
+ "show-text-tooltip-label": "Afișează tooltip-uri dinamice",
+ "tab-actions": "Acțiuni",
+ "tab-icon": "Pictogramă",
+ "tab-text": "Comandă text",
+ "text-color-selection-description": "Aplică culorile temei textului.",
"text-stream-description": "Liniile transmise în flux de la comandă vor fi afișate ca text pe buton.",
"text-stream-label": "Flux",
"wheel-description": "Comandă de executat când este folosită rotița de scroll.
Folosește $delta pentru delta rotiței de scroll în comandă.",
@@ -517,6 +529,7 @@
"select-color": "Selectează culoare",
"select-color-description": "Aplică culorile temei pentru accentuare.",
"select-icon-color": "Alege culoarea pictogramei",
+ "select-text-color": "Selectează culoarea textului",
"settings": "Setări",
"shortcuts": "Scurtături",
"shutdown": "Oprire",
@@ -1637,9 +1650,9 @@
"title": "Regiune"
},
"session-menu": {
- "countdown-duration-description": "Stabilește cât timp durează cronometrul de numărătoare inversă înainte de a executa acțiuni de alimentare.",
+ "countdown-duration-description": "Stabilește cât durează numărătoarea inversă înainte de a executa acțiuni de alimentare.",
"countdown-duration-label": "Durată numărătoare inversă",
- "enable-countdown-description": "Afișează un cronometru cu numărătoare inversă înainte de a executa acțiuni de alimentare.",
+ "enable-countdown-description": "Afișează o numărătoare inversă înainte de a executa acțiuni de alimentare.",
"enable-countdown-label": "Activează temporizatorul cu numărătoare inversă",
"entries-desc": "Personalizează ce acțiuni de alimentare apar în meniul de sesiune și în ce ordine.",
"entries-title": "Acțiuni de sesiune",
@@ -1905,9 +1918,9 @@
"title": "Mod avion"
},
"battery": {
- "critical": "Baterie critică",
- "critical-desc": "Bateria este la {percent}% — conectați încărcătorul imediat",
- "low": "Baterie slabă",
+ "critical": "Nivel baterie critic",
+ "critical-desc": "Bateria este la {percent}% — conectează încărcătorul imediat",
+ "low": "Nivel baterie scăzut",
"low-desc": "Bateria este la {percent}% — conectează încărcătorul"
},
"bluetooth": {
diff --git a/Assets/Translations/ru.json b/Assets/Translations/ru.json
index cf1a2f552..d7243250a 100644
--- a/Assets/Translations/ru.json
+++ b/Assets/Translations/ru.json
@@ -96,6 +96,7 @@
"browse-library": "Обзор библиотеки",
"color-selection-description": "Применяет цвета темы к значкам.",
"enable-colorization-description": "Включить раскрашивание значка с применением цветов темы.",
+ "enable-colorization-label": "Включить колоризацию",
"icon-description": "Выберите иконку из библиотеки или пользовательский файл.",
"select-custom-icon": "Выбрать пользовательскую иконку",
"use-distro-logo-description": "Использовать логотип вашего дистрибутива вместо пользовательской иконки.",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "Введите команду для непрерывного выполнения.",
"dynamic-text": "Динамический текст",
"enable-colorization-description": "Включить раскраску значка и текста пользовательской кнопки, применяя цвета темы.",
- "enable-colorization-label": "Включить раскраску",
+ "enable-colorization-label": "Включить колоризацию",
"general-tooltip-text-description": "Пользовательский текст для отображения во всплывающей подсказке кнопки.",
"general-tooltip-text-label": "Пользовательский текст всплывающей подсказки",
"hide-mode-always-expanded": "Всегда раскрыт",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Раскрывать при наличии вывода",
"hide-mode-label": "Режим скрытия",
"hide-mode-max-transparent": "Максимально раскрыт, но прозрачный",
+ "icon-color-selection-description": "Применить цвета темы к значкам.",
"icon-description": "Выберите иконку из библиотеки.",
+ "icon-position-bottom": "Низ",
+ "icon-position-description": "Выберите, где иконка будет отображаться относительно текста.",
+ "icon-position-label": "Позиция значка",
+ "icon-position-left": "Слева",
+ "icon-position-right": "Вправо",
+ "icon-position-top": "Сверху",
"ipc-identifier-description": "Уникальный идентификатор для команд IPC. Используйте этот идентификатор с 'qs -c noctalia-shell ipc call cb [действие] [идентификатор]', чтобы управлять этой кнопкой через IPC.",
"ipc-identifier-label": "Идентификатор IPC",
"left-click-description": "Команда для выполнения при нажатии левой кнопкой мыши.",
@@ -145,6 +153,10 @@
"show-icon-label": "Показать иконку",
"show-text-tooltip-description": "Показывать всплывающие подсказки с выводом текстовой команды.",
"show-text-tooltip-label": "Показывать динамические текстовые подсказки",
+ "tab-actions": "Действия",
+ "tab-icon": "Значок",
+ "tab-text": "Текстовая команда",
+ "text-color-selection-description": "Применить цвета темы к тексту.",
"text-stream-description": "Потоковые строки из команды будут отображаться как текст на кнопке.",
"text-stream-label": "Поток",
"wheel-description": "Команда для выполнения при использовании колеса прокрутки.
Используйте $delta для дельты колеса прокрутки в команде.",
@@ -517,6 +529,7 @@
"select-color": "Выбрать цвет",
"select-color-description": "Применить цвета темы для выделения.",
"select-icon-color": "Выбрать цвет значка",
+ "select-text-color": "Выбрать цвет текста",
"settings": "Настройки",
"shortcuts": "Ярлыки",
"shutdown": "Выключить",
@@ -748,7 +761,7 @@
"system-cpu": "ЦП:",
"system-disk": "Диск:",
"system-gpu": "Графический процессор",
- "system-host": "хост:",
+ "system-host": "Хост:",
"system-install-hint": "Установите fastfetch для просмотра информации о системе",
"system-kernel": "Ядро:",
"system-loading": "Загрузка системной информации...",
@@ -760,7 +773,7 @@
"system-product": "Продукт:",
"system-title": "Системная информация",
"system-uptime": "Время работы:",
- "system-wm": "ВМ:",
+ "system-wm": "МО:",
"telemetry-data-copied": "Данные телеметрии скопированы в буфер обмена.",
"telemetry-desc": "Помогите улучшить Noctalia, поделившись анонимной информацией о системе (разрешение экрана, композитор, дистрибутив). Отправляется один раз при запуске, без отслеживания, данные автоматически удаляются через 30 дней.",
"telemetry-enabled": "Отправить анонимную системную информацию",
diff --git a/Assets/Translations/sv.json b/Assets/Translations/sv.json
index 41b7164bd..a0da8c606 100644
--- a/Assets/Translations/sv.json
+++ b/Assets/Translations/sv.json
@@ -96,6 +96,7 @@
"browse-library": "Bläddra bland bibliotek",
"color-selection-description": "Tillämpa temafärger på ikoner.",
"enable-colorization-description": "Aktivera färgläggning för ikon, tillämpa temafärger.",
+ "enable-colorization-label": "Aktivera färgläggning",
"icon-description": "Välj en ikon från biblioteket eller en anpassad fil.",
"select-custom-icon": "Välj en anpassad ikon",
"use-distro-logo-description": "Använd din distributions logotyp istället för en anpassad ikon.",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Expandera när det finns utdata",
"hide-mode-label": "Dölj läge",
"hide-mode-max-transparent": "Maximalt expanderad men transparent",
+ "icon-color-selection-description": "Tillämpa temafärger på ikoner.",
"icon-description": "Välj en ikon från biblioteket.",
+ "icon-position-bottom": "Botten",
+ "icon-position-description": "Välj var ikonen ska visas i förhållande till texten.",
+ "icon-position-label": "Ikonposition",
+ "icon-position-left": "Vänster",
+ "icon-position-right": "Höger",
+ "icon-position-top": "Topp",
"ipc-identifier-description": "Unik identifierare för IPC-kommandon. Använd denna identifierare med 'qs -c noctalia-shell ipc call cb [action] [identifier]' för att styra denna knapp via IPC.",
"ipc-identifier-label": "IPC-identifierare",
"left-click-description": "Kommando som ska utföras när knappen vänsterklickas.",
@@ -145,6 +153,10 @@
"show-icon-label": "Visa ikon",
"show-text-tooltip-description": "Visa verktygstips med utdata från textkommandot.",
"show-text-tooltip-label": "Visa dynamiska textverktygstips",
+ "tab-actions": "Åtgärder",
+ "tab-icon": "Ikon",
+ "tab-text": "Textkommando",
+ "text-color-selection-description": "Tillämpa temafärger på text.",
"text-stream-description": "Strömmade rader från kommandot visas som text på knappen.",
"text-stream-label": "Ström",
"wheel-description": "Kommando som ska utföras när rullhjulet används.
Använd $delta för rullhjulets delta i kommandot.",
@@ -517,6 +529,7 @@
"select-color": "Välj färg",
"select-color-description": "Tillämpa temafärger för betoning.",
"select-icon-color": "Välj ikonfärg",
+ "select-text-color": "Välj textfärg",
"settings": "Inställningar",
"shortcuts": "Genvägar",
"shutdown": "Stäng av",
diff --git a/Assets/Translations/tr.json b/Assets/Translations/tr.json
index 0dfc7dec9..833f51059 100644
--- a/Assets/Translations/tr.json
+++ b/Assets/Translations/tr.json
@@ -96,6 +96,7 @@
"browse-library": "Kütüphaneye göz at",
"color-selection-description": "Simgeye tema renklerini uygular.",
"enable-colorization-description": "Simge için renklendirmeyi etkinleştir, tema renklerini uygula.",
+ "enable-colorization-label": "Renklendirmeyi etkinleştir",
"icon-description": "Kütüphaneden veya özel bir dosyadan bir simge seçin.",
"select-custom-icon": "Özel bir simge seç",
"use-distro-logo-description": "Özel simge yerine dağıtımınızın logosunu kullanın.",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Çıktı olduğunda genişlet",
"hide-mode-label": "Gizleme modu",
"hide-mode-max-transparent": "En büyük genişlik ama saydam",
+ "icon-color-selection-description": "Tema renklerini simgelere uygula.",
"icon-description": "Kütüphaneden bir simge seçin.",
+ "icon-position-bottom": "Alt",
+ "icon-position-description": "İkonun metne göre nerede görüneceğini seçin.",
+ "icon-position-label": "Simge konumu",
+ "icon-position-left": "Sol",
+ "icon-position-right": "Sağ",
+ "icon-position-top": "Üst",
"ipc-identifier-description": "IPC komutları için benzersiz tanımlayıcı. Bu tanımlayıcıyı 'qs -c noctalia-shell ipc call cb [eylem] [tanımlayıcı]' ile kullanarak bu düğmeyi IPC aracılığıyla kontrol edin.",
"ipc-identifier-label": "IPC Tanımlayıcısı",
"left-click-description": "Düğmeye sol tıklandığında yürütülecek komut.",
@@ -145,6 +153,10 @@
"show-icon-label": "Simgeyi göster",
"show-text-tooltip-description": "Metin komutunun çıktısıyla araç ipuçlarını göster.",
"show-text-tooltip-label": "Dinamik metin ipuçlarını göster",
+ "tab-actions": "Eylemler",
+ "tab-icon": "Simge",
+ "tab-text": "Metin Komutu",
+ "text-color-selection-description": "Tema renklerini metne uygula.",
"text-stream-description": "Komuttan gelen akış satırları düğmede metin olarak gösterilecektir.",
"text-stream-label": "Akış",
"wheel-description": "Kaydırma tekerleği kullanıldığında yürütülecek komut.
Komutta kaydırma tekerleği deltası için $delta kullanın.",
@@ -517,6 +529,7 @@
"select-color": "Renk Seç",
"select-color-description": "Vurgu için tema renklerini uygula.",
"select-icon-color": "Simge rengini seçin",
+ "select-text-color": "Metin rengini seç",
"settings": "Ayarlar",
"shortcuts": "Kısayollar",
"shutdown": "Kapat",
diff --git a/Assets/Translations/uk-UA.json b/Assets/Translations/uk-UA.json
index ed0a0f7ee..80e46fc87 100644
--- a/Assets/Translations/uk-UA.json
+++ b/Assets/Translations/uk-UA.json
@@ -96,6 +96,7 @@
"browse-library": "Огляд бібліотеки",
"color-selection-description": "Застосовує кольори теми до іконок.",
"enable-colorization-description": "Увімкнути розфарбовування іконки із застосуванням кольорів теми.",
+ "enable-colorization-label": "Увімкнути колоризацію",
"icon-description": "Вибрати значок з бібліотеки або власний файл.",
"select-custom-icon": "Вибрати власний значок",
"use-distro-logo-description": "Використовувати логотип вашого дистрибутива замість власного значка.",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "Введіть команду для безперервного запуску.",
"dynamic-text": "Динамічний текст",
"enable-colorization-description": "Увімкнути розфарбовування для значка та тексту власної кнопки, застосовуючи кольори теми.",
- "enable-colorization-label": "Увімкнути розфарбовування",
+ "enable-colorization-label": "Увімкнути колоризацію",
"general-tooltip-text-description": "Власний текст для відображення у підказці кнопки.",
"general-tooltip-text-label": "Користувацький текст підказки",
"hide-mode-always-expanded": "Завжди розширено",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Розширити, якщо є виведення",
"hide-mode-label": "Режим приховування",
"hide-mode-max-transparent": "Максимально розширено, але прозоро",
+ "icon-color-selection-description": "Застосувати кольори теми до іконок.",
"icon-description": "Вибрати значок з бібліотеки.",
+ "icon-position-bottom": "Низ",
+ "icon-position-description": "Виберіть, де іконка з'являється відносно тексту.",
+ "icon-position-label": "Позиція значка",
+ "icon-position-left": "Зліва",
+ "icon-position-right": "Праворуч",
+ "icon-position-top": "Зверху",
"ipc-identifier-description": "Унікальний ідентифікатор для команд IPC. Використовуйте цей ідентифікатор з 'qs -c noctalia-shell ipc call cb [дія] [ідентифікатор]', щоб керувати цією кнопкою через IPC.",
"ipc-identifier-label": "Ідентифікатор IPC",
"left-click-description": "Команда для виконання при лівому кліку на кнопку.",
@@ -145,6 +153,10 @@
"show-icon-label": "Показати значок",
"show-text-tooltip-description": "Показувати підказки з виводом текстової команди.",
"show-text-tooltip-label": "Показувати динамічні текстові підказки",
+ "tab-actions": "Дії",
+ "tab-icon": "Іконка",
+ "tab-text": "Текстова команда",
+ "text-color-selection-description": "Застосувати кольори теми до тексту.",
"text-stream-description": "Потокові рядки з команди відображатимуться як текст на кнопці.",
"text-stream-label": "Потік",
"wheel-description": "Команда для виконання при використанні колеса прокрутки.
Використовуйте $delta для дельти колеса прокрутки в команді.",
@@ -517,6 +529,7 @@
"select-color": "Вибрати колір",
"select-color-description": "Застосувати кольори теми для виділення.",
"select-icon-color": "Вибрати колір значка",
+ "select-text-color": "Вибрати колір тексту",
"settings": "Налаштування",
"shortcuts": "Ярлики",
"shutdown": "Вимкнути",
diff --git a/Assets/Translations/vi.json b/Assets/Translations/vi.json
index a48a504d9..019339670 100644
--- a/Assets/Translations/vi.json
+++ b/Assets/Translations/vi.json
@@ -96,6 +96,7 @@
"browse-library": "Duyệt Thư viện",
"color-selection-description": "Áp dụng màu sắc chủ đề cho biểu tượng.",
"enable-colorization-description": "Bật tô màu cho biểu tượng, áp dụng màu sắc chủ đề.",
+ "enable-colorization-label": "Bật tính năng tô màu",
"icon-description": "Chọn một biểu tượng từ thư viện hoặc một tệp tùy chỉnh.",
"select-custom-icon": "Chọn một biểu tượng tùy chỉnh",
"use-distro-logo-description": "Sử dụng biểu tượng của bản phân phối của bạn thay vì một biểu tượng tùy chỉnh.",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "Nhập lệnh để chạy liên tục.",
"dynamic-text": "Văn bản động",
"enable-colorization-description": "Bật tô màu cho biểu tượng và văn bản nút tùy chỉnh, áp dụng màu sắc chủ đề.",
- "enable-colorization-label": "Bật tô màu",
+ "enable-colorization-label": "Bật tính năng tô màu",
"general-tooltip-text-description": "Văn bản tùy chỉnh hiển thị trong chú giải công cụ của nút.",
"general-tooltip-text-label": "Văn bản chú giải tùy chỉnh",
"hide-mode-always-expanded": "Luôn mở rộng",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "Mở rộng khi có đầu ra",
"hide-mode-label": "Chế độ ẩn",
"hide-mode-max-transparent": "Mở rộng tối đa nhưng trong suốt",
+ "icon-color-selection-description": "Áp dụng màu chủ đề cho biểu tượng.",
"icon-description": "Chọn một biểu tượng từ thư viện.",
+ "icon-position-bottom": "Dưới",
+ "icon-position-description": "Chọn vị trí biểu tượng xuất hiện so với văn bản.",
+ "icon-position-label": "Vị trí biểu tượng",
+ "icon-position-left": "Trái",
+ "icon-position-right": "Phải",
+ "icon-position-top": "Trên",
"ipc-identifier-description": "Mã định danh duy nhất cho các lệnh IPC. Sử dụng mã định danh này với 'qs -c noctalia-shell ipc call cb [action] [identifier]' để điều khiển nút này qua IPC.",
"ipc-identifier-label": "Mã định danh IPC",
"left-click-description": "Lệnh thực thi khi nút được nhấp chuột trái.",
@@ -145,6 +153,10 @@
"show-icon-label": "Hiển thị biểu tượng",
"show-text-tooltip-description": "Hiển thị chú giải công cụ với đầu ra từ lệnh văn bản.",
"show-text-tooltip-label": "Hiển thị chú giải công cụ văn bản động",
+ "tab-actions": "Hành động",
+ "tab-icon": "Biểu tượng",
+ "tab-text": "Lệnh văn bản",
+ "text-color-selection-description": "Áp dụng màu chủ đề cho văn bản.",
"text-stream-description": "Các dòng đầu ra từ lệnh sẽ được hiển thị dưới dạng văn bản trên nút.",
"text-stream-label": "Luồng",
"wheel-description": "Lệnh để thực thi khi con lăn chuột được sử dụng.
Sử dụng $delta cho giá trị delta của con lăn chuột trong lệnh.",
@@ -517,6 +529,7 @@
"select-color": "Chọn màu",
"select-color-description": "Áp dụng màu sắc chủ đề để nhấn mạnh.",
"select-icon-color": "Chọn màu biểu tượng",
+ "select-text-color": "Chọn màu văn bản",
"settings": "Cài đặt",
"shortcuts": "Phím tắt",
"shutdown": "Tắt máy",
@@ -2010,7 +2023,7 @@
"hide-unnamed-devices": "Ẩn thiết bị không tên",
"home": "Thư mục chính",
"input-muted": "Bật/Tắt tiếng đầu vào",
- "keep-awake": "Giữ Màn Hình Luôn Bật",
+ "keep-awake": "Giữ màn hình luôn bật",
"keyboard-layout": "Bố cục bàn phím {layout}",
"list-view": "Chế độ xem danh sách",
"manage-vpn": "Kết nối VPN",
diff --git a/Assets/Translations/zh-CN.json b/Assets/Translations/zh-CN.json
index 71be36960..c9c70fb41 100644
--- a/Assets/Translations/zh-CN.json
+++ b/Assets/Translations/zh-CN.json
@@ -8,7 +8,7 @@
"disable-dnd": "关闭勿扰模式",
"disable-wifi": "关闭 Wi-Fi",
"disconnect-vpn": "断开与 {name} 的连接",
- "dock-settings": "Dock 设置",
+ "dock-settings": "Dock 栏设置",
"enable-bluetooth": "启用蓝牙",
"enable-dnd": "启用勿扰模式",
"enable-wifi": "启用 Wi-Fi",
@@ -96,10 +96,11 @@
"browse-library": "浏览库",
"color-selection-description": "将主题颜色应用于图标。",
"enable-colorization-description": "为图标启用着色,应用主题颜色。",
+ "enable-colorization-label": "启用着色",
"icon-description": "从库中选择图标或自定义文件。",
"select-custom-icon": "选择自定义图标",
"use-distro-logo-description": "使用您的发行版徽标而不是自定义图标。",
- "use-distro-logo-label": "使用发行版徽标而不是图标"
+ "use-distro-logo-label": "使用发行版徽标"
},
"custom-button": {
"collapse-condition-description": "如果输出文本与此值匹配,按钮将折叠。",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "有输出时展开",
"hide-mode-label": "隐藏模式",
"hide-mode-max-transparent": "最大展开但透明",
+ "icon-color-selection-description": "将主题颜色应用于图标。",
"icon-description": "从库中选择图标。",
+ "icon-position-bottom": "底部",
+ "icon-position-description": "选择图标相对于文本出现的位置。",
+ "icon-position-label": "图标位置",
+ "icon-position-left": "左",
+ "icon-position-right": "右",
+ "icon-position-top": "顶部",
"ipc-identifier-description": "IPC 命令的唯一标识符。使用此标识符以及“qs -c noctalia-shell ipc call cb [操作] [标识符]”通过 IPC 控制此按钮。",
"ipc-identifier-label": "IPC标识符",
"left-click-description": "左键单击按钮时执行的命令。",
@@ -145,6 +153,10 @@
"show-icon-label": "显示图标",
"show-text-tooltip-description": "显示带有文本命令输出的工具提示。",
"show-text-tooltip-label": "显示动态文本工具提示",
+ "tab-actions": "操作",
+ "tab-icon": "图标",
+ "tab-text": "文本命令",
+ "text-color-selection-description": "将主题颜色应用于文本。",
"text-stream-description": "来自命令的流式输出行将作为文本显示在按钮上。",
"text-stream-label": "流",
"wheel-description": "使用滚轮时执行的命令。
在命令中使用 $delta 表示滚轮增量。",
@@ -517,6 +529,7 @@
"select-color": "选择颜色",
"select-color-description": "应用主题颜色以示强调。",
"select-icon-color": "选择图标颜色",
+ "select-text-color": "选择文本颜色",
"settings": "设置",
"shortcuts": "快捷方式",
"shutdown": "关机",
diff --git a/Assets/Translations/zh-TW.json b/Assets/Translations/zh-TW.json
index 9cdd00014..fd0ef15ba 100644
--- a/Assets/Translations/zh-TW.json
+++ b/Assets/Translations/zh-TW.json
@@ -96,6 +96,7 @@
"browse-library": "瀏覽圖示庫",
"color-selection-description": "將主題用色套用至圖示上",
"enable-colorization-description": "為圖示啟用著色,應用主題顏色。",
+ "enable-colorization-label": "啟用著色",
"icon-description": "自圖示庫或檔案選擇一個圖示",
"select-custom-icon": "選取一個自訂圖示",
"use-distro-logo-description": "使用你現在使用的發行版 Logo 作為圖示",
@@ -111,7 +112,7 @@
"display-command-output-stream-description": "輸入一個要持續執行的指令",
"dynamic-text": "動態文字",
"enable-colorization-description": "替自訂按鈕的圖示及文字啟用上色, 套用主題用色",
- "enable-colorization-label": "啟用上色",
+ "enable-colorization-label": "啟用著色",
"general-tooltip-text-description": "在按鈕工具提示中顯示的自訂文字。",
"general-tooltip-text-label": "自訂工具提示文字",
"hide-mode-always-expanded": "總是展開",
@@ -119,7 +120,14 @@
"hide-mode-expand-with-output": "有訊息輸出時展開",
"hide-mode-label": "隱藏模式",
"hide-mode-max-transparent": "最大展開但透明",
+ "icon-color-selection-description": "將主題顏色套用到圖示。",
"icon-description": "從圖示庫選取一個圖示",
+ "icon-position-bottom": "底部",
+ "icon-position-description": "選擇圖示相對於文字出現的位置。",
+ "icon-position-label": "圖示位置",
+ "icon-position-left": "左",
+ "icon-position-right": "右",
+ "icon-position-top": "頂部",
"ipc-identifier-description": "IPC 指令的唯一識別碼, 在使用 'qs -c noctalia-shell ipc call cb [動作] [識別碼]' 時利用此識別碼可透過 IPC 控制此按鈕。",
"ipc-identifier-label": "IPC 識別碼",
"left-click-description": "在點擊左鍵時要執行的指令",
@@ -145,6 +153,10 @@
"show-icon-label": "顯示圖示",
"show-text-tooltip-description": "顯示帶有文字命令輸出的工具提示。",
"show-text-tooltip-label": "顯示動態文字工具提示",
+ "tab-actions": "動作",
+ "tab-icon": "圖示",
+ "tab-text": "文字指令",
+ "text-color-selection-description": "將主題顏色應用於文字。",
"text-stream-description": "命令列的串流內容將以文字形式顯示在按鈕上。",
"text-stream-label": "串流",
"wheel-description": "在滾輪滾動時要執行的指令
在指令裡使用 $delta 表示指令中滾動多少的值",
@@ -517,6 +529,7 @@
"select-color": "選擇顏色",
"select-color-description": "套用主題顏色以示強調。",
"select-icon-color": "選擇圖示顏色",
+ "select-text-color": "選擇文字顏色",
"settings": "設定",
"shortcuts": "快捷鍵",
"shutdown": "關機",
diff --git a/Commons/Color.qml b/Commons/Color.qml
index ada4c63a5..3be7cbc31 100644
--- a/Commons/Color.qml
+++ b/Commons/Color.qml
@@ -4,6 +4,7 @@ import QtQuick
import Quickshell
import Quickshell.Io
import qs.Commons
+import qs.Services.Power
/*
Noctalia is not strictly a Material Design project, it supports both some predefined
@@ -348,10 +349,15 @@ Singleton {
// Adaptive opacity calculation: automatically makes light mode more transparent
function adaptiveOpacity(baseOpacity) {
+ if (PowerProfileService.noctaliaPerformanceMode)
+ return 1.0;
return Settings.data.colorSchemes.darkMode ? baseOpacity : Math.pow(baseOpacity, 1.5);
}
function smartAlpha(baseColor, minAlpha = 0.4) {
+ if (PowerProfileService.noctaliaPerformanceMode)
+ return baseColor;
+
if (!Settings.data.ui.translucentWidgets)
return baseColor;
diff --git a/Commons/Style.qml b/Commons/Style.qml
index 1910401cd..d8182ceac 100644
--- a/Commons/Style.qml
+++ b/Commons/Style.qml
@@ -72,6 +72,9 @@ Singleton {
readonly property real opacityAlmost: 0.95
readonly property real opacityFull: 1.0
+ readonly property real effectivePanelOpacity: PowerProfileService.noctaliaPerformanceMode ? 1.0 : Color.adaptiveOpacity(Settings.data.ui.panelBackgroundOpacity)
+ readonly property real effectiveBarOpacity: PowerProfileService.noctaliaPerformanceMode ? 1.0 : Settings.data.bar.backgroundOpacity
+
// Shadows
readonly property real shadowOpacity: 0.85
readonly property real shadowBlur: 1.0
diff --git a/Modules/Bar/Bar.qml b/Modules/Bar/Bar.qml
index 51eac97ac..7d5df0861 100644
--- a/Modules/Bar/Bar.qml
+++ b/Modules/Bar/Bar.qml
@@ -412,7 +412,10 @@ Item {
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton | Qt.MiddleButton
- enabled: bar.barRightClickAction !== "none" || Settings.data.bar.middleClickAction !== "none"
+ // Keep enabled even when actions are "none" so we still swallow right/middle on
+ // empty bar gaps. Otherwise Qt Quick's context-menu path can crash on Wayland
+ // (QQuickDeliveryAgentPrivate::contextMenuTargets / mapToScene).
+ enabled: true
hoverEnabled: false
preventStealing: true
onClicked: mouse => {
@@ -420,12 +423,14 @@ Item {
if (bar.isPointOverWidget(mouse.x, mouse.y))
return;
bar.handleEmptyBarClick(bar.barRightClickAction, Settings.data.bar.rightClickFollowMouse, Settings.data.bar.rightClickCommand, mouse);
+ mouse.accepted = true;
return;
}
if (mouse.button === Qt.MiddleButton) {
if (bar.isPointOverWidget(mouse.x, mouse.y))
return;
bar.handleEmptyBarClick(Settings.data.bar.middleClickAction || "none", Settings.data.bar.middleClickFollowMouse, Settings.data.bar.middleClickCommand, mouse);
+ mouse.accepted = true;
return;
}
}
@@ -518,7 +523,14 @@ Item {
height: Style.marginS
x: 0
y: 0
- onClicked: root.triggerFirstWidgetInSection("left")
+ acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
+ onClicked: function (mouse) {
+ if (mouse.button !== Qt.LeftButton) {
+ mouse.accepted = true;
+ return;
+ }
+ root.triggerFirstWidgetInSection("left");
+ }
}
// Bottom edge hot corner - triggers last widget in right (bottom) section
@@ -527,7 +539,14 @@ Item {
height: Style.marginS
x: 0
anchors.bottom: parent.bottom
- onClicked: root.triggerLastWidgetInSection("right")
+ acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
+ onClicked: function (mouse) {
+ if (mouse.button !== Qt.LeftButton) {
+ mouse.accepted = true;
+ return;
+ }
+ root.triggerLastWidgetInSection("right");
+ }
}
// Calculate margin to center widgets vertically within the bar height
@@ -625,7 +644,14 @@ Item {
height: parent.height
x: 0
y: 0
- onClicked: root.triggerFirstWidgetInSection("left")
+ acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
+ onClicked: function (mouse) {
+ if (mouse.button !== Qt.LeftButton) {
+ mouse.accepted = true;
+ return;
+ }
+ root.triggerFirstWidgetInSection("left");
+ }
}
// Right edge hot corner - triggers last widget in right section
@@ -634,7 +660,14 @@ Item {
height: parent.height
anchors.right: parent.right
y: 0
- onClicked: root.triggerLastWidgetInSection("right")
+ acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
+ onClicked: function (mouse) {
+ if (mouse.button !== Qt.LeftButton) {
+ mouse.accepted = true;
+ return;
+ }
+ root.triggerLastWidgetInSection("right");
+ }
}
// Calculate margin to center widgets horizontally within the bar height
diff --git a/Modules/Bar/Widgets/AudioVisualizer.qml b/Modules/Bar/Widgets/AudioVisualizer.qml
index 30ea55c75..f13701d3a 100644
--- a/Modules/Bar/Widgets/AudioVisualizer.qml
+++ b/Modules/Bar/Widgets/AudioVisualizer.qml
@@ -45,27 +45,21 @@ Item {
readonly property bool shouldShow: (currentVisualizerType !== "" && currentVisualizerType !== "none") && (!hideWhenIdle || MediaService.isPlaying)
- readonly property bool needsSpectrum: root.shouldShow && MediaService.isPlaying
-
// Register/unregister with SpectrumService based on visibility (use screenName — screen can be null after DPMS/output changes)
readonly property string spectrumComponentId: "bar:audiovisualizer:" + screenName + ":" + root.section + ":" + root.sectionWidgetIndex
- onNeedsSpectrumChanged: {
- if (root.needsSpectrum) {
+ onShouldShowChanged: {
+ if (root.shouldShow) {
SpectrumService.registerComponent(root.spectrumComponentId);
} else {
SpectrumService.unregisterComponent(root.spectrumComponentId);
}
}
- Component.onCompleted: {
- if (root.needsSpectrum) {
- SpectrumService.registerComponent(root.spectrumComponentId);
- }
- }
-
Component.onDestruction: {
- SpectrumService.unregisterComponent(root.spectrumComponentId);
+ if (root.shouldShow) {
+ SpectrumService.unregisterComponent(root.spectrumComponentId);
+ }
}
// Content dimensions for implicit sizing
@@ -110,7 +104,7 @@ Item {
id: visualizerLoader
anchors.fill: parent
anchors.margins: Style.marginS
- active: root.needsSpectrum
+ active: shouldShow
asynchronous: true
sourceComponent: {
diff --git a/Modules/Bar/Widgets/MediaMini.qml b/Modules/Bar/Widgets/MediaMini.qml
index 8e27aa6fd..d7b6b74aa 100644
--- a/Modules/Bar/Widgets/MediaMini.qml
+++ b/Modules/Bar/Widgets/MediaMini.qml
@@ -75,7 +75,7 @@ Item {
// SpectrumService registration for visualizer
readonly property string spectrumComponentId: "bar:mediamini:" + root.screen?.name + ":" + root.section + ":" + root.sectionWidgetIndex
- readonly property bool needsSpectrum: root.showVisualizer && root.visualizerType !== "" && root.visualizerType !== "none" && !root.isHidden && MediaService.isPlaying
+ readonly property bool needsSpectrum: root.showVisualizer && root.visualizerType !== "" && root.visualizerType !== "none" && !root.isHidden
Layout.preferredHeight: isVertical ? -1 : Style.getBarHeightForScreen(screenName)
Layout.preferredWidth: isVertical ? Style.getBarHeightForScreen(screenName) : -1
@@ -265,10 +265,10 @@ Item {
y: Style.pixelAlignCenter(parent.height, height)
width: Style.toOdd(parent.width)
height: Style.toOdd(parent.height)
- active: root.needsSpectrum
+ active: showVisualizer
z: 0
sourceComponent: {
- if (!root.needsSpectrum)
+ if (!showVisualizer)
return null;
if (visualizerType === "linear")
return linearSpectrum;
diff --git a/Modules/Bar/Widgets/Taskbar.qml b/Modules/Bar/Widgets/Taskbar.qml
index 339727ef1..66c01b6a5 100644
--- a/Modules/Bar/Widgets/Taskbar.qml
+++ b/Modules/Bar/Widgets/Taskbar.qml
@@ -413,12 +413,12 @@ Item {
try {
const app = DesktopEntries.byId(appId);
- if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix) {
+ if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix.trim() !== "") {
// Use custom launch prefix
- const prefix = Settings.data.appLauncher.customLaunchPrefix.split(" ");
+ const prefix = Settings.data.appLauncher.customLaunchPrefix.trim().split(" ");
- if (app.runInTerminal) {
- const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
+ if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
+ const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = prefix.concat(terminal.concat(app.command));
Quickshell.execDetached(command);
} else {
@@ -426,9 +426,9 @@ Item {
Quickshell.execDetached(command);
}
} else {
- if (app.runInTerminal) {
+ if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
Logger.d("Taskbar", "Executing terminal app manually: " + app.name);
- const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
+ const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = terminal.concat(app.command);
CompositorService.spawn(command);
} else if (app.command && app.command.length > 0) {
diff --git a/Modules/Cards/MediaCard.qml b/Modules/Cards/MediaCard.qml
index 7526d4f97..ab604be12 100644
--- a/Modules/Cards/MediaCard.qml
+++ b/Modules/Cards/MediaCard.qml
@@ -16,7 +16,7 @@ NBox {
readonly property bool hasActivePlayer: MediaService.currentPlayer && MediaService.canPlay
// SpectrumService registration for visualizer
- readonly property bool needsSpectrum: Settings.data.audio.visualizerType !== "" && Settings.data.audio.visualizerType !== "none" && MediaService.isPlaying
+ readonly property bool needsSpectrum: Settings.data.audio.visualizerType !== "" && Settings.data.audio.visualizerType !== "none"
onNeedsSpectrumChanged: {
if (root.needsSpectrum) {
@@ -138,7 +138,7 @@ NBox {
// Background visualizer on top of the artwork
Loader {
anchors.fill: parent
- active: root.needsSpectrum
+ active: Settings.data.audio.visualizerType !== "" && Settings.data.audio.visualizerType !== "none"
sourceComponent: {
switch (Settings.data.audio.visualizerType) {
diff --git a/Modules/DesktopWidgets/Widgets/DesktopAudioVisualizer.qml b/Modules/DesktopWidgets/Widgets/DesktopAudioVisualizer.qml
index dc30b1543..a462df86c 100644
--- a/Modules/DesktopWidgets/Widgets/DesktopAudioVisualizer.qml
+++ b/Modules/DesktopWidgets/Widgets/DesktopAudioVisualizer.qml
@@ -25,7 +25,7 @@ DraggableDesktopWidget {
readonly property bool shouldShow: visualizerType !== "" && visualizerType !== "none" && (!hideWhenIdle || MediaService.isPlaying)
readonly property bool isHidden: !shouldShow
- readonly property bool shouldRegisterSpectrum: shouldShow && MediaService.isPlaying
+ readonly property bool shouldRegisterSpectrum: shouldShow
// Keep widget visible in edit mode so users can move/configure it
visible: !root.isHidden || DesktopWidgetRegistry.editMode
@@ -66,7 +66,7 @@ DraggableDesktopWidget {
id: visualizerLoader
anchors.fill: parent
anchors.margins: root.showBackground ? Math.round(Style.marginXS * root.widgetScale) : 0
- active: root.shouldRegisterSpectrum
+ active: root.shouldShow
asynchronous: true
sourceComponent: {
diff --git a/Modules/DesktopWidgets/Widgets/DesktopMediaPlayer.qml b/Modules/DesktopWidgets/Widgets/DesktopMediaPlayer.qml
index 81ba80816..52b5cbbf7 100644
--- a/Modules/DesktopWidgets/Widgets/DesktopMediaPlayer.qml
+++ b/Modules/DesktopWidgets/Widgets/DesktopMediaPlayer.qml
@@ -34,7 +34,7 @@ DraggableDesktopWidget {
// SpectrumService registration for visualizer
readonly property string spectrumComponentId: "desktopmediaplayer:" + (root.screen ? root.screen.name : "unknown")
- readonly property bool needsSpectrum: root.shouldShowVisualizer && !root.isHidden && root.isPlaying
+ readonly property bool needsSpectrum: root.shouldShowVisualizer && !root.isHidden
onNeedsSpectrumChanged: {
if (root.needsSpectrum) {
diff --git a/Modules/Dock/DockContent.qml b/Modules/Dock/DockContent.qml
index 09b495301..89b2eb8a4 100644
--- a/Modules/Dock/DockContent.qml
+++ b/Modules/Dock/DockContent.qml
@@ -145,11 +145,11 @@ Item {
return;
}
- if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix) {
- const prefix = Settings.data.appLauncher.customLaunchPrefix.split(" ");
+ if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix.trim() !== "") {
+ const prefix = Settings.data.appLauncher.customLaunchPrefix.trim().split(" ");
- if (app.runInTerminal) {
- const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
+ if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
+ const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = prefix.concat(terminal.concat(app.command));
Quickshell.execDetached(command);
} else {
@@ -157,9 +157,9 @@ Item {
Quickshell.execDetached(command);
}
} else {
- if (app.runInTerminal) {
+ if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
Logger.d("Dock", "Executing terminal app manually: " + app.name);
- const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
+ const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = terminal.concat(app.command);
CompositorService.spawn(command);
} else if (app.command && app.command.length > 0) {
diff --git a/Modules/LockScreen/LockScreen.qml b/Modules/LockScreen/LockScreen.qml
index eb6851005..88698b58f 100644
--- a/Modules/LockScreen/LockScreen.qml
+++ b/Modules/LockScreen/LockScreen.qml
@@ -17,7 +17,7 @@ Loader {
active: false
// Track if the visualizer should be shown (lockscreen active + media playing + non-compact mode)
- readonly property bool needsSpectrum: root.active && !Settings.data.general.compactLockScreen && Settings.data.audio.visualizerType !== "" && Settings.data.audio.visualizerType !== "none" && MediaService.isPlaying
+ readonly property bool needsSpectrum: root.active && !Settings.data.general.compactLockScreen && Settings.data.audio.visualizerType !== "" && Settings.data.audio.visualizerType !== "none"
onActiveChanged: {
if (root.active && root.needsSpectrum) {
diff --git a/Modules/LockScreen/LockScreenPanel.qml b/Modules/LockScreen/LockScreenPanel.qml
index 03c4e3e1d..ddd0678c4 100644
--- a/Modules/LockScreen/LockScreenPanel.qml
+++ b/Modules/LockScreen/LockScreenPanel.qml
@@ -264,7 +264,7 @@ Item {
Loader {
anchors.fill: parent
anchors.margins: 4
- active: Settings.data.audio.visualizerType === "linear" && MediaService.isPlaying
+ active: Settings.data.audio.visualizerType === "linear"
z: 0
sourceComponent: NLinearSpectrum {
anchors.fill: parent
@@ -278,7 +278,7 @@ Item {
Loader {
anchors.fill: parent
anchors.margins: 4
- active: Settings.data.audio.visualizerType === "mirrored" && MediaService.isPlaying
+ active: Settings.data.audio.visualizerType === "mirrored"
z: 0
sourceComponent: NMirroredSpectrum {
anchors.fill: parent
@@ -292,7 +292,7 @@ Item {
Loader {
anchors.fill: parent
anchors.margins: 4
- active: Settings.data.audio.visualizerType === "wave" && MediaService.isPlaying
+ active: Settings.data.audio.visualizerType === "wave"
z: 0
sourceComponent: NWaveSpectrum {
anchors.fill: parent
diff --git a/Modules/MainScreen/Backgrounds/AllBackgrounds.qml b/Modules/MainScreen/Backgrounds/AllBackgrounds.qml
index 4041bf8ae..a0000a547 100644
--- a/Modules/MainScreen/Backgrounds/AllBackgrounds.qml
+++ b/Modules/MainScreen/Backgrounds/AllBackgrounds.qml
@@ -38,7 +38,7 @@ Item {
// Enable layer caching to prevent continuous re-rendering
layer.enabled: true
- opacity: Color.adaptiveOpacity(Settings.data.ui.panelBackgroundOpacity)
+ opacity: Style.effectivePanelOpacity
Shape {
id: unifiedBackgroundsShape
@@ -106,7 +106,7 @@ Item {
anchors.fill: parent
layer.enabled: true
- opacity: Color.adaptiveOpacity(Settings.data.ui.panelBackgroundOpacity)
+ opacity: Style.effectivePanelOpacity
Shape {
id: panelBackgroundsShape
@@ -155,7 +155,7 @@ Item {
anchors.fill: parent
layer.enabled: true
- opacity: Settings.data.bar.backgroundOpacity
+ opacity: Style.effectiveBarOpacity
Shape {
id: barBackgroundShape
diff --git a/Modules/MainScreen/BarTriggerZone.qml b/Modules/MainScreen/BarTriggerZone.qml
index b7a9cd58b..caf80d0f1 100644
--- a/Modules/MainScreen/BarTriggerZone.qml
+++ b/Modules/MainScreen/BarTriggerZone.qml
@@ -45,6 +45,19 @@ PanelWindow {
id: triggerArea
anchors.fill: parent
hoverEnabled: true
+ // Default MouseArea only accepts left; right/middle would fall through to Qt Quick's
+ // Wayland context-menu delivery, which can SIGSEGV in contextMenuTargets/mapToScene.
+ acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
+
+ onPressed: function (mouse) {
+ if (mouse.button === Qt.RightButton || mouse.button === Qt.MiddleButton)
+ mouse.accepted = true;
+ }
+
+ onClicked: function (mouse) {
+ if (mouse.button === Qt.RightButton || mouse.button === Qt.MiddleButton)
+ mouse.accepted = true;
+ }
onEntered: {
if (root.isBeingDestroyed)
diff --git a/Modules/Panels/Launcher/Providers/ApplicationsProvider.qml b/Modules/Panels/Launcher/Providers/ApplicationsProvider.qml
index fac28e510..0f17049c7 100644
--- a/Modules/Panels/Launcher/Providers/ApplicationsProvider.qml
+++ b/Modules/Panels/Launcher/Providers/ApplicationsProvider.qml
@@ -553,13 +553,13 @@ Item {
return;
}
- if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix) {
+ if (Settings.data.appLauncher.customLaunchPrefixEnabled && Settings.data.appLauncher.customLaunchPrefix.trim() !== "") {
// Use custom launch prefix
- const prefix = Settings.data.appLauncher.customLaunchPrefix.split(" ");
- Logger.d("ApplicationsProvider", `Using custom launch prefix: ${Settings.data.appLauncher.customLaunchPrefix}`);
+ const prefix = Settings.data.appLauncher.customLaunchPrefix.trim().split(" ");
+ Logger.d("ApplicationsProvider", `Using custom launch prefix: ${Settings.data.appLauncher.customLaunchPrefix.trim()}`);
- if (app.runInTerminal) {
- const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
+ if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
+ const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = prefix.concat(terminal.concat(app.command));
Logger.d("ApplicationsProvider", `Executing command (with prefix and terminal): ${command.join(" ")}`);
Quickshell.execDetached(command);
@@ -569,9 +569,9 @@ Item {
Quickshell.execDetached(command);
}
} else {
- if (app.runInTerminal) {
+ if (app.runInTerminal && Settings.data.appLauncher.terminalCommand.trim() !== "") {
Logger.d("ApplicationsProvider", "Executing terminal app manually: " + app.name);
- const terminal = Settings.data.appLauncher.terminalCommand.split(" ");
+ const terminal = Settings.data.appLauncher.terminalCommand.trim().split(" ");
const command = terminal.concat(app.command);
Logger.d("ApplicationsProvider", "Executing command (manual terminal): " + command.join(" "));
CompositorService.spawn(command);
diff --git a/Modules/Panels/Launcher/Providers/ClipboardProvider.qml b/Modules/Panels/Launcher/Providers/ClipboardProvider.qml
index ddb8aa1d3..db44473f6 100644
--- a/Modules/Panels/Launcher/Providers/ClipboardProvider.qml
+++ b/Modules/Panels/Launcher/Providers/ClipboardProvider.qml
@@ -385,12 +385,12 @@ Item {
var actions = [];
// Annotation tool for images
- if (item.isImage && Settings.data.appLauncher.screenshotAnnotationTool !== "") {
+ if (item.isImage && Settings.data.appLauncher.screenshotAnnotationTool.trim() !== "") {
actions.push({
"icon": "pencil",
"tooltip": I18n.tr("tooltips.open-annotation-tool"),
"action": function () {
- var tool = Settings.data.appLauncher.screenshotAnnotationTool;
+ var tool = Settings.data.appLauncher.screenshotAnnotationTool.trim();
Quickshell.execDetached(["sh", "-c", "cliphist decode " + item.clipboardId + " | " + tool]);
if (launcher)
launcher.close();
diff --git a/Modules/Panels/Media/MediaPlayerPanel.qml b/Modules/Panels/Media/MediaPlayerPanel.qml
index 721ba7b5f..081c43dd5 100644
--- a/Modules/Panels/Media/MediaPlayerPanel.qml
+++ b/Modules/Panels/Media/MediaPlayerPanel.qml
@@ -50,7 +50,7 @@ SmartPanel {
readonly property bool isSideBySide: root.compactMode && root.showAlbumArt
- readonly property bool needsSpectrum: root.showVisualizer && root.visualizerType !== "" && root.visualizerType !== "none" && root.isPanelOpen && MediaService.isPlaying
+ readonly property bool needsSpectrum: root.showVisualizer && root.visualizerType !== "" && root.visualizerType !== "none" && root.isPanelOpen
onNeedsSpectrumChanged: {
if (root.needsSpectrum) {
diff --git a/Modules/Panels/Settings/Tabs/Launcher/ExecuteSubTab.qml b/Modules/Panels/Settings/Tabs/Launcher/ExecuteSubTab.qml
index 07fab76f1..f142fcb85 100644
--- a/Modules/Panels/Settings/Tabs/Launcher/ExecuteSubTab.qml
+++ b/Modules/Panels/Settings/Tabs/Launcher/ExecuteSubTab.qml
@@ -15,8 +15,7 @@ ColumnLayout {
description: I18n.tr("panels.launcher.settings-terminal-command-description")
Layout.fillWidth: true
text: Settings.data.appLauncher.terminalCommand
- onTextChanged: {
- Settings.data.appLauncher.terminalCommand = text;
+ onTextChanged: Settings.data.appLauncher.terminalCommand = text
}
}
diff --git a/Scripts/bash/template-apply.sh b/Scripts/bash/template-apply.sh
index b2a924ea1..b7fc92dfc 100755
--- a/Scripts/bash/template-apply.sh
+++ b/Scripts/bash/template-apply.sh
@@ -14,6 +14,15 @@ MODE="${2:-}" # Optional second argument for dark/light mode
# --- Apply theme based on the application name ---
case "$APP_NAME" in
kitty)
+ # Many configs use: include ./current-theme.conf
+ # Point it at the generated theme whenever the hook runs (including when noctalia.conf
+ # was unchanged on disk and the hook was forced from the template processor).
+ NOCTALIA_THEME="$HOME/.config/kitty/themes/noctalia.conf"
+ CURRENT_THEME="$HOME/.config/kitty/current-theme.conf"
+ if [ -f "$NOCTALIA_THEME" ]; then
+ mkdir -p "$HOME/.config/kitty"
+ ln -sf "themes/noctalia.conf" "$CURRENT_THEME"
+ fi
KITTY_CONF="$HOME/.config/kitty/kitty.conf"
if [ -w "$KITTY_CONF" ]; then
kitty +kitten themes --reload-in=all noctalia
@@ -535,52 +544,73 @@ zathura)
;;
starship)
- PALETTE_FILE="$HOME/.cache/noctalia/starship-palette.toml"
- CONFIG_FILE="$HOME/.config/starship.toml"
+ PALETTE_FILE="$HOME/.cache/noctalia/starship-palette.toml"
- # Check if the generated palette file exists
- if [ ! -f "$PALETTE_FILE" ]; then
- echo "Error: Starship palette file not found at $PALETTE_FILE" >&2
- exit 1
- fi
+ # Respect STARSHIP_CONFIG env var, then fall back to standard lookup order
+ if [ -n "$STARSHIP_CONFIG" ]; then
+ CONFIG_FILE="$STARSHIP_CONFIG"
+ elif [ -f "$HOME/.config/starship.toml" ]; then
+ CONFIG_FILE="$HOME/.config/starship.toml"
+ elif [ -f "$HOME/.config/starship/starship.toml" ]; then
+ CONFIG_FILE="$HOME/.config/starship/starship.toml"
+ else
+ CONFIG_FILE="$HOME/.config/starship.toml"
+ fi
- MARKER_BEGIN="# >>> NOCTALIA STARSHIP PALETTE >>>"
- MARKER_END="# <<< NOCTALIA STARSHIP PALETTE <<<"
+ if [ ! -f "$PALETTE_FILE" ]; then
+ echo "Error: Starship palette file not found at $PALETTE_FILE" >&2
+ return 1
+ fi
- # Create config file if it doesn't exist
- if [ ! -f "$CONFIG_FILE" ]; then
- mkdir -p "$(dirname "$CONFIG_FILE")"
- echo 'palette = "noctalia"' > "$CONFIG_FILE"
- echo "" >> "$CONFIG_FILE"
- echo "$MARKER_BEGIN" >> "$CONFIG_FILE"
- cat "$PALETTE_FILE" >> "$CONFIG_FILE"
- echo "$MARKER_END" >> "$CONFIG_FILE"
- exit 0
- fi
+ MARKER_BEGIN='# >>> NOCTALIA STARSHIP PALETTE >>>'
+ MARKER_END='# <<< NOCTALIA STARSHIP PALETTE <<<'
- # 1. Set palette = "noctalia" at top level
- if grep -qE '^palette\s*=' "$CONFIG_FILE"; then
- sed -i -E 's/^palette\s*=.*/palette = "noctalia"/' "$CONFIG_FILE"
- else
- # Insert after schema line if present, otherwise at line 1
- if grep -qE '^\"\$schema\"' "$CONFIG_FILE"; then
- sed -i '/^\"\$schema\"/a palette = "noctalia"' "$CONFIG_FILE"
- else
- sed -i '1i palette = "noctalia"' "$CONFIG_FILE"
- fi
- fi
+ # Create config file from scratch if it doesn't exist yet
+ if [ ! -f "$CONFIG_FILE" ]; then
+ mkdir -p "$(dirname "$CONFIG_FILE")"
+ {
+ printf 'palette = "noctalia"\n\n'
+ printf '%s\n' "$MARKER_BEGIN"
+ cat "$PALETTE_FILE"
+ printf '%s\n' "$MARKER_END"
+ } > "$CONFIG_FILE"
+ return 0
+ fi
- # 2. Remove existing noctalia palette block (between markers)
- if grep -qF "$MARKER_BEGIN" "$CONFIG_FILE"; then
- sed -i "/$(echo "$MARKER_BEGIN" | sed 's/[[\.*^$()+?{|]/\\&/g')/,/$(echo "$MARKER_END" | sed 's/[[\.*^$()+?{|]/\\&/g')/d" "$CONFIG_FILE"
- fi
+ # Follow symlinks so we edit the real file (safe for stow / dotfile managers)
+ if [ -L "$CONFIG_FILE" ]; then
+ CONFIG_FILE="$(readlink -f "$CONFIG_FILE")"
+ fi
- # 3. Append the new palette block
- echo "" >> "$CONFIG_FILE"
- echo "$MARKER_BEGIN" >> "$CONFIG_FILE"
- cat "$PALETTE_FILE" >> "$CONFIG_FILE"
- echo "$MARKER_END" >> "$CONFIG_FILE"
- ;;
+ # Set or insert top-level palette = "noctalia"
+ if grep -qE '^[[:space:]]*palette[[:space:]]*=' "$CONFIG_FILE"; then
+ sed -i -E 's/^([[:space:]]*)palette([[:space:]]*)=.*/\1palette\2= "noctalia"/' "$CONFIG_FILE"
+ elif grep -qE '^[[:space:]]*"\$schema"' "$CONFIG_FILE"; then
+ sed -i '/^[[:space:]]*"\$schema"/a palette = "noctalia"' "$CONFIG_FILE"
+ else
+ sed -i '1i palette = "noctalia"' "$CONFIG_FILE"
+ fi
+
+ # Remove existing palette block using awk for literal string matching
+ # (avoids sed misinterpreting >, #, or other chars in the markers as regex)
+ if grep -qF "$MARKER_BEGIN" "$CONFIG_FILE"; then
+ awk -v begin="$MARKER_BEGIN" -v end="$MARKER_END" '
+ $0 == begin { skip = 1; next }
+ $0 == end { skip = 0; next }
+ !skip
+ ' "$CONFIG_FILE" > "${CONFIG_FILE}.noctalia.tmp" \
+ && mv "${CONFIG_FILE}.noctalia.tmp" "$CONFIG_FILE"
+ fi
+
+ # Append fresh palette block, ensuring a clean newline boundary
+ {
+ printf '\n%s\n' "$MARKER_BEGIN"
+ cat "$PALETTE_FILE"
+ # Guard: ensure palette file ends with newline before closing marker
+ tail -c1 "$PALETTE_FILE" | grep -q $'\n' || printf '\n'
+ printf '%s\n' "$MARKER_END"
+ } >> "$CONFIG_FILE"
+ ;;
*)
# Handle unknown application names.
diff --git a/Scripts/python/src/theming/lib/renderer.py b/Scripts/python/src/theming/lib/renderer.py
index 89071e29c..00cf80568 100644
--- a/Scripts/python/src/theming/lib/renderer.py
+++ b/Scripts/python/src/theming/lib/renderer.py
@@ -1128,6 +1128,17 @@ class TemplateRenderer:
"""Substitute {{closest_color}} in text."""
return re.sub(r"\{\{\s*closest_color\s*\}\}", self.closest_color, text)
+ def _kitty_needs_current_theme_link(self, noctalia_theme_path: Path) -> bool:
+ """True if generated kitty theme exists but ~/.config/kitty/current-theme.conf is absent.
+
+ Many kitty.conf snippets use `include ./current-theme.conf`; template-apply.sh maintains
+ that link. When noctalia.conf is skipped as identical, hooks must still run once to create it.
+ """
+ if not noctalia_theme_path.is_file():
+ return False
+ current = Path.home() / ".config" / "kitty" / "current-theme.conf"
+ return not current.is_file()
+
def process_config_file(self, config_path: Path):
"""Process Matugen TOML configuration file."""
if not tomllib:
@@ -1167,21 +1178,29 @@ class TemplateRenderer:
if not ok:
continue
- # Hooks reload external apps (e.g. Discord); skip when output unchanged
- if not wrote:
+ out_path = Path(output_path).expanduser()
+ # Hooks are skipped when the rendered file is unchanged (avoids mtime noise).
+ # Kitty setups often use `include ./current-theme.conf` pointing at the live
+ # theme; that file is created in the post_hook. If noctalia.conf is unchanged
+ # (e.g. wallpaper palette tweak that doesn't affect terminal colors), the hook
+ # never ran and current-theme.conf never appears — while predefined schemes
+ # usually change bytes so hooks always run. Force hooks when that include is missing.
+ force_hooks = name == "kitty" and self._kitty_needs_current_theme_link(out_path)
+ if not wrote and not force_hooks:
continue
- # Execute pre_hook if specified
- pre_hook = template.get("pre_hook")
- if pre_hook:
- import subprocess
- if self.closest_color:
- pre_hook = self._substitute_closest_color(pre_hook)
- pre_hook = self.render(pre_hook)
- try:
- subprocess.run(pre_hook, shell=True, check=False)
- except Exception as e:
- print(f"Error running pre_hook for {name}: {e}", file=sys.stderr)
+ # Execute pre_hook only when the template output was regenerated
+ if wrote:
+ pre_hook = template.get("pre_hook")
+ if pre_hook:
+ import subprocess
+ if self.closest_color:
+ pre_hook = self._substitute_closest_color(pre_hook)
+ pre_hook = self.render(pre_hook)
+ try:
+ subprocess.run(pre_hook, shell=True, check=False)
+ except Exception as e:
+ print(f"Error running pre_hook for {name}: {e}", file=sys.stderr)
# Execute post_hook if specified
post_hook = template.get("post_hook")
diff --git a/Services/Noctalia/UpdateService.qml b/Services/Noctalia/UpdateService.qml
index cd990ea26..6726b61bf 100644
--- a/Services/Noctalia/UpdateService.qml
+++ b/Services/Noctalia/UpdateService.qml
@@ -11,7 +11,7 @@ Singleton {
id: root
// Version properties
- readonly property string baseVersion: "4.7.6"
+ readonly property string baseVersion: "4.7.7"
readonly property bool isDevelopment: true
readonly property string developmentSuffix: "-git"
readonly property string currentVersion: `v${!isDevelopment ? baseVersion : baseVersion + developmentSuffix}`
diff --git a/Services/System/NotificationService.qml b/Services/System/NotificationService.qml
index fff24191e..a853c8e41 100644
--- a/Services/System/NotificationService.qml
+++ b/Services/System/NotificationService.qml
@@ -770,6 +770,8 @@ Singleton {
return "";
if (icon.startsWith("/") || icon.startsWith("file://"))
return icon;
+ if (!ThemeIcons.iconExists(icon))
+ return "";
return ThemeIcons.iconFromName(icon);
}
diff --git a/flake.lock b/flake.lock
index c35ff4314..20fe6e844 100644
--- a/flake.lock
+++ b/flake.lock
@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
- "lastModified": 1775423009,
- "narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
+ "lastModified": 1776169885,
+ "narHash": "sha256-l/iNYDZ4bGOAFQY2q8y5OAfBBtrDAaPuRQqWaFHVRXM=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
+ "rev": "4bd9165a9165d7b5e33ae57f3eecbcb28fb231c9",
"type": "github"
},
"original": {
@@ -25,11 +25,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
- "lastModified": 1775491791,
- "narHash": "sha256-elzmRpudiwtYQNCKk9TAEhlYQV0+yUM81poo01Z7FfQ=",
+ "lastModified": 1776585574,
+ "narHash": "sha256-j35EWhKoGhKrfcXcAOpoRVgXEPQt41Eukji/h59cnjk=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
- "rev": "9e2736531ef7a1a336abf7ec72255d0b192273b6",
+ "rev": "75d180c28a9ab4470e980f3d6f706ad6c5213add",
"type": "github"
},
"original": {
@@ -67,11 +67,11 @@
]
},
"locked": {
- "lastModified": 1775125835,
- "narHash": "sha256-2qYcPgzFhnQWchHo0SlqLHrXpux5i6ay6UHA+v2iH4U=",
+ "lastModified": 1775636079,
+ "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "numtide",
"repo": "treefmt-nix",
- "rev": "75925962939880974e3ab417879daffcba36c4a3",
+ "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"type": "github"
},
"original": {
diff --git a/nix/home-module.nix b/nix/home-module.nix
index bb68b43ec..c39f20097 100644
--- a/nix/home-module.nix
+++ b/nix/home-module.nix
@@ -183,6 +183,12 @@ in
config = lib.mkIf cfg.enable {
systemd.user.services.noctalia-shell = lib.mkIf cfg.systemd.enable {
+ warnings = [
+ ''
+ Running noctalia-shell as a systemd service has been deprecated!
+ See https://docs.noctalia.dev/getting-started/nixos/#running-the-shell for details.
+ ''
+ ];
Unit = {
Description = "Noctalia Shell - Wayland desktop shell";
Documentation = "https://docs.noctalia.dev";
diff --git a/nix/nixos-module.nix b/nix/nixos-module.nix
index 2f6c84cdb..1ea605acd 100644
--- a/nix/nixos-module.nix
+++ b/nix/nixos-module.nix
@@ -24,6 +24,12 @@ in
};
config = lib.mkIf cfg.enable {
+ warnings = [
+ ''
+ Running noctalia-shell as a systemd service has been deprecated!
+ See https://docs.noctalia.dev/getting-started/nixos/#running-the-shell for details.
+ ''
+ ];
systemd.user.services.noctalia-shell = {
description = "Noctalia Shell - Wayland desktop shell";
documentation = [ "https://docs.noctalia.dev" ];