mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
merge
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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
@@ -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
@@ -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 d’effondrement",
|
||||
"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
@@ -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 Wi‑Fi ki van kapcsolva",
|
||||
"disabled": "A Wi‑Fi le van tiltva",
|
||||
"disconnecting": "Leválasztás...",
|
||||
"dns": "DNS",
|
||||
"enable-message": "Kapcsolja be a Wi‑Fi-t az elérhető hálózatok megtekintéséhez.",
|
||||
|
||||
@@ -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": "システムのデフォルト"
|
||||
|
||||
@@ -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": "시스템 기본값"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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.",
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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": "Формат часов",
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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": "Dock’un 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": "Dock’u tamamen gösterin veya gizleyin.",
|
||||
"enabled-label": "Dock’u 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ı"
|
||||
|
||||
@@ -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": "Масштабування інтерфейсу",
|
||||
|
||||
@@ -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": "系统默认"
|
||||
|
||||
@@ -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": "系統預設"
|
||||
|
||||
@@ -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": []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": [...] }]
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -205,6 +205,7 @@ Item {
|
||||
rotateText: isVerticalBar && currentMaxTextLength > 0
|
||||
autoHide: false
|
||||
forceOpen: _pillForceOpen
|
||||
forceClose: !_pillForceOpen
|
||||
customTextIconColor: iconColor
|
||||
|
||||
// Helper function to build tooltip content
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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"))
|
||||
|
||||
@@ -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"]);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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"]);
|
||||
}
|
||||
|
||||
@@ -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"]);
|
||||
|
||||
@@ -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"]);
|
||||
|
||||
@@ -499,6 +499,10 @@ Singleton {
|
||||
});
|
||||
}
|
||||
|
||||
function lock() {
|
||||
CompositorService.lock();
|
||||
}
|
||||
|
||||
function lockAndSuspend() {
|
||||
CompositorService.lockAndSuspend();
|
||||
}
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 !== ""
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
Reference in New Issue
Block a user