This commit is contained in:
Lemmy
2026-02-23 08:33:30 -05:00
69 changed files with 2357 additions and 513 deletions
+39 -7
View File
@@ -102,7 +102,7 @@
"collapse-condition-description": "Wenn der Ausgabetext diesem Wert entspricht, wird die Schaltfläche eingeklappt.",
"collapse-condition-label": "Einklappbedingung",
"color-selection-description": "Themenfarben auf Symbol und Text anwenden.",
"default-tooltip": "Benutzerdefinierte Schaltfläche, in den Einstellungen konfigurieren.",
"default-tooltip": "Benutzerdefinierte Schaltfläche, in den Einstellungen konfigurieren",
"display-command-output-description": "Befehl eingeben, der in regelmäßigen Abständen ausgeführt wird. Die erste Zeile seiner Ausgabe wird als Text angezeigt.",
"display-command-output-label": "Befehlsausgabe anzeigen",
"display-command-output-stream-description": "Geben Sie einen Befehl ein, der kontinuierlich ausgeführt werden soll.",
@@ -145,13 +145,13 @@
"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.<br>Verwenden Sie $delta für die Scrollrad-Delta im Befehl.",
"wheel-down": "Nach unten scrollen",
"wheel-down": "Scrollrad runter",
"wheel-down-description": "Befehl, der ausgeführt wird, wenn das Scrollrad heruntergescrollt wird.",
"wheel-down-label": "Scrollrad runter Befehl",
"wheel-label": "Scrollrad",
"wheel-mode-separate-description": "Separate Befehle für Scrollrad hoch und runter aktivieren.",
"wheel-mode-separate-label": "Separate Scrollrad-Befehle",
"wheel-up": "Nach oben scrollen",
"wheel-up": "Scrollrad hoch",
"wheel-up-description": "Befehl, der ausgeführt wird, wenn das Scrollrad hochgescrollt wird.",
"wheel-up-label": "Scrollrad hoch Befehl",
"wheel-update-text": "Anzeigetext beim Scrollen aktualisieren"
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Aktionen",
"active": "Aktiv",
"add": "Hinzufügen",
"appearance": "Aussehen",
"apply": "Anwenden",
@@ -486,6 +487,8 @@
"scanning": "Scannen...",
"screen-corners": "Bildschirmecken",
"search": "Suche",
"second": "{count} Sekunde",
"second-plural": "{count} Sekunden",
"secondary": "Sekundär",
"security": "Sicherheit",
"select": "Auswählen",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Tasten anzeigen",
"media-player-show-visualizer-description": "Audiovisualisierungs-Overlay anzeigen.",
"media-player-visualizer-type-description": "Wählen Sie einen Visualisierungstyp für den Hintergrund des Desktop-Medienplayers.",
"overview-enabled-description": "Desktop-Widgets anzeigen, während die Compositor-Übersicht geöffnet ist.",
"overview-enabled-label": "In Übersicht anzeigen",
"system-stat-layout-bottom": "Unten",
"system-stat-layout-description": "Wählen Sie, wie die Legende relativ zum Diagramm angezeigt wird.",
"system-stat-layout-label": "Layout",
@@ -993,7 +998,7 @@
"system-stat-rounded-corners-label": "Abgerundete Ecken",
"system-stat-show-background-description": "Zeige den Hintergrundcontainer für das Systemstatistik-Widget.",
"system-stat-show-background-label": "Hintergrund anzeigen",
"system-stat-stat-type-description": "Wähle, welche Systemstatistik angezeigt werden soll.",
"system-stat-stat-type-description": "Wählen Sie, welche Systemstatistik angezeigt werden soll.",
"system-stat-stat-type-label": "Statistiktyp",
"title": "Desktop-Widgets",
"weather-enabled-description": "Zeige ein Wetter-Widget auf dem Desktop an.",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Zeige den Hintergrundcontainer für das Wetter-Widget an."
},
"display": {
"monitors-backlight-device-auto-option": "Standard",
"monitors-backlight-device-description": "Wähle ein Hintergrundbeleuchtungsgerät für diesen Ausgang.",
"monitors-backlight-device-label": "Hintergrundbeleuchtungsgerät",
"monitors-brightness-step-description": "Schrittgröße für Helligkeitsänderungen anpassen (Mausrad und Tastenkürzel).",
"monitors-brightness-step-label": "Helligkeits-Schrittgröße",
"monitors-brightness-unavailable-ddc-disabled": "Helligkeitssteuerung nicht verfügbar. Aktivieren Sie \"Externe Helligkeitsunterstützung\", um die Helligkeit dieses Displays zu steuern.",
@@ -1053,14 +1061,14 @@
"appearance-group-apps-description": "Gruppiere mehrere Fenster derselben App zu einem Dock-Eintrag.",
"appearance-group-apps-label": "Gleiche Apps gruppieren",
"appearance-group-click-action-cycle": "Fenster durchwechseln",
"appearance-group-click-action-description": "Wähle, was ein Linksklick für gruppierte Apps tut.",
"appearance-group-click-action-description": "Wählen Sie, was ein Linksklick für gruppierte Apps tut.",
"appearance-group-click-action-label": "Aktion beim Klick auf gruppierte App",
"appearance-group-click-action-list": "Fensterliste öffnen",
"appearance-group-context-menu-mode-description": "Wählen Sie, wie sich das Kontextmenü für gruppierte Apps verhält.",
"appearance-group-context-menu-mode-extended": "Erweitert",
"appearance-group-context-menu-mode-label": "Gruppierter App-Menü-Modus",
"appearance-group-context-menu-mode-list": "Fensterliste",
"appearance-group-indicator-style-description": "Wähle, wie gruppierte laufende Indikatoren den Zustand des fokussierten Fensters anzeigen.",
"appearance-group-indicator-style-description": "Wählen Sie, wie gruppierte laufende Indikatoren den Zustand des fokussierten Fensters anzeigen.",
"appearance-group-indicator-style-dots": "Punkte",
"appearance-group-indicator-style-label": "Gruppierter Anzeigestil",
"appearance-group-indicator-style-number": "Nummer",
@@ -1070,7 +1078,7 @@
"appearance-icon-size-label": "Dock-Größe",
"appearance-inactive-indicators-description": "Anzeige von Indikator-Pillen für alle Apps, nicht nur für die aktuell aktive.",
"appearance-inactive-indicators-label": "Laufende Indikatoren",
"appearance-launcher-position-description": "Wähle, wo das Launcher-Symbol im Dock erscheint.",
"appearance-launcher-position-description": "Wählen Sie, wo das Launcher-Symbol im Dock erscheint.",
"appearance-launcher-position-end": "Ende",
"appearance-launcher-position-label": "Position des Starters",
"appearance-launcher-position-start": "Start",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Hintergrundbild geändert",
"wallpaper-changed-placeholder": "z.B. notify-send \"Hintergrundbild\" \"Geändert\""
},
"idle": {
"custom-add": "Befehl hinzufügen",
"custom-description": "Führe einen Shell-Befehl nach einer Zeit der Inaktivität aus.",
"custom-entry-command": "Befehl",
"custom-entry-delete": "Löschen",
"custom-entry-timeout": "Inaktivitätszeit",
"custom-label": "Benutzerdefinierte Leerlaufbefehle",
"enable-description": "Automatisch den Bildschirm ausschalten, sperren oder in den Ruhezustand versetzen nach einer Zeit der Inaktivität.",
"enable-label": "Leerlaufverwaltung aktivieren",
"fade-duration-description": "Sekunden für die Schwarzblende-Animation, bevor jede Aktion ausgelöst wird. Jede Mausbewegung bricht die Überblendung ab.",
"fade-duration-label": "Einblenddauer",
"lock-description": "Sekunden der Inaktivität, bevor der Sperrbildschirm aktiviert wird.",
"lock-label": "Bildschirmsperre",
"screen-off-description": "Sekunden der Inaktivität, bevor die Monitore ausgeschaltet werden.",
"screen-off-label": "Bildschirm ausschalten",
"status-description": "Leerlaufzeit, wie vom Compositor gemeldet.",
"status-label": "Leerlaufzeit",
"suspend-description": "Sekunden der Inaktivität, bevor das System in den Ruhezustand geht.",
"tab-behavior": "Verhalten",
"tab-custom": "Benutzerdefiniert",
"timeouts-description": "Auf 0 setzen, um eine Stufe zu deaktivieren. Timeouts werden pausiert, während Keep Awake aktiv ist.",
"timeouts-label": "Zeitüberschreitungen",
"unavailable": "Native Leerlaufüberwachung ist auf diesem Compositor nicht verfügbar."
},
"indicator": {
"default-value": "Standard: {value}",
"system-default": "Systemstandard"
+34 -2
View File
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Actions",
"active": "Active",
"add": "Add",
"appearance": "Appearance",
"apply": "Apply",
@@ -486,6 +487,8 @@
"scanning": "Scanning...",
"screen-corners": "Screen Corners",
"search": "Search",
"second": "{count} second",
"second-plural": "{count} seconds",
"secondary": "Secondary",
"security": "Security",
"select": "Select",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Show buttons",
"media-player-show-visualizer-description": "Show the audio visualizer overlay.",
"media-player-visualizer-type-description": "Choose a visualization type.",
"overview-enabled-description": "Show desktop widgets while the compositor overview is open.",
"overview-enabled-label": "Show in overview",
"system-stat-layout-bottom": "Bottom",
"system-stat-layout-description": "Choose how the legend is displayed relative to the graph.",
"system-stat-layout-label": "Layout",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Show the background container for the weather widget."
},
"display": {
"monitors-backlight-device-auto-option": "Default",
"monitors-backlight-device-description": "Select a backlight device for this output.",
"monitors-backlight-device-label": "Backlight device",
"monitors-brightness-step-description": "Adjust the step size for brightness changes (scroll wheel and keyboard shortcuts).",
"monitors-brightness-step-label": "Brightness step size",
"monitors-brightness-unavailable-ddc-disabled": "Brightness control unavailable. Enable \"External brightness support\" to control this display's brightness.",
@@ -1079,12 +1087,12 @@
"appearance-position-description": "Choose where the dock appears on screen.",
"appearance-position-label": "Position",
"appearance-show-launcher-icon-description": "Show the application launcher icon in the dock.",
"appearance-show-launcher-icon-label": "Show App Launcher",
"appearance-show-launcher-icon-label": "Show app launcher",
"appearance-sit-on-frame-description": "Align the dock inside the frame border instead of sitting on top.",
"appearance-sit-on-frame-label": "Dock sits on frame",
"appearance-type-description": "Choose between a floating pill or a static bar attached to the edge.",
"appearance-type-floating": "Floating",
"appearance-type-label": "Dock Style",
"appearance-type-label": "Dock style",
"appearance-type-static": "Static",
"enabled-description": "Show or hide the dock entirely.",
"enabled-label": "Enable dock",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Wallpaper changed",
"wallpaper-changed-placeholder": "e.g. notify-send \"Wallpaper\" \"Changed\""
},
"idle": {
"custom-add": "Add command",
"custom-description": "Run a shell command after a period of inactivity.",
"custom-entry-command": "Command",
"custom-entry-delete": "Delete",
"custom-entry-timeout": "Inactivity time",
"custom-label": "Custom idle commands",
"enable-description": "Automatically turn off the screen, lock, or suspend after a period of inactivity.",
"enable-label": "Enable idle management",
"fade-duration-description": "Seconds for the fade-to-black animation before each action fires. Any mouse movement cancels the fade.",
"fade-duration-label": "Fade duration",
"lock-description": "Seconds of inactivity before the lock screen activates.",
"lock-label": "Lock screen",
"screen-off-description": "Seconds of inactivity before monitors are turned off.",
"screen-off-label": "Turn off screen",
"status-description": "Idle time as reported by the compositor.",
"status-label": "Idle time",
"suspend-description": "Seconds of inactivity before the system suspends.",
"tab-behavior": "Behavior",
"tab-custom": "Custom",
"timeouts-description": "Set to 0 to disable a stage. Timeouts are paused while Keep Awake is active.",
"timeouts-label": "Timeouts",
"unavailable": "Native idle monitoring is not available on this compositor."
},
"indicator": {
"default-value": "Default: {value}",
"system-default": "System Default"
+46 -14
View File
@@ -8,7 +8,7 @@
"disable-dnd": "Desactivar 'No molestar'",
"disable-wifi": "Desactivar Wi-Fi",
"disconnect-vpn": "Desconectar {name}",
"dock-settings": "Ajustes del Dock",
"dock-settings": "Ajustes del dock",
"enable-bluetooth": "Activar Bluetooth",
"enable-dnd": "Activar 'No molestar'",
"enable-wifi": "Activar Wi-Fi",
@@ -102,7 +102,7 @@
"collapse-condition-description": "Si el texto de salida coincide con este valor, el botón se colapsará.",
"collapse-condition-label": "Condición de colapso",
"color-selection-description": "Aplicar colores del tema al icono y al texto.",
"default-tooltip": "Botón personalizado, configurar en ajustes.",
"default-tooltip": "Botón personalizado, configurar en ajustes",
"display-command-output-description": "Introduce un comando para ejecutar a intervalos regulares. La primera línea de su salida se mostrará como texto.",
"display-command-output-label": "Mostrar salida del comando",
"display-command-output-stream-description": "Introduce un comando para ejecutar continuamente.",
@@ -145,13 +145,13 @@
"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.<br>Usa $delta para el delta de la rueda de desplazamiento en el comando.",
"wheel-down": "Desplazarse hacia abajo",
"wheel-down": "Rueda abajo",
"wheel-down-description": "Comando a ejecutar cuando la rueda de desplazamiento se desplaza hacia abajo.",
"wheel-down-label": "Comando de rueda hacia abajo",
"wheel-label": "Rueda de desplazamiento",
"wheel-mode-separate-description": "Habilitar comandos separados para rueda arriba y abajo.",
"wheel-mode-separate-label": "Comandos de rueda separados",
"wheel-up": "Desplazarse hacia arriba",
"wheel-up": "Rueda arriba",
"wheel-up-description": "Comando a ejecutar cuando la rueda de desplazamiento se desplaza hacia arriba.",
"wheel-up-label": "Comando de rueda hacia arriba",
"wheel-update-text": "Actualizar texto mostrado al desplazarse"
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Acciones",
"active": "Activo",
"add": "Añadir",
"appearance": "Apariencia",
"apply": "Aplicar",
@@ -486,6 +487,8 @@
"scanning": "Escaneando...",
"screen-corners": "Esquinas de la pantalla",
"search": "Buscar",
"second": "{count} segundo",
"second-plural": "{count} segundos",
"secondary": "Secundario",
"security": "Seguridad",
"select": "Seleccionar",
@@ -800,7 +803,7 @@
"appearance-floating-description": "Muestra la barra como una 'píldora' flotante.",
"appearance-floating-label": "Barra flotante",
"appearance-font-scale-description": "Ajustar la escala del tamaño de fuente para el texto mostrado en la barra.",
"appearance-font-scale-label": "Escala de Fuente",
"appearance-font-scale-label": "Escala de fuente",
"appearance-frame-radius": "Radio interno",
"appearance-frame-settings-description": "Ajustar el grosor del marco y el radio de la esquina interior",
"appearance-frame-settings-label": "Ajustes del marco",
@@ -817,7 +820,7 @@
"appearance-position-label": "Posición de la barra",
"appearance-show-capsule-description": "Mostrar fondos de los widgets.",
"appearance-show-capsule-label": "Mostrar cápsula",
"appearance-show-on-workspace-switch-description": "Mostrar la Bar brevemente de forma automática cuando el espacio de trabajo cambie.",
"appearance-show-on-workspace-switch-description": "Mostrar la barra brevemente de forma automática cuando el espacio de trabajo cambie.",
"appearance-show-on-workspace-switch-label": "Mostrar barra al cambiar de espacio de trabajo",
"appearance-show-outline-description": "Muestra un borde visible alrededor de cada widget.",
"appearance-show-outline-label": "Mostrar contornos de widgets",
@@ -826,7 +829,7 @@
"appearance-use-separate-opacity-description": "Permitir usar un valor de opacidad separado para el fondo de la barra.",
"appearance-use-separate-opacity-label": "Usar opacidad de barra separada",
"appearance-widget-spacing-description": "Ajusta el espaciado entre cada widget en la barra.",
"appearance-widget-spacing-label": "Espaciado de Widgets",
"appearance-widget-spacing-label": "Espaciado de widgets",
"monitor-configure-widgets": "Configurar widgets",
"monitor-override-settings": "Anular la configuración global",
"monitor-override-settings-description": "Usar ajustes personalizados para este monitor.",
@@ -964,7 +967,7 @@
"clock-style-label": "Estilo de reloj",
"clock-style-minimal": "Minimal",
"clock-width-description": "Ancho del widget de reloj en píxeles.",
"cpu-intensive-note": "Los Widgets marcados con ! usan más CPU y deberían activarse con precaución.",
"cpu-intensive-note": "Los widgets marcados con ! usan más CPU y deberían activarse con precaución.",
"edit-mode-button-label": "Entrar en modo de edición",
"edit-mode-controls-explanation": "Clic izquierdo y arrastrar: Mover o redimensionar el widget.\nClic derecho: Abrir las opciones del menú contextual.",
"edit-mode-description": "Habilita el modo de edición para mover y cambiar la posición de los widgets del escritorio. Cuando está habilitado, los widgets muestran un contorno de arrastre y se pueden reposicionar.",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Mostrar botones",
"media-player-show-visualizer-description": "Mostrar la superposición del visualizador de audio.",
"media-player-visualizer-type-description": "Elige un tipo de visualización para el fondo del reproductor multimedia de escritorio.",
"overview-enabled-description": "Mostrar widgets de escritorio mientras la vista general del compositor esté abierta.",
"overview-enabled-label": "Mostrar en la vista general",
"system-stat-layout-bottom": "Abajo",
"system-stat-layout-description": "Elige cómo se muestra la leyenda en relación con el gráfico.",
"system-stat-layout-label": "Diseño",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Mostrar el contenedor de fondo para el widget del clima."
},
"display": {
"monitors-backlight-device-auto-option": "Predeterminado",
"monitors-backlight-device-description": "Selecciona un dispositivo de retroiluminación para esta salida.",
"monitors-backlight-device-label": "Dispositivo de Retroiluminación",
"monitors-brightness-step-description": "Ajusta el tamaño del paso para los cambios de brillo (rueda de desplazamiento y atajos de teclado).",
"monitors-brightness-step-label": "Tamaño del paso de brillo",
"monitors-brightness-unavailable-ddc-disabled": "Control de brillo no disponible. Habilita \"Soporte de brillo externo\" para controlar el brillo de esta pantalla.",
@@ -1048,7 +1056,7 @@
"appearance-display-exclusive": "Exclusivo",
"appearance-floating-distance-description": "Ajusta la distancia de flotación desde el borde de la pantalla.",
"appearance-floating-distance-label": "Distancia de flotación del dock",
"appearance-frame-indicator-description": "Mostrar un pequeño indicador en el marco cuando el Dock está oculto.",
"appearance-frame-indicator-description": "Mostrar un pequeño indicador en el marco cuando el dock está oculto.",
"appearance-frame-indicator-label": "Indicador de muelle enmarcado",
"appearance-group-apps-description": "Agrupar varias ventanas de la misma app en una entrada del Dock.",
"appearance-group-apps-label": "Agrupar aplicaciones similares",
@@ -1058,8 +1066,8 @@
"appearance-group-click-action-list": "Abrir lista de ventanas",
"appearance-group-context-menu-mode-description": "Elige cómo se comporta el menú contextual para las aplicaciones agrupadas.",
"appearance-group-context-menu-mode-extended": "Extendido",
"appearance-group-context-menu-mode-label": "Modo de Menú de Aplicaciones Agrupado",
"appearance-group-context-menu-mode-list": "Lista de Ventanas",
"appearance-group-context-menu-mode-label": "Modo de menú de aplicaciones agrupado",
"appearance-group-context-menu-mode-list": "Lista de ventanas",
"appearance-group-indicator-style-description": "Elige cómo los indicadores de aplicaciones agrupadas muestran el estado de la ventana enfocada.",
"appearance-group-indicator-style-dots": "Puntos",
"appearance-group-indicator-style-label": "Estilo de indicador agrupado",
@@ -1079,12 +1087,12 @@
"appearance-position-description": "Elige dónde aparece el dock en la pantalla.",
"appearance-position-label": "Posición",
"appearance-show-launcher-icon-description": "Mostrar el icono del lanzador de aplicaciones en el dock.",
"appearance-show-launcher-icon-label": "Mostrar Lanzador de Aplicaciones",
"appearance-sit-on-frame-description": "Alinear el Dock dentro del borde del marco en lugar de que se superponga.",
"appearance-show-launcher-icon-label": "Mostrar lanzador de aplicaciones",
"appearance-sit-on-frame-description": "Alinear el dock dentro del borde del marco en lugar de que se superponga.",
"appearance-sit-on-frame-label": "El Dock se asienta en el marco",
"appearance-type-description": "Elige entre una barra flotante con forma de píldora o una barra estática anclada al borde.",
"appearance-type-floating": "Flotante",
"appearance-type-label": "Estilo del Dock",
"appearance-type-label": "Estilo del dock",
"appearance-type-static": "Estático",
"enabled-description": "Mostrar u ocultar el dock por completo.",
"enabled-label": "Habilitar dock",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Fondo de pantalla cambiado",
"wallpaper-changed-placeholder": "p. ej. notify-send \"Fondo de pantalla\" \"Cambiado\""
},
"idle": {
"custom-add": "Añadir comando",
"custom-description": "Ejecuta un comando de shell después de un período de inactividad.",
"custom-entry-command": "Comando",
"custom-entry-delete": "Eliminar",
"custom-entry-timeout": "Tiempo de inactividad",
"custom-label": "Comandos de Inactividad Personalizados",
"enable-description": "Apagar la pantalla, bloquear o suspender automáticamente después de un período de inactividad.",
"enable-label": "Activar gestión de inactividad",
"fade-duration-description": "Segundos para la animación de fundido a negro antes de que se active cada acción. Cualquier movimiento del ratón cancela el fundido.",
"fade-duration-label": "Duración del fundido",
"lock-description": "Segundos de inactividad antes de que se active la pantalla de bloqueo.",
"lock-label": "Bloquear pantalla",
"screen-off-description": "Segundos de inactividad antes de que los monitores se apaguen.",
"screen-off-label": "Apagar pantalla",
"status-description": "Tiempo de inactividad según lo informado por el Compositor.",
"status-label": "Tiempo de Inactividad",
"suspend-description": "Segundos de inactividad antes de que el sistema se suspenda.",
"tab-behavior": "Comportamiento",
"tab-custom": "Personalizado",
"timeouts-description": "Establece en 0 para deshabilitar una etapa. Los tiempos de espera se pausan mientras Keep Awake está activo.",
"timeouts-label": "Tiempos de Espera",
"unavailable": "La monitorización nativa de inactividad no está disponible en este Compositor."
},
"indicator": {
"default-value": "Predeterminado: {value}",
"system-default": "Predeterminado del sistema"
+45 -13
View File
@@ -8,7 +8,7 @@
"disable-dnd": "Désactiver le mode 'Ne pas déranger'",
"disable-wifi": "Désactiver le Wi-Fi",
"disconnect-vpn": "Se déconnecter de {name}",
"dock-settings": "Paramètres du Dock",
"dock-settings": "Paramètres du dock",
"enable-bluetooth": "Activer le Bluetooth",
"enable-dnd": "Activer le mode 'Ne pas déranger'",
"enable-wifi": "Activer le Wi-Fi",
@@ -102,7 +102,7 @@
"collapse-condition-description": "Si le texte de sortie correspond à cette valeur, le bouton se repliera.",
"collapse-condition-label": "Condition deffondrement",
"color-selection-description": "Appliquer les couleurs du thème à l'icône et au texte.",
"default-tooltip": "Bouton personnalisé, configurer dans les paramètres.",
"default-tooltip": "Bouton personnalisé, configurer dans les paramètres",
"display-command-output-description": "Entrez une commande à exécuter à intervalle régulier. La première ligne de sa sortie sera affichée sous forme de texte.",
"display-command-output-label": "Afficher la sortie de la commande",
"display-command-output-stream-description": "Entrez une commande à exécuter en continu.",
@@ -145,13 +145,13 @@
"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.<br>Utilisez $delta pour le delta de la molette dans la commande.",
"wheel-down": "Faire défiler vers le bas",
"wheel-down": "Molette bas",
"wheel-down-description": "Commande à exécuter lorsque la molette est défilée vers le bas.",
"wheel-down-label": "Commande molette bas",
"wheel-label": "Molette",
"wheel-mode-separate-description": "Activer des commandes séparées pour la molette haut et bas.",
"wheel-mode-separate-label": "Commandes de molette séparées",
"wheel-up": "Faire défiler vers le haut",
"wheel-up": "Molette haut",
"wheel-up-description": "Commande à exécuter lorsque la molette est défilée vers le haut.",
"wheel-up-label": "Commande molette haut",
"wheel-update-text": "Mettre à jour le texte affiché au défilement"
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Actions",
"active": "Actif",
"add": "Ajouter",
"appearance": "Apparence",
"apply": "Appliquer",
@@ -486,6 +487,8 @@
"scanning": "Analyse en cours...",
"screen-corners": "Coins d'écran",
"search": "Rechercher",
"second": "{count} seconde",
"second-plural": "{count} secondes",
"secondary": "Secondaire",
"security": "Sécurité",
"select": "Sélectionner",
@@ -800,7 +803,7 @@
"appearance-floating-description": "Afficher la barre sous forme de 'pilule' flottante.",
"appearance-floating-label": "Barre flottante",
"appearance-font-scale-description": "Ajuster l'échelle de la taille de police pour le texte affiché dans la barre.",
"appearance-font-scale-label": "Échelle de Police",
"appearance-font-scale-label": "Échelle de police",
"appearance-frame-radius": "Rayon interne",
"appearance-frame-settings-description": "Ajuster l'épaisseur du cadre et le rayon interne",
"appearance-frame-settings-label": "Paramètres du cadre",
@@ -826,7 +829,7 @@
"appearance-use-separate-opacity-description": "Activer l'utilisation d'une valeur d'opacité distincte pour l'arrière-plan de la barre.",
"appearance-use-separate-opacity-label": "Utiliser l'opacité des barres séparément",
"appearance-widget-spacing-description": "Ajustez l'espacement entre chaque widget dans la barre.",
"appearance-widget-spacing-label": "Espacement des Widgets",
"appearance-widget-spacing-label": "Espacement des widgets",
"monitor-configure-widgets": "Configurer les widgets",
"monitor-override-settings": "Remplacer les paramètres globaux",
"monitor-override-settings-description": "Utiliser des paramètres personnalisés pour ce moniteur.",
@@ -964,7 +967,7 @@
"clock-style-label": "Style d'horloge",
"clock-style-minimal": "Minimal",
"clock-width-description": "Largeur du widget horloge en pixels.",
"cpu-intensive-note": "Les Widgets marqués d'un ! utilisent plus de CPU et devraient être activés avec prudence.",
"cpu-intensive-note": "Les widgets marqués d'un ! utilisent plus de CPU et devraient être activés avec prudence.",
"edit-mode-button-label": "Entrer en mode édition",
"edit-mode-controls-explanation": "Clic gauche et glisser-déposer : Déplacer ou redimensionner le widget.\nClic droit : Ouvrir les options du menu contextuel.",
"edit-mode-description": "Activer le mode édition pour déplacer et repositionner les widgets du bureau. Une fois activé, les widgets affichent un contour de glissement et peuvent être repositionnés.",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Afficher les boutons",
"media-player-show-visualizer-description": "Afficher la superposition de l'visualiseur audio.",
"media-player-visualizer-type-description": "Choisissez un type de visualisation pour l'arrière-plan du lecteur multimédia de bureau.",
"overview-enabled-description": "Afficher les widgets du bureau lorsque l'aperçu du compositeur est ouvert.",
"overview-enabled-label": "Afficher dans l'aperçu",
"system-stat-layout-bottom": "Bas",
"system-stat-layout-description": "Choisissez comment la légende est affichée par rapport au graphique.",
"system-stat-layout-label": "Disposition",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Afficher le conteneur d'arrière-plan pour le widget météo."
},
"display": {
"monitors-backlight-device-auto-option": "Par défaut",
"monitors-backlight-device-description": "Sélectionnez un appareil de rétroéclairage pour cette sortie.",
"monitors-backlight-device-label": "Appareil de Rétroéclairage",
"monitors-brightness-step-description": "Ajustez l'incrément pour les changements de luminosité (molette de la souris et raccourcis clavier).",
"monitors-brightness-step-label": "Incrément de luminosité",
"monitors-brightness-unavailable-ddc-disabled": "Contrôle de la luminosité indisponible. Activez \"Prise en charge de la luminosité externe\" pour contrôler la luminosité de cet écran.",
@@ -1048,7 +1056,7 @@
"appearance-display-exclusive": "Exclusif",
"appearance-floating-distance-description": "Ajustez la distance de flottaison par rapport au bord de l'écran.",
"appearance-floating-distance-label": "Distance de flottaison du dock",
"appearance-frame-indicator-description": "Afficher un petit indicateur sur le cadre lorsque le Dock est masqué.",
"appearance-frame-indicator-description": "Afficher un petit indicateur sur le cadre lorsque le dock est masqué.",
"appearance-frame-indicator-label": "Indicateur de dock encadré",
"appearance-group-apps-description": "Regrouper plusieurs fenêtres de la même app en une seule entrée du Dock.",
"appearance-group-apps-label": "Regrouper les mêmes applications",
@@ -1058,8 +1066,8 @@
"appearance-group-click-action-list": "Ouvrir la liste des fenêtres",
"appearance-group-context-menu-mode-description": "Choisissez comment le menu contextuel se comporte pour les applications groupées.",
"appearance-group-context-menu-mode-extended": "Étendu",
"appearance-group-context-menu-mode-label": "Mode de Menu d'Applications Groupé",
"appearance-group-context-menu-mode-list": "Liste des Fenêtres",
"appearance-group-context-menu-mode-label": "Mode de menu d'applications groupé",
"appearance-group-context-menu-mode-list": "Liste des fenêtres",
"appearance-group-indicator-style-description": "Choisissez comment les indicateurs d'exécution groupés affichent l'état de la fenêtre active.",
"appearance-group-indicator-style-dots": "Points",
"appearance-group-indicator-style-label": "Style d'indicateur groupé",
@@ -1080,11 +1088,11 @@
"appearance-position-label": "Position",
"appearance-show-launcher-icon-description": "Afficher l'icône du lanceur d'applications dans le dock.",
"appearance-show-launcher-icon-label": "Afficher le Lanceur d'applications",
"appearance-sit-on-frame-description": "Aligner le Dock à l'intérieur de la bordure du cadre au lieu qu'il se superpose.",
"appearance-sit-on-frame-label": "Le Dock est sur le cadre",
"appearance-sit-on-frame-description": "Aligner le dock à l'intérieur de la bordure du cadre au lieu qu'il se superpose.",
"appearance-sit-on-frame-label": "Le dock est sur le cadre",
"appearance-type-description": "Choisissez entre une barre flottante en forme de pilule ou une barre statique attachée au bord.",
"appearance-type-floating": "Flottant",
"appearance-type-label": "Style du Dock",
"appearance-type-label": "Style du dock",
"appearance-type-static": "Statique",
"enabled-description": "Afficher ou masquer complètement le dock.",
"enabled-label": "Activer le dock",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Fond d'écran changé",
"wallpaper-changed-placeholder": "ex : notify-send \"Fond d'écran\" \"Changé\""
},
"idle": {
"custom-add": "Ajouter une commande",
"custom-description": "Exécute une commande shell après une période d'inactivité.",
"custom-entry-command": "Commande",
"custom-entry-delete": "Supprimer",
"custom-entry-timeout": "Temps d'inactivité",
"custom-label": "Commandes d'Inactivité Personnalisées",
"enable-description": "Éteindre l'écran, verrouiller ou suspendre automatiquement après une période d'inactivité.",
"enable-label": "Activer la gestion de l'inactivité",
"fade-duration-description": "Secondes pour l'animation de fondu au noir avant que chaque action ne se déclenche. Tout mouvement de souris annule le fondu.",
"fade-duration-label": "Durée du fondu",
"lock-description": "Secondes d'inactivité avant l'activation de l'écran de verrouillage.",
"lock-label": "Verrouiller l'écran",
"screen-off-description": "Secondes d'inactivité avant que les moniteurs ne s'éteignent.",
"screen-off-label": "Éteindre l'écran",
"status-description": "Temps d'inactivité tel que rapporté par le Compositor.",
"status-label": "Temps d'Inactivité",
"suspend-description": "Secondes d'inactivité avant que le système ne se suspende.",
"tab-behavior": "Comportement",
"tab-custom": "Personnalisé",
"timeouts-description": "Réglez sur 0 pour désactiver une étape. Les délais d'attente sont mis en pause tant que Keep Awake est actif.",
"timeouts-label": "Délais d'Expiration",
"unavailable": "La surveillance native de l'inactivité n'est pas disponible sur ce Compositor."
},
"indicator": {
"default-value": "Par défaut : {value}",
"system-default": "Par défaut du système"
+84 -52
View File
@@ -5,8 +5,8 @@
"connect-vpn": "Csatlakozás ehhez: {name}",
"cycle-visualizer": "Váltás a vizualizációk között",
"disable-bluetooth": "Bluetooth kikapcsolása",
"disable-dnd": "'Ne zavarjanak' kikapcsolása",
"disable-wifi": "Wi-Fi kikapcsolása",
"disable-dnd": "Ne zavarjanak letiltása",
"disable-wifi": "Wi-Fi letiltása",
"disconnect-vpn": "Kapcsolat bontása ezzel: {name}",
"dock-settings": "Dokk beállítások",
"enable-bluetooth": "Bluetooth bekapcsolása",
@@ -60,7 +60,7 @@
"hide-if-not-detected-description": "Widget elrejtése, ha a rendszer nem észlel akkumulátort.",
"hide-if-not-detected-label": "Elrejtés, ha nincs észlelve",
"low-battery-threshold-label": "Alacsony akkumulátor töltöttségi figyelmeztetési küszöb",
"show-noctalia-performance-description": "A Noctalia teljesítménymód kapcsoló megjelenítése az akkumulátor panelen belül.<br>Kikapcsolja az árnyékokat és animációkat a Noctalia-ban az erőforrás-felhasználás csökkentése érdekében.",
"show-noctalia-performance-description": "A Noctalia teljesítménymód kapcsoló megjelenítése az akkumulátor panelen belül.<br>Letiltja az árnyékokat és animációkat a Noctalia-ban az erőforrásfelhasználás csökkentése érdekében.",
"show-noctalia-performance-label": "Noctalia teljesítménymód kapcsoló",
"show-power-profile-description": "Az energiaprofil kiválasztásának megjelenítése az akkumulátor panelen belül.",
"show-power-profile-label": "Energiaprofil vezérlők"
@@ -102,7 +102,7 @@
"collapse-condition-description": "Ha a kimeneti szöveg megegyezik ezzel az értékkel, a gomb összecsukódik.",
"collapse-condition-label": "Összecsukási feltétel",
"color-selection-description": "Témák színeinek alkalmazása az ikonra és a szövegre.",
"default-tooltip": "Egyéni gomb, konfiguráld a beállításokban.",
"default-tooltip": "Egyéni gomb, konfiguráld a beállításokban",
"display-command-output-description": "Adjon meg egy parancsot, amelyet rendszeres időközönként futtatni szeretne. A kimenetének első sora szövegként jelenik meg.",
"display-command-output-label": "Parancs kimenetének megjelenítése",
"display-command-output-stream-description": "Adjon meg egy parancsot, amelyet folyamatosan futtatni szeretne.",
@@ -145,13 +145,13 @@
"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.<br>Használja a $delta változót a parancsban a görgő elmozdulásához.",
"wheel-down": "Görgess le",
"wheel-down": "Görgő le",
"wheel-down-description": "Végrehajtandó parancs, amikor a görgőt lefelé görgetik.",
"wheel-down-label": "Görgő le parancs",
"wheel-label": "Egérgörgő",
"wheel-mode-separate-description": "Külön parancsok engedélyezése a görgő fel és le mozgásához.",
"wheel-mode-separate-label": "Külön görgő parancsok",
"wheel-up": "Felgörgetés",
"wheel-up": "Görgő fel",
"wheel-up-description": "Végrehajtandó parancs, amikor a görgőt felfelé görgetik.",
"wheel-up-label": "Görgő fel parancs",
"wheel-update-text": "Megjelenített szöveg frissítése görgetésre"
@@ -272,9 +272,9 @@
"chevron-color-label": "Nyíl színe",
"colorize-icons-description": "Témaszínek alkalmazása a tálcaikonokra.",
"colorize-icons-label": "Ikonok színezése",
"drawer-enabled-description": "Ha be van kapcsolva, a nem rögzített tálcaelemek egy fiókpanelen jelennek meg.<br>Kikapcsolva az összes tálcaelem sorban jelenik meg.",
"drawer-enabled-description": "Ha engedélyezve van, a nem rögzített tálcaelemek egy fiókpanelen jelennek meg.<br>Letiltva az összes tálcaelem sorban jelenik meg.",
"drawer-enabled-label": "Tálca-fiók bekapcsolása",
"hide-passive-description": "Bekapcsolva a 'Passzív' állapotú tálcaelemek el lesznek rejtve.",
"hide-passive-description": "Engedélyezve a 'Passzív' állapotú tálcaelemek el lesznek rejtve.",
"hide-passive-label": "Passzív elemek elrejtése"
},
"volume": {
@@ -333,7 +333,7 @@
"blocked": "Blokkolva",
"connected-devices": "Csatlakoztatott eszközök",
"device-address": "Eszköz címe",
"disabled": "A Bluetooth ki van kapcsolva",
"disabled": "A Bluetooth le van tiltva",
"discoverable": "Felfedezhető",
"enable-message": "Kapcsolja be a Bluetooth-t az elérhető eszközök megtekintéséhez.",
"known-devices": "Ismert eszközök",
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Műveletek",
"active": "Aktív",
"add": "Hozzáadás",
"appearance": "Megjelenés",
"apply": "Alkalmazás",
@@ -486,6 +487,8 @@
"scanning": "Szkennelés...",
"screen-corners": "Képernyő sarkok",
"search": "Keresés",
"second": "{count} másodperc",
"second-plural": "{count} másodperc",
"secondary": "Másodlagos",
"security": "Biztonság",
"select": "Kiválasztás",
@@ -591,8 +594,8 @@
"clipboard-clear-description-full": "Az összes elem eltávolítása a vágólapelőzményekből",
"clipboard-clear-history": "Vágólapelőzmények törlése",
"clipboard-delete": "Vágólap bejegyzés törlése",
"clipboard-history-disabled": "Vágólapelőzmények kikapcsolva",
"clipboard-history-disabled-description": "Kapcsolja be a vágólapelőzményeket a beállításokban, vagy telepítse a cliphist csomagot",
"clipboard-history-disabled": "Vágólapelőzmények letiltva",
"clipboard-history-disabled-description": "Engedélyezze a vágólapelőzményeket a beállításokban, vagy telepítse a cliphist csomagot",
"clipboard-loading": "Vágólapelőzmények betöltése...",
"clipboard-search-description": "Keresés a vágólapelőzményekben",
"command-description": "Shell parancsok futtatása",
@@ -698,7 +701,7 @@
"contributors-description": "Köszönet a(z) {count} <b>fantasztikus</b> közreműködőnknek!",
"contributors-description-plural": "Köszönet a(z) {count} <b>fantasztikus</b> közreműködőnknek!",
"copy-info": "Információk másolása",
"debug-disabled": "Hibakeresési mód kikapcsolva",
"debug-disabled": "Hibakeresési mód letiltva",
"debug-enabled": "Hibakeresési mód engedélyezve",
"info-copied": "Információ a vágólapra másolva",
"noctalia-desc": "Egy elegáns és minimalista asztali felület, Waylandra tervezve, Quickshell-en alapulva.",
@@ -800,7 +803,7 @@
"appearance-floating-description": "Megjeleníti a sávot lebegő „pirulaként”.",
"appearance-floating-label": "Lebegő sáv",
"appearance-font-scale-description": "Állítsa be a betűméret skáláját a sávon megjelenő szöveghez.",
"appearance-font-scale-label": "Betűméret Skálázás",
"appearance-font-scale-label": "Betűméret-skála",
"appearance-frame-radius": "Belső sugár",
"appearance-frame-settings-description": "Állítsa be a keret vastagságát és a belső sarok sugarát",
"appearance-frame-settings-label": "Keret beállításai",
@@ -826,7 +829,7 @@
"appearance-use-separate-opacity-description": "Lehetővé teszi egy külön átlátszatlansági érték használatát a sáv hátteréhez.",
"appearance-use-separate-opacity-label": "Külön oszlop átlátszóság használata",
"appearance-widget-spacing-description": "Állítsd be az egyes widgetek közötti távolságot a sávon.",
"appearance-widget-spacing-label": "Widget Távolság",
"appearance-widget-spacing-label": "Widget távolság",
"monitor-configure-widgets": "Widgetek konfigurálása",
"monitor-override-settings": "Globális beállítások felülírása",
"monitor-override-settings-description": "Egyéni beállítások használata ehhez a monitorhoz.",
@@ -910,7 +913,7 @@
"bluetooth-rssi-polling-interval-label": "Lekérdezési intervallum",
"bluetooth-rssi-polling-label": "Bluetooth jelszint lekérdezés",
"disable-discoverability-description": "Eszköz elrejtése a közeli Bluetooth eszközök elől.",
"disable-discoverability-label": "Eszköz láthatóságának kikapcsolása",
"disable-discoverability-label": "Eszköz láthatóságának letiltása",
"hide-unnamed-devices-description": "Rejtse el azokat az eszközöket, amelyek csak Bluetooth-címként jelennek meg.",
"hide-unnamed-devices-label": "Névtelen eszközök elrejtése",
"pin-instructions": "Kérjük, írja be az eszközén megjelenő PIN-kódot.",
@@ -964,14 +967,14 @@
"clock-style-label": "Óra stílus",
"clock-style-minimal": "Minimális",
"clock-width-description": "Az óra widget szélessége képpontokban.",
"cpu-intensive-note": "! jellel megjelölt Widgetek több CPU-t használnak, és körültekintően kell őket engedélyezni.",
"cpu-intensive-note": "! jellel megjelölt widgetek több CPU-t használnak, és körültekintően kell őket engedélyezni.",
"edit-mode-button-label": "Szerkesztési módba lépés",
"edit-mode-controls-explanation": "Bal kattintás és húzás: Widget mozgatása vagy átméretezése.\nJobb kattintás: Kontextus menü opcióinak megnyitása.",
"edit-mode-description": "Engedélyezze a szerkesztési módot az asztali widgetek mozgatásához és áthelyezéséhez. Ha engedélyezve van, a widgetek húzható körvonalat mutatnak, és áthelyezhetők.",
"edit-mode-description": "Engedélyezi a szerkesztési módot az asztali widgetek mozgatásához és áthelyezéséhez. Ha engedélyezve van, a widgetek húzható körvonalat mutatnak, és áthelyezhetők.",
"edit-mode-exit-button": "Kilépés a szerkesztési módból",
"edit-mode-grid-snap-label": "Rácshoz igazítás",
"edit-mode-label": "Szerkesztési mód",
"enabled-description": "Asztali widgetek be- vagy kikapcsolása.",
"enabled-description": "Asztali widgetek engedlyezése vagy letiltása.",
"enabled-label": "Asztali widgetek bekapcsolása",
"general-desc": "Konfigurálja az asztalon megjelenő widgeteket.",
"general-title": "Asztali widgetek",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Gombok megjelenítése",
"media-player-show-visualizer-description": "Audiovizuális megjelenítő fedvény megjelenítése.",
"media-player-visualizer-type-description": "Válasszon vizualizációs típust az asztali média lejátszó hátteréhez.",
"overview-enabled-description": "Asztali vezérlők megjelenítése, amíg a kompozitor áttekintője nyitva van.",
"overview-enabled-label": "Megjelenítés áttekintésben",
"system-stat-layout-bottom": "Lent",
"system-stat-layout-description": "Válassza ki, hogyan jelenjen meg a jelmagyarázat a grafikonhoz képest.",
"system-stat-layout-label": "Elrendezés",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Jelenítse meg az időjárás widget háttérkonténerét."
},
"display": {
"monitors-backlight-device-auto-option": "Alapértelmezett",
"monitors-backlight-device-description": "Válasszon háttérvilágítási eszközt ehhez a kimenethez.",
"monitors-backlight-device-label": "Háttérvilágítási Eszköz",
"monitors-brightness-step-description": "Állítsa be a lépésméretet a fényerő változásokhoz (görgetőkerék és billentyűparancsok).",
"monitors-brightness-step-label": "Fényerő lépésméret",
"monitors-brightness-unavailable-ddc-disabled": "Fényerő vezérlés nem érhető el. Engedélyezze a \"Külső fényerő támogatás\" opciót a kijelző fényerejének szabályozásához.",
@@ -1008,7 +1016,7 @@
"monitors-desc": "Állítsa be a fényerő beállításokat minden kijelzőhöz.",
"monitors-enforce-minimum-description": "Megoldja azt a problémát, hogy egyes kijelzők háttérvilágítása teljesen kikapcsol 0%-os fényerőnél.",
"monitors-enforce-minimum-label": "Minimális fényerő (1%) kényszerítése",
"monitors-external-brightness-description": "Engedélyezze a ddcutil támogatást a külső kijelzők fényerejének szabályozásához DDC/CI protokollon keresztül.",
"monitors-external-brightness-description": "Engedélyezi a ddcutil támogatást a külső kijelzők fényerejének szabályozásához DDC/CI protokollon keresztül.",
"monitors-external-brightness-label": "Külső fényerő támogatás",
"monitors-global-brightness-description": "Az összes monitor fényerejének egyidejű beállítása.",
"monitors-global-brightness-label": "Összes monitor",
@@ -1048,9 +1056,9 @@
"appearance-display-exclusive": "Exkluzív",
"appearance-floating-distance-description": "Állítsa be a dokk és a képernyő széle közötti távolságot.",
"appearance-floating-distance-label": "Dokk lebegési távolság",
"appearance-frame-indicator-description": "Mutass egy kis jelzőt a kereten, amikor a Dock rejtve van.",
"appearance-frame-indicator-description": "Mutass egy kis jelzőt a kereten, amikor a dokk rejtve van.",
"appearance-frame-indicator-label": "Keretezett dokk jelző",
"appearance-group-apps-description": "Csoportosítsa ugyanazon app több ablakát egy Dock-bejegyzésbe.",
"appearance-group-apps-description": "Csoportosítsa ugyanazon app több ablakát egy dokk-bejegyzésbe.",
"appearance-group-apps-label": "Azonos alkalmazások csoportosítása",
"appearance-group-click-action-cycle": "Ablakok váltása",
"appearance-group-click-action-description": "Válaszd ki, mit csinál a bal kattintás a csoportosított alkalmazásoknál.",
@@ -1058,7 +1066,7 @@
"appearance-group-click-action-list": "Ablaklista megnyitása",
"appearance-group-context-menu-mode-description": "Válassza ki, hogyan viselkedik a helyi menü a csoportosított alkalmazásokhoz.",
"appearance-group-context-menu-mode-extended": "Kiterjesztett",
"appearance-group-context-menu-mode-label": "Csoportosított Alkalmazásmenü Mód",
"appearance-group-context-menu-mode-label": "Csoportosított alkalmazásmenü mód",
"appearance-group-context-menu-mode-list": "Ablaklista",
"appearance-group-indicator-style-description": "Válaszd ki, hogyan jelenítsék meg a csoportosított futó indikátorok a fókuszált ablak állapotát.",
"appearance-group-indicator-style-dots": "Pontok",
@@ -1080,11 +1088,11 @@
"appearance-position-label": "Pozíció",
"appearance-show-launcher-icon-description": "Az alkalmazásindító ikon megjelenítése a dokkban.",
"appearance-show-launcher-icon-label": "Alkalmazásindító megjelenítése",
"appearance-sit-on-frame-description": "Igazítsa a Dockot a keret szegélyén belülre, ahelyett, hogy a tetején ülne.",
"appearance-sit-on-frame-label": "A Dokk a kereten ül",
"appearance-sit-on-frame-description": "Igazítsa a dokkot a keret szegélyén belülre, ahelyett, hogy a tetején ülne.",
"appearance-sit-on-frame-label": "A dokk a kereten ül",
"appearance-type-description": "Válassz egy lebegő, pirula alakú sáv vagy egy statikus, a szélhez rögzített sáv közül.",
"appearance-type-floating": "Lebegő",
"appearance-type-label": "Dock Stílus",
"appearance-type-label": "Dokk stílus",
"appearance-type-static": "Statikus",
"enabled-description": "A dokk teljes megjelenítése vagy elrejtése.",
"enabled-label": "Dokk engedélyezése",
@@ -1129,7 +1137,7 @@
"language-select-label": "Alkalmazás nyelve",
"launch-setup-wizard": "Telepítő varázsló indítása",
"profile-desc": "Szerkessze felhasználói adatait és avatárját.",
"profile-picture-description": "Az Ön profilképe, amely megjelenik az interfészen.",
"profile-picture-description": "A profilkép, amely megjelenik a felületen.",
"profile-picture-label": "Profilkép",
"profile-select-avatar": "Avatárkép kiválasztása",
"profile-title": "Profil",
@@ -1156,12 +1164,12 @@
"noctalia-started-description": "Parancs, ami akkor fut le, amikor a Noctalia betöltése befejeződött.",
"noctalia-started-label": "Noctalia elindult",
"noctalia-started-placeholder": "pl. notify-send 'Noctalia betöltve'",
"performance-mode-disabled-description": "Parancs, amely akkor fut le, ha a Noctalia teljesítmény mód ki van kapcsolva.",
"performance-mode-disabled-label": "Teljesítmény mód kikapcsolva",
"performance-mode-disabled-placeholder": "pl. notify-send \"Teljesítmény\" \"Mód kikapcsolva\"",
"performance-mode-disabled-description": "Parancs, amely akkor fut le, ha a Noctalia teljesítmény mód engedélyezve van.",
"performance-mode-disabled-label": "Teljesítmény mód letiltva",
"performance-mode-disabled-placeholder": "pl. notify-send \"Teljesítmény\" \"Mód letiltva\"",
"performance-mode-enabled-description": "Parancs, amely akkor fut le, ha a Noctalia teljesítmény mód engedélyezve van.",
"performance-mode-enabled-label": "Teljesítmény mód engedélyezve",
"performance-mode-enabled-placeholder": "pl. notify-send \"Teljesítmény\" \"Mód bekapcsolva\"",
"performance-mode-enabled-placeholder": "pl. notify-send \"Teljesítmény\" \"Mód engedélyezve\"",
"screen-lock-description": "Parancs, amely a képernyő zárolásakor fut le.",
"screen-lock-label": "Képernyő zárolva",
"screen-lock-placeholder": "pl. notify-send \"Képernyő\" \"zárolva\"",
@@ -1172,7 +1180,7 @@
"session-label": "Munkamenet vége",
"session-placeholder": "pl., notify-send \"Session\" \"$1\"",
"system-hooks-desc": "Parancsok, amelyek a rendszeresemények bekövetkezésekor futnak le.",
"system-hooks-enable-description": "Összes hook parancs engedélyezése vagy letiltása.",
"system-hooks-enable-description": "Összes horog parancs engedélyezése vagy letiltása.",
"system-hooks-enable-label": "Hooks engedélyezése",
"system-hooks-title": "Rendszer hooks",
"theme-changed-description": "Parancs, ami akkor fut le, amikor a téma vált a sötét és világos mód között.",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Háttérkép megváltozott",
"wallpaper-changed-placeholder": "pl. notify-send \"Háttérkép\" \"megváltozott\""
},
"idle": {
"custom-add": "Parancs hozzáadása",
"custom-description": "Futtass egy shell parancsot egy inaktivitási időszak után.",
"custom-entry-command": "Parancs",
"custom-entry-delete": "Törlés",
"custom-entry-timeout": "Inaktivitási idő",
"custom-label": "Egyedi Tétlenségi Parancsok",
"enable-description": "Automatikusan kikapcsolja a képernyőt, zárolja vagy felfüggeszti egy inaktivitási időszak után.",
"enable-label": "Inaktivitás kezelés engedélyezése",
"fade-duration-description": "Másodpercek a feketére halványuló animációhoz, mielőtt minden művelet elindul. Bármilyen egérmozgás megszakítja a halványítást.",
"fade-duration-label": "Áttűnés időtartama",
"lock-description": "Inaktivitási másodpercek a zárolási képernyő aktiválása előtt.",
"lock-label": "Képernyőzár",
"screen-off-description": "Inaktivitás másodpercei, mielőtt a monitorok kikapcsolnak.",
"screen-off-label": "Képernyő kikapcsolása",
"status-description": "A Compositor által jelentett inaktivitási idő.",
"status-label": "Tétlen Idő",
"suspend-description": "Másodpercnyi inaktivitás, mielőtt a rendszer felfüggeszti magát.",
"tab-behavior": "Viselkedés",
"tab-custom": "Egyéni",
"timeouts-description": "Állítsd 0-ra egy szakasz letiltásához. Az időtúllépések szünetelnek, amíg a Keep Awake aktív.",
"timeouts-label": "Időtúllépések",
"unavailable": "Natív tétlenségfigyelés nem érhető el ezen a Compositoron."
},
"indicator": {
"default-value": "Alapértelmezett: {value}",
"system-default": "Rendszer alapértelmezés"
@@ -1242,7 +1274,7 @@
"title": "Indító"
},
"location": {
"calendar-cards-desc": "A kártyák rendezésének be- és kikapcsolása a naptár panelen.",
"calendar-cards-desc": "A kártyák rendezésének engedélyezése/letiltása a naptár panelen.",
"calendar-cards-title": "Naptárkártyák",
"calendar-header-label": "Naptár fejléc",
"calendar-month-label": "Naptár hónap",
@@ -1263,9 +1295,9 @@
"location-search-description": "pl. Toronto, ON",
"location-search-label": "Hely keresése",
"location-search-placeholder": "Adja meg a hely nevét",
"location-title": "Az Ön helye",
"location-title": "A tartózkodási helye",
"weather-desc": "A kívánt hőmérsékleti egység kiválasztása.",
"weather-enabled-description": "Az időjárási információk mutatása a felületen, és időjárási adatok bekérése. Ha ki van kapcsolva, minden időjárási elem el lesz rejtve, és nem történik hálózati kérés.",
"weather-enabled-description": "Az időjárási információk mutatása a felületen, és időjárási adatok bekérése. Ha le van tiltva, minden időjárási elem el lesz rejtve, és nem történik hálózati kérés.",
"weather-enabled-label": "Időjárás bekapcsolása",
"weather-fahrenheit-description": "Hőmérséklet megjelenítése Fahrenheitben Celsius helyett.",
"weather-fahrenheit-label": "Hőmérséklet megjelenítése Fahrenheitben (°F)",
@@ -1342,8 +1374,8 @@
"settings-density-description": "Válaszd ki az értesítési kártya sűrűségét.",
"settings-density-label": "Sűrűség",
"settings-desc": "Az értesítések megjelenésének és viselkedésének konfigurálása.",
"settings-do-not-disturb-description": "Blokkolja az összes értesítési felugró ablakot, ha be van kapcsolva.",
"settings-enabled-description": "Az értesítési daemon be- vagy kikapcsolása a Noctalia shell újraindítását igényli.",
"settings-do-not-disturb-description": "Letiltja az összes értesítési felugró ablakot, ha engedélyezve van.",
"settings-enabled-description": "Az értesítési daemon engedélyezése vagy letiltása a Noctalia shell újraindítását igényli.",
"settings-enabled-label": "Értesítések engedélyezése",
"settings-location-description": "Ahol az értesítések megjelennek a képernyőn.",
"settings-markdown-description": "Értesítés tartalmának megjelenítése Markdown formázással.",
@@ -1429,7 +1461,7 @@
"collision-already-installed": "Ez a bővítmény már telepítve van",
"collision-custom-version-exists": "Egyéni verzió a következő helyről: \"{source}\" már telepítve van",
"collision-official-version-exists": "A plugin hivatalos verziója már telepítve van",
"development-disable": "Fejlesztői mód kikapcsolása ehhez a beépülő modulhoz",
"development-disable": "Fejlesztői mód letiltása ennél a bővítménynél",
"development-enable": "Fejlesztői mód engedélyezése ehhez a beépülőhöz.",
"filter-downloaded": "Letöltött",
"filter-not-downloaded": "Nincs letöltve",
@@ -1534,15 +1566,15 @@
"threshold-critical": "Kritikus küszöb",
"threshold-warning": "Figyelmeztetési küszöb",
"thresholds-section-description": "Állítsa be a figyelmeztetési/kritikus küszöbértékeket és a lekérdezési intervallumokat minden rendszermutatóhoz.",
"use-custom-highlight-colors-description": "Ha ki van kapcsolva, a téma alapértelmezett kiemelőszínei kerülnek használatra.",
"use-custom-highlight-colors-description": "Ha le van tiltva, a téma alapértelmezett kiemelőszínei kerülnek használatra.",
"use-custom-highlight-colors-label": "Egyéni kiemelőszínek használata",
"warning-color-label": "Figyelmeztetési szín"
},
"user-interface": {
"allow-panels-without-bar-description": "Ha be van kapcsolva, a panelek bármely képernyőn megnyithatók. Ha ki van kapcsolva, a panelek csak olyan képernyőkön nyílnak meg, ahol van sáv, ami csökkentheti a memóriahasználatot.",
"allow-panels-without-bar-description": "Ha engedélyezve van, a panelek bármely képernyőn megnyithatók. Ha le van tiltva, a panelek csak olyan képernyőkön nyílnak meg, ahol van sáv, ami csökkentheti a memóriahasználatot.",
"allow-panels-without-bar-label": "Panelek engedélyezése sáv nélküli képernyőkön",
"animation-disable-description": "Az összes animáció kikapcsolása a gyorsabb, reszponzívabb élmény érdekében.",
"animation-disable-label": "A felhasználói felület animációinak kikapcolása",
"animation-disable-description": "Az összes animáció letiltása a gyorsabb, reszponzívabb élmény érdekében.",
"animation-disable-label": "A felhasználói felület animációinak letiltása",
"animation-speed-description": "Állítsa be a globális animációs sebességet.",
"animation-speed-label": "Animációs sebesség",
"animation-speed-reset": "Animációs sebesség visszaállítása",
@@ -1573,7 +1605,7 @@
"shadows-direction-label": "Árnyék iránya",
"shadows-label": "Árnyékok",
"title": "Felhasználói felület",
"tooltips-description": "Engedélyezze vagy tiltsa le az eszköztippeket a felületen.",
"tooltips-description": "Engedélyezi vagy letiltja az eszköztippeket a felületen.",
"tooltips-label": "Eszköztippek megjelenítése"
},
"wallpaper": {
@@ -1604,7 +1636,7 @@
"settings-enable-management-label": "Háttérkép-kezelés engedélyezése",
"settings-enable-overview-description": "Elmosódott és elsötétített háttérképet alkalmaz az áttekintő képernyőn.",
"settings-enable-overview-label": "Áttekintő háttérkép engedélyezése",
"settings-folder-description": "Az Ön fő háttérkép mappájának elérési útja.",
"settings-folder-description": "A fő háttérképek mappa elérési útja.",
"settings-folder-label": "Háttérkép mappa",
"settings-hide-wallpaper-filenames-tooltip-hide": "Fájlnevek elrejtése",
"settings-hide-wallpaper-filenames-tooltip-show": "Fájlnevek megjelenítése",
@@ -1741,8 +1773,8 @@
"connect-failed": "Nem sikerült csatlakozni az eszközhöz",
"disconnect-failed": "Nem sikerült leválasztani az eszközről",
"discoverable-change-failed": "Nem sikerült megváltoztatni a felfedezhetőság állapotát",
"discoverable-disabled": "Felfedezhetőség kikapcsolva",
"discoverable-enabled": "Felfedezhetőség bekapcsolva",
"discoverable-disabled": "Felfedezhetőség letiltva",
"discoverable-enabled": "Felfedezhetőség engedélyezve",
"display-code": "Adja meg a {value} kódot a másik eszközön.",
"forget-failed": "Nem sikerült elfelejteni az eszközt",
"pair-failed": "Nem sikerült párosítani az eszközt",
@@ -1756,9 +1788,9 @@
"unavailable-desc": "A 'cliphist' alkalmazás nincs telepítve. Telepítse a vágólapelőzmények funkcióinak használatához"
},
"do-not-disturb": {
"disabled": "Ne zavarjanak kikapcsolása",
"disabled": "Ne zavarjanak letiltása",
"disabled-desc": "Minden értesítés megjelenítése",
"enabled": "Ne zavarjanak bekapcsolva",
"enabled": "Ne zavarjanak engedélyezve",
"enabled-desc": "Ezeket az értesítéseket az előzményekben találja"
},
"donation-opened": "Az adományozási oldal megnyílt a böngésződben",
@@ -1777,8 +1809,8 @@
"not-installed": "wlsunset nincs telepítve"
},
"noctalia-performance": {
"disabled": "Teljesítmény mód kikapcsolva",
"enabled": "Teljesítmény mód bekapcsolva",
"disabled": "Teljesítmény mód letiltva",
"enabled": "Teljesítmény mód engedélyezve",
"label": "Noctalia Teljesítmény"
},
"power-profile": {
@@ -1794,8 +1826,8 @@
"disconnected": "Kapcsolat megszakadt a(z) „{name}” hálózattal"
},
"wallpaper-colors": {
"disabled": "Háttérkép színek kikapcsolva",
"enabled": "Háttérkép színek bekapcsolva",
"disabled": "Háttérképszínek letiltva",
"enabled": "Háttérkép színek engedélyezve",
"label": "Háttérkép színek generálása"
},
"wifi": {
@@ -2001,7 +2033,7 @@
"action-required": "Szukseges akció",
"available-interfaces": "Elérhető interfészek",
"available-networks": "Elérhető hálózatok",
"disabled": "A WiFi ki van kapcsolva",
"disabled": "A WiFi le van tiltva",
"disconnecting": "Leválasztás...",
"dns": "DNS",
"enable-message": "Kapcsolja be a WiFi-t az elérhető hálózatok megtekintéséhez.",
+33 -1
View File
@@ -102,7 +102,7 @@
"collapse-condition-description": "出力テキストがこの値と一致する場合、ボタンを折りたたみます。",
"collapse-condition-label": "折りたたみ条件",
"color-selection-description": "テーマカラーをアイコンとテキストに適用します。",
"default-tooltip": "カスタムボタン、設定で構成",
"default-tooltip": "カスタムボタン、設定で構成",
"display-command-output-description": "定期的に実行するコマンドを入力します。出力の最初の行がテキストとして表示されます。",
"display-command-output-label": "コマンド出力を表示",
"display-command-output-stream-description": "継続的に実行するコマンドを入力します。",
@@ -370,6 +370,7 @@
},
"common": {
"actions": "アクション",
"active": "アクティブ",
"add": "追加",
"appearance": "外観",
"apply": "適用",
@@ -486,6 +487,8 @@
"scanning": "スキャン中...",
"screen-corners": "画面の隅",
"search": "検索",
"second": "{count} 秒",
"second-plural": "{count} 秒",
"secondary": "セカンダリー",
"security": "セキュリティ",
"select": "選択",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "ボタンを表示",
"media-player-show-visualizer-description": "オーディオビジュアライザーのオーバーレイを表示する。",
"media-player-visualizer-type-description": "デスクトップメディアプレーヤーの背景に使用するビジュアライザーの種類を選択します。",
"overview-enabled-description": "コンポジターの概要が開いている間、デスクトップウィジェットを表示する。",
"overview-enabled-label": "概要に表示",
"system-stat-layout-bottom": "下",
"system-stat-layout-description": "凡例がグラフに対してどのように表示されるかを選択します。",
"system-stat-layout-label": "レイアウト",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "天気ウィジェットの背景コンテナを表示します。"
},
"display": {
"monitors-backlight-device-auto-option": "デフォルト",
"monitors-backlight-device-description": "この出力のバックライトデバイスを選択してください。",
"monitors-backlight-device-label": "バックライトデバイス",
"monitors-brightness-step-description": "明るさの変化量(スクロールホイールやショートカットキー)を調整します。",
"monitors-brightness-step-label": "明るさの調整ステップ",
"monitors-brightness-unavailable-ddc-disabled": "明るさ調整を利用できません。このディスプレイを操作するには「外部ディスプレイの明るさ制御」を有効にしてください。",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "壁紙変更時",
"wallpaper-changed-placeholder": "例:notify-send \"Wallpaper\" \"Changed\""
},
"idle": {
"custom-add": "コマンドを追加",
"custom-description": "一定期間の非アクティブ状態の後、シェルコマンドを実行します。",
"custom-entry-command": "コマンド",
"custom-entry-delete": "削除",
"custom-entry-timeout": "非アクティブ時間",
"custom-label": "カスタムアイドルコマンド",
"enable-description": "一定時間操作がない場合、自動的に画面をオフにする、ロックする、またはサスペンドする。",
"enable-label": "アイドル管理を有効にする",
"fade-duration-description": "各アクションが実行される前の、画面が暗転するアニメーションの秒数。マウスを動かすとフェードはキャンセルされます。",
"fade-duration-label": "フェード時間",
"lock-description": "ロック画面がアクティブになるまでの非アクティブ秒数。",
"lock-label": "画面をロック",
"screen-off-description": "モニターがオフになるまでの非アクティブな秒数。",
"screen-off-label": "画面をオフにする",
"status-description": "Compositorが報告したアイドル時間。",
"status-label": "アイドル時間",
"suspend-description": "システムがサスペンドするまでの非アクティブな時間(秒)。",
"tab-behavior": "動作",
"tab-custom": "カスタム",
"timeouts-description": "ステージを無効にするには0に設定します。Keep Awakeがアクティブな間、タイムアウトは一時停止されます。",
"timeouts-label": "タイムアウト",
"unavailable": "このCompositorでは、ネイティブのアイドル監視は利用できません。"
},
"indicator": {
"default-value": "デフォルト:{value}",
"system-default": "システムのデフォルト"
+35 -3
View File
@@ -102,7 +102,7 @@
"collapse-condition-description": "출력 텍스트가 이 값과 일치하면 버튼이 접힙니다.",
"collapse-condition-label": "접히는 조건",
"color-selection-description": "아이콘과 텍스트에 테마 색상을 적용합니다.",
"default-tooltip": "사용자 지정 버튼, 설정에서 구성.",
"default-tooltip": "사용자 지정 버튼, 설정에서 구성",
"display-command-output-description": "정기적인 간격으로 실행할 명령을 입력합니다. 출력의 첫 번째 줄이 텍스트로 표시됩니다.",
"display-command-output-label": "명령 출력 표시",
"display-command-output-stream-description": "지속적으로 실행할 명령을 입력합니다.",
@@ -145,13 +145,13 @@
"text-stream-description": "명령에서 스트리밍된 줄이 버튼에 텍스트로 표시됩니다.",
"text-stream-label": "스트림",
"wheel-description": "스크롤 휠을 사용했을 때 실행할 명령입니다.<br>명령에서 스크롤 휠 델타 값으로 $delta를 사용하세요.",
"wheel-down": "아래로 스크롤",
"wheel-down": "스크롤 휠 아래",
"wheel-down-description": "스크롤 휠을 아래로 내렸을 때 실행할 명령입니다.",
"wheel-down-label": "휠 다운 명령",
"wheel-label": "스크롤 휠",
"wheel-mode-separate-description": "휠 업과 다운에 대해 별도의 명령을 활성화합니다.",
"wheel-mode-separate-label": "별도 휠 명령",
"wheel-up": "위로 스크롤",
"wheel-up": "스크롤 휠 위",
"wheel-up-description": "스크롤 휠을 위로 올렸을 때 실행할 명령입니다.",
"wheel-up-label": "휠 업 명령",
"wheel-update-text": "스크롤 시 표시된 텍스트 업데이트"
@@ -370,6 +370,7 @@
},
"common": {
"actions": "작업",
"active": "활성",
"add": "추가",
"appearance": "모양",
"apply": "적용",
@@ -486,6 +487,8 @@
"scanning": "검색 중...",
"screen-corners": "화면 모서리",
"search": "검색",
"second": "{count} 초",
"second-plural": "{count} 초",
"secondary": "두번째",
"security": "보안",
"select": "선택",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "버튼 표시",
"media-player-show-visualizer-description": "오디오 비주얼라이저 오버레이를 표시합니다.",
"media-player-visualizer-type-description": "비주얼라이저 유형을 선택하세요.",
"overview-enabled-description": "컴포지터 개요가 열려 있는 동안 데스크톱 위젯을 표시합니다.",
"overview-enabled-label": "개요에 표시",
"system-stat-layout-bottom": "아래",
"system-stat-layout-description": "범례가 그래프에 상대적으로 어떻게 표시되는지 선택합니다.",
"system-stat-layout-label": "레이아웃",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "날씨 위젯의 배경 컨테이너를 표시합니다."
},
"display": {
"monitors-backlight-device-auto-option": "기본값",
"monitors-backlight-device-description": "이 출력에 대한 백라이트 장치를 선택하세요.",
"monitors-backlight-device-label": "백라이트 장치",
"monitors-brightness-step-description": "밝기 변경(스크롤 휠 및 키보드 단축키)의 단계 크기를 조정합니다.",
"monitors-brightness-step-label": "밝기 단계 크기",
"monitors-brightness-unavailable-ddc-disabled": "밝기 제어를 사용할 수 없습니다. 이 디스플레이의 밝기를 제어하려면 \"외부 밝기 지원\"을 활성화하세요.",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "배경화면 변경됨",
"wallpaper-changed-placeholder": "예: notify-send \"배경화면\" \"변경됨\""
},
"idle": {
"custom-add": "명령 추가",
"custom-description": "일정 시간 비활성 상태 후 셸 명령을 실행합니다.",
"custom-entry-command": "명령",
"custom-entry-delete": "삭제",
"custom-entry-timeout": "비활성 시간",
"custom-label": "사용자 지정 유휴 명령",
"enable-description": "일정 시간 비활성 상태 후 자동으로 화면을 끄거나, 잠그거나, 절전 모드로 전환합니다.",
"enable-label": "유휴 관리 활성화",
"fade-duration-description": "각 동작이 실행되기 전 화면이 검게 페이드되는 애니메이션 시간(초). 마우스 움직임이 있으면 페이드가 취소됩니다.",
"fade-duration-label": "페이드 지속 시간",
"lock-description": "잠금 화면이 활성화되기 전 비활성 시간(초).",
"lock-label": "화면 잠금",
"screen-off-description": "모니터가 꺼지기 전 비활성 시간(초).",
"screen-off-label": "화면 끄기",
"status-description": "Compositor가 보고한 유휴 시간.",
"status-label": "유휴 시간",
"suspend-description": "시스템이 일시 중단되기 전 비활성 시간(초).",
"tab-behavior": "동작",
"tab-custom": "사용자 지정",
"timeouts-description": "단계를 비활성화하려면 0으로 설정하세요. Keep Awake가 활성화된 동안 시간 초과는 일시 중지됩니다.",
"timeouts-label": "시간 초과",
"unavailable": "이 Compositor에서는 네이티브 유휴 모니터링을 사용할 수 없습니다."
},
"indicator": {
"default-value": "기본값: {value}",
"system-default": "시스템 기본값"
+40 -8
View File
@@ -102,7 +102,7 @@
"collapse-condition-description": "Als de uitvoer overeenkomt met deze waarde, wordt de knop samengevouwen.",
"collapse-condition-label": "Inklapvoorwaarde",
"color-selection-description": "Pas themakleuren toe op pictogram en tekst.",
"default-tooltip": "Aangepaste knop, configureren in instellingen.",
"default-tooltip": "Aangepaste knop, configureren in instellingen",
"display-command-output-description": "Voer een commando in dat regelmatig wordt uitgevoerd. De eerste regel van de uitvoer wordt als tekst weergegeven.",
"display-command-output-label": "Commando-uitvoer weergeven",
"display-command-output-stream-description": "Voer een commando in dat continu wordt uitgevoerd.",
@@ -145,13 +145,13 @@
"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.<br>Gebruik $delta voor de scrollwiel-delta in het commando.",
"wheel-down": "Naar beneden scrollen",
"wheel-down": "Scrollwiel omlaag",
"wheel-down-description": "Commando om uit te voeren wanneer het scrollwiel omlaag wordt bewogen.",
"wheel-down-label": "Scrollwiel omlaag commando",
"wheel-label": "Scrollwiel",
"wheel-mode-separate-description": "Afzonderlijke commando's inschakelen voor scrollwiel omhoog en omlaag.",
"wheel-mode-separate-label": "Afzonderlijke scrollwielcommando's",
"wheel-up": "Omhoog scrollen",
"wheel-up": "Scrollwiel omhoog",
"wheel-up-description": "Commando om uit te voeren wanneer het scrollwiel omhoog wordt bewogen.",
"wheel-up-label": "Scrollwiel omhoog commando",
"wheel-update-text": "Weergegeven tekst bij scrollen bijwerken"
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Acties",
"active": "Actief",
"add": "Toevoegen",
"appearance": "Uiterlijk",
"apply": "Toepassen",
@@ -486,6 +487,8 @@
"scanning": "Scannen...",
"screen-corners": "Schermhoeken",
"search": "Zoeken",
"second": "{count} seconde",
"second-plural": "{count} seconden",
"secondary": "Secundair",
"security": "Beveiliging",
"select": "Selecteer",
@@ -800,7 +803,7 @@
"appearance-floating-description": "Toon de balk weer als een zwevende 'pil'.",
"appearance-floating-label": "Zwevende balk",
"appearance-font-scale-description": "De schaal van de lettergrootte aanpassen voor tekst die in de balk wordt weergegeven.",
"appearance-font-scale-label": "Lettertype Schaal",
"appearance-font-scale-label": "Lettertypeschaal",
"appearance-frame-radius": "Binnenradius",
"appearance-frame-settings-description": "Pas de kaderdikte en binnenste hoekradius aan",
"appearance-frame-settings-label": "Kaderinstellingen",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Knoppen weergeven",
"media-player-show-visualizer-description": "Toon de audio-visualisatie overlay.",
"media-player-visualizer-type-description": "Kies een visualisatietype voor de achtergrond van de desktop mediaplayer.",
"overview-enabled-description": "Toon desktopwidgets terwijl het compositor-overzicht geopend is.",
"overview-enabled-label": "Tonen in overzicht",
"system-stat-layout-bottom": "Onder",
"system-stat-layout-description": "Kies hoe de legenda wordt weergegeven ten opzichte van de grafiek.",
"system-stat-layout-label": "Indeling",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Toon de achtergrondcontainer voor de weerwidget."
},
"display": {
"monitors-backlight-device-auto-option": "Standaard",
"monitors-backlight-device-description": "Selecteer een achtergrondverlichtingsapparaat voor deze uitvoer.",
"monitors-backlight-device-label": "Achtergrondverlichting Apparaat",
"monitors-brightness-step-description": "Pas de stapgrootte voor helderheidswijzigingen aan (scrollwiel en sneltoetsen).",
"monitors-brightness-step-label": "Stapgrootte helderheid",
"monitors-brightness-unavailable-ddc-disabled": "Helderheidsregeling niet beschikbaar. Schakel \"Ondersteuning voor externe helderheid\" in om de helderheid van dit scherm te regelen.",
@@ -1048,7 +1056,7 @@
"appearance-display-exclusive": "Exclusief",
"appearance-floating-distance-description": "Stel de afstand in tussen de dock en de rand van het scherm.",
"appearance-floating-distance-label": "Afstand zwevende dock",
"appearance-frame-indicator-description": "Toon een kleine indicator op het frame wanneer het Dock verborgen is.",
"appearance-frame-indicator-description": "Toon een kleine indicator op het frame wanneer het dock verborgen is.",
"appearance-frame-indicator-label": "Ingelijste dock-indicator",
"appearance-group-apps-description": "Groepeer meerdere vensters van dezelfde app in één Dock-item.",
"appearance-group-apps-label": "Dezelfde apps groeperen",
@@ -1058,7 +1066,7 @@
"appearance-group-click-action-list": "Vensterlijst openen",
"appearance-group-context-menu-mode-description": "Kies hoe het contextmenu zich gedraagt voor gegroepeerde apps.",
"appearance-group-context-menu-mode-extended": "Uitgebreid",
"appearance-group-context-menu-mode-label": "Gegroepeerde App-Menumodus",
"appearance-group-context-menu-mode-label": "Gegroepeerde app-menumodus",
"appearance-group-context-menu-mode-list": "Vensterlijst",
"appearance-group-indicator-style-description": "Kies hoe gegroepeerde actieve indicatoren de status van het gefocuste venster weergeven.",
"appearance-group-indicator-style-dots": "Punten",
@@ -1079,8 +1087,8 @@
"appearance-position-description": "Kies waar het dock op het scherm verschijnt.",
"appearance-position-label": "Positie",
"appearance-show-launcher-icon-description": "Toon het pictogram van de applicatiestarter in het dock.",
"appearance-show-launcher-icon-label": "Toon App-starter",
"appearance-sit-on-frame-description": "Lijn het Dock uit binnen de kadergrens, in plaats van erbovenop te liggen.",
"appearance-show-launcher-icon-label": "Toon app-starter",
"appearance-sit-on-frame-description": "Lijn het dock uit binnen de kadergrens, in plaats van erbovenop te liggen.",
"appearance-sit-on-frame-label": "Dock zit op het frame",
"appearance-type-description": "Kies tussen een zwevende pilvorm of een statische balk die aan de rand is bevestigd.",
"appearance-type-floating": "Zwevend",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Achtergrond gewijzigd",
"wallpaper-changed-placeholder": "bijv. notify-send \"Achtergrond\" \"Gewijzigd\""
},
"idle": {
"custom-add": "Commando toevoegen",
"custom-description": "Voer een shell-commando uit na een periode van inactiviteit.",
"custom-entry-command": "Commando",
"custom-entry-delete": "Verwijderen",
"custom-entry-timeout": "Inactiviteitstijd",
"custom-label": "Aangepaste Inactiviteitscommando's",
"enable-description": "Schakel het scherm automatisch uit, vergrendel of zet in slaapstand na een periode van inactiviteit.",
"enable-label": "Inactiviteitsbeheer inschakelen",
"fade-duration-description": "Seconden voor de fade-to-black animatie voordat elke actie wordt geactiveerd. Elke muisbeweging annuleert de fade.",
"fade-duration-label": "Vervagingsduur",
"lock-description": "Seconden van inactiviteit voordat het vergrendelscherm wordt geactiveerd.",
"lock-label": "Scherm vergrendelen",
"screen-off-description": "Seconden van inactiviteit voordat monitoren worden uitgeschakeld.",
"screen-off-label": "Scherm uitschakelen",
"status-description": "Inactiviteitstijd zoals gerapporteerd door de Compositor.",
"status-label": "Inactiviteitstijd",
"suspend-description": "Seconden van inactiviteit voordat het systeem in slaapstand gaat.",
"tab-behavior": "Gedrag",
"tab-custom": "Aangepast",
"timeouts-description": "Stel in op 0 om een fase uit te schakelen. Time-outs worden gepauzeerd zolang Keep Awake actief is.",
"timeouts-label": "Time-outs",
"unavailable": "Native inactiviteitsmonitoring is niet beschikbaar op deze Compositor."
},
"indicator": {
"default-value": "Standaard: {value}",
"system-default": "Systeemstandaard"
+1 -1
View File
@@ -101,7 +101,7 @@
"collapse-condition-description": "Knappen løynest um utskrifti er lik dette.",
"collapse-condition-label": "Løyningsvilkor",
"color-selection-description": "Lita fråmerket og teksti med hamlitene.",
"default-tooltip": "Sjølvgjord knapp, stjorna i innstillingane.",
"default-tooltip": "Sjølvgjord knapp, stjorna i innstillingane",
"display-command-output-description": "Skriv inn eit styrebod som skal køyra jamlege. Syner fyrste utskriftsradi som tekst.",
"display-command-output-label": "Syn utskrift frå styrebod",
"display-command-output-stream-description": "Skriv inn styrebod som skal køyra heile tidi.",
+1 -1
View File
@@ -101,7 +101,7 @@
"collapse-condition-description": "Dersom utskrifta er lik dette, skyler knappen seg.",
"collapse-condition-label": "Skylevilkår",
"color-selection-description": "Gjev ikon og tekst temafargane.",
"default-tooltip": "Eigendefinert knapp, styr i innstillingane.",
"default-tooltip": "Eigendefinert knapp, styr i innstillingane",
"display-command-output-description": "Gjev kommando for å køyra regelrett. Fyrste utskriftslinja vert vist som tekst.",
"display-command-output-label": "Vis kommando utskrift",
"display-command-output-stream-description": "Gjev kommando for å køyra heile tida.",
+44 -12
View File
@@ -8,7 +8,7 @@
"disable-dnd": "Wyłącz 'Nie przeszkadzać'",
"disable-wifi": "Wyłącz Wi-Fi",
"disconnect-vpn": "Odłącz {name}",
"dock-settings": "Ustawienia Docka",
"dock-settings": "Ustawienia docka",
"enable-bluetooth": "Włącz Bluetooth",
"enable-dnd": "Włącz 'Nie przeszkadzać'",
"enable-wifi": "Włącz Wi-Fi",
@@ -102,7 +102,7 @@
"collapse-condition-description": "Jeśli tekst wyjściowy pasuje do tej wartości, przycisk zostanie zwinięty.",
"collapse-condition-label": "Warunek zwinięcia",
"color-selection-description": "Zastosuj kolory motywu do ikony i tekstu.",
"default-tooltip": "Przycisk niestandardowy, konfiguruj w ustawieniach.",
"default-tooltip": "Przycisk niestandardowy, konfiguruj w ustawieniach",
"display-command-output-description": "Wpisz polecenie do uruchamiania w regularnych odstępach czasu. Pierwsza linia wyniku zostanie wyświetlona jako tekst.",
"display-command-output-label": "Wyświetl wynik polecenia",
"display-command-output-stream-description": "Wpisz polecenie do uruchamiania w trybie ciągłym.",
@@ -145,13 +145,13 @@
"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.<br>Użyj $delta dla wartości przesunięcia kółka w poleceniu.",
"wheel-down": "Przewiń w dół",
"wheel-down": "Rolka w dół",
"wheel-down-description": "Polecenie do wykonania przy przewijaniu kółkiem w dół.",
"wheel-down-label": "Polecenie kółka w dół",
"wheel-label": "Kółko myszy",
"wheel-mode-separate-description": "Włącz oddzielne polecenia dla przewijania w górę i w dół.",
"wheel-mode-separate-label": "Oddzielne polecenia kółka",
"wheel-up": "Przewiń w górę",
"wheel-up": "Rolka w górę",
"wheel-up-description": "Polecenie do wykonania przy przewijaniu kółkiem w górę.",
"wheel-up-label": "Polecenie kółka w górę",
"wheel-update-text": "Aktualizuj tekst po użyciu kółka"
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Akcje",
"active": "Aktywny",
"add": "Dodaj",
"appearance": "Wygląd",
"apply": "Zastosuj",
@@ -486,6 +487,8 @@
"scanning": "Skanowanie...",
"screen-corners": "Narożniki ekranu",
"search": "Szukaj",
"second": "{count} sekunda",
"second-plural": "{count} sekund",
"secondary": "Dodatkowy",
"security": "Bezpieczeństwo",
"select": "Wybierz",
@@ -800,7 +803,7 @@
"appearance-floating-description": "Wyświetl pasek jako pływającą 'pigułkę'.",
"appearance-floating-label": "Pływający pasek",
"appearance-font-scale-description": "Dostosuj skalę rozmiaru czcionki dla tekstu wyświetlanego na pasku.",
"appearance-font-scale-label": "Skala Czcionki",
"appearance-font-scale-label": "Skala czcionki",
"appearance-frame-radius": "Promień wewnętrzny",
"appearance-frame-settings-description": "Dostosuj grubość ramki i wewnętrzny promień narożników",
"appearance-frame-settings-label": "Ustawienia ramki",
@@ -826,7 +829,7 @@
"appearance-use-separate-opacity-description": "Umożliwia użycie oddzielnej wartości krycia dla tła paska.",
"appearance-use-separate-opacity-label": "Użyj osobnej przezroczystości słupków",
"appearance-widget-spacing-description": "Dostosuj odstępy między każdym widżetem na pasku.",
"appearance-widget-spacing-label": "Odstępy Między Widżetami",
"appearance-widget-spacing-label": "Odstępy między widżetami",
"monitor-configure-widgets": "Skonfiguruj widżety",
"monitor-override-settings": "Zastąp ustawienia globalne",
"monitor-override-settings-description": "Użyj niestandardowych ustawień dla tego monitora.",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Pokaż przyciski",
"media-player-show-visualizer-description": "Pokaż nakładkę wizualizatora audio.",
"media-player-visualizer-type-description": "Wybierz typ wizualizacji dla tła odtwarzacza pulpitu.",
"overview-enabled-description": "Pokaż widżety pulpitu, gdy przegląd kompozytora jest otwarty.",
"overview-enabled-label": "Pokaż w przeglądzie",
"system-stat-layout-bottom": "Dół",
"system-stat-layout-description": "Wybierz, jak legenda jest wyświetlana względem wykresu.",
"system-stat-layout-label": "Układ",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Pokaż tło dla widżetu pogody."
},
"display": {
"monitors-backlight-device-auto-option": "Domyślny",
"monitors-backlight-device-description": "Wybierz urządzenie podświetlenia dla tego wyjścia.",
"monitors-backlight-device-label": "Urządzenie Podświetlenia",
"monitors-brightness-step-description": "Dostosuj skok zmiany jasności (kółko myszy i skróty klawiszowe).",
"monitors-brightness-step-label": "Skok jasności",
"monitors-brightness-unavailable-ddc-disabled": "Sterowanie jasnością niedostępne. Włącz \"Obsługa zewnętrznej jasności\", aby sterować jasnością tego ekranu.",
@@ -1048,7 +1056,7 @@
"appearance-display-exclusive": "Ekskluzywny",
"appearance-floating-distance-description": "Ustaw odległość między dokiem a krawędzią ekranu.",
"appearance-floating-distance-label": "Odległość pływania doku",
"appearance-frame-indicator-description": "Pokaż mały wskaźnik na ramce, gdy Dock jest ukryty.",
"appearance-frame-indicator-description": "Pokaż mały wskaźnik na ramce, gdy dock jest ukryty.",
"appearance-frame-indicator-label": "Wskaźnik docka w ramce",
"appearance-group-apps-description": "Grupuj wiele okien z tej samej aplikacji w jeden wpis Docka.",
"appearance-group-apps-label": "Grupuj te same aplikacje",
@@ -1058,8 +1066,8 @@
"appearance-group-click-action-list": "Otwórz listę okien",
"appearance-group-context-menu-mode-description": "Wybierz, jak zachowuje się menu kontekstowe dla zgrupowanych aplikacji.",
"appearance-group-context-menu-mode-extended": "Rozszerzony",
"appearance-group-context-menu-mode-label": "Tryb Pogrupowanego Menu Aplikacji",
"appearance-group-context-menu-mode-list": "Lista Okien",
"appearance-group-context-menu-mode-label": "Tryb pogrupowanego menu aplikacji",
"appearance-group-context-menu-mode-list": "Lista okien",
"appearance-group-indicator-style-description": "Wybierz, jak zgrupowane wskaźniki uruchomionych aplikacji wyświetlają stan aktywnego okna.",
"appearance-group-indicator-style-dots": "Kropki",
"appearance-group-indicator-style-label": "Styl zgrupowanego wskaźnika",
@@ -1079,12 +1087,12 @@
"appearance-position-description": "Wybierz, gdzie dok ma się pojawiać na ekranie.",
"appearance-position-label": "Pozycja",
"appearance-show-launcher-icon-description": "Pokaż ikonę programu uruchamiającego aplikacje w docku.",
"appearance-show-launcher-icon-label": "Pokaż Launcher aplikacji",
"appearance-sit-on-frame-description": "Wyrównaj Dock wewnątrz ramki, zamiast umieszczać go na wierzchu.",
"appearance-show-launcher-icon-label": "Pokaż launcher aplikacji",
"appearance-sit-on-frame-description": "Wyrównaj dock wewnątrz ramki, zamiast umieszczać go na wierzchu.",
"appearance-sit-on-frame-label": "Dock znajduje się na ramce",
"appearance-type-description": "Wybierz pomiędzy pływającą pigułką a statycznym paskiem przymocowanym do krawędzi.",
"appearance-type-floating": "Pływający",
"appearance-type-label": "Styl Docka",
"appearance-type-label": "Styl docka",
"appearance-type-static": "Statyczny",
"enabled-description": "Pokaż lub całkowicie ukryj dok.",
"enabled-label": "Włącz dok",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Zmiana tapety",
"wallpaper-changed-placeholder": "np. notify-send \"Tapeta\" \"Zmieniona\""
},
"idle": {
"custom-add": "Dodaj polecenie",
"custom-description": "Uruchom polecenie shella po okresie bezczynności.",
"custom-entry-command": "Polecenie",
"custom-entry-delete": "Usuń",
"custom-entry-timeout": "Czas bezczynności",
"custom-label": "Niestandardowe Polecenia Bezczynności",
"enable-description": "Automatycznie wyłącz ekran, zablokuj lub uśpij po okresie bezczynności.",
"enable-label": "Włącz zarządzanie bezczynnością",
"fade-duration-description": "Sekundy animacji wygaszania do czerni przed uruchomieniem każdej akcji. Każdy ruch myszy anuluje wygaszanie.",
"fade-duration-label": "Czas trwania zanikania",
"lock-description": "Sekundy bezczynności przed aktywacją ekranu blokady.",
"lock-label": "Zablokuj ekran",
"screen-off-description": "Sekundy bezczynności, zanim monitory zostaną wyłączone.",
"screen-off-label": "Wyłącz ekran",
"status-description": "Czas bezczynności zgłoszony przez Compositor.",
"status-label": "Czas Bezczynności",
"suspend-description": "Sekundy bezczynności przed wstrzymaniem systemu.",
"tab-behavior": "Zachowanie",
"tab-custom": "Niestandardowy",
"timeouts-description": "Ustaw na 0, aby wyłączyć etap. Limity czasu są wstrzymane, gdy Keep Awake jest aktywny.",
"timeouts-label": "Limity Czasu",
"unavailable": "Natywne monitorowanie bezczynności nie jest dostępne na tym Compositorze."
},
"indicator": {
"default-value": "Domyślnie: {value}",
"system-default": "Domyślne ustawienia systemowe"
+46 -14
View File
@@ -8,7 +8,7 @@
"disable-dnd": "Desativar 'Não perturbe'",
"disable-wifi": "Desativar Wi-Fi",
"disconnect-vpn": "Desconectar {name}",
"dock-settings": "Definições do Dock",
"dock-settings": "Definições do dock",
"enable-bluetooth": "Ativar Bluetooth",
"enable-dnd": "Ativar 'Não perturbe''",
"enable-wifi": "Ativar Wi-Fi",
@@ -102,7 +102,7 @@
"collapse-condition-description": "Se o texto de saída corresponder a este valor, o botão será recolhido.",
"collapse-condition-label": "Condição de recolhimento",
"color-selection-description": "Aplicar cores do tema ao ícone e ao texto.",
"default-tooltip": "Botão personalizado, configurar nas configurações.",
"default-tooltip": "Botão personalizado, configurar nas configurações",
"display-command-output-description": "Digite um comando para ser executado em um intervalo regular. A primeira linha da sua saída será exibida como texto.",
"display-command-output-label": "Exibir saída de comando",
"display-command-output-stream-description": "Insira um comando para executar continuamente.",
@@ -145,13 +145,13 @@
"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.<br>Use $delta para o delta da roda de rolagem no comando.",
"wheel-down": "Rolar para baixo",
"wheel-down": "Roda baixo",
"wheel-down-description": "Comando a executar quando a roda de rolagem é rolada para baixo.",
"wheel-down-label": "Comando de roda para baixo",
"wheel-label": "Roda de rolagem",
"wheel-mode-separate-description": "Ativar comandos separados para roda para cima e para baixo.",
"wheel-mode-separate-label": "Comandos de roda separados",
"wheel-up": "Rolar para cima",
"wheel-up": "Roda cima",
"wheel-up-description": "Comando a executar quando a roda de rolagem é rolada para cima.",
"wheel-up-label": "Comando de roda para cima",
"wheel-update-text": "Atualizar texto exibido ao rolar"
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Ações",
"active": "Ativo",
"add": "Adicionar",
"appearance": "Aparência",
"apply": "Aplicar",
@@ -486,6 +487,8 @@
"scanning": "A digitalização está em andamento...",
"screen-corners": "Cantos da tela",
"search": "Pesquisar",
"second": "{count} segundo",
"second-plural": "{count} segundos",
"secondary": "Secundário",
"security": "Segurança",
"select": "Selecionar",
@@ -800,7 +803,7 @@
"appearance-floating-description": "Exibe a barra como uma 'pílula' flutuante.",
"appearance-floating-label": "Barra flutuante",
"appearance-font-scale-description": "Ajustar a escala do tamanho da fonte para o texto exibido na barra.",
"appearance-font-scale-label": "Escala da Fonte",
"appearance-font-scale-label": "Escala da fonte",
"appearance-frame-radius": "Raio Interno",
"appearance-frame-settings-description": "Ajuste a espessura da moldura e o raio interno",
"appearance-frame-settings-label": "Configurações da Moldura",
@@ -826,7 +829,7 @@
"appearance-use-separate-opacity-description": "Permitir usar um valor de opacidade separado para o fundo da barra.",
"appearance-use-separate-opacity-label": "Usar opacidade separada para as barras",
"appearance-widget-spacing-description": "Ajusta o espaçamento entre cada widget na barra.",
"appearance-widget-spacing-label": "Espaçamento de Widgets",
"appearance-widget-spacing-label": "Espaçamento de widgets",
"monitor-configure-widgets": "Configurar widgets",
"monitor-override-settings": "Substituir configurações globais",
"monitor-override-settings-description": "Usar definições personalizadas para este monitor.",
@@ -964,7 +967,7 @@
"clock-style-label": "Estilo do relógio",
"clock-style-minimal": "Minimal",
"clock-width-description": "Largura do widget do relógio em pixels.",
"cpu-intensive-note": "Os Widgets marcados com ! usam mais CPU e devem ser ativados com atenção.",
"cpu-intensive-note": "Os widgets marcados com ! usam mais CPU e devem ser ativados com atenção.",
"edit-mode-button-label": "Entrar no modo de edição",
"edit-mode-controls-explanation": "Clique esquerdo e arraste: Mover ou redimensionar o widget.\nClique direito: Abrir as opções do menu de contexto.",
"edit-mode-description": "Ative o modo de edição para mover e reposicionar widgets da área de trabalho. Quando ativado, os widgets exibem um contorno de arrastar e podem ser reposicionados.",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Mostrar botões",
"media-player-show-visualizer-description": "Mostrar a sobreposição do visualizador de áudio.",
"media-player-visualizer-type-description": "Escolha um tipo de visualização para o fundo do reprodutor de mídia na área de trabalho.",
"overview-enabled-description": "Mostrar widgets da área de trabalho enquanto a visão geral do compositor estiver aberta.",
"overview-enabled-label": "Mostrar na visão geral",
"system-stat-layout-bottom": "Inferior",
"system-stat-layout-description": "Escolha como a legenda é exibida em relação ao gráfico.",
"system-stat-layout-label": "Layout",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Mostrar o contêiner de fundo para o widget de clima."
},
"display": {
"monitors-backlight-device-auto-option": "Padrão",
"monitors-backlight-device-description": "Selecione um dispositivo de retroiluminação para esta saída.",
"monitors-backlight-device-label": "Dispositivo de Retroiluminação",
"monitors-brightness-step-description": "Ajuste o tamanho do passo para alterações de brilho (roda do mouse e atalhos de teclado).",
"monitors-brightness-step-label": "Tamanho do passo do brilho",
"monitors-brightness-unavailable-ddc-disabled": "Controle de brilho indisponível. Ative \"Suporte de brilho externo\" para controlar o brilho desta tela.",
@@ -1048,7 +1056,7 @@
"appearance-display-exclusive": "Exclusivo",
"appearance-floating-distance-description": "Ajuste a distância de flutuação da borda da tela.",
"appearance-floating-distance-label": "Distância de flutuação da dock",
"appearance-frame-indicator-description": "Mostrar um pequeno indicador na moldura quando o Dock estiver oculto.",
"appearance-frame-indicator-description": "Mostrar um pequeno indicador na moldura quando o dock estiver oculto.",
"appearance-frame-indicator-label": "Indicador de doca emoldurado",
"appearance-group-apps-description": "Agrupar várias janelas da mesma app em uma única entrada do Dock.",
"appearance-group-apps-label": "Agrupar aplicativos semelhantes",
@@ -1058,8 +1066,8 @@
"appearance-group-click-action-list": "Abrir lista de janelas",
"appearance-group-context-menu-mode-description": "Escolha como o menu de contexto se comporta para aplicativos agrupados.",
"appearance-group-context-menu-mode-extended": "Estendido",
"appearance-group-context-menu-mode-label": "Modo de Menu de Aplicativos Agrupado",
"appearance-group-context-menu-mode-list": "Lista de Janelas",
"appearance-group-context-menu-mode-label": "Modo de menu de aplicativos agrupado",
"appearance-group-context-menu-mode-list": "Lista de janelas",
"appearance-group-indicator-style-description": "Escolha como os indicadores de execução agrupados exibem o estado da janela focada.",
"appearance-group-indicator-style-dots": "Pontos",
"appearance-group-indicator-style-label": "Estilo de indicador agrupado",
@@ -1079,12 +1087,12 @@
"appearance-position-description": "Escolha onde o dock aparece na tela.",
"appearance-position-label": "Posição",
"appearance-show-launcher-icon-description": "Mostrar o ícone do lançador de aplicativos na dock.",
"appearance-show-launcher-icon-label": "Mostrar Lançador de Aplicações",
"appearance-sit-on-frame-description": "Alinhe o Dock dentro da borda do quadro em vez de ficar por cima.",
"appearance-sit-on-frame-label": "O Dock fica no quadro",
"appearance-show-launcher-icon-label": "Mostrar lançador de aplicações",
"appearance-sit-on-frame-description": "Alinhe o dock dentro da borda do quadro em vez de ficar por cima.",
"appearance-sit-on-frame-label": "O dock fica no quadro",
"appearance-type-description": "Escolha entre uma pílula flutuante ou uma barra estática anexada à borda.",
"appearance-type-floating": "Flutuante",
"appearance-type-label": "Estilo do Dock",
"appearance-type-label": "Estilo do dock",
"appearance-type-static": "Estático",
"enabled-description": "Mostrar ou ocultar o dock completamente.",
"enabled-label": "Ativar dock",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Papel de parede alterado",
"wallpaper-changed-placeholder": "p. ex. notify-send \"Papel de parede\" \"Alterado\""
},
"idle": {
"custom-add": "Adicionar comando",
"custom-description": "Executa um comando de shell após um período de inatividade.",
"custom-entry-command": "Comando",
"custom-entry-delete": "Excluir",
"custom-entry-timeout": "Tempo de inatividade",
"custom-label": "Comandos de Inatividade Personalizados",
"enable-description": "Desligar a tela, bloquear ou suspender automaticamente após um período de inatividade.",
"enable-label": "Ativar gerenciamento de inatividade",
"fade-duration-description": "Segundos para a animação de esmaecimento para preto antes de cada ação ser acionada. Qualquer movimento do rato cancela o esmaecimento.",
"fade-duration-label": "Duração do esmaecimento",
"lock-description": "Segundos de inatividade antes da ativação da tela de bloqueio.",
"lock-label": "Bloquear tela",
"screen-off-description": "Segundos de inatividade antes que os monitores sejam desligados.",
"screen-off-label": "Desligar tela",
"status-description": "Tempo ocioso conforme relatado pelo Compositor.",
"status-label": "Tempo Ocioso",
"suspend-description": "Segundos de inatividade antes que o sistema suspenda.",
"tab-behavior": "Comportamento",
"tab-custom": "Personalizado",
"timeouts-description": "Defina como 0 para desativar uma etapa. Os tempos limite são pausados enquanto o Keep Awake estiver ativo.",
"timeouts-label": "Tempos Limite",
"unavailable": "A monitorização nativa de inatividade não está disponível neste Compositor."
},
"indicator": {
"default-value": "Padrão: {value}",
"system-default": "Padrão do sistema"
+47 -15
View File
@@ -8,7 +8,7 @@
"disable-dnd": "Отключить режим 'Не беспокоить'",
"disable-wifi": "Отключить Wi-Fi",
"disconnect-vpn": "Отключить {name}",
"dock-settings": "Настройки Дока",
"dock-settings": "Настройки дока",
"enable-bluetooth": "Включить Bluetooth",
"enable-dnd": "Не беспокоить",
"enable-wifi": "Включить Wi-Fi",
@@ -102,7 +102,7 @@
"collapse-condition-description": "Если выходной текст соответствует этому значению, кнопка будет скрыта.",
"collapse-condition-label": "Условие скрытия",
"color-selection-description": "Применить цвета темы к значку и тексту.",
"default-tooltip": "Пользовательская кнопка, настроить в настройках.",
"default-tooltip": "Пользовательская кнопка, настроить в настройках",
"display-command-output-description": "Введите команду для регулярного выполнения. Первая строка её вывода будет отображаться как текст.",
"display-command-output-label": "Вывод команды",
"display-command-output-stream-description": "Введите команду для непрерывного выполнения.",
@@ -145,13 +145,13 @@
"text-stream-description": "Потоковые строки из команды будут отображаться как текст на кнопке.",
"text-stream-label": "Поток",
"wheel-description": "Команда для выполнения при использовании колеса прокрутки.<br>Используйте $delta для дельты колеса прокрутки в команде.",
"wheel-down": "Прокрутите вниз",
"wheel-down": "Колесо вниз",
"wheel-down-description": "Команда для выполнения при прокрутке колеса вниз.",
"wheel-down-label": "Команда прокрутки колеса вниз",
"wheel-label": "Колесо прокрутки",
"wheel-label": "Колесо мыши",
"wheel-mode-separate-description": "Включить раздельные команды для колеса прокрутки вверх и вниз.",
"wheel-mode-separate-label": "Раздельные команды колеса прокрутки",
"wheel-up": "Прокрутить вверх",
"wheel-up": "Колесо вверх",
"wheel-up-description": "Команда для выполнения при прокрутке колеса вверх.",
"wheel-up-label": "Команда прокрутки колеса вверх",
"wheel-update-text": "Обновить отображаемый текст при прокрутке"
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Действия",
"active": "Активный",
"add": "Добавить",
"appearance": "Внешний вид",
"apply": "Применить",
@@ -409,7 +410,7 @@
"disconnect": "Отключить",
"disconnected": "Отключено",
"disconnecting": "Отключение...",
"display-mode": "Режим oтображения",
"display-mode": "Режим отображения",
"download": "Скачать",
"duration": "Продолжительность",
"dysfunctional": "Дисфункциональный",
@@ -486,6 +487,8 @@
"scanning": "Сканирование...",
"screen-corners": "Углы экрана",
"search": "Поиск",
"second": "{count} секунда",
"second-plural": "{count} секунд",
"secondary": "Вторичный",
"security": "Безопасность",
"select": "Выбрать",
@@ -800,7 +803,7 @@
"appearance-floating-description": "Отображает панель как плавающую 'таблетку'.",
"appearance-floating-label": "Плавающая панель",
"appearance-font-scale-description": "Настройте масштаб размера шрифта для текста, отображаемого на панели.",
"appearance-font-scale-label": "Масштаб Шрифта",
"appearance-font-scale-label": "Масштаб шрифта",
"appearance-frame-radius": "Внутренний радиус",
"appearance-frame-settings-description": "Настройте толщину рамки и внутренний радиус углов",
"appearance-frame-settings-label": "Настройки рамки",
@@ -826,7 +829,7 @@
"appearance-use-separate-opacity-description": "Включить использование отдельного значения прозрачности для фона полосы.",
"appearance-use-separate-opacity-label": "Использовать раздельную прозрачность столбцов",
"appearance-widget-spacing-description": "Отрегулируйте интервал между каждым виджетом на панели.",
"appearance-widget-spacing-label": "Расстояние Между Виджетами",
"appearance-widget-spacing-label": "Расстояние между виджетами",
"monitor-configure-widgets": "Настроить виджеты",
"monitor-override-settings": "Переопределить глобальные настройки",
"monitor-override-settings-description": "Использовать пользовательские настройки для этого монитора.",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Показать кнопки",
"media-player-show-visualizer-description": "Показать наложение аудиовизуализатора.",
"media-player-visualizer-type-description": "Выберите тип визуализации для фона медиаплеера.",
"overview-enabled-description": "Показывать виджеты рабочего стола, пока обзор композитора открыт.",
"overview-enabled-label": "Показать в обзоре",
"system-stat-layout-bottom": "Низ",
"system-stat-layout-description": "Выберите, как отображается легенда относительно графика.",
"system-stat-layout-label": "Макет",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Показать фоновый контейнер для погодного виджета."
},
"display": {
"monitors-backlight-device-auto-option": "По умолчанию",
"monitors-backlight-device-description": "Выберите устройство подсветки для этого вывода.",
"monitors-backlight-device-label": "Устройство Подсветки",
"monitors-brightness-step-description": "Настройка шага изменения яркости (колесо прокрутки и сочетания клавиш).",
"monitors-brightness-step-label": "Шаг изменения яркости",
"monitors-brightness-unavailable-ddc-disabled": "Управление яркостью недоступно. Включите \"Поддержка внешней яркости\", чтобы управлять яркостью этого дисплея.",
@@ -1048,7 +1056,7 @@
"appearance-display-exclusive": "Исключительно",
"appearance-floating-distance-description": "Установите расстояние между доком и краем экрана.",
"appearance-floating-distance-label": "Расстояние плавающего дока",
"appearance-frame-indicator-description": "Показывать небольшой индикатор на рамке, когда Dock скрыт.",
"appearance-frame-indicator-description": "Показывать небольшой индикатор на рамке, когда док скрыт.",
"appearance-frame-indicator-label": "Рамочный индикатор дока",
"appearance-group-apps-description": "Группировать несколько окон одного и того же приложения в одну запись Dock.",
"appearance-group-apps-label": "Группировать одинаковые приложения",
@@ -1058,8 +1066,8 @@
"appearance-group-click-action-list": "Открыть список окон",
"appearance-group-context-menu-mode-description": "Выберите, как контекстное меню ведет себя для сгруппированных приложений.",
"appearance-group-context-menu-mode-extended": "Расширенный",
"appearance-group-context-menu-mode-label": "Режим Сгруппированного Меню Приложений",
"appearance-group-context-menu-mode-list": "Список Окон",
"appearance-group-context-menu-mode-label": "Режим cгруппированного меню приложений",
"appearance-group-context-menu-mode-list": "Список окон",
"appearance-group-indicator-style-description": "Выберите, как сгруппированные индикаторы запущенных приложений отображают состояние активного окна.",
"appearance-group-indicator-style-dots": "Точки",
"appearance-group-indicator-style-label": "Стиль сгруппированного индикатора",
@@ -1080,11 +1088,11 @@
"appearance-position-label": "Позиция",
"appearance-show-launcher-icon-description": "Показывать значок запуска приложений в доке.",
"appearance-show-launcher-icon-label": "Показать панель запуска приложений",
"appearance-sit-on-frame-description": "Выровнять Док внутри границы рамки, а не поверх нее.",
"appearance-sit-on-frame-label": "Док располагается на рамке",
"appearance-sit-on-frame-description": "Выровнять док внутри границы рамки, а не поверх нее.",
"appearance-sit-on-frame-label": "док располагается на рамке",
"appearance-type-description": "Выберите между плавающей пилюлей или статической панелью, прикрепленной к краю.",
"appearance-type-floating": "Плавающий",
"appearance-type-label": "Стиль Дока",
"appearance-type-label": "Стиль дока",
"appearance-type-static": "Статический",
"enabled-description": "Показать или скрыть док целиком.",
"enabled-label": "Включить док",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Обои изменены",
"wallpaper-changed-placeholder": "напр. notify-send \"Обои\" \"Изменены\""
},
"idle": {
"custom-add": "Добавить команду",
"custom-description": "Выполнить команду оболочки после периода бездействия.",
"custom-entry-command": "Команда",
"custom-entry-delete": "Удалить",
"custom-entry-timeout": "Время бездействия",
"custom-label": "Пользовательские Команды Простоя",
"enable-description": "Автоматически выключать экран, блокировать или приостанавливать работу после периода бездействия.",
"enable-label": "Включить управление бездействием",
"fade-duration-description": "Секунды для анимации затемнения перед выполнением каждого действия. Любое движение мыши отменяет затемнение.",
"fade-duration-label": "Длительность затухания",
"lock-description": "Секунды бездействия до активации экрана блокировки.",
"lock-label": "Заблокировать экран",
"screen-off-description": "Секунды бездействия до выключения мониторов.",
"screen-off-label": "Выключить экран",
"status-description": "Время простоя, сообщаемое Compositor.",
"status-label": "Время Простоя",
"suspend-description": "Секунды бездействия до приостановки работы системы.",
"tab-behavior": "Поведение",
"tab-custom": "Пользовательский",
"timeouts-description": "Установите 0, чтобы отключить этап. Тайм-ауты приостанавливаются, пока Keep Awake активен.",
"timeouts-label": "Тайм-ауты",
"unavailable": "Нативный мониторинг бездействия недоступен на этом Compositorе."
},
"indicator": {
"default-value": "По умолчанию: {value}",
"system-default": "По умолчанию"
@@ -1281,7 +1313,7 @@
"lock-screen": {
"allow-password-with-fprintd-description": "Когда fprintd (аутентификация по отпечатку пальца) активен, эта опция позволяет вам входить в систему с помощью пароля вместо отпечатка пальца.",
"allow-password-with-fprintd-label": "Разрешить вход по паролю с помощью fprintd",
"auto-start-auth-description": "Aвтоматически запускает аутентификацию по отпечатку пальца без необходимости нажатия клавиши или щелчка кнопки.",
"auto-start-auth-description": "Автоматически запускает аутентификацию по отпечатку пальца без необходимости нажатия клавиши или щелчка кнопки.",
"auto-start-auth-label": "Автоматический запуск аутентификации",
"clock-format-description": "Настройте формат часов, используя токены синтаксиса даты/времени.",
"clock-format-label": "Формат часов",
+37 -5
View File
@@ -102,7 +102,7 @@
"collapse-condition-description": "Om utdatatexten matchar detta värde kommer knappen att döljas.",
"collapse-condition-label": "Dölj villkor",
"color-selection-description": "Tillämpa temafärger på ikon och text.",
"default-tooltip": "Anpassad knapp, konfigurera i inställningarna.",
"default-tooltip": "Anpassad knapp, konfigurera i inställningarna",
"display-command-output-description": "Ange ett kommando som ska köras med jämna mellanrum. Den första raden i utdata visas som text.",
"display-command-output-label": "Visa kommandoutdata",
"display-command-output-stream-description": "Ange ett kommando som ska köras kontinuerligt.",
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Åtgärder",
"active": "Aktiv",
"add": "Lägg till",
"appearance": "Utseende",
"apply": "Tillämpa",
@@ -486,6 +487,8 @@
"scanning": "Söker igenom...",
"screen-corners": "Skärmhörn",
"search": "Sök",
"second": "{count} sekund",
"second-plural": "{count} sekunder",
"secondary": "Sekundär",
"security": "Säkerhet",
"select": "Välj",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Visa knappar",
"media-player-show-visualizer-description": "Visa ljudvisualiseringsöverlägget.",
"media-player-visualizer-type-description": "Välj en visualiseringstyp.",
"overview-enabled-description": "Visa skrivbordswidgetar medan kompositorns översikt är öppen.",
"overview-enabled-label": "Visa i översikt",
"system-stat-layout-bottom": "Botten",
"system-stat-layout-description": "Välj hur förklaringen visas i förhållande till diagrammet.",
"system-stat-layout-label": "Layout",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Visa bakgrundsbehållaren för väderwidgeten."
},
"display": {
"monitors-backlight-device-auto-option": "Standard",
"monitors-backlight-device-description": "Välj en bakgrundsbelysningsenhet för denna utgång.",
"monitors-backlight-device-label": "Bakgrundsbelysningsenhet",
"monitors-brightness-step-description": "Justera stegstorleken för ljusstyrkeändringar (rullhjul och kortkommandon).",
"monitors-brightness-step-label": "Ljusstyrkestegstorlek",
"monitors-brightness-unavailable-ddc-disabled": "Ljusstyrkekontroll otillgänglig. Aktivera \"Extern ljusstyrkestöd\"för att kontrollera ljusstyrkan på denna skärm.",
@@ -1048,7 +1056,7 @@
"appearance-display-exclusive": "Exklusiv",
"appearance-floating-distance-description": "Ställ in avståndet mellan dockan och skärmens kant.",
"appearance-floating-distance-label": "Dockens flytande avstånd",
"appearance-frame-indicator-description": "Visa en liten indikator på ramen när Dockan är dold.",
"appearance-frame-indicator-description": "Visa en liten indikator på ramen när dockan är dold.",
"appearance-frame-indicator-label": "Inramad dockindikator",
"appearance-group-apps-description": "Gruppera flera fönster från samma app till en Dock-post.",
"appearance-group-apps-label": "Gruppera samma appar",
@@ -1058,7 +1066,7 @@
"appearance-group-click-action-list": "Öppna fönsterlista",
"appearance-group-context-menu-mode-description": "Välj hur snabbmenyn fungerar för grupperade appar.",
"appearance-group-context-menu-mode-extended": "Utökad",
"appearance-group-context-menu-mode-label": "Grupperat Appmenyläge",
"appearance-group-context-menu-mode-label": "Grupperat appmenyläge",
"appearance-group-context-menu-mode-list": "Fönsterlista",
"appearance-group-indicator-style-description": "Välj hur grupperade körande indikatorer visar fokuserat fönstertillstånd.",
"appearance-group-indicator-style-dots": "Punkter",
@@ -1079,8 +1087,8 @@
"appearance-position-description": "Välj var dockan ska visas på skärmen.",
"appearance-position-label": "Position",
"appearance-show-launcher-icon-description": "Visa ikonen för programstartaren i dockan.",
"appearance-show-launcher-icon-label": "Visa Appstartare",
"appearance-sit-on-frame-description": "Justera Dockan innanför ramkanten istället för att ligga ovanpå.",
"appearance-show-launcher-icon-label": "Visa appstartare",
"appearance-sit-on-frame-description": "Justera dockan innanför ramkanten istället för att ligga ovanpå.",
"appearance-sit-on-frame-label": "Dockan sitter på ramen",
"appearance-type-description": "Välj mellan en flytande pillerform eller en statisk stapel fäst vid kanten.",
"appearance-type-floating": "Flytande",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Bakgrundsbild ändrad",
"wallpaper-changed-placeholder": "t.ex. notify-send \"Bakgrundsbild\"\"Ändrad\""
},
"idle": {
"custom-add": "Lägg till kommando",
"custom-description": "Kör ett skal-kommando efter en period av inaktivitet.",
"custom-entry-command": "Kommando",
"custom-entry-delete": "Ta bort",
"custom-entry-timeout": "Inaktivitetstid",
"custom-label": "Anpassade Inaktivitetskommandon",
"enable-description": "Stäng automatiskt av skärmen, lås eller försätt i viloläge efter en period av inaktivitet.",
"enable-label": "Aktivera inaktivitetshantering",
"fade-duration-description": "Sekunder för animationen som tonar till svart innan varje åtgärd utlöses. Alla musrörelser avbryter nedtoningen.",
"fade-duration-label": "Toningstid",
"lock-description": "Sekunder av inaktivitet innan låsskärmen aktiveras.",
"lock-label": "Lås skärm",
"screen-off-description": "Sekunder av inaktivitet innan skärmarna stängs av.",
"screen-off-label": "Stäng av skärmen",
"status-description": "Inaktiv tid som rapporterats av Compositor.",
"status-label": "Inaktiv Tid",
"suspend-description": "Sekunder av inaktivitet innan systemet försätts i viloläge.",
"tab-behavior": "Beteende",
"tab-custom": "Anpassad",
"timeouts-description": "Ställ in på 0 för att inaktivera ett steg. Tidsgränser pausas medan Keep Awake är aktivt.",
"timeouts-label": "Tidsgränser",
"unavailable": "Inbyggd inaktivitetsövervakning är inte tillgänglig på denna Compositor."
},
"indicator": {
"default-value": "Standard: {värde}",
"system-default": "Systemstandard"
+41 -9
View File
@@ -8,7 +8,7 @@
"disable-dnd": "'Rahatsız etmeyin'i kapat",
"disable-wifi": "Kablosuz bağlantıyı kapat",
"disconnect-vpn": "{name} bağlantısını kes",
"dock-settings": "Dock Ayarları",
"dock-settings": "Dock ayarları",
"enable-bluetooth": "Bluetooth'u etkinleştir",
"enable-dnd": "'Rahatsız etmeyin'i etkinleştir",
"enable-wifi": "Kablosuz bağlantıyı etkinleştir",
@@ -102,7 +102,7 @@
"collapse-condition-description": "Çıktı metni bu değerle eşleşirse düğme daralacak.",
"collapse-condition-label": "Daralma durumu",
"color-selection-description": "Tema renklerini simgeye ve metne uygula.",
"default-tooltip": "Özel düğme, ayarlarda yapılandırın.",
"default-tooltip": "Özel düğme, ayarlarda yapılandırın",
"display-command-output-description": "Düzenli aralıklarla çalıştırılacak bir komut girin. Çıktısının ilk satırı metin olarak gösterilecektir.",
"display-command-output-label": "Komut çıktısını göster",
"display-command-output-stream-description": "Sürekli çalıştırılacak bir komut girin.",
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Eylemler",
"active": "Aktif",
"add": "Ekle",
"appearance": "Görünüm",
"apply": "Uygula",
@@ -486,6 +487,8 @@
"scanning": "Taranıyor...",
"screen-corners": "Ekran köşeleri",
"search": "Arama",
"second": "{count} saniye",
"second-plural": "{count} saniye",
"secondary": "İkincil",
"security": "Güvenlik",
"select": "Seç",
@@ -800,7 +803,7 @@
"appearance-floating-description": "Araç çubuğunu yüzen bir 'kapsül' olarak görüntüler. Not: Bu, ekran köşelerini kenarlara taşıyacaktır.",
"appearance-floating-label": "Yüzen araç çubuğu",
"appearance-font-scale-description": "Çubukta görüntülenen metin için yazı tipi boyutu ölçeğini ayarlayın.",
"appearance-font-scale-label": "Yazı Tipi Ölçeği",
"appearance-font-scale-label": "Yazı tipi ölçeği",
"appearance-frame-radius": "İç Yarıçap",
"appearance-frame-settings-description": "Çerçeve kalınlığını ve iç köşe yarıçapını ayarlayın",
"appearance-frame-settings-label": "Çerçeve Ayarları",
@@ -826,7 +829,7 @@
"appearance-use-separate-opacity-description": "Çubuk arka planı için ayrı bir opaklık değeri kullanmayı etkinleştir.",
"appearance-use-separate-opacity-label": "Ayrı çubuk opaklığı kullan",
"appearance-widget-spacing-description": "Çubuktaki her bir widget arasındaki boşluğu ayarlayın.",
"appearance-widget-spacing-label": "Widget Aralığı",
"appearance-widget-spacing-label": "Widget aralığı",
"monitor-configure-widgets": "Araçları yapılandır",
"monitor-override-settings": "Genel ayarları geçersiz kıl",
"monitor-override-settings-description": "Bu monitör için özel ayarları kullan.",
@@ -964,7 +967,7 @@
"clock-style-label": "Saat stili",
"clock-style-minimal": "Minimal",
"clock-width-description": "Saat widget'ının piksel cinsinden genişliği.",
"cpu-intensive-note": "! ile işaretlenmiş Widgetlar daha fazla CPU kullanır ve dikkatli bir şekilde etkinleştirilmelidir.",
"cpu-intensive-note": "! ile işaretlenmiş widgetlar daha fazla CPU kullanır ve dikkatli bir şekilde etkinleştirilmelidir.",
"edit-mode-button-label": "Düzenleme moduna gir",
"edit-mode-controls-explanation": "Sol tıklayıp sürükleyin: Bileşeni taşıyın veya yeniden boyutlandırın.\nSağ tıklayın: Bağlam menüsü seçeneklerini açın.",
"edit-mode-description": "Masaüstü araçlarını taşımak ve yeniden konumlandırmak için düzenleme modunu etkinleştirin. Etkinleştirildiğinde, araçlar bir sürükleme ana hattı gösterir ve yeniden konumlandırılabilir.",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Düğmeleri göster",
"media-player-show-visualizer-description": "Ses görselleştirici katmanını göster.",
"media-player-visualizer-type-description": "Masaüstü medya oynatıcı arka planı için bir görselleştirme türü seçin.",
"overview-enabled-description": "Kompozitör genel görünümü açıkken masaüstü araç takımlarını göster.",
"overview-enabled-label": "Genel bakışta göster",
"system-stat-layout-bottom": "Alt",
"system-stat-layout-description": "Efsanenin grafiğe göre nasıl görüntüleneceğini seçin.",
"system-stat-layout-label": "Düzen",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Hava durumu widget'ı için arka plan konteynerini göster."
},
"display": {
"monitors-backlight-device-auto-option": "Varsayılan",
"monitors-backlight-device-description": "Bu çıkış için bir arka ışık cihazı seçin.",
"monitors-backlight-device-label": "Arka Işık Cihazı",
"monitors-brightness-step-description": "Parlaklık değişimleri için adım boyutunu ayarlayın (tekerlek ve klavye kısayolları).",
"monitors-brightness-step-label": "Parlaklık adım boyutu",
"monitors-brightness-unavailable-ddc-disabled": "Parlaklık kontrolü kullanılamıyor. Bu ekranın parlaklığını kontrol etmek için \"Harici parlaklık desteği\"ni etkinleştirin.",
@@ -1058,8 +1066,8 @@
"appearance-group-click-action-list": "Pencere listesini aç",
"appearance-group-context-menu-mode-description": "Gruplandırılmış uygulamalar için bağlam menüsünün nasıl davranacağını seçin.",
"appearance-group-context-menu-mode-extended": "Genişletilmiş",
"appearance-group-context-menu-mode-label": "Gruplandırılmış Uygulama Menüsü Modu",
"appearance-group-context-menu-mode-list": "Pencere Listesi",
"appearance-group-context-menu-mode-label": "Gruplandırılmış uygulama menüsü modu",
"appearance-group-context-menu-mode-list": "Pencere listesi",
"appearance-group-indicator-style-description": "Gruplandırılmış çalışan göstergelerin odaklanmış pencere durumunu nasıl görüntüleyeceğini seçin.",
"appearance-group-indicator-style-dots": "Noktalar",
"appearance-group-indicator-style-label": "Gruplandırılmış gösterge stili",
@@ -1079,12 +1087,12 @@
"appearance-position-description": "Dockun ekranda nerede görüneceğini seçin.",
"appearance-position-label": "Pozisyon",
"appearance-show-launcher-icon-description": "Uygulama başlatıcı simgesini dock'ta göster.",
"appearance-show-launcher-icon-label": "Uygulama Başlatıcıyı Göster",
"appearance-show-launcher-icon-label": "Uygulama başlatıcıyı göster",
"appearance-sit-on-frame-description": "Dock'u çerçevenin kenar boşluğunun içine hizalayın, üstüne oturmak yerine.",
"appearance-sit-on-frame-label": "Dock çerçevede yer alır",
"appearance-type-description": "Yüzen bir hap veya kenara bağlı sabit bir çubuk arasından seçim yapın.",
"appearance-type-floating": "Yüzen",
"appearance-type-label": "Dock Stili",
"appearance-type-label": "Dock stili",
"appearance-type-static": "Statik",
"enabled-description": "Docku tamamen gösterin veya gizleyin.",
"enabled-label": "Docku etkinleştir",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Duvar kâğıdı değişti",
"wallpaper-changed-placeholder": "örn. notify-send \"Duvar Kâğıdı\" \"Değişti\""
},
"idle": {
"custom-add": "Komut Ekle",
"custom-description": "Bir süre hareketsizlikten sonra bir kabuk komutu çalıştır.",
"custom-entry-command": "Komut",
"custom-entry-delete": "Sil",
"custom-entry-timeout": "Boşta kalma süresi",
"custom-label": "Özel Boşta Kalma Komutları",
"enable-description": "Belirli bir süre işlem yapılmadığında ekranı otomatik olarak kapat, kilitle veya askıya al.",
"enable-label": "Boşta kalma yönetimini etkinleştir",
"fade-duration-description": "Her eylem tetiklenmeden önce kararan animasyonun saniye cinsinden süresi. Herhangi bir fare hareketi kararmayı iptal eder.",
"fade-duration-label": "Solma süresi",
"lock-description": "Kilit ekranı etkinleşmeden önceki hareketsizlik süresi (saniye).",
"lock-label": "Ekranı Kilitle",
"screen-off-description": "Monitörler kapanmadan önceki hareketsizlik süresi (saniye).",
"screen-off-label": "Ekranı kapat",
"status-description": "Compositor tarafından bildirilen boşta kalma süresi.",
"status-label": "Boşta Kalma Süresi",
"suspend-description": "Sistem askıya alınmadan önceki hareketsizlik süresi (saniye).",
"tab-behavior": "Davranış",
"tab-custom": "Özel",
"timeouts-description": "Bir aşamayı devre dışı bırakmak için 0 olarak ayarlayın. Keep Awake aktifken zaman aşımları duraklatılır.",
"timeouts-label": "Zaman Aşımları",
"unavailable": "Yerel boşta kalma izleme bu Compositor'da mevcut değil."
},
"indicator": {
"default-value": "Varsayılan: {value}",
"system-default": "Sistem varsayılanı"
+48 -16
View File
@@ -8,7 +8,7 @@
"disable-dnd": "Вимкнути режим 'Не турбувати'",
"disable-wifi": "Вимкнути Wi-Fi",
"disconnect-vpn": "Відключити {name}",
"dock-settings": "Налаштування Дока",
"dock-settings": "Налаштування дока",
"enable-bluetooth": "Увімкнути Bluetooth",
"enable-dnd": "Увімкнути режим 'Не турбувати'",
"enable-wifi": "Увімкнути Wi-Fi",
@@ -102,7 +102,7 @@
"collapse-condition-description": "Якщо вихідний текст збігається з цим значенням, кнопка згорнеться.",
"collapse-condition-label": "Умова згортання",
"color-selection-description": "Застосувати кольори теми до значка та тексту.",
"default-tooltip": "Користувацька кнопка, налаштуйте в налаштуваннях.",
"default-tooltip": "Користувацька кнопка, налаштуйте в налаштуваннях",
"display-command-output-description": "Введіть команду для запуску з регулярним інтервалом. Перший рядок її виведення відображатиметься як текст.",
"display-command-output-label": "Відображати виведення команди",
"display-command-output-stream-description": "Введіть команду для безперервного запуску.",
@@ -145,13 +145,13 @@
"text-stream-description": "Потокові рядки з команди відображатимуться як текст на кнопці.",
"text-stream-label": "Потік",
"wheel-description": "Команда для виконання при використанні колеса прокрутки.<br>Використовуйте $delta для дельти колеса прокрутки в команді.",
"wheel-down": "Прокрутіть униз",
"wheel-down": "Колесо вниз",
"wheel-down-description": "Команда для виконання при прокрутці колеса вниз.",
"wheel-down-label": "Команда прокрутки колеса вниз",
"wheel-label": "Колесо прокрутки",
"wheel-mode-separate-description": "Увімкнути окремі команди для колеса прокрутки вгору та вниз.",
"wheel-mode-separate-label": "Окремі команди колеса прокрутки",
"wheel-up": "Прокрутити вгору",
"wheel-up": "Колесо вгору",
"wheel-up-description": "Команда для виконання при прокрутці колеса вгору.",
"wheel-up-label": "Команда прокрутки колеса вгору",
"wheel-update-text": "Оновити відображуваний текст при прокрутці"
@@ -290,7 +290,7 @@
"focused-color-description": "Встановити колір тла для сфокусованого Workspace.",
"focused-color-label": "Колір сфокусованого робочого столу",
"follow-focused-screen-description": "Відображати робочі простори з поточного активного екрана, а не з екрана, на якому розташована панель.",
"follow-focused-screen-label": "Слідувати за активним eкраном",
"follow-focused-screen-label": "Слідувати за активним екраном",
"grouped-border-opacity-description": "Встановити рівень непрозорості для меж контейнерів робочої області.",
"grouped-border-opacity-label": "Прозорість межі",
"hide-unoccupied-description": "Не відображати робочі простори без вікон.",
@@ -370,6 +370,7 @@
},
"common": {
"actions": "Дії",
"active": "Активний",
"add": "Додати",
"appearance": "Зовнішній вигляд",
"apply": "Подати заявку",
@@ -486,6 +487,8 @@
"scanning": "Сканування...",
"screen-corners": "Кути екрана",
"search": "Пошук",
"second": "{count} секунда",
"second-plural": "{count} секунд",
"secondary": "Вторинний",
"security": "Безпека",
"select": "Вибрати",
@@ -800,7 +803,7 @@
"appearance-floating-description": "Відображати панель як плаваючу 'капсулу'. Примітка: Це перемістить кути екрана до країв.",
"appearance-floating-label": "Плаваюча панель (Острівець)",
"appearance-font-scale-description": "Налаштуйте масштаб розміру шрифту для тексту, що відображається на панелі.",
"appearance-font-scale-label": "Масштаб Шрифту",
"appearance-font-scale-label": "Масштаб шрифту",
"appearance-frame-radius": "Внутрішній радіус",
"appearance-frame-settings-description": "Налаштуйте товщину рамки та внутрішній радіус кутів",
"appearance-frame-settings-label": "Налаштування рамки",
@@ -826,7 +829,7 @@
"appearance-use-separate-opacity-description": "Увімкнути використання окремого значення прозорості для фону панелі.",
"appearance-use-separate-opacity-label": "Використовувати окрему прозорість стовпців",
"appearance-widget-spacing-description": "Налаштуйте інтервал між кожним віджетом на панелі.",
"appearance-widget-spacing-label": "Відстань Між Віджетами",
"appearance-widget-spacing-label": "Відстань між віджетами",
"monitor-configure-widgets": "Налаштувати віджети",
"monitor-override-settings": "Перевизначити глобальні налаштування",
"monitor-override-settings-description": "Використовувати власні налаштування для цього монітора.",
@@ -886,7 +889,7 @@
"predefined-desc": "Виберіть із колекції попередньо визначених колірних схем.",
"predefined-generate-templates-label": "Генерувати шаблони для попередньо визначених схем",
"predefined-title": "Попередньо визначені колірні схеми",
"templates-desc": "Застосовувати кольори до зовнішніх застосункiв.",
"templates-desc": "Застосовувати кольори до зовнішніх застосунків.",
"templates-filter-description": "Показати шаблони з певної категорії.",
"templates-filter-label": "Фільтрувати за категорією",
"templates-misc-description": "Створіть власні шаблони.",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "Показати кнопки",
"media-player-show-visualizer-description": "Показати накладання аудіовізуалізатора.",
"media-player-visualizer-type-description": "Оберіть тип візуалізації для фону медіаплеєра на робочому столі.",
"overview-enabled-description": "Показувати віджети робочого столу, поки огляд композитора відкритий.",
"overview-enabled-label": "Показати в огляді",
"system-stat-layout-bottom": "Низ",
"system-stat-layout-description": "Виберіть, як відображається легенда відносно графіка.",
"system-stat-layout-label": "Макет",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "Показати фоновий контейнер для погодного віджета."
},
"display": {
"monitors-backlight-device-auto-option": "За замовчуванням",
"monitors-backlight-device-description": "Виберіть пристрій підсвічування для цього виходу.",
"monitors-backlight-device-label": "Пристрій Підсвічування",
"monitors-brightness-step-description": "Налаштуйте крок зміни яскравості (колесо миші та гарячі клавіші).",
"monitors-brightness-step-label": "Крок зміни яскравості",
"monitors-brightness-unavailable-ddc-disabled": "Регулювання яскравості недоступне. Увімкніть \"Підтримку зовнішньої яскравості\", щоб керувати яскравістю цього дисплея.",
@@ -1038,7 +1046,7 @@
"appearance-background-opacity-description": "Налаштуйте непрозорість фону дока.",
"appearance-border-radius-description": "Налаштуйте радіус заокруглення країв док-панелі.",
"appearance-border-radius-label": "Радіус заокруглення",
"appearance-colorize-icons-description": "Застосувати кольори теми до значків застосункiв у доці (тільки неактивні застосунки).",
"appearance-colorize-icons-description": "Застосувати кольори теми до значків застосунків у доці (тільки неактивні застосунки).",
"appearance-colorize-icons-label": "Розфарбувати значки",
"appearance-dead-opacity-description": "Відрегулюйте прозорість іконок програм, які не запущені.",
"appearance-dead-opacity-label": "Мертва непрозорість",
@@ -1048,7 +1056,7 @@
"appearance-display-exclusive": "Винятковий",
"appearance-floating-distance-description": "Встановіть відстань між доком і краєм екрана.",
"appearance-floating-distance-label": "Відстань плавання дока",
"appearance-frame-indicator-description": "Показувати невеликий індикатор на рамці, коли Dock приховано.",
"appearance-frame-indicator-description": "Показувати невеликий індикатор на рамці, коли док приховано.",
"appearance-frame-indicator-label": "Рамочний індикатор дока",
"appearance-group-apps-description": "Групувати кілька вікон з однієї програми в один запис Dock.",
"appearance-group-apps-label": "Групувати однакові програми",
@@ -1058,8 +1066,8 @@
"appearance-group-click-action-list": "Відкрити список вікон",
"appearance-group-context-menu-mode-description": "Виберіть, як контекстне меню поводиться для згрупованих програм.",
"appearance-group-context-menu-mode-extended": "Розширений",
"appearance-group-context-menu-mode-label": "Режим Згрупованого Меню Програм",
"appearance-group-context-menu-mode-list": "Список Вікон",
"appearance-group-context-menu-mode-label": "Режим згрупованого меню програм",
"appearance-group-context-menu-mode-list": "Список вікон",
"appearance-group-indicator-style-description": "Виберіть, як згруповані індикатори запущених програм відображають стан активного вікна.",
"appearance-group-indicator-style-dots": "Крапки",
"appearance-group-indicator-style-label": "Стиль згрупованого індикатора",
@@ -1080,11 +1088,11 @@
"appearance-position-label": "Позиція",
"appearance-show-launcher-icon-description": "Показувати піктограму запуску програм у доці.",
"appearance-show-launcher-icon-label": "Показати запуск програм",
"appearance-sit-on-frame-description": "Вирівняйте Док всередині межі рамки, а не поверх неї.",
"appearance-sit-on-frame-description": "Вирівняйте док всередині межі рамки, а не поверх неї.",
"appearance-sit-on-frame-label": "Док розміщується на рамці",
"appearance-type-description": "Виберіть між плаваючою пігулкою або статичною панеллю, прикріпленою до краю.",
"appearance-type-floating": "Плаваючий",
"appearance-type-label": "Стиль Дока",
"appearance-type-label": "Стиль дока",
"appearance-type-static": "Статичний",
"enabled-description": "Показати або сховати док повністю.",
"enabled-label": "Увімкнути док",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "Шпалери змінено",
"wallpaper-changed-placeholder": "напр. notify-send \"Шпалери\" \"Змінено\""
},
"idle": {
"custom-add": "Додати команду",
"custom-description": "Виконати команду оболонки після періоду бездіяльності.",
"custom-entry-command": "Команда",
"custom-entry-delete": "Видалити",
"custom-entry-timeout": "Час бездіяльності",
"custom-label": "Користувацькі Команди Бездіяльності",
"enable-description": "Автоматично вимикати екран, блокувати або призупиняти роботу після періоду бездіяльності.",
"enable-label": "Увімкнути керування бездіяльністю",
"fade-duration-description": "Секунди для анімації затемнення до чорного перед виконанням кожної дії. Будь-який рух миші скасовує затемнення.",
"fade-duration-label": "Тривалість згасання",
"lock-description": "Секунди бездіяльності до активації екрана блокування.",
"lock-label": "Заблокувати екран",
"screen-off-description": "Секунди бездіяльності до вимкнення моніторів.",
"screen-off-label": "Вимкнути екран",
"status-description": "Час простою, повідомлений Compositor.",
"status-label": "Час Простою",
"suspend-description": "Секунди бездіяльності до призупинення роботи системи.",
"tab-behavior": "Поведінка",
"tab-custom": "Користувацький",
"timeouts-description": "Встановіть 0, щоб вимкнути етап. Тайм-аути призупиняються, поки Keep Awake активний.",
"timeouts-label": "Тайм-аути",
"unavailable": "Нативний моніторинг бездіяльності недоступний на цьому Compositorі."
},
"indicator": {
"default-value": "За замовчуванням: {value}",
"system-default": "Системні налаштування за замовчуванням"
@@ -1281,7 +1313,7 @@
"lock-screen": {
"allow-password-with-fprintd-description": "Коли fprintd (автентифікація за відбитком пальця) активний, ця опція дозволяє входити в систему за допомогою пароля замість відбитка пальця.",
"allow-password-with-fprintd-label": "Дозволити вхід за паролем за допомогою fprintd",
"auto-start-auth-description": "Aвтоматично запускає автентифікацію за відбитком пальця без необхідності натискання клавіші або клацання кнопки.",
"auto-start-auth-description": "Автоматично запускає автентифікацію за відбитком пальця без необхідності натискання клавіші або клацання кнопки.",
"auto-start-auth-label": "Автоматичний запуск автентифікації",
"clock-format-description": "Налаштуйте формат годинника, використовуючи токени синтаксису дати/часу.",
"clock-format-label": "Формат годинника",
@@ -1562,7 +1594,7 @@
"panel-background-opacity-label": "Прозорість фону панелей",
"panels-attached-to-bar-description": "Панелі фіксуються до штанги та країв екрана, створюючи бездоганний вигляд зі стильними перевернутими кутами.",
"panels-attached-to-bar-label": "Прив'язувати панелі до країв",
"panels-overlay-description": "Забезпечує видимість панелей і панелі завдань, навіть поверх повноекранних застосункiв.",
"panels-overlay-description": "Забезпечує видимість панелей і панелі завдань, навіть поверх повноекранних застосунків.",
"panels-overlay-label": "Тримати панелі та панель зверху",
"scaling-description": "Змінює розмір загального користувацького інтерфейсу, окрім панелі.",
"scaling-label": "Масштабування інтерфейсу",
+35 -3
View File
@@ -102,7 +102,7 @@
"collapse-condition-description": "如果输出文本与此值匹配,按钮将折叠。",
"collapse-condition-label": "折叠条件",
"color-selection-description": "将主题颜色应用到图标和文本。",
"default-tooltip": "自定义按钮,在设置中配置",
"default-tooltip": "自定义按钮,在设置中配置",
"display-command-output-description": "输入一个定期运行的命令。其输出的第一行将显示为文本。",
"display-command-output-label": "显示命令输出",
"display-command-output-stream-description": "输入一个要持续运行的命令。",
@@ -145,13 +145,13 @@
"text-stream-description": "来自命令的流式输出行将作为文本显示在按钮上。",
"text-stream-label": "流",
"wheel-description": "使用滚轮时执行的命令。<br>在命令中使用 $delta 表示滚轮增量。",
"wheel-down": "向下滚动",
"wheel-down": "滚轮 下",
"wheel-down-description": "滚轮向下滚动时执行的命令。",
"wheel-down-label": "滚轮向下命令",
"wheel-label": "滚轮",
"wheel-mode-separate-description": "为滚轮向上和向下启用单独的命令。",
"wheel-mode-separate-label": "分开滚轮命令",
"wheel-up": "向上滚动",
"wheel-up": "滚轮 上",
"wheel-up-description": "滚轮向上滚动时执行的命令。",
"wheel-up-label": "滚轮向上命令",
"wheel-update-text": "滚轮滚动时更新显示的文本"
@@ -370,6 +370,7 @@
},
"common": {
"actions": "操作",
"active": "活跃",
"add": "添加",
"appearance": "外观",
"apply": "应用",
@@ -486,6 +487,8 @@
"scanning": "扫描中...",
"screen-corners": "屏幕边角",
"search": "搜索",
"second": "{count} 秒",
"second-plural": "{count} 秒",
"secondary": "辅助",
"security": "安全",
"select": "选择",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "显示按钮",
"media-player-show-visualizer-description": "显示音频可视化叠加层。",
"media-player-visualizer-type-description": "选择桌面媒体播放器的背景可视化类型。",
"overview-enabled-description": "当合成器概览打开时,显示桌面小部件。",
"overview-enabled-label": "在概览中显示",
"system-stat-layout-bottom": "底部",
"system-stat-layout-description": "选择图例相对于图表的显示方式。",
"system-stat-layout-label": "布局",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "显示天气小部件的背景容器。"
},
"display": {
"monitors-backlight-device-auto-option": "默认",
"monitors-backlight-device-description": "为此输出选择一个背光设备。",
"monitors-backlight-device-label": "背光设备",
"monitors-brightness-step-description": "调整亮度变化的步长(滚轮和键盘快捷键)。",
"monitors-brightness-step-label": "亮度步长",
"monitors-brightness-unavailable-ddc-disabled": "亮度控制不可用。启用“外部亮度支持”以控制此显示器的亮度。",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "壁纸已更改",
"wallpaper-changed-placeholder": "例如:notify-send \"壁纸\" \"已更改\""
},
"idle": {
"custom-add": "添加命令",
"custom-description": "在一段时间不活动后运行 shell 命令。",
"custom-entry-command": "命令",
"custom-entry-delete": "删除",
"custom-entry-timeout": "空闲时间",
"custom-label": "自定义空闲命令",
"enable-description": "在一段时间不活动后,自动关闭屏幕、锁定或休眠。",
"enable-label": "启用空闲管理",
"fade-duration-description": "每次操作触发前,屏幕渐变为黑的动画持续时间(秒)。任何鼠标移动都会取消渐变。",
"fade-duration-label": "淡入淡出时长",
"lock-description": "锁屏激活前的非活动秒数。",
"lock-label": "锁定屏幕",
"screen-off-description": "显示器关闭前的不活动秒数。",
"screen-off-label": "关闭屏幕",
"status-description": "Compositor报告的空闲时间。",
"status-label": "空闲时间",
"suspend-description": "系统挂起前的非活动秒数。",
"tab-behavior": "行为",
"tab-custom": "自定义",
"timeouts-description": "设置为0以禁用一个阶段。Keep Awake激活时,超时会暂停。",
"timeouts-label": "超时",
"unavailable": "此 Compositor 不支持原生空闲监控。"
},
"indicator": {
"default-value": "默认值:{value}",
"system-default": "系统默认"
+35 -3
View File
@@ -102,7 +102,7 @@
"collapse-condition-description": "若輸出文字符合此值,按鈕將會摺疊。",
"collapse-condition-label": "摺疊條件",
"color-selection-description": "將主題用色套用至圖示及文字上",
"default-tooltip": "自訂按鈕,在設定中配置",
"default-tooltip": "自訂按鈕,在設定中配置",
"display-command-output-description": "輸入一個想要定時重複執行的指令, 指令的第一行輸出將會作為顯示的文字",
"display-command-output-label": "顯示指令的輸出",
"display-command-output-stream-description": "輸入一個要持續執行的指令",
@@ -145,13 +145,13 @@
"text-stream-description": "命令列的串流內容將以文字形式顯示在按鈕上。",
"text-stream-label": "串流",
"wheel-description": "在滾輪滾動時要執行的指令<br>在指令裡使用 $delta 表示指令中滾動多少的值",
"wheel-down": "向下捲動",
"wheel-down": "滾輪 下",
"wheel-down-description": "在滾輪下滾時要執行的指令",
"wheel-down-label": "滾輪下滾",
"wheel-label": "滑鼠滾輪",
"wheel-mode-separate-description": "分別在滾輪上滾及下滾時執行不同指令",
"wheel-mode-separate-label": "分開設定滾輪指令",
"wheel-up": "向上捲動",
"wheel-up": "滾輪 上",
"wheel-up-description": "在滾輪上滾時要執行的指令",
"wheel-up-label": "滾輪上滾",
"wheel-update-text": "在滾動滾輪時更新顯示文字"
@@ -370,6 +370,7 @@
},
"common": {
"actions": "操作",
"active": "活躍",
"add": "新增",
"appearance": "外觀",
"apply": "套用",
@@ -486,6 +487,8 @@
"scanning": "掃描中...",
"screen-corners": "畫面邊角",
"search": "搜尋",
"second": "{count} 秒",
"second-plural": "{count} 秒",
"secondary": "輔助",
"security": "安全",
"select": "選取",
@@ -985,6 +988,8 @@
"media-player-show-buttons-label": "顯示按鈕",
"media-player-show-visualizer-description": "顯示視覺效果",
"media-player-visualizer-type-description": "選擇視覺效果的樣式",
"overview-enabled-description": "當合成器概覽開啟時,顯示桌面小工具。",
"overview-enabled-label": "在概覽中顯示",
"system-stat-layout-bottom": "底部",
"system-stat-layout-description": "選擇圖例相對於圖表的顯示方式。",
"system-stat-layout-label": "佈局",
@@ -1001,6 +1006,9 @@
"weather-show-background-description": "顯示天氣小工具的填充背景"
},
"display": {
"monitors-backlight-device-auto-option": "預設",
"monitors-backlight-device-description": "為此輸出選擇一個背光裝置。",
"monitors-backlight-device-label": "背光裝置",
"monitors-brightness-step-description": "微調亮度調整一格的大小 (滾輪及鍵盤快捷鍵)",
"monitors-brightness-step-label": "亮度步進大小",
"monitors-brightness-unavailable-ddc-disabled": "無法使用亮度控制, 啟用 \"外部亮度調整支援\" 來控制這個顯示器的亮度",
@@ -1183,6 +1191,30 @@
"wallpaper-changed-label": "桌布更換時",
"wallpaper-changed-placeholder": "例如: notify-send \"Wallpaper\" \"Changed\""
},
"idle": {
"custom-add": "新增指令",
"custom-description": "在一段時間不活動後執行 shell 命令。",
"custom-entry-command": "命令",
"custom-entry-delete": "刪除",
"custom-entry-timeout": "閒置時間",
"custom-label": "自訂閒置指令",
"enable-description": "在一段時間不活動後,自動關閉螢幕、鎖定或暫停。",
"enable-label": "啟用閒置管理",
"fade-duration-description": "每次操作觸發前,螢幕漸變為黑的動畫持續時間(秒)。任何滑鼠移動都會取消漸變。",
"fade-duration-label": "淡入淡出時長",
"lock-description": "鎖定畫面啟用前的閒置秒數。",
"lock-label": "鎖定螢幕",
"screen-off-description": "顯示器關閉前的不活動秒數。",
"screen-off-label": "關閉螢幕",
"status-description": "Compositor回報的閒置時間。",
"status-label": "閒置時間",
"suspend-description": "系統暫停前的閒置秒數。",
"tab-behavior": "行為",
"tab-custom": "自訂",
"timeouts-description": "設定為0以停用一個階段。Keep Awake啟用時,逾時會暫停。",
"timeouts-label": "逾時",
"unavailable": "此 Compositor 不支援原生閒置監控。"
},
"indicator": {
"default-value": "預設值: {value}",
"system-default": "系統預設"
+11 -2
View File
@@ -460,7 +460,8 @@
"brightness": {
"brightnessStep": 5,
"enforceMinimum": true,
"enableDdcSupport": false
"enableDdcSupport": false,
"backlightDeviceMappings": []
},
"colorSchemes": {
"useWallpaperColors": false,
@@ -499,9 +500,17 @@
"plugins": {
"autoUpdate": false
},
"idle": {
"enabled": false,
"screenOffTimeout": 0,
"lockTimeout": 0,
"suspendTimeout": 0,
"fadeDuration": 5
},
"desktopWidgets": {
"enabled": false,
"overviewEnabled": true,
"gridSnap": false,
"monitorWidgets": []
}
}
}
+169 -62
View File
@@ -3,7 +3,7 @@
"labelKey": "panels.about.telemetry-enabled",
"descriptionKey": "panels.about.telemetry-desc",
"widget": "NToggle",
"tab": 20,
"tab": 21,
"tabLabel": "panels.about.title",
"subTab": 0,
"subTabLabel": "common.info"
@@ -12,7 +12,7 @@
"labelKey": "panels.audio.devices-output-device-label",
"descriptionKey": "panels.audio.devices-output-device-description",
"widget": "NLabel",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 1,
"subTabLabel": "common.devices"
@@ -21,7 +21,7 @@
"labelKey": "panels.audio.devices-input-device-label",
"descriptionKey": "panels.audio.devices-input-device-description",
"widget": "NLabel",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 1,
"subTabLabel": "common.devices"
@@ -30,7 +30,7 @@
"labelKey": "panels.audio.media-primary-player-label",
"descriptionKey": "panels.audio.media-primary-player-description",
"widget": "NTextInput",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 2,
"subTabLabel": "common.media"
@@ -39,7 +39,7 @@
"labelKey": "panels.audio.media-excluded-player-label",
"descriptionKey": "panels.audio.media-excluded-player-description",
"widget": "NTextInputButton",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 2,
"subTabLabel": "common.media"
@@ -48,7 +48,7 @@
"labelKey": "panels.audio.visualizer-type-label",
"descriptionKey": "panels.audio.visualizer-type-description",
"widget": "NComboBox",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 3,
"subTabLabel": "common.visualizer"
@@ -57,7 +57,7 @@
"labelKey": "panels.audio.media-frame-rate-label",
"descriptionKey": "panels.audio.media-frame-rate-description",
"widget": "NComboBox",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 3,
"subTabLabel": "common.visualizer"
@@ -66,7 +66,7 @@
"labelKey": "panels.osd.types-volume-label",
"descriptionKey": "panels.audio.volumes-output-volume-description",
"widget": "NValueSlider",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 0,
"subTabLabel": "common.volumes"
@@ -75,7 +75,7 @@
"labelKey": "panels.audio.volumes-mute-output-label",
"descriptionKey": "panels.audio.volumes-mute-output-description",
"widget": "NToggle",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 0,
"subTabLabel": "common.volumes"
@@ -84,7 +84,7 @@
"labelKey": "panels.audio.volumes-volume-feedback-label",
"descriptionKey": "panels.audio.volumes-volume-feedback-description",
"widget": "NToggle",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 0,
"subTabLabel": "common.volumes"
@@ -93,7 +93,7 @@
"labelKey": "panels.osd.types-input-volume-label",
"descriptionKey": "panels.audio.volumes-input-volume-description",
"widget": "NValueSlider",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 0,
"subTabLabel": "common.volumes"
@@ -102,7 +102,7 @@
"labelKey": "panels.audio.volumes-mute-input-label",
"descriptionKey": "panels.audio.volumes-mute-input-description",
"widget": "NToggle",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 0,
"subTabLabel": "common.volumes"
@@ -111,7 +111,7 @@
"labelKey": "panels.audio.volumes-step-size-label",
"descriptionKey": "panels.audio.volumes-step-size-description",
"widget": "NSpinBox",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 0,
"subTabLabel": "common.volumes"
@@ -120,7 +120,7 @@
"labelKey": "panels.audio.volumes-volume-overdrive-label",
"descriptionKey": "panels.audio.volumes-volume-overdrive-description",
"widget": "NToggle",
"tab": 13,
"tab": 14,
"tabLabel": "panels.audio.title",
"subTab": 0,
"subTabLabel": "common.volumes"
@@ -399,7 +399,7 @@
"labelKey": "common.bluetooth",
"descriptionKey": null,
"widget": "NToggle",
"tab": 15,
"tab": 16,
"tabLabel": "panels.connections.title",
"subTab": 1,
"subTabLabel": "common.bluetooth"
@@ -408,7 +408,7 @@
"labelKey": "bluetooth.panel.connected-devices",
"descriptionKey": null,
"widget": "NLabel",
"tab": 15,
"tab": 16,
"tabLabel": "panels.connections.title",
"subTab": 1,
"subTabLabel": "common.bluetooth"
@@ -417,7 +417,7 @@
"labelKey": "bluetooth.panel.paired-devices",
"descriptionKey": null,
"widget": "NLabel",
"tab": 15,
"tab": 16,
"tabLabel": "panels.connections.title",
"subTab": 1,
"subTabLabel": "common.bluetooth"
@@ -426,7 +426,7 @@
"labelKey": "bluetooth.panel.available-devices",
"descriptionKey": null,
"widget": "NLabel",
"tab": 15,
"tab": 16,
"tabLabel": "panels.connections.title",
"subTab": 1,
"subTabLabel": "common.bluetooth"
@@ -435,7 +435,7 @@
"labelKey": "panels.connections.hide-unnamed-devices-label",
"descriptionKey": "panels.connections.hide-unnamed-devices-description",
"widget": "NToggle",
"tab": 15,
"tab": 16,
"tabLabel": "panels.connections.title",
"subTab": 1,
"subTabLabel": "common.bluetooth"
@@ -444,7 +444,7 @@
"labelKey": "panels.connections.disable-discoverability-label",
"descriptionKey": "panels.connections.disable-discoverability-description",
"widget": "NToggle",
"tab": 15,
"tab": 16,
"tabLabel": "panels.connections.title",
"subTab": 1,
"subTabLabel": "common.bluetooth"
@@ -453,7 +453,7 @@
"labelKey": "panels.connections.bluetooth-rssi-polling-label",
"descriptionKey": "panels.connections.bluetooth-rssi-polling-description",
"widget": "NToggle",
"tab": 15,
"tab": 16,
"tabLabel": "panels.connections.title",
"subTab": 1,
"subTabLabel": "common.bluetooth"
@@ -462,7 +462,7 @@
"labelKey": "panels.connections.bluetooth-rssi-polling-interval-label",
"descriptionKey": "panels.connections.bluetooth-rssi-polling-interval-description",
"widget": "NSpinBox",
"tab": 15,
"tab": 16,
"tabLabel": "panels.connections.title",
"subTab": 1,
"subTabLabel": "common.bluetooth"
@@ -471,7 +471,7 @@
"labelKey": "toast.airplane-mode.title",
"descriptionKey": null,
"widget": "NToggle",
"tab": 15,
"tab": 16,
"tabLabel": "panels.connections.title",
"subTab": 0,
"subTabLabel": "common.wifi"
@@ -480,7 +480,7 @@
"labelKey": "common.wifi",
"descriptionKey": null,
"widget": "NToggle",
"tab": 15,
"tab": 16,
"tabLabel": "panels.connections.title",
"subTab": 0,
"subTabLabel": "common.wifi"
@@ -511,11 +511,28 @@
"tabLabel": "panels.desktop-widgets.title",
"subTab": null
},
{
"labelKey": "panels.desktop-widgets.overview-enabled-label",
"descriptionKey": "panels.desktop-widgets.overview-enabled-description",
"widget": "NToggle",
"tab": 6,
"tabLabel": "panels.desktop-widgets.title",
"subTab": null
},
{
"labelKey": "panels.display.monitors-backlight-device-label",
"descriptionKey": "panels.display.monitors-backlight-device-description",
"widget": "NComboBox",
"tab": 15,
"tabLabel": "panels.display.title",
"subTab": 0,
"subTabLabel": "common.brightness"
},
{
"labelKey": "panels.display.monitors-brightness-step-label",
"descriptionKey": "panels.display.monitors-brightness-step-description",
"widget": "NSpinBox",
"tab": 14,
"tab": 15,
"tabLabel": "panels.display.title",
"subTab": 0,
"subTabLabel": "common.brightness"
@@ -524,7 +541,7 @@
"labelKey": "panels.display.monitors-enforce-minimum-label",
"descriptionKey": "panels.display.monitors-enforce-minimum-description",
"widget": "NToggle",
"tab": 14,
"tab": 15,
"tabLabel": "panels.display.title",
"subTab": 0,
"subTabLabel": "common.brightness"
@@ -533,7 +550,7 @@
"labelKey": "panels.display.monitors-external-brightness-label",
"descriptionKey": "panels.display.monitors-external-brightness-description",
"widget": "NToggle",
"tab": 14,
"tab": 15,
"tabLabel": "panels.display.title",
"subTab": 0,
"subTabLabel": "common.brightness"
@@ -542,7 +559,7 @@
"labelKey": "panels.display.night-light-enable-label",
"descriptionKey": "panels.display.night-light-enable-description",
"widget": "NToggle",
"tab": 14,
"tab": 15,
"tabLabel": "panels.display.title",
"subTab": 1,
"subTabLabel": "common.night-light"
@@ -551,7 +568,7 @@
"labelKey": "panels.display.night-light-temperature-night",
"descriptionKey": "panels.display.night-light-temperature-night-description",
"widget": "NLabel",
"tab": 14,
"tab": 15,
"tabLabel": "panels.display.title",
"subTab": 1,
"subTabLabel": "common.night-light"
@@ -560,7 +577,7 @@
"labelKey": "panels.display.night-light-temperature-day",
"descriptionKey": "panels.display.night-light-temperature-day-description",
"widget": "NLabel",
"tab": 14,
"tab": 15,
"tabLabel": "panels.display.title",
"subTab": 1,
"subTabLabel": "common.night-light"
@@ -569,7 +586,7 @@
"labelKey": "panels.display.night-light-auto-schedule-label",
"descriptionKey": "panels.display.night-light-auto-schedule-description",
"widget": "NToggle",
"tab": 14,
"tab": 15,
"tabLabel": "panels.display.title",
"subTab": 1,
"subTabLabel": "common.night-light"
@@ -578,7 +595,7 @@
"labelKey": "panels.display.night-light-force-activation-label",
"descriptionKey": "panels.display.night-light-force-activation-description",
"widget": "NToggle",
"tab": 14,
"tab": 15,
"tabLabel": "panels.display.title",
"subTab": 1,
"subTabLabel": "common.night-light"
@@ -832,7 +849,7 @@
"labelKey": "panels.hooks.system-hooks-enable-label",
"descriptionKey": "panels.hooks.system-hooks-enable-description",
"widget": "NToggle",
"tab": 19,
"tab": 20,
"tabLabel": "panels.hooks.title",
"subTab": 0,
"subTabLabel": "common.general"
@@ -841,7 +858,7 @@
"labelKey": "panels.hooks.info-parameters-label",
"descriptionKey": "panels.hooks.info-parameters-description",
"widget": "NLabel",
"tab": 19,
"tab": 20,
"tabLabel": "panels.hooks.title",
"subTab": 0,
"subTabLabel": "common.general"
@@ -850,7 +867,7 @@
"labelKey": "panels.hooks.noctalia-started-label",
"descriptionKey": "panels.hooks.noctalia-started-description",
"widget": "HookRow",
"tab": 19,
"tab": 20,
"tabLabel": "panels.hooks.title",
"subTab": 1,
"subTabLabel": "panels.hooks.title"
@@ -859,7 +876,7 @@
"labelKey": "panels.hooks.wallpaper-changed-label",
"descriptionKey": "panels.hooks.wallpaper-changed-description",
"widget": "HookRow",
"tab": 19,
"tab": 20,
"tabLabel": "panels.hooks.title",
"subTab": 1,
"subTabLabel": "panels.hooks.title"
@@ -868,7 +885,7 @@
"labelKey": "panels.hooks.theme-changed-label",
"descriptionKey": "panels.hooks.theme-changed-description",
"widget": "HookRow",
"tab": 19,
"tab": 20,
"tabLabel": "panels.hooks.title",
"subTab": 1,
"subTabLabel": "panels.hooks.title"
@@ -877,7 +894,7 @@
"labelKey": "panels.hooks.screen-lock-label",
"descriptionKey": "panels.hooks.screen-lock-description",
"widget": "HookRow",
"tab": 19,
"tab": 20,
"tabLabel": "panels.hooks.title",
"subTab": 1,
"subTabLabel": "panels.hooks.title"
@@ -886,7 +903,7 @@
"labelKey": "panels.hooks.screen-unlock-label",
"descriptionKey": "panels.hooks.screen-unlock-description",
"widget": "HookRow",
"tab": 19,
"tab": 20,
"tabLabel": "panels.hooks.title",
"subTab": 1,
"subTabLabel": "panels.hooks.title"
@@ -895,7 +912,7 @@
"labelKey": "panels.hooks.performance-mode-enabled-label",
"descriptionKey": "panels.hooks.performance-mode-enabled-description",
"widget": "HookRow",
"tab": 19,
"tab": 20,
"tabLabel": "panels.hooks.title",
"subTab": 1,
"subTabLabel": "panels.hooks.title"
@@ -904,7 +921,7 @@
"labelKey": "panels.hooks.performance-mode-disabled-label",
"descriptionKey": "panels.hooks.performance-mode-disabled-description",
"widget": "HookRow",
"tab": 19,
"tab": 20,
"tabLabel": "panels.hooks.title",
"subTab": 1,
"subTabLabel": "panels.hooks.title"
@@ -913,11 +930,101 @@
"labelKey": "panels.hooks.session-label",
"descriptionKey": "panels.hooks.session-description",
"widget": "HookRow",
"tab": 19,
"tab": 20,
"tabLabel": "panels.hooks.title",
"subTab": 1,
"subTabLabel": "panels.hooks.title"
},
{
"labelKey": "panels.idle.enable-label",
"descriptionKey": "panels.idle.enable-description",
"widget": "NToggle",
"tab": 13,
"tabLabel": "common.idle",
"subTab": 0,
"subTabLabel": "panels.idle.tab-behavior"
},
{
"labelKey": "panels.idle.status-label",
"descriptionKey": "panels.idle.status-description",
"widget": "NLabel",
"tab": 13,
"tabLabel": "common.idle",
"subTab": 0,
"subTabLabel": "panels.idle.tab-behavior"
},
{
"labelKey": "panels.idle.timeouts-label",
"descriptionKey": "panels.idle.timeouts-description",
"widget": "NLabel",
"tab": 13,
"tabLabel": "common.idle",
"subTab": 0,
"subTabLabel": "panels.idle.tab-behavior"
},
{
"labelKey": "panels.idle.screen-off-label",
"descriptionKey": "panels.idle.screen-off-description",
"widget": "NSpinBox",
"tab": 13,
"tabLabel": "common.idle",
"subTab": 0,
"subTabLabel": "panels.idle.tab-behavior"
},
{
"labelKey": "panels.idle.lock-label",
"descriptionKey": "panels.idle.lock-description",
"widget": "NSpinBox",
"tab": 13,
"tabLabel": "common.idle",
"subTab": 0,
"subTabLabel": "panels.idle.tab-behavior"
},
{
"labelKey": "common.suspend",
"descriptionKey": "panels.idle.suspend-description",
"widget": "NSpinBox",
"tab": 13,
"tabLabel": "common.idle",
"subTab": 0,
"subTabLabel": "panels.idle.tab-behavior"
},
{
"labelKey": "panels.idle.fade-duration-label",
"descriptionKey": "panels.idle.fade-duration-description",
"widget": "NSpinBox",
"tab": 13,
"tabLabel": "common.idle",
"subTab": 0,
"subTabLabel": "panels.idle.tab-behavior"
},
{
"labelKey": "panels.idle.custom-label",
"descriptionKey": "panels.idle.custom-description",
"widget": "NLabel",
"tab": 13,
"tabLabel": "common.idle",
"subTab": 1,
"subTabLabel": "panels.idle.tab-custom"
},
{
"labelKey": "panels.idle.custom-entry-timeout",
"descriptionKey": null,
"widget": "NSpinBox",
"tab": 13,
"tabLabel": "common.idle",
"subTab": 1,
"subTabLabel": "panels.idle.tab-custom"
},
{
"labelKey": "panels.idle.custom-entry-command",
"descriptionKey": null,
"widget": "NTextInput",
"tab": 13,
"tabLabel": "common.idle",
"subTab": 1,
"subTabLabel": "panels.idle.tab-custom"
},
{
"labelKey": "panels.launcher.settings-clipboard-history-label",
"descriptionKey": "panels.launcher.settings-clipboard-history-description",
@@ -1489,7 +1596,7 @@
"labelKey": "panels.plugins.available-no-plugins-label",
"descriptionKey": "panels.plugins.available-no-plugins-description",
"widget": "NLabel",
"tab": 18,
"tab": 19,
"tabLabel": "panels.plugins.title",
"subTab": 1,
"subTabLabel": "common.available"
@@ -1498,7 +1605,7 @@
"labelKey": "panels.plugins.auto-update",
"descriptionKey": "panels.plugins.auto-update-description",
"widget": "NToggle",
"tab": 18,
"tab": 19,
"tabLabel": "panels.plugins.title",
"subTab": 0,
"subTabLabel": "common.installed"
@@ -1507,7 +1614,7 @@
"labelKey": "panels.plugins.installed-no-plugins-label",
"descriptionKey": "panels.plugins.installed-no-plugins-description",
"widget": "NLabel",
"tab": 18,
"tab": 19,
"tabLabel": "panels.plugins.title",
"subTab": 0,
"subTabLabel": "common.installed"
@@ -1516,7 +1623,7 @@
"labelKey": "panels.plugins.sources-add-dialog-name",
"descriptionKey": null,
"widget": "NTextInput",
"tab": 18,
"tab": 19,
"tabLabel": "panels.plugins.title",
"subTab": 2,
"subTabLabel": "common.sources"
@@ -1525,7 +1632,7 @@
"labelKey": "panels.plugins.sources-add-dialog-url",
"descriptionKey": null,
"widget": "NTextInput",
"tab": 18,
"tab": 19,
"tabLabel": "panels.plugins.title",
"subTab": 2,
"subTabLabel": "common.sources"
@@ -1534,7 +1641,7 @@
"labelKey": "panels.location.date-time-use-analog-label",
"descriptionKey": "panels.location.date-time-use-analog-description",
"widget": "NToggle",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 2,
"subTabLabel": "common.calendar-panel"
@@ -1543,7 +1650,7 @@
"labelKey": "panels.location.date-time-week-numbers-label",
"descriptionKey": "panels.location.date-time-week-numbers-description",
"widget": "NToggle",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 2,
"subTabLabel": "common.calendar-panel"
@@ -1552,7 +1659,7 @@
"labelKey": "panels.location.date-time-show-events-label",
"descriptionKey": "panels.location.date-time-show-events-description",
"widget": "NToggle",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 2,
"subTabLabel": "common.calendar-panel"
@@ -1561,7 +1668,7 @@
"labelKey": "panels.location.date-time-12hour-format-label",
"descriptionKey": "panels.location.date-time-12hour-format-description",
"widget": "NToggle",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 1,
"subTabLabel": "common.date"
@@ -1570,7 +1677,7 @@
"labelKey": "panels.location.date-time-first-day-of-week-label",
"descriptionKey": "panels.location.date-time-first-day-of-week-description",
"widget": "NComboBox",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 1,
"subTabLabel": "common.date"
@@ -1579,7 +1686,7 @@
"labelKey": "panels.general.language-select-label",
"descriptionKey": "panels.general.language-select-description",
"widget": "NComboBox",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 0,
"subTabLabel": "common.location"
@@ -1588,7 +1695,7 @@
"labelKey": "panels.location.location-search-label",
"descriptionKey": "panels.location.location-search-description",
"widget": "NTextInput",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 0,
"subTabLabel": "common.location"
@@ -1597,7 +1704,7 @@
"labelKey": "panels.location.weather-enabled-label",
"descriptionKey": "panels.location.weather-enabled-description",
"widget": "NToggle",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 0,
"subTabLabel": "common.location"
@@ -1606,7 +1713,7 @@
"labelKey": "panels.location.weather-fahrenheit-label",
"descriptionKey": "panels.location.weather-fahrenheit-description",
"widget": "NToggle",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 0,
"subTabLabel": "common.location"
@@ -1615,7 +1722,7 @@
"labelKey": "panels.location.weather-show-effects-label",
"descriptionKey": "panels.location.weather-show-effects-description",
"widget": "NToggle",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 0,
"subTabLabel": "common.location"
@@ -1624,7 +1731,7 @@
"labelKey": "panels.location.weather-hide-city-label",
"descriptionKey": "panels.location.weather-hide-city-description",
"widget": "NToggle",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 0,
"subTabLabel": "common.location"
@@ -1633,7 +1740,7 @@
"labelKey": "panels.location.weather-hide-timezone-label",
"descriptionKey": "panels.location.weather-hide-timezone-description",
"widget": "NToggle",
"tab": 16,
"tab": 17,
"tabLabel": "panels.region.title",
"subTab": 0,
"subTabLabel": "common.location"
@@ -1678,7 +1785,7 @@
"labelKey": "panels.system-monitor.enable-dgpu-monitoring-label",
"descriptionKey": "panels.system-monitor.enable-dgpu-monitoring-description",
"widget": "NToggle",
"tab": 17,
"tab": 18,
"tabLabel": "system-monitor.title",
"subTab": 0,
"subTabLabel": "common.general"
@@ -1687,7 +1794,7 @@
"labelKey": "panels.system-monitor.use-custom-highlight-colors-label",
"descriptionKey": "panels.system-monitor.use-custom-highlight-colors-description",
"widget": "NToggle",
"tab": 17,
"tab": 18,
"tabLabel": "system-monitor.title",
"subTab": 0,
"subTabLabel": "common.general"
@@ -1696,7 +1803,7 @@
"labelKey": "panels.system-monitor.external-monitor-label",
"descriptionKey": "panels.system-monitor.external-monitor-description",
"widget": "NTextInput",
"tab": 17,
"tab": 18,
"tabLabel": "system-monitor.title",
"subTab": 0,
"subTabLabel": "common.general"
+1
View File
@@ -129,6 +129,7 @@ Singleton {
"settings-notifications": "bell",
"settings-osd": "picture-in-picture",
"settings-about": "info-square-rounded",
"settings-idle": "moon",
"settings-lock-screen": "lock",
"settings-session-menu": "power",
"settings-system-monitor": "activity",
+13
View File
@@ -670,6 +670,8 @@ Singleton {
property int brightnessStep: 5
property bool enforceMinimum: true
property bool enableDdcSupport: false
property list<var> backlightDeviceMappings: []
// Format: [{ "output": "eDP-1", "device": "/sys/class/backlight/intel_backlight" }]
}
property JsonObject colorSchemes: JsonObject {
@@ -719,9 +721,20 @@ Singleton {
property bool autoUpdate: false
}
// idle management
property JsonObject idle: JsonObject {
property bool enabled: false
property int screenOffTimeout: 0 // seconds, 0 = disabled
property int lockTimeout: 0 // seconds, 0 = disabled
property int suspendTimeout: 0 // seconds, 0 = disabled
property int fadeDuration: 5 // seconds of fade-to-black before action fires
property string customCommands: "[]" // JSON array of {timeout, command}
}
// desktop widgets
property JsonObject desktopWidgets: JsonObject {
property bool enabled: false
property bool overviewEnabled: true
property bool gridSnap: false
property list<var> monitorWidgets: []
// Format: [{ "name": "DP-1", "widgets": [...] }, { "name": "HDMI-1", "widgets": [...] }]
+52
View File
@@ -0,0 +1,52 @@
import QtQuick
import Quickshell
import Quickshell.Wayland
import qs.Commons
import qs.Services.Power
/**
* IdleFadeOverlay full-screen fade-to-black shown before each idle action.
*
* A single Loader wraps a Variants so per-screen windows only exist while
* a fade is in progress, keeping VRAM usage at zero at rest.
*
* Any mouse movement cancels the fade and unloads the windows immediately.
*/
Item {
id: root
Loader {
active: IdleService.fadePending !== ""
asynchronous: false
sourceComponent: Variants {
model: Quickshell.screens
delegate: PanelWindow {
id: overlay
required property ShellScreen modelData
screen: modelData
color: Qt.rgba(0, 0, 0, 0)
WlrLayershell.layer: WlrLayer.Overlay
WlrLayershell.namespace: "noctalia-fade-overlay"
WlrLayershell.keyboardFocus: WlrKeyboardFocus.None
WlrLayershell.exclusionMode: ExclusionMode.Ignore
WlrLayershell.anchors {
top: true
bottom: true
left: true
right: true
}
ColorAnimation on color {
running: true
from: Qt.rgba(0, 0, 0, 0)
to: Qt.rgba(0, 0, 0, 1)
duration: IdleService.fadeDuration * 1000
easing.type: Easing.InQuad
}
}
}
}
}
+1
View File
@@ -205,6 +205,7 @@ Item {
rotateText: isVerticalBar && currentMaxTextLength > 0
autoHide: false
forceOpen: _pillForceOpen
forceClose: !_pillForceOpen
customTextIconColor: iconColor
// Helper function to build tooltip content
+1 -5
View File
@@ -155,11 +155,7 @@ NBox {
colorBg: "transparent"
colorBgHover: Color.mHover
colorFgHover: Color.mOnHover
onClicked: {
if (AudioService.sink && AudioService.sink.audio) {
AudioService.sink.audio.muted = !AudioService.muted;
}
}
onClicked: AudioService.setOutputMuted(!AudioService.muted)
}
NText {
+2 -1
View File
@@ -50,7 +50,8 @@ Variants {
}
// Only create PanelWindow if enabled AND (screen has widgets OR in edit mode)
active: modelData && Settings.data.desktopWidgets.enabled && (screenWidgets.length > 0 || DesktopWidgetRegistry.editMode) && !PowerProfileService.noctaliaPerformanceMode && !PanelService.lockScreen?.active
// During compositor overview, show widgets only when overviewEnabled is true.
active: modelData && Settings.data.desktopWidgets.enabled && (screenWidgets.length > 0 || DesktopWidgetRegistry.editMode) && (!CompositorService.overviewActive || Settings.data.desktopWidgets.overviewEnabled) && !PowerProfileService.noctaliaPerformanceMode && !PanelService.lockScreen?.active
sourceComponent: PanelWindow {
id: window
+35 -6
View File
@@ -94,22 +94,49 @@ Loader {
// Bar detection and positioning properties
readonly property bool hasBar: modelData && modelData.name ? (Settings.data.bar.monitors.includes(modelData.name) || (Settings.data.bar.monitors.length === 0)) : false
readonly property bool barAtSameEdge: hasBar && Settings.getBarPositionForScreen(modelData?.name) === dockPosition
readonly property string barPosition: Settings.getBarPositionForScreen(modelData?.name)
readonly property bool barIsVertical: barPosition === "left" || barPosition === "right"
readonly property bool barIsFramed: Settings.data.bar.barType === "framed" && hasBar
readonly property real barMarginH: Settings.data.bar.floating ? Math.ceil(Settings.data.bar.marginHorizontal) : 0
readonly property real barMarginV: Settings.data.bar.floating ? Math.ceil(Settings.data.bar.marginVertical) : 0
readonly property int barHeight: Style.getBarHeightForScreen(modelData?.name)
readonly property int peekEdgeLength: {
const edgeSize = isVertical ? Math.round(modelData?.height || maxHeight) : Math.round(modelData?.width || maxWidth);
const minLength = Math.max(1, Math.round(edgeSize * 0.1));
const minLength = Math.max(1, Math.round(edgeSize * ((isStaticMode && Settings.data.dock.showFrameIndicator && Settings.data.bar.barType === "framed" && hasBar) ? 0.1 : 0.25)));
return Math.max(minLength, frameIndicatorLength);
}
readonly property int peekCenterOffsetX: {
if (isVertical)
return 0;
const edgeSize = Math.round(modelData?.width || maxWidth);
if (barIsVertical) {
if (barPosition === "left") {
const availableStart = (barIsFramed ? 0 : barMarginH) + barHeight;
const availableWidth = edgeSize - availableStart - (barIsFramed ? Settings.data.bar.frameThickness : 0);
return Math.max(0, Math.round(availableStart + (availableWidth - peekEdgeLength) / 2));
}
if (barPosition === "right") {
const availableWidth = edgeSize - (barIsFramed ? 0 : barMarginH) - barHeight - (barIsFramed ? Settings.data.bar.frameThickness : 0);
return Math.max(0, Math.round((barIsFramed ? Settings.data.bar.frameThickness : 0) + (availableWidth - peekEdgeLength) / 2));
}
}
return Math.max(0, Math.round((edgeSize - peekEdgeLength) / 2));
}
readonly property int peekCenterOffsetY: {
if (!isVertical)
return 0;
const edgeSize = Math.round(modelData?.height || maxHeight);
if (!barIsVertical) {
if (barPosition === "top") {
const availableStart = (barIsFramed ? 0 : barMarginV) + barHeight;
const availableHeight = edgeSize - availableStart - (barIsFramed ? Settings.data.bar.frameThickness : 0);
return Math.max(0, Math.round(availableStart + (availableHeight - peekEdgeLength) / 2));
}
if (barPosition === "bottom") {
const availableHeight = edgeSize - (barIsFramed ? 0 : barMarginV) - barHeight - (barIsFramed ? Settings.data.bar.frameThickness : 0);
return Math.max(0, Math.round((barIsFramed ? Settings.data.bar.frameThickness : 0) + (availableHeight - peekEdgeLength) / 2));
}
}
return Math.max(0, Math.round((edgeSize - peekEdgeLength) / 2));
}
readonly property bool showFrameIndicator: {
@@ -648,9 +675,7 @@ Loader {
implicitWidth: isVertical ? ((showFrameIndicator || barAtSameEdge) ? indicatorThickness : peekHeight) : peekEdgeLength
Rectangle {
anchors.centerIn: parent
width: isVertical ? indicatorThickness : frameIndicatorLength
height: isVertical ? frameIndicatorLength : indicatorThickness
anchors.fill: parent
radius: indicatorThickness
color: Qt.alpha(Color.mPrimary, 0.6)
opacity: showFrameIndicator && frameIndicatorLength > 0 ? 1 : 0
@@ -766,8 +791,9 @@ Loader {
readonly property int extraLeft: (!isVertical && !exclusive && barOnLeft) ? barHeight : 0
readonly property int extraRight: (!isVertical && !exclusive && barOnRight) ? barHeight : 0
width: dockContent.dockContainer.width + extraLeft + extraRight
height: dockContent.dockContainer.height + extraTop + extraBottom
// Add +2 buffer for fractional scaling issues
width: dockContent.dockContainer.width + extraLeft + extraRight + (root.isVertical ? 2 : Style.margin2XL * 6)
height: dockContent.dockContainer.height + extraTop + extraBottom + 2
anchors.horizontalCenter: isVertical ? undefined : parent.horizontalCenter
anchors.verticalCenter: isVertical ? parent.verticalCenter : undefined
@@ -777,6 +803,9 @@ Loader {
anchors.left: dockPosition === "left" ? parent.left : undefined
anchors.right: dockPosition === "right" ? parent.right : undefined
// Enable layer caching to reduce GPU usage from continuous animations
layer.enabled: true
opacity: hidden ? 0 : 1
scale: hidden ? 0.85 : 1
+3 -5
View File
@@ -19,6 +19,7 @@ Item {
required property int extraRight
property alias dockContainer: dockContainer
readonly property bool isStaticMode: Settings.data.dock.dockType === "static"
readonly property string tooltipDirection: dockRoot.dockPosition === "top" ? "bottom" : "top"
Rectangle {
id: dockContainer
@@ -40,9 +41,6 @@ Item {
border.width: Style.borderS
border.color: Qt.alpha(Color.mOutline, (isStaticMode ? 0 : Settings.data.dock.backgroundOpacity))
// Enable layer caching to reduce GPU usage from continuous animations
layer.enabled: true
MouseArea {
id: dockMouseArea
anchors.fill: parent
@@ -288,7 +286,7 @@ Item {
onEntered: {
dockRoot.anyAppHovered = true;
TooltipService.show(launcherButton, I18n.tr("actions.open-launcher"), "top");
TooltipService.show(launcherButton, I18n.tr("actions.open-launcher"), tooltipDirection);
if (dockRoot.autoHide) {
dockRoot.showTimer.stop();
dockRoot.hideTimer.stop();
@@ -664,7 +662,7 @@ Item {
const appName = appButton.appTitle || appButton.appId || "Unknown";
const tooltipText = appName.length > 40 ? appName.substring(0, 37) + "..." : appName;
if (!contextMenu.visible) {
TooltipService.show(appButton, tooltipText, "top");
TooltipService.show(appButton, tooltipText, tooltipDirection);
}
if (dockRoot.autoHide) {
dockRoot.showTimer.stop();
+9 -6
View File
@@ -37,7 +37,7 @@ PopupWindow {
property real menuMinWidth: 120
property real menuMaxWidth: 360
property real menuMaxHeight: Math.max(180, Math.min(420, Math.round((targetScreen ? targetScreen.height : 600) * 0.3)))
property int separatorCompactHeight: 8
property int separatorCompactHeight: Style.borderS + Style.margin2S
property string forcedGroupMenuMode: ""
readonly property int separatorIndex: {
for (let i = 0; i < root.items.length; i++) {
@@ -49,7 +49,7 @@ PopupWindow {
readonly property bool splitExtendedLayout: separatorIndex >= 0
readonly property var scrollItems: splitExtendedLayout ? root.items.slice(0, separatorIndex) : root.items
readonly property var fixedItems: splitExtendedLayout ? root.items.slice(separatorIndex + 1) : []
readonly property real menuInnerHeight: Math.max(0, implicitHeight - Style.marginXL)
readonly property real menuInnerHeight: Math.max(0, implicitHeight - Style.margin2M)
readonly property real fixedActionsHeight: listHeight(fixedItems)
readonly property real separatorBlockHeight: splitExtendedLayout ? separatorCompactHeight : 0
readonly property real scrollAreaHeight: splitExtendedLayout ? Math.max(0, menuInnerHeight - fixedActionsHeight - separatorBlockHeight) : menuInnerHeight
@@ -709,12 +709,14 @@ PopupWindow {
}
Rectangle {
id: separator
visible: root.splitExtendedLayout
anchors.left: parent.left
anchors.right: parent.right
anchors.top: menuFlick.bottom
anchors.leftMargin: Style.marginS
anchors.rightMargin: Style.marginS
anchors.topMargin: Style.marginS
height: Style.borderS
color: Qt.alpha(Color.mOutline, 0.7)
radius: Style.radiusXS
@@ -728,15 +730,16 @@ PopupWindow {
anchors.bottom: parent.bottom
anchors.leftMargin: Style.marginM
anchors.rightMargin: Style.marginM
anchors.topMargin: Style.marginS
anchors.bottomMargin: Style.marginM
anchors.top: menuFlick.bottom
anchors.topMargin: root.separatorBlockHeight
anchors.top: separator.bottom
spacing: 0
Repeater {
model: root.fixedItems
Rectangle {
id: fixedItemRect
readonly property int globalIndex: root.fixedItemGlobalIndex(index)
width: fixedColumn.width
height: root.rowHeightForItem(modelData)
@@ -755,7 +758,7 @@ PopupWindow {
NIcon {
icon: modelData.icon
pointSize: Style.fontSizeL
color: root.hoveredItem === parent.globalIndex ? Color.mOnHover : Color.mOnSurfaceVariant
color: root.hoveredItem === fixedItemRect.globalIndex ? Color.mOnHover : Color.mOnSurfaceVariant
visible: icon !== ""
anchors.verticalCenter: parent.verticalCenter
}
@@ -763,7 +766,7 @@ PopupWindow {
NText {
text: modelData.text
pointSize: Style.fontSizeS
color: root.hoveredItem === parent.globalIndex ? Color.mOnHover : Color.mOnSurfaceVariant
color: root.hoveredItem === fixedItemRect.globalIndex ? Color.mOnHover : Color.mOnSurfaceVariant
anchors.verticalCenter: parent.verticalCenter
width: fixedRowLayout.width - ((modelData.icon && modelData.icon !== "") ? (Style.fontSizeL + Style.marginS) : 0)
elide: Text.ElideRight
+14
View File
@@ -31,6 +31,7 @@ import qs.Modules.Panels.SystemStats
import qs.Modules.Panels.Tray
import qs.Modules.Panels.Wallpaper
import qs.Services.Compositor
import qs.Services.Power
import qs.Services.UI
/**
@@ -593,6 +594,19 @@ PanelWindow {
}
}
}
// Native idle inhibitor one per active MainScreen window.
// Multiple inhibitors bound to the same enabled state are harmless;
// having one per screen is more robust than picking a "primary" screen.
IdleInhibitor {
window: root
enabled: IdleInhibitorService.isInhibited
Component.onCompleted: {
IdleInhibitorService.nativeInhibitorAvailable = true;
Logger.d("IdleInhibitor", "Native IdleInhibitor active on screen:", root.screen?.name);
}
}
}
// Centralized Keyboard Shortcuts
+2
View File
@@ -155,6 +155,8 @@ Item {
function open(buttonItem, buttonName) {
// Reset immediate close flag to ensure animations work properly
PanelService.closedImmediately = false;
// Reset to default - fixes panel being stuck in one position
root.useButtonPosition = false;
if (!buttonItem && buttonName) {
// Check if buttonName is actually a point object (click coordinates)
+2 -2
View File
@@ -287,7 +287,7 @@ SmartPanel {
}
NText {
text: Math.round(localOutputVolume * 100) + "%"
text: Math.round((localOutputVolumeChanging ? localOutputVolume : AudioService.volume) * 100) + "%"
pointSize: Style.fontSizeM
family: Settings.data.ui.fontFixed
color: Color.mOnSurface
@@ -362,7 +362,7 @@ SmartPanel {
}
NText {
text: Math.round(localInputVolume * 100) + "%"
text: Math.round((localInputVolumeChanging ? localInputVolume : AudioService.inputVolume) * 100) + "%"
pointSize: Style.fontSizeM
family: Settings.data.ui.fontFixed
color: Color.mOnSurface
+1 -1
View File
@@ -201,7 +201,7 @@ NBox {
color: Color.mError
radius: height * 0.5
width: Math.round(forgettingText.implicitWidth + Style.margin2S)
height: math.round(forgettingText.implicitHeight + Style.margin2XXS)
height: Math.round(forgettingText.implicitHeight + Style.margin2XXS)
NText {
id: forgettingText
+14 -7
View File
@@ -157,11 +157,16 @@ SmartPanel {
// Lifecycle handlers
onOpened: {
selectedIndex = -1;
ignoreMouseHover = true;
globalMouseInitialized = false;
mouseTrackingReady = false;
mouseTrackingDelayTimer.restart();
if (powerOptions.length > 0) {
selectedIndex = -1;
ignoreMouseHover = true;
globalMouseInitialized = false;
mouseTrackingReady = false;
mouseTrackingDelayTimer.restart();
} else {
Logger.w("SessionMenu", "Trying to open an empty session menu");
root.closeImmediately();
}
}
onClosed: {
@@ -322,13 +327,15 @@ SmartPanel {
newCol = newCol - 1 < 0 ? grid.itemsInRow(newRow) - 1 : newCol - 1;
break;
case "right":
newCol = newCol + 1 >= grid.itemsInRow(newRow) ? 0 : newCol + 1;
// We already moved to newCol to 0 if grid.currentCol was negative
newCol = grid.currentCol < 0 ? newRow : newCol + 1 >= grid.itemsInRow(newRow) ? 0 : newCol + 1;
break;
case "up":
newRow = newRow - 1 < 0 ? grid.rows - 1 : newRow - 1;
break;
case "down":
newRow = newRow + 1 >= grid.rows ? 0 : newRow + 1;
// We already moved to newRow to 0 if grid.currentRow was negative
newRow = grid.currentRow < 0 ? newRow : newRow + 1 >= grid.rows ? 0 : newRow + 1;
break;
}
+30 -3
View File
@@ -14,6 +14,7 @@ import qs.Modules.Panels.Settings.Tabs.ControlCenter
import qs.Modules.Panels.Settings.Tabs.Display
import qs.Modules.Panels.Settings.Tabs.Dock
import qs.Modules.Panels.Settings.Tabs.Hooks
import qs.Modules.Panels.Settings.Tabs.Idle
import qs.Modules.Panels.Settings.Tabs.Launcher
import qs.Modules.Panels.Settings.Tabs.LockScreen
import qs.Modules.Panels.Settings.Tabs.Notifications
@@ -325,13 +326,29 @@ Item {
highlightOverlay.opacity = 0;
}
// Find and highlight a widget by its label key
function isEffectivelyVisible(item) {
var current = item;
while (current) {
if (current.visible === false)
return false;
if (current.opacity !== undefined && current.opacity <= 0)
return false;
current = current.parent;
}
return true;
}
// Find and highlight a widget by its label key.
function findAndHighlightWidget(item, labelKey) {
if (!item)
return null;
// Check if this item has a matching label
if (item.hasOwnProperty("label") && item.label === I18n.tr(labelKey)) {
// Skip hidden branches to avoid highlighting controls that are not on screen.
if (!isEffectivelyVisible(item))
return null;
// Check if this item has a matching label.
if (item.hasOwnProperty("label") && item.label === I18n.tr(labelKey) && item.width > 0 && item.height > 0) {
return item;
}
@@ -446,6 +463,10 @@ Item {
id: hooksTab
HooksTab {}
}
Component {
id: idleTab
IdleTab {}
}
Component {
id: dockTab
DockTab {}
@@ -563,6 +584,12 @@ Item {
"icon": "settings-session-menu",
"source": sessionMenuTab
},
{
"id": SettingsPanel.Tab.Idle,
"label": "common.idle",
"icon": "settings-idle",
"source": idleTab
},
{
"id": SettingsPanel.Tab.Audio,
"label": "panels.audio.title",
@@ -82,6 +82,7 @@ SmartPanel {
Dock,
General,
Hooks,
Idle,
Launcher,
Location,
Connections,
@@ -67,11 +67,7 @@ ColumnLayout {
label: I18n.tr("panels.audio.volumes-mute-output-label")
description: I18n.tr("panels.audio.volumes-mute-output-description")
checked: AudioService.muted
onToggled: checked => {
if (AudioService.sink && AudioService.sink.audio) {
AudioService.sink.audio.muted = checked;
}
}
onToggled: checked => AudioService.setOutputMuted(checked)
}
}
@@ -196,7 +196,7 @@ Item {
id: connectedDevicesBox
visible: root.connectedDevices.length > 0 && BluetoothService.enabled
Layout.fillWidth: true
Layout.preferredHeight: connectedDevicesCol.implicitHeight + Style.marginXL
Layout.preferredHeight: connectedDevicesCol.implicitHeight + Style.margin2M
border.color: showOnlyLists ? Style.boxBorderColor : "transparent"
ColumnLayout {
@@ -226,7 +226,7 @@ Item {
id: pairedDevicesBox
visible: root.pairedDevices.length > 0 && BluetoothService.enabled
Layout.fillWidth: true
Layout.preferredHeight: pairedDevicesCol.implicitHeight + Style.marginXL
Layout.preferredHeight: pairedDevicesCol.implicitHeight + Style.margin2M
border.color: showOnlyLists ? Style.boxBorderColor : "transparent"
ColumnLayout {
@@ -256,7 +256,7 @@ Item {
id: availableDevicesBox
visible: !root.showOnlyLists && root.unnamedAvailableDevices.length > 0 && BluetoothService.enabled
Layout.fillWidth: true
Layout.preferredHeight: availableDevicesCol.implicitHeight + Style.marginXL
Layout.preferredHeight: availableDevicesCol.implicitHeight + Style.margin2M
border.color: "transparent"
ColumnLayout {
@@ -36,6 +36,16 @@ ColumnLayout {
onToggled: checked => Settings.data.desktopWidgets.enabled = checked
}
NToggle {
Layout.fillWidth: true
enabled: Settings.data.desktopWidgets.enabled
label: I18n.tr("panels.desktop-widgets.overview-enabled-label")
description: I18n.tr("panels.desktop-widgets.overview-enabled-description")
checked: Settings.data.desktopWidgets.overviewEnabled
defaultValue: Settings.getDefaultValue("desktopWidgets.overviewEnabled")
onToggled: checked => Settings.data.desktopWidgets.overviewEnabled = checked
}
ColumnLayout {
enabled: Settings.data.desktopWidgets.enabled
@@ -25,6 +25,34 @@ ColumnLayout {
property var brightnessMonitor: BrightnessService.getMonitorForScreen(modelData)
property real localBrightness: 0.5
property bool localBrightnessChanging: false
readonly property string automaticOptionLabel: {
var baseLabel = I18n.tr("panels.display.monitors-backlight-device-auto-option");
var autoDevicePath = (BrightnessService.availableBacklightDevices && BrightnessService.availableBacklightDevices.length > 0) ? BrightnessService.availableBacklightDevices[0] : "";
if (autoDevicePath === "")
return baseLabel;
var autoDeviceName = BrightnessService.getBacklightDeviceName(autoDevicePath) || autoDevicePath;
return baseLabel + "(" + autoDeviceName + ")";
}
readonly property var backlightDeviceOptions: {
var options = [
{
"key": "",
"name": automaticOptionLabel
}
];
var devices = BrightnessService.availableBacklightDevices || [];
for (var i = 0; i < devices.length; i++) {
var devicePath = devices[i];
var deviceName = BrightnessService.getBacklightDeviceName(devicePath) || devicePath;
options.push({
"key": devicePath,
"name": deviceName
});
}
return options;
}
onBrightnessMonitorChanged: {
if (brightnessMonitor && !localBrightnessChanging)
@@ -160,13 +188,23 @@ ColumnLayout {
}
NText {
visible: brightnessMonitor && !brightnessMonitor.brightnessControlAvailable
visible: brightnessMonitor && !brightnessMonitor.brightnessControlAvailable && !(brightnessMonitor.method === "internal" && brightnessMonitor.initInProgress)
text: !Settings.data.brightness.enableDdcSupport ? I18n.tr("panels.display.monitors-brightness-unavailable-ddc-disabled") : I18n.tr("panels.display.monitors-brightness-unavailable-generic")
pointSize: Style.fontSizeXS
color: Color.mOnSurfaceVariant
Layout.fillWidth: true
wrapMode: Text.WordWrap
}
NComboBox {
Layout.fillWidth: true
visible: brightnessMonitor && brightnessMonitor.method === "internal"
label: I18n.tr("panels.display.monitors-backlight-device-label")
description: I18n.tr("panels.display.monitors-backlight-device-description")
model: backlightDeviceOptions
currentKey: BrightnessService.getMappedBacklightDevice(modelData.name) || ""
onSelected: key => BrightnessService.setMappedBacklightDevice(modelData.name, key)
}
}
}
}
@@ -0,0 +1,115 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import qs.Commons
import qs.Services.Power
import qs.Widgets
ColumnLayout {
id: root
spacing: Style.marginL
Layout.fillWidth: true
// Master enable
NToggle {
Layout.fillWidth: true
label: I18n.tr("panels.idle.enable-label")
description: I18n.tr("panels.idle.enable-description")
checked: Settings.data.idle.enabled
defaultValue: Settings.getDefaultValue("idle.enabled")
onToggled: checked => Settings.data.idle.enabled = checked
}
// Live idle status
RowLayout {
Layout.fillWidth: true
enabled: Settings.data.idle.enabled
visible: IdleService.nativeIdleMonitorAvailable
NLabel {
label: I18n.tr("panels.idle.status-label")
description: I18n.tr("panels.idle.status-description")
}
Item {
Layout.fillWidth: true
}
NText {
Layout.alignment: Qt.AlignBottom | Qt.AlignRight
text: IdleService.idleSeconds > 0 ? I18n.trp("common.second", IdleService.idleSeconds) : I18n.tr("common.active")
family: Settings.data.ui.fontFixed
pointSize: Style.fontSizeM
color: IdleService.idleSeconds > 0 ? Color.mPrimary : Color.mOnSurfaceVariant
}
}
NLabel {
visible: !IdleService.nativeIdleMonitorAvailable
description: I18n.tr("panels.idle.unavailable")
}
NDivider {
Layout.fillWidth: true
}
// Timeout spinboxes (disabled when idle is off)
ColumnLayout {
Layout.fillWidth: true
spacing: Style.marginL
enabled: Settings.data.idle.enabled
NLabel {
label: I18n.tr("panels.idle.timeouts-label")
description: I18n.tr("panels.idle.timeouts-description")
}
NSpinBox {
label: I18n.tr("panels.idle.screen-off-label")
description: I18n.tr("panels.idle.screen-off-description")
from: 0
to: 86400
suffix: "s"
value: Settings.data.idle.screenOffTimeout
defaultValue: 0
onValueChanged: Settings.data.idle.screenOffTimeout = value
}
NSpinBox {
label: I18n.tr("panels.idle.lock-label")
description: I18n.tr("panels.idle.lock-description")
from: 0
to: 86400
suffix: "s"
value: Settings.data.idle.lockTimeout
defaultValue: 0
onValueChanged: Settings.data.idle.lockTimeout = value
}
NSpinBox {
label: I18n.tr("common.suspend")
description: I18n.tr("panels.idle.suspend-description")
from: 0
to: 86400
suffix: "s"
value: Settings.data.idle.suspendTimeout
defaultValue: 0
onValueChanged: Settings.data.idle.suspendTimeout = value
}
NDivider {
Layout.fillWidth: true
}
NSpinBox {
label: I18n.tr("panels.idle.fade-duration-label")
description: I18n.tr("panels.idle.fade-duration-description")
from: 1
to: 60
suffix: "s"
value: Settings.data.idle.fadeDuration
defaultValue: Settings.getDefaultValue("idle.fadeDuration")
onValueChanged: Settings.data.idle.fadeDuration = value
}
}
}
@@ -0,0 +1,158 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import qs.Commons
import qs.Services.Power
import qs.Widgets
ColumnLayout {
id: root
spacing: Style.marginL
Layout.fillWidth: true
enabled: Settings.data.idle.enabled
property bool _saving: false
ListModel {
id: entriesModel
}
function _loadToModel() {
if (_saving)
return;
entriesModel.clear();
var entries = [];
try {
entries = JSON.parse(Settings.data.idle.customCommands);
} catch (e) {
Logger.w("CustomSubTab", "Failed to parse customCommands:", e);
}
for (var i = 0; i < entries.length; i++) {
entriesModel.append({
"timeout": parseInt(entries[i].timeout) || 60,
"command": String(entries[i].command || "")
});
}
}
function _saveFromModel() {
_saving = true;
var arr = [];
for (var i = 0; i < entriesModel.count; i++) {
var item = entriesModel.get(i);
arr.push({
"timeout": item.timeout,
"command": item.command
});
}
Settings.data.idle.customCommands = JSON.stringify(arr);
_saving = false;
}
Component.onCompleted: _loadToModel()
Connections {
target: Settings.data.idle
function onCustomCommandsChanged() {
root._loadToModel();
}
}
NLabel {
label: I18n.tr("panels.idle.custom-label")
description: I18n.tr("panels.idle.custom-description")
}
NDivider {
Layout.fillWidth: true
Layout.topMargin: Style.marginS
Layout.bottomMargin: Style.marginS
}
Repeater {
model: entriesModel
delegate: ColumnLayout {
id: entryDelegate
required property int index
required property int timeout
required property string command
spacing: Style.marginM
Layout.fillWidth: true
property bool _initialized: false
Component.onCompleted: {
commandInput.text = entryDelegate.command;
_initialized = false;
timeoutSpinBox.value = entryDelegate.timeout;
_initialized = true;
}
RowLayout {
Layout.fillWidth: true
spacing: Style.marginM
NSpinBox {
id: timeoutSpinBox
Layout.fillWidth: true
label: I18n.tr("panels.idle.custom-entry-timeout")
from: 1
to: 86400
suffix: "s"
onValueChanged: {
if (entryDelegate._initialized && !root._saving) {
entriesModel.setProperty(entryDelegate.index, "timeout", value);
root._saveFromModel();
}
}
}
NIconButton {
icon: "trash"
tooltipText: I18n.tr("panels.idle.custom-entry-delete")
Layout.alignment: Qt.AlignBottom
onClicked: {
entriesModel.remove(entryDelegate.index, 1);
root._saveFromModel();
}
}
}
NTextInput {
id: commandInput
Layout.fillWidth: true
label: I18n.tr("panels.idle.custom-entry-command")
placeholderText: "notify-send \"Idle\""
fontFamily: Settings.data.ui.fontFixed
onTextChanged: {
if (entryDelegate._initialized && !root._saving) {
entriesModel.setProperty(entryDelegate.index, "command", text);
root._saveFromModel();
}
}
}
NDivider {
Layout.fillWidth: true
Layout.topMargin: Style.marginS
Layout.bottomMargin: Style.marginS
visible: entryDelegate.index < entriesModel.count - 1
}
}
}
NButton {
text: I18n.tr("panels.idle.custom-add")
icon: "add"
enabled: Settings.data.idle.enabled
onClicked: {
entriesModel.append({
"timeout": 60,
"command": ""
});
root._saveFromModel();
}
}
}
@@ -0,0 +1,42 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import qs.Commons
import qs.Widgets
ColumnLayout {
id: root
spacing: 0
NTabBar {
id: subTabBar
Layout.fillWidth: true
Layout.bottomMargin: Style.marginM
distributeEvenly: true
currentIndex: tabView.currentIndex
NTabButton {
text: I18n.tr("panels.idle.tab-behavior")
tabIndex: 0
checked: subTabBar.currentIndex === 0
}
NTabButton {
text: I18n.tr("panels.idle.tab-custom")
tabIndex: 1
checked: subTabBar.currentIndex === 1
}
}
Item {
Layout.fillWidth: true
Layout.preferredHeight: Style.marginL
}
NTabView {
id: tabView
currentIndex: subTabBar.currentIndex
BehaviorSubTab {}
CustomSubTab {}
}
}
@@ -8,6 +8,7 @@ ColumnLayout {
id: root
spacing: Style.marginL
Layout.fillWidth: true
enabled: Settings.data.notifications.enabled
NToggle {
label: I18n.tr("panels.notifications.duration-respect-expire-label")
@@ -9,7 +9,7 @@ import qs.Widgets
ColumnLayout {
id: root
spacing: Style.marginL
Layout.fillWidth: true
property var addMonitor
@@ -23,119 +23,124 @@ ColumnLayout {
defaultValue: Settings.getDefaultValue("notifications.enabled")
}
NComboBox {
label: I18n.tr("panels.notifications.settings-density-label")
description: I18n.tr("panels.notifications.settings-density-description")
model: [
{
"key": "default",
"name": I18n.tr("options.notification-density.default")
},
{
"key": "compact",
"name": I18n.tr("options.notification-density.compact")
}
]
currentKey: Settings.data.notifications.density || "default"
onSelected: key => Settings.data.notifications.density = key
defaultValue: Settings.getDefaultValue("notifications.density")
}
ColumnLayout {
spacing: Style.marginL
enabled: Settings.data.notifications.enabled
NToggle {
label: I18n.tr("tooltips.do-not-disturb-enabled")
description: I18n.tr("panels.notifications.settings-do-not-disturb-description")
checked: NotificationService.doNotDisturb
onToggled: checked => NotificationService.doNotDisturb = checked
}
NComboBox {
label: I18n.tr("panels.notifications.settings-density-label")
description: I18n.tr("panels.notifications.settings-density-description")
model: [
{
"key": "default",
"name": I18n.tr("options.notification-density.default")
},
{
"key": "compact",
"name": I18n.tr("options.notification-density.compact")
}
]
currentKey: Settings.data.notifications.density || "default"
onSelected: key => Settings.data.notifications.density = key
defaultValue: Settings.getDefaultValue("notifications.density")
}
NComboBox {
label: I18n.tr("common.position")
description: I18n.tr("panels.notifications.settings-location-description")
model: [
{
"key": "top",
"name": I18n.tr("positions.top-center")
},
{
"key": "top_left",
"name": I18n.tr("positions.top-left")
},
{
"key": "top_right",
"name": I18n.tr("positions.top-right")
},
{
"key": "bottom",
"name": I18n.tr("positions.bottom-center")
},
{
"key": "bottom_left",
"name": I18n.tr("positions.bottom-left")
},
{
"key": "bottom_right",
"name": I18n.tr("positions.bottom-right")
}
]
currentKey: Settings.data.notifications.location || "top_right"
onSelected: key => Settings.data.notifications.location = key
defaultValue: Settings.getDefaultValue("notifications.location")
}
NToggle {
label: I18n.tr("tooltips.do-not-disturb-enabled")
description: I18n.tr("panels.notifications.settings-do-not-disturb-description")
checked: NotificationService.doNotDisturb
onToggled: checked => NotificationService.doNotDisturb = checked
}
NToggle {
label: I18n.tr("panels.osd.always-on-top-label")
description: I18n.tr("panels.notifications.settings-always-on-top-description")
checked: Settings.data.notifications.overlayLayer
onToggled: checked => Settings.data.notifications.overlayLayer = checked
defaultValue: Settings.getDefaultValue("notifications.overlayLayer")
}
NComboBox {
label: I18n.tr("common.position")
description: I18n.tr("panels.notifications.settings-location-description")
model: [
{
"key": "top",
"name": I18n.tr("positions.top-center")
},
{
"key": "top_left",
"name": I18n.tr("positions.top-left")
},
{
"key": "top_right",
"name": I18n.tr("positions.top-right")
},
{
"key": "bottom",
"name": I18n.tr("positions.bottom-center")
},
{
"key": "bottom_left",
"name": I18n.tr("positions.bottom-left")
},
{
"key": "bottom_right",
"name": I18n.tr("positions.bottom-right")
}
]
currentKey: Settings.data.notifications.location || "top_right"
onSelected: key => Settings.data.notifications.location = key
defaultValue: Settings.getDefaultValue("notifications.location")
}
NValueSlider {
Layout.fillWidth: true
label: I18n.tr("panels.osd.background-opacity-label")
description: I18n.tr("panels.notifications.settings-background-opacity-description")
from: 0
to: 1
stepSize: 0.01
showReset: true
value: Settings.data.notifications.backgroundOpacity
onMoved: value => Settings.data.notifications.backgroundOpacity = value
text: Math.round(Settings.data.notifications.backgroundOpacity * 100) + "%"
defaultValue: Settings.getDefaultValue("notifications.backgroundOpacity")
}
NToggle {
label: I18n.tr("panels.osd.always-on-top-label")
description: I18n.tr("panels.notifications.settings-always-on-top-description")
checked: Settings.data.notifications.overlayLayer
onToggled: checked => Settings.data.notifications.overlayLayer = checked
defaultValue: Settings.getDefaultValue("notifications.overlayLayer")
}
NDivider {
Layout.fillWidth: true
}
NText {
text: I18n.tr("panels.notifications.monitors-desc")
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
Repeater {
model: Quickshell.screens || []
delegate: NCheckbox {
NValueSlider {
Layout.fillWidth: true
label: modelData.name || I18n.tr("common.unknown")
description: {
const compositorScale = CompositorService.getDisplayScale(modelData.name);
I18n.tr("system.monitor-description", {
"model": modelData.model,
"width": modelData.width * compositorScale,
"height": modelData.height * compositorScale,
"scale": compositorScale
});
}
checked: (Settings.data.notifications.monitors || []).indexOf(modelData.name) !== -1
onToggled: checked => {
if (checked) {
Settings.data.notifications.monitors = root.addMonitor(Settings.data.notifications.monitors, modelData.name);
} else {
Settings.data.notifications.monitors = root.removeMonitor(Settings.data.notifications.monitors, modelData.name);
label: I18n.tr("panels.osd.background-opacity-label")
description: I18n.tr("panels.notifications.settings-background-opacity-description")
from: 0
to: 1
stepSize: 0.01
showReset: true
value: Settings.data.notifications.backgroundOpacity
onMoved: value => Settings.data.notifications.backgroundOpacity = value
text: Math.round(Settings.data.notifications.backgroundOpacity * 100) + "%"
defaultValue: Settings.getDefaultValue("notifications.backgroundOpacity")
}
NDivider {
Layout.fillWidth: true
}
NText {
text: I18n.tr("panels.notifications.monitors-desc")
wrapMode: Text.WordWrap
Layout.fillWidth: true
}
Repeater {
model: Quickshell.screens || []
delegate: NCheckbox {
Layout.fillWidth: true
label: modelData.name || I18n.tr("common.unknown")
description: {
const compositorScale = CompositorService.getDisplayScale(modelData.name);
I18n.tr("system.monitor-description", {
"model": modelData.model,
"width": modelData.width * compositorScale,
"height": modelData.height * compositorScale,
"scale": compositorScale
});
}
checked: (Settings.data.notifications.monitors || []).indexOf(modelData.name) !== -1
onToggled: checked => {
if (checked) {
Settings.data.notifications.monitors = root.addMonitor(Settings.data.notifications.monitors, modelData.name);
} else {
Settings.data.notifications.monitors = root.removeMonitor(Settings.data.notifications.monitors, modelData.name);
}
}
}
}
}
}
}
@@ -8,6 +8,7 @@ ColumnLayout {
id: root
spacing: Style.marginL
Layout.fillWidth: true
enabled: Settings.data.notifications.enabled
NToggle {
label: I18n.tr("panels.notifications.history-clear-dismiss-label")
@@ -10,6 +10,7 @@ ColumnLayout {
id: root
spacing: Style.marginL
Layout.fillWidth: true
enabled: Settings.data.notifications.enabled
signal openUnifiedPicker
signal openLowPicker
+11 -15
View File
@@ -260,19 +260,17 @@ PopupWindow {
const tipWidth = Math.ceil(Math.min(contentWidth + (padding * 2), maxWidth));
root.implicitWidth = tipWidth;
// Add +2 buffer for fractional scaling issues (especially with "top" direction)
const tipHeight = Math.ceil(contentHeight + (padding * 2)) + 2;
const tipHeight = Math.ceil(contentHeight + (padding * 2));
root.implicitHeight = tipHeight;
// Get target's global position and convert to screen-relative
// Round all values to avoid sub-pixel positioning issues with fractional scaling
var targetGlobalAbs = targetItem.mapToGlobal(0, 0);
var targetGlobal = {
"x": Math.round(targetGlobalAbs.x - screenX),
"y": Math.round(targetGlobalAbs.y - screenY)
"x": targetGlobalAbs.x - screenX,
"y": targetGlobalAbs.y - screenY
};
const targetWidth = Math.round(targetItem.width);
const targetHeight = Math.round(targetItem.height);
const targetWidth = targetItem.width;
const targetHeight = targetItem.height;
var newAnchorX = 0;
var newAnchorY = 0;
@@ -427,7 +425,6 @@ PopupWindow {
}
// Apply position first (before making visible)
// Round to avoid sub-pixel positioning issues with fractional scaling
// Use floor for negative values to push tooltip away from target
anchorX = newAnchorX < 0 ? Math.floor(newAnchorX) : Math.round(newAnchorX);
anchorY = newAnchorY < 0 ? Math.floor(newAnchorY) : Math.round(newAnchorY);
@@ -519,19 +516,18 @@ PopupWindow {
const tipWidth = Math.ceil(Math.min(contentWidth + (padding * 2), maxWidth));
root.implicitWidth = tipWidth;
// Add +2 buffer for fractional scaling issues (especially with "top" direction)
const tipHeight = Math.ceil(contentHeight + (padding * 2)) + 2;
const tipHeight = Math.ceil(contentHeight + (padding * 2));
root.implicitHeight = tipHeight;
// Reposition based on current direction (screen-relative)
// Round all values to avoid sub-pixel positioning issues with fractional scaling
var targetGlobalAbs = targetItem.mapToGlobal(0, 0);
var targetGlobal = {
"x": Math.round(targetGlobalAbs.x - screenX),
"y": Math.round(targetGlobalAbs.y - screenY)
"x": targetGlobalAbs.x - screenX,
"y": targetGlobalAbs.y - screenY
};
const targetWidth = Math.round(targetItem.width);
const targetHeight = Math.round(targetItem.height);
const targetWidth = targetItem.width;
const targetHeight = targetItem.height;
// Recalculate base anchor position (center on target for top/bottom, etc.)
var newAnchorX = anchorX;
@@ -608,7 +604,6 @@ PopupWindow {
}
// Apply the new anchor positions
// Round to avoid sub-pixel positioning issues with fractional scaling
// Use floor for negative values to push tooltip away from target
anchorX = newAnchorX < 0 ? Math.floor(newAnchorX) : Math.round(newAnchorX);
anchorY = newAnchorY < 0 ? Math.floor(newAnchorY) : Math.round(newAnchorY);
@@ -663,6 +658,7 @@ PopupWindow {
Rectangle {
anchors.fill: parent
anchors.margins: border.width / 2
color: Color.mSurface
border.color: Color.mOutline
border.width: Style.borderS
@@ -498,6 +498,15 @@ Singleton {
});
}
function turnOffMonitors() {
Logger.i("Compositor", "Turn off monitors requested");
if (backend && backend.turnOffMonitors) {
backend.turnOffMonitors();
} else {
Logger.w("Compositor", "No backend available for turnOffMonitors");
}
}
function suspend() {
Logger.i("Compositor", "Suspend requested");
if (executeSessionAction("suspend"))
+8
View File
@@ -482,6 +482,14 @@ Item {
}
}
function turnOffMonitors() {
try {
Quickshell.execDetached(["hyprctl", "dispatch", "dpms", "off"]);
} catch (e) {
Logger.e("HyprlandService", "Failed to turn off monitors:", e);
}
}
function logout() {
try {
Quickshell.execDetached(["hyprctl", "dispatch", "exit"]);
+8
View File
@@ -268,6 +268,14 @@ Item {
}
}
function turnOffMonitors() {
try {
Quickshell.execDetached(["wlr-randr", "--off"]);
} catch (e) {
Logger.e("LabwcService", "Failed to turn off monitors:", e);
}
}
function logout() {
stopWorkspaceHelper();
try {
+8
View File
@@ -670,6 +670,14 @@ Item {
}
}
function turnOffMonitors() {
try {
Quickshell.execDetached(["wlr-randr", "--off"]);
} catch (e) {
Logger.e("MangoService", "Failed to turn off monitors:", e);
}
}
function logout() {
Quickshell.execDetached(["mmsg", "-s", "-q"]);
}
+8
View File
@@ -472,6 +472,14 @@ Item {
}
}
function turnOffMonitors() {
try {
Quickshell.execDetached(["niri", "msg", "action", "power-off-monitors"]);
} catch (e) {
Logger.e("NiriService", "Failed to turn off monitors:", e);
}
}
function logout() {
try {
Quickshell.execDetached(["niri", "msg", "action", "quit", "--skip-confirmation"]);
+8
View File
@@ -553,6 +553,14 @@ Item {
}
}
function turnOffMonitors() {
try {
Quickshell.execDetached([msgCommand, "output", "*", "dpms", "off"]);
} catch (e) {
Logger.e("SwayService", "Failed to turn off monitors:", e);
}
}
function logout() {
try {
Quickshell.execDetached([msgCommand, "exit"]);
+4
View File
@@ -499,6 +499,10 @@ Singleton {
});
}
function lock() {
CompositorService.lock();
}
function lockAndSuspend() {
CompositorService.lockAndSuspend();
}
+162 -6
View File
@@ -11,6 +11,7 @@ Singleton {
property list<var> ddcMonitors: []
readonly property list<Monitor> monitors: variants.instances
property bool appleDisplayPresent: false
property list<var> availableBacklightDevices: []
function getMonitorForScreen(screen: ShellScreen): var {
return monitors.find(m => m.modelData === screen);
@@ -47,10 +48,109 @@ Singleton {
return detectedDisplays;
}
function normalizeBacklightDevicePath(devicePath): string {
if (devicePath === undefined || devicePath === null)
return "";
var normalized = String(devicePath).trim();
if (normalized === "")
return "";
if (normalized.startsWith("/sys/class/backlight/"))
return normalized;
if (normalized.indexOf("/") === -1)
return "/sys/class/backlight/" + normalized;
return normalized;
}
function getBacklightDeviceName(devicePath): string {
var normalized = normalizeBacklightDevicePath(devicePath);
if (normalized === "")
return "";
var parts = normalized.split("/");
while (parts.length > 0 && parts[parts.length - 1] === "") {
parts.pop();
}
return parts.length > 0 ? parts[parts.length - 1] : "";
}
function getMappedBacklightDevice(outputName): string {
var normalizedOutput = String(outputName || "").trim();
if (normalizedOutput === "")
return "";
var mappings = Settings.data.brightness.backlightDeviceMappings || [];
for (var i = 0; i < mappings.length; i++) {
var mapping = mappings[i];
if (!mapping || typeof mapping !== "object")
continue;
if (String(mapping.output || "").trim() === normalizedOutput)
return normalizeBacklightDevicePath(mapping.device || "");
}
return "";
}
function setMappedBacklightDevice(outputName, devicePath): void {
var normalizedOutput = String(outputName || "").trim();
if (normalizedOutput === "")
return;
var normalizedDevicePath = normalizeBacklightDevicePath(devicePath);
var mappings = Settings.data.brightness.backlightDeviceMappings || [];
var nextMappings = [];
var replaced = false;
for (var i = 0; i < mappings.length; i++) {
var mapping = mappings[i];
if (!mapping || typeof mapping !== "object")
continue;
var mappingOutput = String(mapping.output || "").trim();
var mappingDevice = normalizeBacklightDevicePath(mapping.device || "");
if (mappingOutput === "" || mappingDevice === "")
continue;
if (mappingOutput === normalizedOutput) {
if (!replaced && normalizedDevicePath !== "") {
nextMappings.push({
"output": normalizedOutput,
"device": normalizedDevicePath
});
}
replaced = true;
} else {
nextMappings.push({
"output": mappingOutput,
"device": mappingDevice
});
}
}
if (!replaced && normalizedDevicePath !== "") {
nextMappings.push({
"output": normalizedOutput,
"device": normalizedDevicePath
});
}
Settings.data.brightness.backlightDeviceMappings = nextMappings;
}
function scanBacklightDevices(): void {
if (!scanBacklightProc.running)
scanBacklightProc.running = true;
}
reloadableId: "brightness"
Component.onCompleted: {
Logger.i("Brightness", "Service started");
scanBacklightDevices();
if (Settings.data.brightness.enableDdcSupport) {
ddcProc.running = true;
}
@@ -58,6 +158,7 @@ Singleton {
onMonitorsChanged: {
ddcMonitors = [];
scanBacklightDevices();
if (Settings.data.brightness.enableDdcSupport) {
ddcProc.running = true;
}
@@ -75,6 +176,14 @@ Singleton {
ddcMonitors = [];
}
}
function onBacklightDeviceMappingsChanged() {
scanBacklightDevices();
for (var i = 0; i < monitors.length; i++) {
var m = monitors[i];
if (m && !m.isDdc && !m.isAppleDisplay)
m.initBrightness();
}
}
}
Variants {
@@ -92,6 +201,34 @@ Singleton {
}
}
// Detect available internal backlight devices
Process {
id: scanBacklightProc
command: ["sh", "-c", "for dev in /sys/class/backlight/*; do if [ -f \"$dev/brightness\" ] && [ -f \"$dev/max_brightness\" ]; then echo \"$dev\"; fi; done"]
stdout: StdioCollector {
onStreamFinished: {
var data = text.trim();
if (data === "") {
root.availableBacklightDevices = [];
return;
}
var lines = data.split("\n");
var found = [];
var seen = ({});
for (var i = 0; i < lines.length; i++) {
var path = root.normalizeBacklightDevicePath(lines[i]);
if (path === "" || seen[path])
continue;
seen[path] = true;
found.push(path);
}
root.availableBacklightDevices = found;
}
}
}
// Detect DDC monitors
Process {
id: ddcProc
@@ -152,6 +289,7 @@ Singleton {
property string maxBrightnessPath: ""
property int maxBrightness: 100
property bool ignoreNextChange: false
property bool initInProgress: false
// Signal for brightness changes
signal brightnessUpdated(real newBrightness)
@@ -296,14 +434,22 @@ Singleton {
Logger.d("Brightness", "Internal brightness:", current + "/" + max + " =", monitor.brightness);
Logger.d("Brightness", "Using backlight device:", monitor.backlightDevice);
}
} else {
monitor.backlightDevice = "";
monitor.brightnessPath = "";
monitor.maxBrightnessPath = "";
}
}
// Always update
monitor.brightnessUpdated(monitor.brightness);
root.monitorBrightnessChanged(monitor, monitor.brightness);
monitor.initInProgress = false;
}
}
onExited: (exitCode, exitStatus) => {
monitor.initInProgress = false;
}
}
readonly property real stepSize: Settings.data.brightness.brightnessStep / 100.0
@@ -379,12 +525,18 @@ Singleton {
} else if (!isDdc) {
monitor.commandRunning = true;
monitor.ignoreNextChange = true;
setBrightnessProc.command = ["brightnessctl", "s", rounded + "%"];
var backlightDeviceName = root.getBacklightDeviceName(monitor.backlightDevice);
if (backlightDeviceName !== "") {
setBrightnessProc.command = ["brightnessctl", "-d", backlightDeviceName, "s", rounded + "%"];
} else {
setBrightnessProc.command = ["brightnessctl", "s", rounded + "%"];
}
setBrightnessProc.running = true;
}
}
function initBrightness(): void {
monitor.initInProgress = true;
if (isAppleDisplay) {
initProc.command = ["asdbctl", "get"];
initProc.running = true;
@@ -392,16 +544,20 @@ Singleton {
initProc.command = ["ddcutil", "-b", busNum, "--sleep-multiplier=0.05", "getvcp", "10", "--brief"];
initProc.running = true;
} else if (!isDdc) {
// Internal backlight - find the first available backlight device and get its info
// This now returns: device_path, current_brightness, max_brightness (on separate lines)
initProc.command = ["sh", "-c", "for dev in /sys/class/backlight/*; do " + " if [ -f \"$dev/brightness\" ] && [ -f \"$dev/max_brightness\" ]; then " + " echo \"$dev\"; " + " cat \"$dev/brightness\"; " + " cat \"$dev/max_brightness\"; " + " break; " + " fi; " + "done"];
// Internal backlight: first try explicit output mapping, then fall back to first available.
var preferredDevicePath = root.getMappedBacklightDevice(modelData.name);
var probeScript = ["preferred=\"$1\"", "if [ -n \"$preferred\" ] && [ ! -d \"$preferred\" ]; then preferred=\"/sys/class/backlight/$preferred\"; fi", "selected=\"\"",
"if [ -n \"$preferred\" ] && [ -f \"$preferred/brightness\" ] && [ -f \"$preferred/max_brightness\" ]; then selected=\"$preferred\"; else for dev in /sys/class/backlight/*; do if [ -f \"$dev/brightness\" ] && [ -f \"$dev/max_brightness\" ]; then selected=\"$dev\"; break; fi; done; fi",
"if [ -n \"$selected\" ]; then echo \"$selected\"; cat \"$selected/brightness\"; cat \"$selected/max_brightness\"; fi"].join("; ");
initProc.command = ["sh", "-c", probeScript, "sh", preferredDevicePath];
initProc.running = true;
} else {
monitor.initInProgress = false;
}
}
onBusNumChanged: initBrightness()
onIsDdcChanged: if (isDdc)
initBrightness()
onIsDdcChanged: initBrightness()
Component.onCompleted: initBrightness()
}
}
+180 -15
View File
@@ -2,6 +2,7 @@ pragma Singleton
import QtQuick
import Quickshell
import Quickshell.Io
import Quickshell.Services.Pipewire
import qs.Commons
import qs.Services.System
@@ -22,17 +23,63 @@ Singleton {
readonly property real epsilon: 0.005
// Output Volume - read directly from device
readonly property real volume: {
if (!sink?.audio)
return 0;
const vol = sink.audio.volume;
if (vol === undefined || isNaN(vol))
return 0;
// Fallback state sourced from wpctl when PipeWire node values go stale.
property bool wpctlAvailable: false
property bool wpctlStateValid: false
property real wpctlOutputVolume: 0
property bool wpctlOutputMuted: true
function clampOutputVolume(vol: real): real {
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
if (vol === undefined || isNaN(vol)) {
return 0;
}
return Math.max(0, Math.min(maxVolume, vol));
}
readonly property bool muted: sink?.audio?.muted ?? true
function refreshWpctlOutputState(): void {
if (!wpctlAvailable || wpctlStateProcess.running) {
return;
}
wpctlStateProcess.command = ["wpctl", "get-volume", "@DEFAULT_AUDIO_SINK@"];
wpctlStateProcess.running = true;
}
function applyWpctlOutputState(raw: string): bool {
const text = String(raw || "").trim();
const match = text.match(/Volume:\s*([0-9]*\.?[0-9]+)/i);
if (!match || match.length < 2) {
return false;
}
const parsedVolume = Number(match[1]);
if (isNaN(parsedVolume)) {
return false;
}
wpctlOutputVolume = clampOutputVolume(parsedVolume);
wpctlOutputMuted = /\[MUTED\]/i.test(text);
wpctlStateValid = true;
return true;
}
// Output volume (prefer wpctl state when available)
readonly property real volume: {
if (wpctlAvailable && wpctlStateValid) {
return clampOutputVolume(wpctlOutputVolume);
}
if (!sink?.audio)
return 0;
return clampOutputVolume(sink.audio.volume);
}
readonly property bool muted: {
if (wpctlAvailable && wpctlStateValid) {
return wpctlOutputMuted;
}
return sink?.audio?.muted ?? true;
}
// Input Volume - read directly from device
readonly property real inputVolume: {
@@ -242,6 +289,90 @@ Singleton {
objects: [...root.sinks, ...root.sources]
}
Component.onCompleted: {
wpctlAvailabilityProcess.running = true;
}
Connections {
target: root
function onSinkChanged() {
if (root.wpctlAvailable) {
root.refreshWpctlOutputState();
}
}
}
Timer {
id: wpctlPollTimer
interval: 1250
running: root.wpctlAvailable
repeat: true
onTriggered: root.refreshWpctlOutputState()
}
Process {
id: wpctlAvailabilityProcess
command: ["sh", "-c", "command -v wpctl"]
running: false
onExited: function (code) {
root.wpctlAvailable = (code === 0);
root.wpctlStateValid = false;
if (root.wpctlAvailable) {
root.refreshWpctlOutputState();
}
}
stdout: StdioCollector {}
stderr: StdioCollector {}
}
Process {
id: wpctlStateProcess
running: false
onExited: function (code) {
if (code !== 0 || !root.applyWpctlOutputState(stdout.text)) {
root.wpctlStateValid = false;
}
}
stdout: StdioCollector {}
stderr: StdioCollector {}
}
Process {
id: wpctlSetVolumeProcess
running: false
onExited: function (code) {
root.isSettingOutputVolume = false;
if (code !== 0) {
Logger.w("AudioService", "wpctl set-volume failed, falling back to PipeWire node audio");
if (root.sink?.audio) {
root.sink.audio.muted = false;
root.sink.audio.volume = root.clampOutputVolume(root.wpctlOutputVolume);
}
}
root.refreshWpctlOutputState();
}
stdout: StdioCollector {}
stderr: StdioCollector {}
}
Process {
id: wpctlSetMuteProcess
running: false
onExited: function (_code) {
root.refreshWpctlOutputState();
}
stdout: StdioCollector {}
stderr: StdioCollector {}
}
// Watch output device changes for clamping
Connections {
target: sink?.audio ?? null
@@ -312,7 +443,7 @@ Singleton {
// Output Control
function increaseVolume() {
if (!Pipewire.ready || !sink?.audio) {
if (!Pipewire.ready || (!sink?.audio && !wpctlAvailable)) {
return;
}
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
@@ -323,7 +454,7 @@ Singleton {
}
function decreaseVolume() {
if (!Pipewire.ready || !sink?.audio) {
if (!Pipewire.ready || (!sink?.audio && !wpctlAvailable)) {
return;
}
if (volume <= 0) {
@@ -333,18 +464,40 @@ Singleton {
}
function setVolume(newVolume: real) {
if (!Pipewire.ready || !sink?.ready || !sink?.audio) {
if (!Pipewire.ready || (!sink?.audio && !wpctlAvailable)) {
Logger.w("AudioService", "No sink available or not ready");
return;
}
const maxVolume = Settings.data.audio.volumeOverdrive ? 1.5 : 1.0;
const clampedVolume = Math.max(0, Math.min(maxVolume, newVolume));
const delta = Math.abs(clampedVolume - sink.audio.volume);
const clampedVolume = clampOutputVolume(newVolume);
const delta = Math.abs(clampedVolume - volume);
if (delta < root.epsilon) {
return;
}
if (wpctlAvailable) {
if (wpctlSetVolumeProcess.running) {
return;
}
isSettingOutputVolume = true;
wpctlOutputMuted = false;
wpctlOutputVolume = clampedVolume;
wpctlStateValid = true;
const volumePct = Math.round(clampedVolume * 10000) / 100;
wpctlSetVolumeProcess.command = ["sh", "-c", "wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 && wpctl set-volume @DEFAULT_AUDIO_SINK@ " + volumePct + "%"];
wpctlSetVolumeProcess.running = true;
playVolumeFeedback(clampedVolume);
return;
}
if (!sink?.ready || !sink?.audio) {
Logger.w("AudioService", "No sink available or not ready");
return;
}
// Set flag to prevent feedback loop, then set the actual volume
isSettingOutputVolume = true;
sink.audio.muted = false;
@@ -359,11 +512,23 @@ Singleton {
}
function setOutputMuted(muted: bool) {
if (!Pipewire.ready || !sink?.audio) {
if (!Pipewire.ready || (!sink?.audio && !wpctlAvailable)) {
Logger.w("AudioService", "No sink available or Pipewire not ready");
return;
}
if (wpctlAvailable) {
if (wpctlSetMuteProcess.running) {
return;
}
wpctlOutputMuted = muted;
wpctlStateValid = true;
wpctlSetMuteProcess.command = ["wpctl", "set-mute", "@DEFAULT_AUDIO_SINK@", muted ? "1" : "0"];
wpctlSetMuteProcess.running = true;
return;
}
sink.audio.muted = muted;
}
+12 -48
View File
@@ -14,41 +14,12 @@ Singleton {
property var activeInhibitors: []
property var timeout: null // in seconds
// Different inhibitor strategies
property string strategy: "systemd" // "systemd", "wayland", or "auto"
// True when the native Wayland IdleInhibitor is handling inhibition
// (set by the IdleInhibitor element in MainScreen via the nativeInhibitor property)
property bool nativeInhibitorAvailable: false
function init() {
Logger.i("IdleInhibitor", "Service started");
detectStrategy();
}
// Auto-detect the best strategy
function detectStrategy() {
if (strategy === "auto") {
// Check if systemd-inhibit is available
try {
var systemdResult = Quickshell.execDetached(["sh", "-c", "command -v systemd-inhibit"]);
strategy = "systemd";
Logger.d("IdleInhibitor", "Using systemd-inhibit strategy");
return;
} catch (e)
// systemd-inhibit not found, try Wayland tools
{}
try {
var waylandResult = Quickshell.execDetached(["sh", "-c", "command -v wayhibitor"]);
strategy = "wayland";
Logger.d("IdleInhibitor", "Using wayhibitor strategy");
return;
} catch (e)
// wayhibitor not found
{}
Logger.w("IdleInhibitor", "No suitable inhibitor found - will try systemd as fallback");
strategy = "systemd"; // Fallback to systemd even if not detected
}
}
// Add an inhibitor
@@ -98,13 +69,11 @@ Singleton {
function startInhibition(newReason) {
reason = newReason;
if (strategy === "systemd") {
startSystemdInhibition();
} else if (strategy === "wayland") {
startWaylandInhibition();
if (nativeInhibitorAvailable) {
// Native IdleInhibitor in MainScreen handles it via isInhibited binding
Logger.d("IdleInhibitor", "Native inhibitor active");
} else {
Logger.w("IdleInhibitor", "No inhibition strategy available");
return;
startSubprocessInhibition();
}
isInhibited = true;
@@ -115,7 +84,8 @@ Singleton {
function stopInhibition() {
if (!isInhibited)
return;
if (inhibitorProcess.running) {
if (!nativeInhibitorAvailable && inhibitorProcess.running) {
inhibitorProcess.signal(15); // SIGTERM
}
@@ -123,19 +93,13 @@ Singleton {
Logger.i("IdleInhibitor", "Stopped inhibition");
}
// Systemd inhibition using systemd-inhibit
function startSystemdInhibition() {
// Subprocess fallback using systemd-inhibit
function startSubprocessInhibition() {
inhibitorProcess.command = ["systemd-inhibit", "--what=idle", "--why=" + reason, "--mode=block", "sleep", "infinity"];
inhibitorProcess.running = true;
}
// Wayland inhibition using wayhibitor or similar
function startWaylandInhibition() {
inhibitorProcess.command = ["wayhibitor"];
inhibitorProcess.running = true;
}
// Process for maintaining the inhibition
// Process for maintaining the inhibition (subprocess fallback only)
Process {
id: inhibitorProcess
running: false
+276
View File
@@ -0,0 +1,276 @@
pragma Singleton
import QtQuick
import Quickshell
import qs.Commons
import qs.Services.Compositor
import qs.Services.UI
/**
* IdleService native idle detection via ext-idle-notify-v1 Wayland protocol.
*
* Three configurable stages:
* 1. Screen-off (DPMS) dims / turns off monitors
* 2. Lock screen activates the session lock
* 3. Suspend systemctl suspend
*
* Each stage shows a fade-to-black overlay for a configurable grace period
* before executing the action. Any mouse movement cancels the fade.
*
* IdleMonitor instances are created with Qt.createQmlObject() so the shell
* does not crash on compositors that lack the protocol.
*
* Timeouts come from Settings.data.idle (in seconds). 0 = disabled.
*/
Singleton {
id: root
// True if ext-idle-notify-v1 is supported by the compositor
readonly property bool nativeIdleMonitorAvailable: _monitorsCreated
// Live idle time in seconds (updated by the 1s heartbeat monitor)
property int idleSeconds: 0
// Fade overlay state "" means no fade in progress
property string fadePending: ""
readonly property int fadeDuration: Settings.data.idle.fadeDuration
property bool _monitorsCreated: false
property var _screenOffMonitor: null
property var _lockMonitor: null
property var _suspendMonitor: null
property var _heartbeatMonitor: null
property var _customMonitors: ({})
// Signals for external listeners (plugins, modules)
signal screenOffRequested
signal lockRequested
signal suspendRequested
// -------------------------------------------------------
function init() {
Logger.i("IdleService", "Service started");
_applyTimeouts();
}
// Grace period timer fires when fade completes without cancellation
Timer {
id: graceTimer
interval: root.fadeDuration * 1000
repeat: false
onTriggered: {
const action = root.fadePending;
root.fadePending = "";
root._executeAction(action);
}
}
// Counts up idleSeconds while the heartbeat monitor reports idle
Timer {
id: idleCounter
interval: 1000
repeat: true
onTriggered: root.idleSeconds++
}
// -------------------------------------------------------
function cancelFade() {
if (fadePending === "")
return;
Logger.i("IdleService", "Fade cancelled for:", fadePending);
fadePending = "";
graceTimer.stop();
}
function _onIdle(stage) {
// Don't re-trigger if already fading something
if (fadePending !== "")
return;
Logger.i("IdleService", "Idle fired:", stage);
fadePending = stage;
graceTimer.restart();
}
function _executeAction(stage) {
Logger.i("IdleService", "Executing action:", stage);
if (stage === "screenOff") {
CompositorService.turnOffMonitors();
root.screenOffRequested();
} else if (stage === "lock") {
if (PanelService.lockScreen && !PanelService.lockScreen.active) {
PanelService.lockScreen.active = true;
}
root.lockRequested();
} else if (stage === "suspend") {
CompositorService.suspend();
root.suspendRequested();
}
}
// -------------------------------------------------------
// Re-apply when settings change
Connections {
target: Settings
function onSettingsLoaded() {
root._applyTimeouts();
}
}
Connections {
target: Settings.data.idle
function onScreenOffTimeoutChanged() {
root._applyTimeouts();
}
function onLockTimeoutChanged() {
root._applyTimeouts();
}
function onSuspendTimeoutChanged() {
root._applyTimeouts();
}
function onEnabledChanged() {
root._applyTimeouts();
}
function onCustomCommandsChanged() {
root._applyCustomMonitors();
}
}
function _applyTimeouts() {
const idle = Settings.data.idle;
const globalEnabled = idle.enabled;
_setMonitor("screenOff", globalEnabled ? idle.screenOffTimeout : 0);
_setMonitor("lock", globalEnabled ? idle.lockTimeout : 0);
_setMonitor("suspend", globalEnabled ? idle.suspendTimeout : 0);
_ensureHeartbeat();
_applyCustomMonitors();
}
function _applyCustomMonitors() {
// Destroy all existing custom monitors
for (var key in _customMonitors) {
if (_customMonitors[key]) {
_customMonitors[key].destroy();
}
}
root._customMonitors = {};
const idle = Settings.data.idle;
if (!idle.enabled)
return;
var entries = [];
try {
entries = JSON.parse(idle.customCommands);
} catch (e) {
Logger.w("IdleService", "Failed to parse customCommands:", e);
return;
}
var newMonitors = {};
for (var i = 0; i < entries.length; i++) {
const entry = entries[i];
const timeoutSec = parseInt(entry.timeout);
const cmd = entry.command;
if (!cmd || timeoutSec <= 0)
continue;
try {
const qml = `
import Quickshell.Wayland
IdleMonitor { timeout: ${timeoutSec} }
`;
const monitor = Qt.createQmlObject(qml, root, "IdleMonitor_custom_" + i);
const capturedCmd = cmd;
monitor.isIdleChanged.connect(function () {
if (monitor.isIdle) {
root._executeCustomCommand(capturedCmd);
}
});
newMonitors[i] = monitor;
root._monitorsCreated = true;
Logger.i("IdleService", "Custom monitor " + i + " created, timeout", timeoutSec, "s");
} catch (e) {
Logger.w("IdleService", "Failed to create custom monitor " + i + ":", e);
}
}
root._customMonitors = newMonitors;
}
function _executeCustomCommand(cmd) {
Logger.i("IdleService", "Executing custom command:", cmd);
Quickshell.execDetached(["sh", "-c", cmd]);
}
function _setMonitor(stage, timeoutSec) {
const propName = "_" + stage + "Monitor";
const existing = root[propName];
if (timeoutSec <= 0) {
if (existing) {
existing.destroy();
root[propName] = null;
Logger.d("IdleService", stage + " monitor disabled");
}
return;
}
if (existing) {
if (existing.timeout === timeoutSec)
return;
// ext-idle-notify-v1 has no update-timeout request must recreate
existing.destroy();
root[propName] = null;
Logger.d("IdleService", stage + " monitor timeout changed to", timeoutSec, "s, recreating");
}
try {
const qml = `
import Quickshell.Wayland
IdleMonitor { timeout: ${timeoutSec} }
`;
const monitor = Qt.createQmlObject(qml, root, "IdleMonitor_" + stage);
monitor.isIdleChanged.connect(function () {
if (monitor.isIdle)
root._onIdle(stage);
else
root.cancelFade();
});
root[propName] = monitor;
root._monitorsCreated = true;
Logger.i("IdleService", stage + " monitor created, timeout", timeoutSec, "s");
} catch (e) {
Logger.w("IdleService", "IdleMonitor not available (compositor lacks ext-idle-notify-v1):", e);
root._monitorsCreated = false;
}
}
function _ensureHeartbeat() {
if (_heartbeatMonitor)
return;
try {
const qml = `
import Quickshell.Wayland
IdleMonitor { timeout: 1 }
`;
const monitor = Qt.createQmlObject(qml, root, "IdleMonitor_heartbeat");
monitor.isIdleChanged.connect(function () {
if (monitor.isIdle) {
root.idleSeconds = 1;
idleCounter.start();
} else {
idleCounter.stop();
root.idleSeconds = 0;
root.cancelFade();
}
});
_heartbeatMonitor = monitor;
root._monitorsCreated = true;
Logger.d("IdleService", "Heartbeat monitor created");
} catch (e) {
Logger.w("IdleService", "Heartbeat monitor failed:", e);
}
}
}
+16 -9
View File
@@ -192,16 +192,23 @@ Singleton {
stderr: StdioCollector {}
}
// Read /etc/hostname
FileView {
id: hostName
path: "/etc/hostname"
onLoaded: {
const name = text().trim();
if (name) {
root.hostName = name;
Logger.i("HostService", "resolved hostname", name);
// Resolve hostname from distro-specific locations.
// Prefer /etc/hostname, fallback to Gentoo's /etc/conf.d/hostname.
Process {
id: hostNameProcess
command: ["sh", "-c",
"if [ -r /etc/hostname ]; then sed -n '1p' /etc/hostname; exit 0; fi; if [ -r /etc/conf.d/hostname ]; then v=$(sed -n -E 's/^[[:space:]]*[Hh][Oo][Ss][Tt][Nn][Aa][Mm][Ee][[:space:]]*=[[:space:]]*//p' /etc/conf.d/hostname | sed -n '1p'); v=$(printf '%s' \"$v\" | sed -E 's/^[[:space:]]+//; s/[[:space:]]+$//; s/^\"//; s/\"$//; s/^\x27//; s/\x27$//'); printf '%s\n' \"$v\"; exit 0; fi; exit 0"]
running: true
stdout: StdioCollector {
onStreamFinished: {
const name = String(text || "").trim();
if (name.length > 0) {
root.hostName = name;
Logger.i("HostService", "resolved hostname", name);
}
}
}
stderr: StdioCollector {}
}
}
+9 -1
View File
@@ -547,7 +547,15 @@ Singleton {
// Image handling
function queueImage(path, appName, summary, notificationId) {
if (!path || !path.startsWith("image://") || !notificationId)
if (!path || !notificationId)
return;
// Cache image:// URIs and temporary file paths (e.g. /tmp/ from Chromium)
const filePath = path.startsWith("file://") ? path.substring(7) : path;
const isImageUri = path.startsWith("image://");
const isTempFile = (path.startsWith("/") || path.startsWith("file://")) && filePath.startsWith("/tmp/");
if (!isImageUri && !isTempFile)
return;
ImageCacheService.getNotificationIcon(path, appName, summary, function (cachedPath, success) {
+13 -5
View File
@@ -13,16 +13,19 @@ Singleton {
// When the wallpaper changes, regenerate theme if necessary
function onWallpaperChanged(screenName, path) {
if (!Settings.data.colorSchemes.useWallpaperColors)
return;
var effectiveMonitor = Settings.data.colorSchemes.monitorForColors;
if (effectiveMonitor === "" || effectiveMonitor === undefined) {
effectiveMonitor = Screen.name;
}
if (screenName === effectiveMonitor) {
if (screenName !== effectiveMonitor)
return;
if (Settings.data.colorSchemes.useWallpaperColors) {
generateFromWallpaper();
} else {
// Re-run predefined scheme templates so {{image}} reflects the new wallpaper path
ColorSchemeService.applyScheme(Settings.data.colorSchemes.predefinedScheme);
}
}
}
@@ -77,6 +80,11 @@ Singleton {
function generateFromPredefinedScheme(schemeData) {
Logger.i("AppThemeService", "Generating templates from predefined color scheme");
const mode = Settings.data.colorSchemes.darkMode ? "dark" : "light";
TemplateProcessor.processPredefinedScheme(schemeData, mode);
var effectiveMonitor = Settings.data.colorSchemes.monitorForColors;
if (effectiveMonitor === "" || effectiveMonitor === undefined) {
effectiveMonitor = Screen.name;
}
const wallpaperPath = WallpaperService.getWallpaper(effectiveMonitor) || "";
TemplateProcessor.processPredefinedScheme(schemeData, mode, wallpaperPath);
}
}
+13 -8
View File
@@ -118,16 +118,17 @@ Singleton {
* Uses --scheme flag to expand 14-color scheme to full 48-color palette
* Uses debouncing to prevent spawning multiple processes when spamming scheme changes
*/
function processPredefinedScheme(schemeData, mode) {
function processPredefinedScheme(schemeData, mode, wallpaperPath) {
pendingPredefinedRequest = {
schemeData: schemeData,
mode: mode
mode: mode,
wallpaperPath: wallpaperPath || ""
};
pendingWallpaperRequest = null;
debounceTimer.restart();
}
function executePredefinedScheme(schemeData, mode) {
function executePredefinedScheme(schemeData, mode, wallpaperPath) {
// 1. Handle terminal themes (runtime generation or pre-rendered file copy)
handleTerminalThemes(schemeData, mode);
@@ -161,10 +162,12 @@ Singleton {
// Run Python template processor with --scheme flag
// Don't pass --mode so templates get both dark and light colors (e.g., zed.json needs both)
// Pass --default-mode so "default" in templates resolves to the current theme mode
script += `python3 "${templateProcessorScript}" --scheme '${schemeJsonPathEsc}' --config '${configPathEsc}' --default-mode ${mode}\n`;
// Pass wallpaper as positional arg so image_path is available in templates (no extraction occurs when --scheme is used)
const wpArg = wallpaperPath ? `'${wallpaperPath.replace(/'/g, "'\\''")}'` : "";
script += `python3 "${templateProcessorScript}" ${wpArg} --scheme '${schemeJsonPathEsc}' --config '${configPathEsc}' --default-mode ${mode}\n`;
// Add user templates if enabled
script += buildUserTemplateCommandForPredefined(schemeData, mode);
script += buildUserTemplateCommandForPredefined(schemeData, mode, wallpaperPath);
generateProcess.command = ["sh", "-c", script];
generateProcess.running = true;
@@ -515,7 +518,7 @@ Singleton {
return script;
}
function buildUserTemplateCommandForPredefined(schemeData, mode) {
function buildUserTemplateCommandForPredefined(schemeData, mode, wallpaperPath) {
if (!Settings.data.templates.enableUserTheming)
return "";
@@ -523,13 +526,15 @@ Singleton {
// Reuse the scheme JSON already written by processPredefinedScheme()
const schemeJsonPathEsc = schemeJsonPath.replace(/'/g, "'\\''");
const wpArg = wallpaperPath ? `'${wallpaperPath.replace(/'/g, "'\\''")}'` : "";
let script = "\n# Execute user templates with predefined scheme colors\n";
script += `if [ -f '${userConfigPath}' ]; then\n`;
// Use --scheme flag with the already-written scheme JSON
// Don't pass --mode so user templates get both dark and light colors
// Pass --default-mode so "default" in templates resolves to the current theme mode
script += ` python3 "${templateProcessorScript}" --scheme '${schemeJsonPathEsc}' --config '${userConfigPath}' --default-mode ${mode}\n`;
// Pass wallpaper as positional arg so image_path is available in templates
script += ` python3 "${templateProcessorScript}" ${wpArg} --scheme '${schemeJsonPathEsc}' --config '${userConfigPath}' --default-mode ${mode}\n`;
script += "fi";
return script;
@@ -551,7 +556,7 @@ Singleton {
} else if (pendingPredefinedRequest) {
const req = pendingPredefinedRequest;
pendingPredefinedRequest = null;
executePredefinedScheme(req.schemeData, req.mode);
executePredefinedScheme(req.schemeData, req.mode, req.wallpaperPath);
} else {
Logger.d("TemplateProcessor", "executePendingRequest: no pending request");
}
+52 -2
View File
@@ -162,8 +162,11 @@ Singleton {
return;
}
// File paths are used directly, not cached
if (imageUri.startsWith("/") || imageUri.startsWith("file://")) {
// Resolve bare file path for temp check
const filePath = imageUri.startsWith("file://") ? imageUri.substring(7) : imageUri;
// File paths in persistent locations are used directly, not cached
if ((imageUri.startsWith("/") || imageUri.startsWith("file://")) && !isTemporaryPath(filePath)) {
callback(imageUri, false);
return;
}
@@ -171,12 +174,59 @@ Singleton {
const cacheKey = generateNotificationKey(imageUri, appName, summary);
const cachedPath = notificationsDir + cacheKey + ".png";
// Temporary file paths are copied to cache before the source is cleaned up
if (imageUri.startsWith("/") || imageUri.startsWith("file://")) {
processRequest(cacheKey, cachedPath, imageUri, callback, function () {
copyTempFileToCache(filePath, cachedPath, cacheKey);
});
return;
}
processRequest(cacheKey, cachedPath, imageUri, callback, function () {
// Notifications always use Qt fallback (image:// URIs can't be read by ImageMagick)
queueFallbackProcessing(imageUri, cachedPath, cacheKey, 64);
});
}
// Check if a path is in a temporary directory that may be cleaned up
function isTemporaryPath(path) {
return path.startsWith("/tmp/");
}
// Copy a temporary file to the cache directory
function copyTempFileToCache(sourcePath, destPath, cacheKey) {
const srcEsc = sourcePath.replace(/'/g, "'\\''");
const dstEsc = destPath.replace(/'/g, "'\\''");
const processString = `
import QtQuick
import Quickshell.Io
Process {
command: ["cp", "--", "${srcEsc}", "${dstEsc}"]
stdout: StdioCollector {}
stderr: StdioCollector {}
}
`;
queueUtilityProcess({
name: "CopyTempFile_" + cacheKey,
processString: processString,
onComplete: function (exitCode) {
if (exitCode === 0) {
Logger.d("ImageCache", "Temp file cached:", destPath);
notifyCallbacks(cacheKey, destPath, true);
} else {
Logger.w("ImageCache", "Failed to cache temp file:", sourcePath);
notifyCallbacks(cacheKey, "", false);
}
},
onError: function () {
Logger.e("ImageCache", "Error caching temp file:", sourcePath);
notifyCallbacks(cacheKey, "", false);
}
});
}
// -------------------------------------------------
// Public API: Get Circular Avatar (256x256)
// -------------------------------------------------
+14 -1
View File
@@ -38,7 +38,20 @@ Item {
// Internal sizing calculations based on baseSize
readonly property real scaleFactor: baseSize / Style.fontSizeM
readonly property real bodyWidth: Style.toOdd(22 * scaleFactor)
readonly property real bodyWidth: {
const min = Style.toOdd(22 * scaleFactor);
if (!showPercentageText) {
return min;
}
// increase length when showing 100%
if (percentage > 99) {
const max = Style.toOdd(30 * scaleFactor);
return max;
}
return min;
}
readonly property real bodyHeight: Style.toOdd(14 * scaleFactor)
readonly property real terminalWidth: Math.round(2.5 * scaleFactor)
readonly property real terminalHeight: Math.round(7 * scaleFactor)
+2 -2
View File
@@ -10,11 +10,11 @@ RowLayout {
property string description: I18n.tr("common.select-color-description")
property string tooltip: ""
property string currentKey: ""
property var defaultValue: "none"
property var defaultValue: undefined
property var noneColor: undefined // color declared as var so we can nullify
property var noneOnColor: undefined // color declared as var so we can nullify
readonly property bool isValueChanged: currentKey !== defaultValue
readonly property bool isValueChanged: (defaultValue !== undefined) && (currentKey !== defaultValue)
readonly property string indicatorTooltip: {
I18n.tr("panels.indicator.default-value", {
"value": defaultValue === "" ? "(empty)" : String(defaultValue)
+1 -1
View File
@@ -15,7 +15,7 @@ Item {
property color borderColor: "transparent"
property int imageFillMode: Image.PreserveAspectCrop
readonly property bool showFallback: (fallbackIcon !== undefined && fallbackIcon !== "") && (imagePath === undefined || imagePath === "")
readonly property bool showFallback: (fallbackIcon !== undefined && fallbackIcon !== "") && (imagePath === undefined || imagePath === "" || imageSource.status === Image.Error)
readonly property int status: imageSource.status
Rectangle {
+6 -5
View File
@@ -110,6 +110,8 @@ RowLayout {
acceptedButtons: Qt.NoButton
hoverEnabled: true
onEntered: {
if (!root.enabled)
return;
root.hovering = true;
root.entered();
}
@@ -327,14 +329,13 @@ RowLayout {
}
// Center value display with separate prefix, value, and suffix
Rectangle {
Item {
id: valueContainer
anchors.left: decreaseButton.right
anchors.right: increaseButton.left
anchors.verticalCenter: parent.verticalCenter
anchors.margins: 4
height: parent.height
color: "transparent"
RowLayout {
anchors.centerIn: parent
@@ -346,7 +347,7 @@ RowLayout {
family: Settings.data.ui.fontFixed
pointSize: Style.fontSizeM
font.weight: Style.fontWeightMedium
color: Color.mOnSurface
color: Qt.alpha(Color.mOnSurface, root.enabled ? 1.0 : 0.6)
verticalAlignment: Text.AlignVCenter
Layout.alignment: Qt.AlignVCenter
visible: root.prefix !== ""
@@ -359,7 +360,7 @@ RowLayout {
font.family: Settings.data.ui.fontFixed
font.pointSize: Style.fontSizeM
font.weight: Style.fontWeightMedium
color: Color.mOnSurface
color: Qt.alpha(Color.mOnSurface, root.enabled ? 1.0 : 0.6)
verticalAlignment: Text.AlignVCenter
Layout.alignment: Qt.AlignVCenter
selectByMouse: true
@@ -405,7 +406,7 @@ RowLayout {
family: Settings.data.ui.fontFixed
pointSize: Style.fontSizeM
font.weight: Style.fontWeightMedium
color: Color.mOnSurface
color: Qt.alpha(Color.mOnSurface, root.enabled ? 1.0 : 0.6)
verticalAlignment: Text.AlignVCenter
Layout.alignment: Qt.AlignVCenter
visible: root.suffix !== ""
+2
View File
@@ -110,6 +110,7 @@ ShellRoot {
HooksService.init();
BluetoothService.init();
IdleInhibitorService.init();
IdleService.init();
PowerProfileService.init();
HostService.init();
GitHubService.init();
@@ -145,6 +146,7 @@ ShellRoot {
}
LockScreen {}
FadeOverlay {}
// Settings window mode (single window across all monitors)
SettingsPanelWindow {}