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" ];