mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
Merge branch 'main' into patch-5
This commit is contained in:
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Ändern Sie die Größe des Monotextes.",
|
||||
"fonts-monospace-scale-label": "Schriftgröße mit fester Breite",
|
||||
"fonts-monospace-search-placeholder": "Monospace-Schriftarten suchen...",
|
||||
"fonts-reset-scaling": "Skalierung zurücksetzen",
|
||||
"fonts-title": "Schriftarten",
|
||||
"keybinds-conflict-description": "Die Tastenkombination ist bereits {action} zugewiesen.",
|
||||
"keybinds-conflict-title": "Tastenbelegungskonflikt",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Niedrige Dringlichkeit",
|
||||
"duration-normal-urgency-description": "Wie lange Benachrichtigungen normaler Priorität sichtbar bleiben.",
|
||||
"duration-normal-urgency-label": "Normale Dringlichkeit",
|
||||
"duration-reset": "Timeout-Dauer zurücksetzen",
|
||||
"duration-respect-expire-description": "Die in der Benachrichtigung gesetzte Ablaufzeit verwenden.",
|
||||
"duration-respect-expire-label": "Ablaufzeit respektieren",
|
||||
"duration-title": "Benachrichtigungsdauer",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Containerumriss",
|
||||
"box-border-radius-description": "Passt die Eckenrundung wichtiger Layoutbereiche an, wie z. B. Seitenleisten, Karten und Inhaltsbereiche.",
|
||||
"box-border-radius-label": "Eckenradius",
|
||||
"box-border-radius-reset": "Container-Radius zurücksetzen",
|
||||
"control-border-radius-description": "Steuert die Krümmung interaktiver Elemente, einschließlich Schaltflächen, Umschalter und Textfelder.",
|
||||
"control-border-radius-label": "Eingaberadius",
|
||||
"control-border-radius-reset": "Eingaberadius zurücksetzen",
|
||||
"desc": "Passen Sie das Aussehen, die Haptik und das Verhalten der Benutzeroberfläche an.",
|
||||
"dim-desktop-description": "Den Desktop abdunkeln, wenn Fenster oder Menüs geöffnet sind.",
|
||||
"dim-desktop-label": "Desktop abdunkeln",
|
||||
"dimmer-opacity-description": "Deckkraft für das Abdunkeln des Desktops festlegen.",
|
||||
"dimmer-opacity-label": "Deckkraft des gedimmten Desktops",
|
||||
"dimmer-opacity-reset": "Deckkraft des gedimmten Desktops zurücksetzen",
|
||||
"panel-background-opacity-description": "Legen Sie die Hintergrundtransparenz für alle Panels fest (Leiste, Starter, Einstellungen, usw.).",
|
||||
"panel-background-opacity-label": "Panel-Hintergrunddeckkraft",
|
||||
"panels-attached-to-bar-description": "Die Panels rasten an der Stange und den Bildschirmrändern ein und sorgen so für ein nahtloses Erscheinungsbild mit stilvollen, umgekehrten Ecken.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Panels & Leiste oben behalten",
|
||||
"scaling-description": "Ändert die Größe der allgemeinen Benutzeroberfläche, mit Ausnahme der Leiste.",
|
||||
"scaling-label": "Oberflächenskalierung",
|
||||
"scaling-reset-scaling": "Schnittstellenskalierung zurücksetzen",
|
||||
"settings-panel-mode-description": "Wählen Sie das Layout der Einstellungen (möglicherweise ist ein Neustart erforderlich).",
|
||||
"settings-panel-mode-label": "Einstellungs-Panel-Modus",
|
||||
"shadows-description": "Aktiviert Schlagschatten unter Leisten und Panels.",
|
||||
|
||||
@@ -371,6 +371,7 @@
|
||||
"actions": "Actions",
|
||||
"add": "Add",
|
||||
"appearance": "Appearance",
|
||||
"behavior": "Behavior",
|
||||
"apply": "Apply",
|
||||
"automation": "Automation",
|
||||
"available": "Available",
|
||||
@@ -1078,7 +1079,6 @@
|
||||
"fonts-monospace-scale-description": "Increase or decrease the size of the monospaced text.",
|
||||
"fonts-monospace-scale-label": "Monospaced font size",
|
||||
"fonts-monospace-search-placeholder": "Search monospace font...",
|
||||
"fonts-reset-scaling": "Reset scaling",
|
||||
"fonts-title": "Fonts",
|
||||
"keybinds-conflict-description": "The key combination is already assigned to {action}.",
|
||||
"keybinds-conflict-title": "Keybind conflict",
|
||||
@@ -1271,6 +1271,8 @@
|
||||
"lock-screen-tint-strength-description": "Applies a tint overlay to the lock screen wallpaper.",
|
||||
"lock-screen-tint-strength-label": "Lock screen tint strength",
|
||||
"monitors-desc": "Show lock screen on specific monitors. Defaults to all if none are chosen.",
|
||||
"password-chars-description": "Cute icons used to hide your password.",
|
||||
"password-chars-label": "Random password icons",
|
||||
"show-hibernate-description": "Show the option 'hibernate' in the power controls.",
|
||||
"show-hibernate-label": "Show hibernate",
|
||||
"show-session-buttons-description": "Allow access to power settings from the lock screen.",
|
||||
@@ -1292,7 +1294,6 @@
|
||||
"duration-low-urgency-label": "Low urgency",
|
||||
"duration-normal-urgency-description": "How long normal priority notifications stay visible.",
|
||||
"duration-normal-urgency-label": "Normal urgency",
|
||||
"duration-reset": "Reset timeout duration",
|
||||
"duration-respect-expire-description": "Use the expire timeout set in the notification.",
|
||||
"duration-respect-expire-label": "Respect expire timeout",
|
||||
"duration-title": "Notification duration",
|
||||
@@ -1520,16 +1521,13 @@
|
||||
"box-border-label": "Container outline",
|
||||
"box-border-radius-description": "Adjusts the corner roundness of major layout sections, such as sidebars, cards, and content panels.",
|
||||
"box-border-radius-label": "Container radius",
|
||||
"box-border-radius-reset": "Reset container radius",
|
||||
"control-border-radius-description": "Controls the curvature of interactive elements, including buttons, toggles, and text fields.",
|
||||
"control-border-radius-label": "Input radius",
|
||||
"control-border-radius-reset": "Reset input radius",
|
||||
"desc": "Customize the look, feel, and behavior of the interface.",
|
||||
"dim-desktop-description": "Dim the desktop when panels or menus are open.",
|
||||
"dim-desktop-label": "Dim desktop",
|
||||
"dimmer-opacity-description": "Set the opacity level for desktop dimming.",
|
||||
"dimmer-opacity-label": "Dimmed desktop opacity",
|
||||
"dimmer-opacity-reset": "Reset dimmed desktop opacity",
|
||||
"panel-background-opacity-description": "Set the background opacity for all panels (bar, launcher, settings, etc...).",
|
||||
"panel-background-opacity-label": "Panel background opacity",
|
||||
"panels-attached-to-bar-description": "Panels lock to the bar and screen edges, creating a seamless look with stylish inverted corners.",
|
||||
@@ -1538,7 +1536,6 @@
|
||||
"panels-overlay-label": "Keep panels & bar on top",
|
||||
"scaling-description": "Changes the size of the general user interface, excluding the bar.",
|
||||
"scaling-label": "Interface scaling",
|
||||
"scaling-reset-scaling": "Reset interface scaling",
|
||||
"settings-panel-mode-description": "Choose settings layout (may require reopening).",
|
||||
"settings-panel-mode-label": "Settings panel mode",
|
||||
"shadows-description": "Enables drop shadows under bars and panels.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Aumentar o disminuir el tamaño del texto monoespaciado.",
|
||||
"fonts-monospace-scale-label": "Tamaño de fuente monoespaciada",
|
||||
"fonts-monospace-search-placeholder": "Buscar fuentes monoespaciadas...",
|
||||
"fonts-reset-scaling": "Restablecer la escala",
|
||||
"fonts-title": "Fuentes",
|
||||
"keybinds-conflict-description": "La combinación de teclas ya está asignada a {action}.",
|
||||
"keybinds-conflict-title": "Conflicto de atajos de teclado",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Urgencia baja",
|
||||
"duration-normal-urgency-description": "Cuánto tiempo permanecen visibles las notificaciones de prioridad normal.",
|
||||
"duration-normal-urgency-label": "Urgencia normal",
|
||||
"duration-reset": "Restablecer la duración del tiempo de espera",
|
||||
"duration-respect-expire-description": "Usa el tiempo de expiración establecido en la notificación.",
|
||||
"duration-respect-expire-label": "Respetar tiempo de expiración",
|
||||
"duration-title": "Duración de la notificación",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Contorno del contenedor",
|
||||
"box-border-radius-description": "Ajusta la redondez de las esquinas de las secciones principales del diseño, como barras laterales, tarjetas y paneles de contenido.",
|
||||
"box-border-radius-label": "Radio del contenedor",
|
||||
"box-border-radius-reset": "Restablecer el radio del contenedor",
|
||||
"control-border-radius-description": "Controla la curvatura de los elementos interactivos, incluyendo botones, interruptores y campos de texto.",
|
||||
"control-border-radius-label": "Radio de entrada",
|
||||
"control-border-radius-reset": "Restablecer el radio de entrada",
|
||||
"desc": "Personaliza la apariencia, el ambiente y el comportamiento de la interfaz.",
|
||||
"dim-desktop-description": "Atenuar el escritorio cuando los paneles o menús estén abiertos.",
|
||||
"dim-desktop-label": "Atenuar escritorio",
|
||||
"dimmer-opacity-description": "Define el nivel de opacidad para el atenuado del escritorio.",
|
||||
"dimmer-opacity-label": "Opacidad del escritorio atenuado",
|
||||
"dimmer-opacity-reset": "Restablecer la opacidad del escritorio atenuado",
|
||||
"panel-background-opacity-description": "Establecer la opacidad del fondo para todos los paneles (barra, lanzador, ajustes, etc...).",
|
||||
"panel-background-opacity-label": "Opacidad del fondo del panel",
|
||||
"panels-attached-to-bar-description": "Los paneles se fijan a la barra y a los bordes de la pantalla, creando una apariencia integrada con elegantes esquinas invertidas.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Mantener paneles y barra en la parte superior",
|
||||
"scaling-description": "Cambia el tamaño de la interfaz de usuario general, excluyendo la barra.",
|
||||
"scaling-label": "Escalado de la interfaz",
|
||||
"scaling-reset-scaling": "Restablecer el escalado de la interfaz",
|
||||
"settings-panel-mode-description": "Elegir diseño de configuración (puede requerir reapertura).",
|
||||
"settings-panel-mode-label": "Modo del panel de configuración",
|
||||
"shadows-description": "Habilita sombras paralelas debajo de las barras y los paneles.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Augmenter ou diminuer la taille du texte monospace.",
|
||||
"fonts-monospace-scale-label": "Taille de police monospace",
|
||||
"fonts-monospace-search-placeholder": "Rechercher des polices monospace...",
|
||||
"fonts-reset-scaling": "Réinitialiser l'échelle",
|
||||
"fonts-title": "Polices",
|
||||
"keybinds-conflict-description": "La combinaison de touches est déjà attribuée à {action}.",
|
||||
"keybinds-conflict-title": "Conflit de raccourcis clavier",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Urgence faible",
|
||||
"duration-normal-urgency-description": "Durée de visibilité des notifications de priorité normale.",
|
||||
"duration-normal-urgency-label": "Urgence normale",
|
||||
"duration-reset": "Réinitialiser la durée du délai d'attente",
|
||||
"duration-respect-expire-description": "Utiliser le délai d'expiration défini dans la notification.",
|
||||
"duration-respect-expire-label": "Respecter le délai d'expiration",
|
||||
"duration-title": "Durée des notifications",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Contour du conteneur",
|
||||
"box-border-radius-description": "Ajuste de l'arrondi des coins des principales sections de la mise en page, telles que les barres latérales, les cartes et les panneaux de contenu.",
|
||||
"box-border-radius-label": "Rayon du conteneur",
|
||||
"box-border-radius-reset": "Réinitialiser le rayon du conteneur",
|
||||
"control-border-radius-description": "Contrôle la courbure des éléments interactifs, y compris les boutons, les bascules et les champs de texte.",
|
||||
"control-border-radius-label": "Rayon d'entrée",
|
||||
"control-border-radius-reset": "Réinitialiser le rayon d'entrée",
|
||||
"desc": "Personnaliser l'apparence, l'ergonomie et le comportement de l'interface.",
|
||||
"dim-desktop-description": "Atténuer le bureau lorsque des panneaux ou des menus sont ouverts.",
|
||||
"dim-desktop-label": "Dim bureau",
|
||||
"dimmer-opacity-description": "Définir le niveau d'opacité pour l'assombrissement du bureau.",
|
||||
"dimmer-opacity-label": "Opacité du bureau atténué",
|
||||
"dimmer-opacity-reset": "Réinitialiser l'opacité du bureau atténué",
|
||||
"panel-background-opacity-description": "Définir l'opacité de l'arrière-plan pour tous les panneaux (barre, lanceur, paramètres, etc.).",
|
||||
"panel-background-opacity-label": "Opacité de fond des panneaux",
|
||||
"panels-attached-to-bar-description": "Les panneaux se verrouillent sur la barre et les bords de l'écran, créant un aspect homogène avec d'élégants coins inversés.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Garder les panneaux et la barre en haut",
|
||||
"scaling-description": "Modifie la taille de l'interface utilisateur générale, à l'exception de la barre.",
|
||||
"scaling-label": "Mise à l'échelle de l'interface",
|
||||
"scaling-reset-scaling": "Réinitialiser l'échelle de l'interface",
|
||||
"settings-panel-mode-description": "Choisir la disposition des paramètres (peut nécessiter une réouverture).",
|
||||
"settings-panel-mode-label": "Mode du panneau des paramètres",
|
||||
"shadows-description": "Active les ombres portées sous les barres et les panneaux.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Növelje vagy csökkentse a monospace szöveg méretét.",
|
||||
"fonts-monospace-scale-label": "Monospace betűméret",
|
||||
"fonts-monospace-search-placeholder": "Monospace betűtípus keresése...",
|
||||
"fonts-reset-scaling": "Méretezés visszaállítása",
|
||||
"fonts-title": "Betűtípusok",
|
||||
"keybinds-conflict-description": "A billentyűkombináció már hozzá van rendelve ehhez: {action}.",
|
||||
"keybinds-conflict-title": "Billentyűkombináció ütközés",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Alacsony sürgősség",
|
||||
"duration-normal-urgency-description": "Meddig maradjanak láthatók a normál prioritású értesítések.",
|
||||
"duration-normal-urgency-label": "Normál sürgősség",
|
||||
"duration-reset": "Időtúllépési idő visszaállítása",
|
||||
"duration-respect-expire-description": "Az értesítésben beállított lejárati időtúllépés használata.",
|
||||
"duration-respect-expire-label": "Lejárati időtúllépés figyelembe vétele",
|
||||
"duration-title": "Értesítés időtartama",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Konténer körvonal",
|
||||
"box-border-radius-description": "Beállítja a fő elrendezési szakaszok (például oldalsávok, kártyák és tartalompanelek) saroklekerekítését.",
|
||||
"box-border-radius-label": "Tároló sugár",
|
||||
"box-border-radius-reset": "Tároló sugár visszaállítása",
|
||||
"control-border-radius-description": "Szabályozza az interaktív elemek (gombok, kapcsolók és szövegmezők) görbületét.",
|
||||
"control-border-radius-label": "Bemeneti sugár",
|
||||
"control-border-radius-reset": "Bemeneti sugár visszaállítása",
|
||||
"desc": "Az interfész megjelenésének, érzetének és viselkedésének testreszabása.",
|
||||
"dim-desktop-description": "Asztal elsötétítése, ha a panelek vagy menük nyitva vannak.",
|
||||
"dim-desktop-label": "Asztal elsötétítése",
|
||||
"dimmer-opacity-description": "Állítsa be az asztal elsötétítésének átlátszósági szintjét.",
|
||||
"dimmer-opacity-label": "Elsötétített asztal átlátszósága",
|
||||
"dimmer-opacity-reset": "Elsötétített asztal átlátszóságának visszaállítása",
|
||||
"panel-background-opacity-description": "Állítsa be az összes panel (sáv, indító, beállítások stb.) háttér-átlátszóságát.",
|
||||
"panel-background-opacity-label": "Panel háttér átlátszóság",
|
||||
"panels-attached-to-bar-description": "A panelek a sávhoz és a képernyő széleihez igazodnak, zökkenőmentes megjelenést biztosítva stílusos fordított sarkokkal.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Panelek és sáv felül tartása",
|
||||
"scaling-description": "Megváltoztatja az általános felhasználói felület méretét, kivéve a sávot.",
|
||||
"scaling-label": "Felület méretezés",
|
||||
"scaling-reset-scaling": "Felület méretezés visszaállítása",
|
||||
"settings-panel-mode-description": "Válassza ki a beállítások elrendezését (újraindítást igényelhet).",
|
||||
"settings-panel-mode-label": "Beállítási panel mód",
|
||||
"shadows-description": "Engedélyezi az árnyékokat a sávok és panelek alatt.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "等幅テキストのサイズを拡大・縮小します。",
|
||||
"fonts-monospace-scale-label": "等幅フォントのサイズ",
|
||||
"fonts-monospace-search-placeholder": "等幅フォントを検索...",
|
||||
"fonts-reset-scaling": "サイズ設定をリセット",
|
||||
"fonts-title": "フォント",
|
||||
"keybinds-conflict-description": "このキーの組み合わせはすでに{action}に割り当てられています。",
|
||||
"keybinds-conflict-title": "キーバインドの競合",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "緊急度:低",
|
||||
"duration-normal-urgency-description": "緊急度「通常」の通知が表示され続ける時間。",
|
||||
"duration-normal-urgency-label": "緊急度:通常",
|
||||
"duration-reset": "表示時間をリセット",
|
||||
"duration-respect-expire-description": "通知自体に設定された有効期限(タイムアウト)を使用します。",
|
||||
"duration-respect-expire-label": "通知指定の期限に従う",
|
||||
"duration-title": "通知の表示時間",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "コンテナの輪郭",
|
||||
"box-border-radius-description": "サイドバー、カード、コンテンツパネルなど、主要なレイアウト部分の角の丸みを調整します。",
|
||||
"box-border-radius-label": "コンテナの角の丸み",
|
||||
"box-border-radius-reset": "コンテナの角の丸みをリセット",
|
||||
"control-border-radius-description": "ボタン、トグル、テキストフィールドなど、操作可能な要素の角の丸みを制御します。",
|
||||
"control-border-radius-label": "入力要素の角の丸み",
|
||||
"control-border-radius-reset": "入力要素の角の丸みをリセット",
|
||||
"desc": "インターフェースの外観や操作感、挙動をカスタマイズします。",
|
||||
"dim-desktop-description": "パネルやメニューが開いている間、デスクトップを暗くします。",
|
||||
"dim-desktop-label": "デスクトップを暗くする",
|
||||
"dimmer-opacity-description": "デスクトップを暗くした際の不透明度を設定します。",
|
||||
"dimmer-opacity-label": "デスクトップを暗くした際の不透明度",
|
||||
"dimmer-opacity-reset": "デスクトップを暗くした際の不透明度をリセット",
|
||||
"panel-background-opacity-description": "すべてのパネル(バー、ランチャー、設定など)の背景の不透明度を設定します。",
|
||||
"panel-background-opacity-label": "パネル背景の不透明度",
|
||||
"panels-attached-to-bar-description": "パネルをバーや画面の端に固定します。スタイリッシュな逆アール(角の装飾)により、シームレスな外観にします。",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "パネルとバーを最前面に保持",
|
||||
"scaling-description": "バーを除く、ユーザーインターフェース全体のサイズを変更します。",
|
||||
"scaling-label": "インターフェースのスケール調整",
|
||||
"scaling-reset-scaling": "インターフェースのスケールをリセット",
|
||||
"settings-panel-mode-description": "設定画面の表示形式を選択します (再起動が必要な場合があります)。",
|
||||
"settings-panel-mode-label": "設定パネルの表示モード",
|
||||
"shadows-description": "バーやパネルの下にドロップシャドウ(影)を表示します。",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "고정폭 텍스트의 크기를 늘리거나 줄입니다.",
|
||||
"fonts-monospace-scale-label": "고정폭 글꼴 크기",
|
||||
"fonts-monospace-search-placeholder": "고정폭 글꼴 검색...",
|
||||
"fonts-reset-scaling": "크기 초기화",
|
||||
"fonts-title": "글꼴",
|
||||
"keybinds-conflict-description": "이 키 조합은 이미 {action}에 할당되어 있습니다.",
|
||||
"keybinds-conflict-title": "키 바인딩 충돌",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "중요도 낮음",
|
||||
"duration-normal-urgency-description": "보통 레벨의 알림이 표시되는 시간입니다.",
|
||||
"duration-normal-urgency-label": "중요도 보통",
|
||||
"duration-reset": "시간 제한 초기화",
|
||||
"duration-respect-expire-description": "알림에 설정된 만료 시간을 사용합니다.",
|
||||
"duration-respect-expire-label": "만료 시간 준수",
|
||||
"duration-title": "알림 지속 시간",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "컨테이너 윤곽선",
|
||||
"box-border-radius-description": "사이드바, 카드, 콘텐츠 패널과 같은 주요 레이아웃 섹션의 모서리 둥글기를 조정합니다.",
|
||||
"box-border-radius-label": "컨테이너 반경",
|
||||
"box-border-radius-reset": "컨테이너 반경 초기화",
|
||||
"control-border-radius-description": "버튼, 토글, 텍스트 필드를 포함한 대화형 요소의 굴곡을 제어합니다.",
|
||||
"control-border-radius-label": "입력 반경",
|
||||
"control-border-radius-reset": "입력 반경 초기화",
|
||||
"desc": "인터페이스의 모양, 느낌 및 동작을 사용자 지정합니다.",
|
||||
"dim-desktop-description": "패널이나 메뉴가 열려 있을 때 바탕 화면을 어둡게 합니다.",
|
||||
"dim-desktop-label": "바탕 화면 어둡게 하기",
|
||||
"dimmer-opacity-description": "바탕 화면 어둡게 하기의 불투명도 수준을 설정합니다.",
|
||||
"dimmer-opacity-label": "어두운 바탕 화면 불투명도",
|
||||
"dimmer-opacity-reset": "어두운 바탕 화면 불투명도 초기화",
|
||||
"panel-background-opacity-description": "모든 패널(바, 런처, 설정 등...)의 배경 불투명도를 설정합니다.",
|
||||
"panel-background-opacity-label": "패널 배경 불투명도",
|
||||
"panels-attached-to-bar-description": "패널이 바와 화면 가장자리에 고정되어 세련된 반전 모서리로 매끄러운 모양을 만듭니다.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "패널과 바를 항상 위에 유지",
|
||||
"scaling-description": "바를 제외한 일반 사용자 인터페이스의 크기를 변경합니다.",
|
||||
"scaling-label": "인터페이스 배율",
|
||||
"scaling-reset-scaling": "인터페이스 배율 초기화",
|
||||
"settings-panel-mode-description": "설정 레이아웃을 선택하세요 (다시 열어야 할 수 있음).",
|
||||
"settings-panel-mode-label": "설정 패널 모드",
|
||||
"shadows-description": "바와 패널 아래에 그림자를 활성화합니다.",
|
||||
|
||||
@@ -1008,7 +1008,6 @@
|
||||
"fonts-monospace-scale-description": "Mezinahiya nivîsa monospace mezin an biçûk bike.",
|
||||
"fonts-monospace-scale-label": "Mezinahiya cûernivîsa monospace",
|
||||
"fonts-monospace-search-placeholder": "Lêgerîn li fonta monospace...",
|
||||
"fonts-reset-scaling": "Vekirina pîvanê",
|
||||
"fonts-title": "Cûrenivîs",
|
||||
"keybinds-down": "Bilivîne jêr",
|
||||
"keybinds-left": "Bilivîne çep",
|
||||
@@ -1192,7 +1191,6 @@
|
||||
"duration-low-urgency-label": "Lezgînî kêm",
|
||||
"duration-normal-urgency-description": "Notîfîkasyonên pêşîniya normal çiqas dirêj xuya dimînin.",
|
||||
"duration-normal-urgency-label": "Lezgînahiya normal",
|
||||
"duration-reset": "Demjimêra dema derbasbûnê ji nû ve saz bike",
|
||||
"duration-respect-expire-description": "Dem wextê qedandinê yê ku di agahdariyê de hatiye danîn bikar bîne.",
|
||||
"duration-respect-expire-label": "Dem bihurmet demdirêj qedandin",
|
||||
"duration-title": "Dirêjahiya agahdariyê",
|
||||
@@ -1402,16 +1400,13 @@
|
||||
"box-border-label": "Çarçoweya konteynerê",
|
||||
"box-border-radius-description": "Goşeya dorfirehiya beşên sereke yên layoutê, wekî barên kêlekê, kart, û panelên naverokê, eyar dike.",
|
||||
"box-border-radius-label": "Radiusa konteynirê",
|
||||
"box-border-radius-reset": "Vegerandina radiusa konteynerê",
|
||||
"control-border-radius-description": "Kontrola çemandina hêmanên înteraktîv, di nav de bişkok, guhêrbarok û qadên nivîsê.",
|
||||
"control-border-radius-label": "Tîrêjê têketinê",
|
||||
"control-border-radius-reset": "Dîsa çapemeniya têketinê saz bike",
|
||||
"desc": "Xuyakirina xuyabûn, hest, û reftarên navrûyê.",
|
||||
"dim-desktop-description": "Dema panel an menü vebin, sermaseyê tarî bike.",
|
||||
"dim-desktop-label": "Dim sermaseyê",
|
||||
"dimmer-opacity-description": "Ayarê asta zelalbûna ji bo tarîkirina sermaseyê bike.",
|
||||
"dimmer-opacity-label": "Şefafiya sermaseyê sermaseyê kêmkirî",
|
||||
"dimmer-opacity-reset": "Vekirina zelalbûna sermaseya tarîkirî",
|
||||
"panel-background-opacity-description": "Zelalbûna paşrûyê ji bo hemû destgehan (darik, destpêker, sazkarî, hwd...) saz bike.",
|
||||
"panel-background-opacity-label": "Zelaliya paşrûyê destgehê",
|
||||
"panels-attached-to-bar-description": "Panelên bi qiraxên bar û ekranê ve têne kilît kirin, bi goşeyên berevajîkirî yên şêwekar xuyangek bêkêmasî diafirînin.",
|
||||
@@ -1420,7 +1415,6 @@
|
||||
"panels-overlay-label": "Destgeh & darikê li jor bihêle",
|
||||
"scaling-description": "Guhertina mezinahiya navrûya giştî ya bikarhêner, ji bilî bar.",
|
||||
"scaling-label": "Pîvana navrûyê",
|
||||
"scaling-reset-scaling": "Pîvana navrûyê ji nû ve saz bike",
|
||||
"settings-panel-mode-description": "Hilbijêre şêweyê mîhengan (dibe ku ji nû ve vekirinê hewce bike).",
|
||||
"settings-panel-mode-label": "Awaya destgeha sazkariyan",
|
||||
"shadows-description": "Dîsa siya di bin bar û panelan de çalak dike.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Vergroot of verklein de grootte van monospace-tekst.",
|
||||
"fonts-monospace-scale-label": "Grootte monospace-lettertype",
|
||||
"fonts-monospace-search-placeholder": "Monospace-lettertype zoeken...",
|
||||
"fonts-reset-scaling": "Schaling resetten",
|
||||
"fonts-title": "Lettertypes",
|
||||
"keybinds-conflict-description": "De toetscombinatie is al toegewezen aan {action}.",
|
||||
"keybinds-conflict-title": "Toetsencombinatieconflict",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Lage urgentie",
|
||||
"duration-normal-urgency-description": "Hoe lang meldingen met normale prioriteit zichtbaar blijven.",
|
||||
"duration-normal-urgency-label": "Normale urgentie",
|
||||
"duration-reset": "Timeoutduur resetten",
|
||||
"duration-respect-expire-description": "Gebruik de vervaltijd die in de melding is ingesteld.",
|
||||
"duration-respect-expire-label": "Vervaltijd respecteren",
|
||||
"duration-title": "Duur van meldingen",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Containeromtrek",
|
||||
"box-border-radius-description": "Past de hoekronding aan van belangrijke lay-outsecties, zoals zijbalken, kaarten en inhoudspanelen.",
|
||||
"box-border-radius-label": "Hoekradius",
|
||||
"box-border-radius-reset": "Containerstraal resetten",
|
||||
"control-border-radius-description": "Regelt de kromming van interactieve elementen, waaronder knoppen, schakelaars en tekstvelden.",
|
||||
"control-border-radius-label": "Voer straal in",
|
||||
"control-border-radius-reset": "Reset invoerradius",
|
||||
"desc": "Pas de look, feel en het gedrag van de interface aan.",
|
||||
"dim-desktop-description": "Dim de desktop wanneer panelen of menu's geopend zijn.",
|
||||
"dim-desktop-label": "Desktop dimmen",
|
||||
"dimmer-opacity-description": "Stel het opaciteitsniveau in voor het dimmen van het bureaublad.",
|
||||
"dimmer-opacity-label": "Doorzichtigheid van gedimde desktop",
|
||||
"dimmer-opacity-reset": "Doorzichtigheid van gedimde desktop resetten",
|
||||
"panel-background-opacity-description": "Stel de achtergronddoorzichtigheid in voor alle panelen (balk, launcher, instellingen, enz...).",
|
||||
"panel-background-opacity-label": "Paneel achtergronddoorzichtigheid",
|
||||
"panels-attached-to-bar-description": "Panelen vergrendelen aan de balk en schermranden, voor een naadloze look met stijlvolle omgekeerde hoeken.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Panelen & balk bovenop houden",
|
||||
"scaling-description": "Wijzigt de grootte van de algemene gebruikersinterface, exclusief de balk.",
|
||||
"scaling-label": "Interfaceschaling",
|
||||
"scaling-reset-scaling": "Interfaceschaling resetten",
|
||||
"settings-panel-mode-description": "Kies lay-out voor instellingen (mogelijk opnieuw openen vereist).",
|
||||
"settings-panel-mode-label": "Instellingenpaneelmodus",
|
||||
"shadows-description": "Schakelt slagschaduwen onder balken en panelen in.",
|
||||
|
||||
@@ -1081,7 +1081,6 @@
|
||||
"fonts-monospace-scale-description": "Aukar eller minkar kor stor fastbreiddeskrifta er.",
|
||||
"fonts-monospace-scale-label": "Fastbreiddeskriftstorleik",
|
||||
"fonts-monospace-search-placeholder": "Leit etter fastbreiddeskrift...",
|
||||
"fonts-reset-scaling": "Nullstill skalering",
|
||||
"fonts-title": "Skrifttypar",
|
||||
"keybinds-conflict-description": "Tastkombinasjonen er alt gjeven til {action}.",
|
||||
"keybinds-conflict-title": "Beinknapp-konflikt",
|
||||
@@ -1295,7 +1294,6 @@
|
||||
"duration-low-urgency-label": "Mindre viktig",
|
||||
"duration-normal-urgency-description": "Kor lenge vanlege varsel er synlege.",
|
||||
"duration-normal-urgency-label": "Vanleg",
|
||||
"duration-reset": "Lengd på nullstillingsavbrot",
|
||||
"duration-respect-expire-description": "Bruk tidsavbrotet fastsett i varselet.",
|
||||
"duration-respect-expire-label": "Vyrd tidsavbrot",
|
||||
"duration-title": "Varsellengd",
|
||||
@@ -1523,16 +1521,13 @@
|
||||
"box-border-label": "Ilåtgrense",
|
||||
"box-border-radius-description": "Styrer kor avrunda hyrna er på viktige oppsettsområde, til dømes på stolpar, kort og innhaldspanel.",
|
||||
"box-border-radius-label": "Ilåtradius",
|
||||
"box-border-radius-reset": "Nullstill ilåtradius",
|
||||
"control-border-radius-description": "Styrer kor bøygde interaktiv delar er, til dømes knappar, brytarar og tekstfelt.",
|
||||
"control-border-radius-label": "Inndataradius",
|
||||
"control-border-radius-reset": "Nullstill inndataradius",
|
||||
"desc": "Måta til korleis grensesnittet ser ut og ter seg.",
|
||||
"dim-desktop-description": "Mørknar skrivebordet når panel eller menyar er opne.",
|
||||
"dim-desktop-label": "Mørkna skrivebord",
|
||||
"dimmer-opacity-description": "Set kor mørkt det vert når skrivebordet mørknar.",
|
||||
"dimmer-opacity-label": "Skrivebordsmørker",
|
||||
"dimmer-opacity-reset": "Set att skrivebordsmørker",
|
||||
"panel-background-opacity-description": "Set kor ugjennomsynleg bakgrunnen er for alle panel (oppgåvelina, programveljar, innstillingar osb.).",
|
||||
"panel-background-opacity-label": "Ugjennomsynlege panelbakgrunnar",
|
||||
"panels-attached-to-bar-description": "Panel låser seg til oppgåvelina og skjermrendene, som gjev ein stilig utsjånad med innbøygde hyrne.",
|
||||
@@ -1541,7 +1536,6 @@
|
||||
"panels-overlay-label": "Haldt panel og oppgåvelina øvst",
|
||||
"scaling-description": "Endrar kor stor brukargrensesnittet er, sett bort ifrå oppgåvelina.",
|
||||
"scaling-label": "Grensesnittskalering",
|
||||
"scaling-reset-scaling": "Nullstill grensesnittskalering",
|
||||
"settings-panel-mode-description": "Vel oppsett for innstillingar (kan krevja at du må opna dei på nytt).",
|
||||
"settings-panel-mode-label": "Oppsett for innstillingar",
|
||||
"shadows-description": "Slår på skuggar under liner og panel.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Zwiększ lub zmniejsz rozmiar tekstu o stałej szerokości.",
|
||||
"fonts-monospace-scale-label": "Rozmiar czcionki monospace",
|
||||
"fonts-monospace-search-placeholder": "Szukaj czcionki monospace...",
|
||||
"fonts-reset-scaling": "Resetuj skalowanie",
|
||||
"fonts-title": "Czcionki",
|
||||
"keybinds-conflict-description": "Kombinacja klawiszy jest już przypisana do {action}.",
|
||||
"keybinds-conflict-title": "Konflikt skrótów klawiszowych",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Pilność niska",
|
||||
"duration-normal-urgency-description": "Jak długo widoczne są powiadomienia o priorytecie normalnym.",
|
||||
"duration-normal-urgency-label": "Pilność normalna",
|
||||
"duration-reset": "Resetuj czas wygasania",
|
||||
"duration-respect-expire-description": "Używaj czasu wygasania ustawionego w samym powiadomieniu.",
|
||||
"duration-respect-expire-label": "Respektuj czas wygasania (expire timeout)",
|
||||
"duration-title": "Czas trwania powiadomienia",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Obrys kontenera",
|
||||
"box-border-radius-description": "Dostosowuje zaokrąglenie narożników głównych sekcji układu, takich jak paski boczne, karty i panele treści.",
|
||||
"box-border-radius-label": "Promień kontenerów",
|
||||
"box-border-radius-reset": "Resetuj promień kontenerów",
|
||||
"control-border-radius-description": "Kontroluje zaokrąglenie elementów interaktywnych, w tym przycisków, przełączników i pól tekstowych.",
|
||||
"control-border-radius-label": "Promień wejść",
|
||||
"control-border-radius-reset": "Resetuj promień wejść",
|
||||
"desc": "Dostosuj wygląd i zachowanie interfejsu.",
|
||||
"dim-desktop-description": "Przyciemniaj pulpit, gdy panele lub menu są otwarte.",
|
||||
"dim-desktop-label": "Przyciemniaj pulpit",
|
||||
"dimmer-opacity-description": "Ustaw poziom przezroczystości przyciemnienia pulpitu.",
|
||||
"dimmer-opacity-label": "Przezroczystość przyciemnienia",
|
||||
"dimmer-opacity-reset": "Resetuj przezroczystość przyciemnienia",
|
||||
"panel-background-opacity-description": "Ustaw przezroczystość tła dla wszystkich paneli (pasek, launcher, ustawienia itp.).",
|
||||
"panel-background-opacity-label": "Przezroczystość tła paneli",
|
||||
"panels-attached-to-bar-description": "Panele przypinają się do paska i krawędzi ekranu, tworząc spójny wygląd ze stylowymi odwróconymi narożnikami.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Trzymaj panele i pasek na wierzchu",
|
||||
"scaling-description": "Zmienia rozmiar ogólnego interfejsu użytkownika, z wyłączeniem paska.",
|
||||
"scaling-label": "Skalowanie interfejsu",
|
||||
"scaling-reset-scaling": "Resetuj skalowanie interfejsu",
|
||||
"settings-panel-mode-description": "Wybierz układ ustawień (może wymagać ponownego otwarcia).",
|
||||
"settings-panel-mode-label": "Tryb panelu ustawień",
|
||||
"shadows-description": "Włącza cienie pod paskami i panelami.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Aumentar ou diminuir o tamanho do texto monoespaçado.",
|
||||
"fonts-monospace-scale-label": "Tamanho da fonte monoespaçada",
|
||||
"fonts-monospace-search-placeholder": "Pesquisar fontes monoespaçadas...",
|
||||
"fonts-reset-scaling": "Redefinir escala",
|
||||
"fonts-title": "Fontes",
|
||||
"keybinds-conflict-description": "A combinação de teclas já está atribuída a {action}.",
|
||||
"keybinds-conflict-title": "Conflito de atalhos de teclado",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Urgência baixa",
|
||||
"duration-normal-urgency-description": "Por quanto tempo as notificações de prioridade normal permanecem visíveis.",
|
||||
"duration-normal-urgency-label": "Urgência normal",
|
||||
"duration-reset": "Redefinir duração do tempo limite",
|
||||
"duration-respect-expire-description": "Usa o tempo de expiração definido na notificação.",
|
||||
"duration-respect-expire-label": "Respeitar tempo de expiração",
|
||||
"duration-title": "Duração da notificação",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Contorno do recipiente",
|
||||
"box-border-radius-description": "Ajusta o arredondamento dos cantos das principais seções do layout, como barras laterais, cards e painéis de conteúdo.",
|
||||
"box-border-radius-label": "Raio do contêiner",
|
||||
"box-border-radius-reset": "Redefinir raio do recipiente",
|
||||
"control-border-radius-description": "Controla a curvatura de elementos interativos, incluindo botões, alternâncias e campos de texto.",
|
||||
"control-border-radius-label": "Raio de entrada",
|
||||
"control-border-radius-reset": "Redefinir raio de entrada",
|
||||
"desc": "Personalize a aparência, a sensação e o comportamento da interface.",
|
||||
"dim-desktop-description": "Escurecer a área de trabalho quando painéis ou menus estiverem abertos.",
|
||||
"dim-desktop-label": "Dim área de trabalho",
|
||||
"dimmer-opacity-description": "Definir o nível de opacidade para o escurecimento da área de trabalho.",
|
||||
"dimmer-opacity-label": "Opacidade da área de trabalho escurecida",
|
||||
"dimmer-opacity-reset": "Redefinir opacidade da área de trabalho escurecida",
|
||||
"panel-background-opacity-description": "Definir a opacidade do fundo para todos os painéis (barra, iniciador, configurações, etc...).",
|
||||
"panel-background-opacity-label": "Opacidade de fundo do painel",
|
||||
"panels-attached-to-bar-description": "Os painéis travam na barra e nas bordas da tela, criando uma aparência perfeita com cantos invertidos elegantes.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Manter painéis e barra no topo",
|
||||
"scaling-description": "Altera o tamanho da interface geral do usuário, excluindo a barra.",
|
||||
"scaling-label": "Escalonamento da interface",
|
||||
"scaling-reset-scaling": "Redefinir escala da interface",
|
||||
"settings-panel-mode-description": "Escolha o layout das configurações (pode ser necessário reabrir).",
|
||||
"settings-panel-mode-label": "Modo do painel de configurações",
|
||||
"shadows-description": "Ativa sombras projetadas sob barras e painéis.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Увеличение или уменьшение размера моноширинного текста.",
|
||||
"fonts-monospace-scale-label": "Размер моноширинного шрифта",
|
||||
"fonts-monospace-search-placeholder": "Поиск моноширинного шрифта...",
|
||||
"fonts-reset-scaling": "Сбросить масштабирование",
|
||||
"fonts-title": "Шрифты",
|
||||
"keybinds-conflict-description": "Комбинация клавиш уже назначена для {action}.",
|
||||
"keybinds-conflict-title": "Конфликт горячих клавиш",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Низкая срочность",
|
||||
"duration-normal-urgency-description": "Как долго остаются видимыми уведомления с нормальным приоритетом.",
|
||||
"duration-normal-urgency-label": "Нормальная срочность",
|
||||
"duration-reset": "Сбросить длительность тайм-аута",
|
||||
"duration-respect-expire-description": "Использовать таймаут истечения, установленный в уведомлении.",
|
||||
"duration-respect-expire-label": "Учитывать таймаут истечения",
|
||||
"duration-title": "Продолжительность уведомлений",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Контур контейнера",
|
||||
"box-border-radius-description": "Настраивает скругление углов основных разделов макета, таких как боковые панели, карточки и панели контента.",
|
||||
"box-border-radius-label": "Радиус контейнера",
|
||||
"box-border-radius-reset": "Сбросить радиус контейнера",
|
||||
"control-border-radius-description": "Управляет скруглением интерактивных элементов, включая кнопки, переключатели и текстовые поля.",
|
||||
"control-border-radius-label": "Радиус элементов ввода",
|
||||
"control-border-radius-reset": "Сбросить радиус ввода",
|
||||
"desc": "Настройка внешнего вида, ощущений и поведения интерфейса.",
|
||||
"dim-desktop-description": "Затемнять рабочий стол при открытии панелей или меню.",
|
||||
"dim-desktop-label": "Затемнять рабочий стол",
|
||||
"dimmer-opacity-description": "Установить уровень непрозрачности для затемнения рабочего стола.",
|
||||
"dimmer-opacity-label": "Непрозрачность затемнённого рабочего стола",
|
||||
"dimmer-opacity-reset": "Сбросить непрозрачность затемнённого рабочего стола",
|
||||
"panel-background-opacity-description": "Установить прозрачность фона для всех панелей (верхней панели, панели запуска, настроек и т. д.).",
|
||||
"panel-background-opacity-label": "Прозрачность фона панелей",
|
||||
"panels-attached-to-bar-description": "Панели прикрепляются к панели и краям экрана, создавая цельный вид со стильными инвертированными углами.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Держать панели и панель задач сверху",
|
||||
"scaling-description": "Изменяет размер общего пользовательского интерфейса, исключая панель.",
|
||||
"scaling-label": "Масштабирование интерфейса",
|
||||
"scaling-reset-scaling": "Сбросить масштабирование интерфейса",
|
||||
"settings-panel-mode-description": "Выберите раскладку настроек (может потребоваться перезапуск).",
|
||||
"settings-panel-mode-label": "Режим панели настроек",
|
||||
"shadows-description": "Включает отбрасываемые тени под панелями и панелью задач.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Öka eller minska storleken på text med fast bredd.",
|
||||
"fonts-monospace-scale-label": "Teckensnittsstorlek med fast bredd",
|
||||
"fonts-monospace-search-placeholder": "Sök teckensnitt med fast bredd...",
|
||||
"fonts-reset-scaling": "Återställ skalning",
|
||||
"fonts-title": "Teckensnitt",
|
||||
"keybinds-conflict-description": "Tangentkombinationen är redan tilldelad {action}.",
|
||||
"keybinds-conflict-title": "Tangentbindningskonflikt",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Låg brådskande",
|
||||
"duration-normal-urgency-description": "Hur länge meddelanden med normal prioritet förblir synliga.",
|
||||
"duration-normal-urgency-label": "Normal brådskande",
|
||||
"duration-reset": "Återställ tidsgräns",
|
||||
"duration-respect-expire-description": "Använd den tidsgräns som anges i meddelandet.",
|
||||
"duration-respect-expire-label": "Respektera tidsgränsen för utgång",
|
||||
"duration-title": "Meddelandets varaktighet",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Behållarkontur",
|
||||
"box-border-radius-description": "Justerar hörnrundningen för större layoutsektioner, såsom sidofält, kort och innehållspaneler.",
|
||||
"box-border-radius-label": "Behållarradie",
|
||||
"box-border-radius-reset": "Återställ behållarradie",
|
||||
"control-border-radius-description": "Styr kurvaturen för interaktiva element, inklusive knappar, växlar och textfält.",
|
||||
"control-border-radius-label": "Inmatningsradie",
|
||||
"control-border-radius-reset": "Återställ inmatningsradie",
|
||||
"desc": "Anpassa utseendet, känslan och beteendet hos gränssnittet.",
|
||||
"dim-desktop-description": "Dämpa skrivbordet när paneler eller menyer är öppna.",
|
||||
"dim-desktop-label": "Dämpa skrivbordet",
|
||||
"dimmer-opacity-description": "Ställ in opacitetsnivån för dämpning av skrivbordet. ",
|
||||
"dimmer-opacity-label": "Dimrad skrivbordsopacitet",
|
||||
"dimmer-opacity-reset": "Återställ dimrad skrivbordsopacitet",
|
||||
"panel-background-opacity-description": "Ställ in bakgrundsopaciteten för alla paneler (fält, startprogram, inställningar osv.). ",
|
||||
"panel-background-opacity-label": "Panelens bakgrundsopacitet",
|
||||
"panels-attached-to-bar-description": "Panelerna låses fast vid fältet och skärmens kanter, vilket skapar ett sömlöst utseende med snygga inverterade hörn.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Håll paneler och fält överst",
|
||||
"scaling-description": "Ändrar storleken på det allmänna användargränssnittet, exklusive fältet.",
|
||||
"scaling-label": "Gränssnittsskalning",
|
||||
"scaling-reset-scaling": "Återställ gränssnittsskalning",
|
||||
"settings-panel-mode-description": "Välj inställningslayout (kan kräva att du öppnar om).",
|
||||
"settings-panel-mode-label": "Inställningspanelens läge",
|
||||
"shadows-description": "Aktiverar skuggor under fält och paneler.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Eş aralıklı metin boyutunu artırın veya azaltın.",
|
||||
"fonts-monospace-scale-label": "Eş aralıklı yazı tipi boyutu",
|
||||
"fonts-monospace-search-placeholder": "Eş aralıklı yazı tipi ara...",
|
||||
"fonts-reset-scaling": "Ölçeklemeyi sıfırla",
|
||||
"fonts-title": "Yazı tipleri",
|
||||
"keybinds-conflict-description": "Tuş kombinasyonu zaten {action} için atanmış.",
|
||||
"keybinds-conflict-title": "Tuş ataması çakışması",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Düşük öncelikli",
|
||||
"duration-normal-urgency-description": "Normal öncelikli bildirimlerin ne kadar süreyle görüneceği.",
|
||||
"duration-normal-urgency-label": "Normal öncelikli",
|
||||
"duration-reset": "Zaman aşımı süresini sıfırla",
|
||||
"duration-respect-expire-description": "Bildirimde ayarlanan sona erme zaman aşımını kullanın.",
|
||||
"duration-respect-expire-label": "Sona erme zaman aşımına uyar",
|
||||
"duration-title": "Bildirim süresi",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Konteyner ana hattı",
|
||||
"box-border-radius-description": "Kenar çubukları, kartlar ve içerik panelleri gibi ana düzen bölümlerinin köşe yuvarlaklığını ayarlar.",
|
||||
"box-border-radius-label": "Konteyner yarıçapı",
|
||||
"box-border-radius-reset": "Konteyner yarıçapını sıfırla",
|
||||
"control-border-radius-description": "İnteraktif öğelerin, düğmeler, geçişler ve metin alanları dahil olmak üzere, eğriliğini kontrol eder.",
|
||||
"control-border-radius-label": "Giriş yarıçapı",
|
||||
"control-border-radius-reset": "Giriş yarıçapını sıfırla",
|
||||
"desc": "Arayüzün görünümünü, hissini ve davranışını özelleştirin.",
|
||||
"dim-desktop-description": "Paneller veya menüler açıkken masaüstünü karart.",
|
||||
"dim-desktop-label": "Masaüstünü karart",
|
||||
"dimmer-opacity-description": "Masaüstü karartması için opaklık seviyesini ayarlayın.",
|
||||
"dimmer-opacity-label": "Karartılmış masaüstü opaklığı",
|
||||
"dimmer-opacity-reset": "Karartılmış masaüstü opaklığını sıfırla",
|
||||
"panel-background-opacity-description": "Tüm panellerin (çubuk, başlatıcı, ayarlar vb.) arka plan opaklığını ayarlayın.",
|
||||
"panel-background-opacity-label": "Panel arka plan opaklığı",
|
||||
"panels-attached-to-bar-description": "Paneller çubuğa ve ekran kenarlarına kilitlenerek şık ters köşelerle kusursuz bir görünüm oluşturur.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Panelleri ve çubuğu üstte tut",
|
||||
"scaling-description": "Çubuğu hariç tutarak genel kullanıcı arayüzünün boyutunu değiştirir.",
|
||||
"scaling-label": "Arayüz ölçekleme",
|
||||
"scaling-reset-scaling": "Arayüz ölçeklemesini sıfırla",
|
||||
"settings-panel-mode-description": "Ayarlar düzenini seçin (yeniden açılması gerekebilir).",
|
||||
"settings-panel-mode-label": "Ayarlar paneli modu",
|
||||
"shadows-description": "Çubukların ve panellerin altında gölgelerin etkinleştirilmesini sağlar.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "Збільшити або зменшити розмір моноширинного тексту.",
|
||||
"fonts-monospace-scale-label": "Розмір моноширинного шрифту",
|
||||
"fonts-monospace-search-placeholder": "Пошук моноширинного шрифту...",
|
||||
"fonts-reset-scaling": "Скинути масштаб",
|
||||
"fonts-title": "Шрифти",
|
||||
"keybinds-conflict-description": "Комбінація клавіш вже призначена для {action}.",
|
||||
"keybinds-conflict-title": "Конфлікт гарячих клавіш",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "Низька терміновість",
|
||||
"duration-normal-urgency-description": "Як довго залишаються видимими сповіщення звичайного пріоритету.",
|
||||
"duration-normal-urgency-label": "Звичайна терміновість",
|
||||
"duration-reset": "Скинути тривалість очікування",
|
||||
"duration-respect-expire-description": "Використовувати тривалість показу, встановлений у сповіщенні.",
|
||||
"duration-respect-expire-label": "Враховувати тривалість показу",
|
||||
"duration-title": "Тривалість сповіщень",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "Контур контейнера",
|
||||
"box-border-radius-description": "Налаштовує заокруглення кутів основних розділів макета, таких як бічні панелі, картки та панелі контенту.",
|
||||
"box-border-radius-label": "Радіус контейнера",
|
||||
"box-border-radius-reset": "Скинути радіус контейнера",
|
||||
"control-border-radius-description": "Керує кривизною інтерактивних елементів, включно з кнопками, перемикачами та текстовими полями.",
|
||||
"control-border-radius-label": "Введіть радіус",
|
||||
"control-border-radius-reset": "Скинути радіус введення",
|
||||
"desc": "Налаштуйте вигляд, відчуття та поведінку інтерфейсу.",
|
||||
"dim-desktop-description": "Затемнювати робочий стіл, коли відкриті панелі або меню.",
|
||||
"dim-desktop-label": "Приглушити робочий стіл",
|
||||
"dimmer-opacity-description": "Встановити рівень непрозорості для затемнення робочого столу.",
|
||||
"dimmer-opacity-label": "Непрозорість приглушеного робочого столу",
|
||||
"dimmer-opacity-reset": "Скинути непрозорість приглушеного робочого столу",
|
||||
"panel-background-opacity-description": "Встановити прозорість фону для всіх панелей (панель задач, панель запуску, налаштування тощо...).",
|
||||
"panel-background-opacity-label": "Прозорість фону панелей",
|
||||
"panels-attached-to-bar-description": "Панелі фіксуються до штанги та країв екрана, створюючи бездоганний вигляд зі стильними перевернутими кутами.",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "Тримати панелі та панель зверху",
|
||||
"scaling-description": "Змінює розмір загального користувацького інтерфейсу, окрім панелі.",
|
||||
"scaling-label": "Масштабування інтерфейсу",
|
||||
"scaling-reset-scaling": "Скинути масштабування інтерфейсу",
|
||||
"settings-panel-mode-description": "Виберіть макет налаштувань (може знадобитися перезапуск).",
|
||||
"settings-panel-mode-label": "Режим панелі налаштувань",
|
||||
"shadows-description": "Увімкнути тіні під панелями та смугами.",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "增大或减小等宽文本的尺寸。",
|
||||
"fonts-monospace-scale-label": "默认等宽字体大小",
|
||||
"fonts-monospace-search-placeholder": "搜索等宽字体...",
|
||||
"fonts-reset-scaling": "恢复默认缩放",
|
||||
"fonts-title": "字体",
|
||||
"keybinds-conflict-description": "此按键组合已分配给 {action}。",
|
||||
"keybinds-conflict-title": "按键绑定冲突",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "低紧急度",
|
||||
"duration-normal-urgency-description": "正常优先级通知保持可见的时间。",
|
||||
"duration-normal-urgency-label": "正常紧急度",
|
||||
"duration-reset": "重置超时时长",
|
||||
"duration-respect-expire-description": "使用通知中设置的过期超时。",
|
||||
"duration-respect-expire-label": "尊重过期超时",
|
||||
"duration-title": "通知持续时间",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "容器轮廓",
|
||||
"box-border-radius-description": "调整主要布局部分(如侧边栏、卡片和内容面板)的圆角程度。",
|
||||
"box-border-radius-label": "容器半径",
|
||||
"box-border-radius-reset": "重置容器半径",
|
||||
"control-border-radius-description": "控制交互元素的曲率,包括按钮、开关和文本字段。",
|
||||
"control-border-radius-label": "输入半径",
|
||||
"control-border-radius-reset": "重置输入半径",
|
||||
"desc": "自定义界面的外观、感觉和行为。",
|
||||
"dim-desktop-description": "当面板或菜单打开时,桌面变暗。",
|
||||
"dim-desktop-label": "昏暗的桌面",
|
||||
"dimmer-opacity-description": "设置桌面变暗时的不透明度。",
|
||||
"dimmer-opacity-label": "变暗桌面不透明度",
|
||||
"dimmer-opacity-reset": "重置变暗桌面不透明度",
|
||||
"panel-background-opacity-description": "设置所有面板(栏、启动器、设置等)的背景不透明度。",
|
||||
"panel-background-opacity-label": "面板背景不透明度",
|
||||
"panels-attached-to-bar-description": "面板锁定到边栏和屏幕边缘,形成无缝外观,并具有时尚的倒角。",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "将面板和栏保持在顶部",
|
||||
"scaling-description": "更改通用用户界面大小,不包括栏。",
|
||||
"scaling-label": "界面缩放",
|
||||
"scaling-reset-scaling": "重置界面缩放",
|
||||
"settings-panel-mode-description": "选择「设置」面板的布局(可能需要重新打开「设置」面板才会生效)。",
|
||||
"settings-panel-mode-label": "「设置」面板模式",
|
||||
"shadows-description": "启用条形图和面板下的阴影。",
|
||||
|
||||
@@ -1087,7 +1087,6 @@
|
||||
"fonts-monospace-scale-description": "增大或縮小等寬文字的大小",
|
||||
"fonts-monospace-scale-label": "等寬字型大小",
|
||||
"fonts-monospace-search-placeholder": "搜尋等寬字型...",
|
||||
"fonts-reset-scaling": "重設文字大小",
|
||||
"fonts-title": "字型",
|
||||
"keybinds-conflict-description": "此按鍵組合已分配給 {action}。",
|
||||
"keybinds-conflict-title": "按鍵綁定衝突",
|
||||
@@ -1301,7 +1300,6 @@
|
||||
"duration-low-urgency-label": "低急迫性",
|
||||
"duration-normal-urgency-description": "設定普通急迫的通知該顯示多久",
|
||||
"duration-normal-urgency-label": "普通急迫",
|
||||
"duration-reset": "重設逾時時間長度",
|
||||
"duration-respect-expire-description": "使用通知中設定的到期逾時時間。",
|
||||
"duration-respect-expire-label": "遵循到期逾時設定",
|
||||
"duration-title": "通知顯示時長",
|
||||
@@ -1529,16 +1527,13 @@
|
||||
"box-border-label": "頁面容器外框",
|
||||
"box-border-radius-description": "調整主要版面區塊(例如側邊欄、卡片與內容面板)的圓角弧度。",
|
||||
"box-border-radius-label": "頁面容器半徑",
|
||||
"box-border-radius-reset": "重設頁面容器半徑",
|
||||
"control-border-radius-description": "控制互動元素(包括按鈕、切換開關與文字欄位)的圓角弧度。",
|
||||
"control-border-radius-label": "控制項半徑",
|
||||
"control-border-radius-reset": "重設控制項半徑",
|
||||
"desc": "自訂介面顯示的行為, 外觀及風格",
|
||||
"dim-desktop-description": "當功能表或面板打開時調暗桌布",
|
||||
"dim-desktop-label": "調暗桌布",
|
||||
"dimmer-opacity-description": "設定調暗桌布所使用的不透明度",
|
||||
"dimmer-opacity-label": "調暗桌面不透明度",
|
||||
"dimmer-opacity-reset": "重設調暗桌面不透明度",
|
||||
"panel-background-opacity-description": "設定所有面板的背景不透明度 (工具列, 啟動器, 設定等...)",
|
||||
"panel-background-opacity-label": "面板背景不透明度",
|
||||
"panels-attached-to-bar-description": "將面板鎖定在工具列及畫面邊緣, 配合倒角可做出更一致的效果",
|
||||
@@ -1547,7 +1542,6 @@
|
||||
"panels-overlay-label": "維持工具列及面板在最上層",
|
||||
"scaling-description": "調整除了工具列以外的整體介面大小",
|
||||
"scaling-label": "介面比例",
|
||||
"scaling-reset-scaling": "重設介面比例",
|
||||
"settings-panel-mode-description": "選擇介面設定出現所用的佈局 (可能需要重新打開)",
|
||||
"settings-panel-mode-label": "設定面板顯示",
|
||||
"shadows-description": "為工具列及面板啟用陰影",
|
||||
|
||||
@@ -98,6 +98,7 @@
|
||||
"allowPasswordWithFprintd": false,
|
||||
"clockStyle": "custom",
|
||||
"clockFormat": "hh\\nmm",
|
||||
"passwordChars": false,
|
||||
"lockScreenMonitors": [],
|
||||
"lockScreenBlur": 0,
|
||||
"lockScreenTint": 0,
|
||||
|
||||
@@ -1054,8 +1054,8 @@
|
||||
"subTabLabel": "common.appearance"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.lock-on-suspend-label",
|
||||
"descriptionKey": "panels.lock-screen.lock-on-suspend-description",
|
||||
"labelKey": "panels.lock-screen.password-chars-label",
|
||||
"descriptionKey": "panels.lock-screen.password-chars-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
@@ -1080,60 +1080,6 @@
|
||||
"subTab": 0,
|
||||
"subTabLabel": "common.appearance"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.auto-start-auth-label",
|
||||
"descriptionKey": "panels.lock-screen.auto-start-auth-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 0,
|
||||
"subTabLabel": "common.appearance"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.allow-password-with-fprintd-label",
|
||||
"descriptionKey": "panels.lock-screen.allow-password-with-fprintd-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 0,
|
||||
"subTabLabel": "common.appearance"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.show-session-buttons-label",
|
||||
"descriptionKey": "panels.lock-screen.show-session-buttons-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 0,
|
||||
"subTabLabel": "common.appearance"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.show-hibernate-label",
|
||||
"descriptionKey": "panels.lock-screen.show-hibernate-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 0,
|
||||
"subTabLabel": "common.appearance"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.session-menu.enable-countdown-label",
|
||||
"descriptionKey": "panels.session-menu.enable-countdown-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 0,
|
||||
"subTabLabel": "common.appearance"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.session-menu.countdown-duration-label",
|
||||
"descriptionKey": "panels.session-menu.countdown-duration-description",
|
||||
"widget": "NValueSlider",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 0,
|
||||
"subTabLabel": "common.appearance"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.lock-screen-blur-strength-label",
|
||||
"descriptionKey": "panels.lock-screen.lock-screen-blur-strength-description",
|
||||
@@ -1152,6 +1098,69 @@
|
||||
"subTab": 0,
|
||||
"subTabLabel": "common.appearance"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.lock-on-suspend-label",
|
||||
"descriptionKey": "panels.lock-screen.lock-on-suspend-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 1,
|
||||
"subTabLabel": "common.behavior"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.auto-start-auth-label",
|
||||
"descriptionKey": "panels.lock-screen.auto-start-auth-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 1,
|
||||
"subTabLabel": "common.behavior"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.allow-password-with-fprintd-label",
|
||||
"descriptionKey": "panels.lock-screen.allow-password-with-fprintd-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 1,
|
||||
"subTabLabel": "common.behavior"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.show-session-buttons-label",
|
||||
"descriptionKey": "panels.lock-screen.show-session-buttons-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 1,
|
||||
"subTabLabel": "common.behavior"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.lock-screen.show-hibernate-label",
|
||||
"descriptionKey": "panels.lock-screen.show-hibernate-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 1,
|
||||
"subTabLabel": "common.behavior"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.session-menu.enable-countdown-label",
|
||||
"descriptionKey": "panels.session-menu.enable-countdown-description",
|
||||
"widget": "NToggle",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 1,
|
||||
"subTabLabel": "common.behavior"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.session-menu.countdown-duration-label",
|
||||
"descriptionKey": "panels.session-menu.countdown-duration-description",
|
||||
"widget": "NValueSlider",
|
||||
"tab": 11,
|
||||
"tabLabel": "panels.lock-screen.title",
|
||||
"subTab": 1,
|
||||
"subTabLabel": "common.behavior"
|
||||
},
|
||||
{
|
||||
"labelKey": "panels.notifications.duration-respect-expire-label",
|
||||
"descriptionKey": "panels.notifications.duration-respect-expire-description",
|
||||
|
||||
@@ -287,6 +287,7 @@ Singleton {
|
||||
property bool allowPasswordWithFprintd: false
|
||||
property string clockStyle: "custom"
|
||||
property string clockFormat: "hh\\nmm"
|
||||
property bool passwordChars: false
|
||||
property list<string> lockScreenMonitors: [] // holds lock screen visibility per monitor
|
||||
property real lockScreenBlur: 0.0
|
||||
property real lockScreenTint: 0.0
|
||||
|
||||
@@ -47,6 +47,7 @@ Singleton {
|
||||
readonly property int borderL: Math.max(1, Math.round(3 * uiScaleRatio))
|
||||
|
||||
// Margins (for margins and spacing)
|
||||
readonly property int marginXXXS: Math.round(1 * uiScaleRatio)
|
||||
readonly property int marginXXS: Math.round(2 * uiScaleRatio)
|
||||
readonly property int marginXS: Math.round(4 * uiScaleRatio)
|
||||
readonly property int marginS: Math.round(6 * uiScaleRatio)
|
||||
|
||||
@@ -581,17 +581,46 @@ Item {
|
||||
|
||||
Row {
|
||||
id: passwordDisplayContent
|
||||
spacing: Style.marginS
|
||||
spacing: Style.marginXXXS
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
Repeater {
|
||||
model: passwordInput.text.length
|
||||
id: iconRepeater
|
||||
model: ScriptModel {
|
||||
values: Array(passwordInput.text.length)
|
||||
}
|
||||
|
||||
property list<string> passwordChars: ["circle-filled", "pentagon-filled", "michelin-star-filled", "square-rounded-filled", "guitar-pick-filled", "blob-filled", "triangle-filled"]
|
||||
|
||||
NIcon {
|
||||
icon: "circle-filled"
|
||||
pointSize: Style.fontSizeS
|
||||
id: icon
|
||||
|
||||
required property int index
|
||||
// This will be called with index = -1 when the TextInput is deleted
|
||||
// So we make sur index is positive to avoid warning on array accesses
|
||||
property bool drawCustomChar: index >= 0 && Settings.data.general.passwordChars
|
||||
|
||||
icon: drawCustomChar ? iconRepeater.passwordChars[index % iconRepeater.passwordChars.length] : "circle-filled"
|
||||
pointSize: Style.fontSizeL
|
||||
color: Color.mPrimary
|
||||
opacity: 1.0
|
||||
scale: animationsEnabled ? 0.5 : 1
|
||||
ParallelAnimation {
|
||||
id: iconAnim
|
||||
NumberAnimation {
|
||||
target: icon
|
||||
properties: "scale"
|
||||
to: 1
|
||||
duration: Style.animationFast
|
||||
easing.type: Easing.BezierSpline
|
||||
easing.bezierCurve: Easing.OutInBounce
|
||||
}
|
||||
}
|
||||
Component.onCompleted: {
|
||||
if (animationsEnabled) {
|
||||
iconAnim.start();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -408,7 +408,10 @@ Variants {
|
||||
return a.identifier === "default";
|
||||
});
|
||||
if (hasDefault) {
|
||||
card.runDeferredTimer("default", false);
|
||||
card.runAction("default", false);
|
||||
} else {
|
||||
NotificationService.focusSenderWindow(model.appName);
|
||||
card.animateOut();
|
||||
}
|
||||
}
|
||||
onCanceled: {
|
||||
@@ -497,23 +500,14 @@ Variants {
|
||||
}
|
||||
}
|
||||
|
||||
function runDeferredTimer(actionId, isDismissed) {
|
||||
if (Style.animationSlow <= 0) {
|
||||
if (!isDismissed) {
|
||||
NotificationService.invokeAction(notificationId, actionId);
|
||||
} else if (Settings.data.notifications.clearDismissed) {
|
||||
NotificationService.removeFromHistory(notificationId);
|
||||
}
|
||||
card.animateOut();
|
||||
return;
|
||||
function runAction(actionId, isDismissed) {
|
||||
if (!isDismissed) {
|
||||
NotificationService.focusSenderWindow(model.appName);
|
||||
NotificationService.invokeActionAndSuppressClose(notificationId, actionId);
|
||||
} else if (Settings.data.notifications.clearDismissed) {
|
||||
NotificationService.removeFromHistory(notificationId);
|
||||
}
|
||||
|
||||
deferredActionTimer.stop();
|
||||
deferredActionTimer.actionId = actionId || "";
|
||||
deferredActionTimer.isDismissed = isDismissed;
|
||||
deferredActionTimer.interval = Math.min(50, Math.max(1, Style.animationSlow - 1));
|
||||
card.animateOut();
|
||||
deferredActionTimer.start();
|
||||
}
|
||||
|
||||
Timer {
|
||||
@@ -525,20 +519,6 @@ Variants {
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: deferredActionTimer
|
||||
interval: 50
|
||||
property string actionId: ""
|
||||
property bool isDismissed: false
|
||||
onTriggered: {
|
||||
if (!isDismissed) {
|
||||
NotificationService.invokeAction(notificationId, actionId);
|
||||
} else if (Settings.data.notifications.clearDismissed) {
|
||||
NotificationService.removeFromHistory(notificationId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onIsRemovingChanged: {
|
||||
if (isRemoving) {
|
||||
removalTimer.start();
|
||||
@@ -722,7 +702,7 @@ Variants {
|
||||
outlined: false
|
||||
implicitHeight: 24
|
||||
onClicked: {
|
||||
card.runDeferredTimer(actionData.identifier, false);
|
||||
card.runAction(actionData.identifier, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -743,7 +723,7 @@ Variants {
|
||||
anchors.rightMargin: Style.marginM
|
||||
|
||||
onClicked: {
|
||||
card.runDeferredTimer("", true);
|
||||
card.runAction("", true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -132,6 +132,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 1
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.bar.backgroundOpacity
|
||||
defaultValue: Settings.getDefaultValue("bar.backgroundOpacity")
|
||||
onMoved: value => Settings.data.bar.backgroundOpacity = value
|
||||
@@ -175,6 +176,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 1
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.bar.capsuleOpacity
|
||||
defaultValue: Settings.getDefaultValue("bar.capsuleOpacity")
|
||||
onMoved: value => Settings.data.bar.capsuleOpacity = value
|
||||
@@ -221,6 +223,7 @@ ColumnLayout {
|
||||
from: 4
|
||||
to: 24
|
||||
stepSize: 1
|
||||
showReset: true
|
||||
value: Settings.data.bar.frameThickness
|
||||
defaultValue: Settings.getDefaultValue("bar.frameThickness")
|
||||
onMoved: value => Settings.data.bar.frameThickness = value
|
||||
@@ -233,6 +236,7 @@ ColumnLayout {
|
||||
from: 4
|
||||
to: 24
|
||||
stepSize: 1
|
||||
showReset: true
|
||||
value: Settings.data.bar.frameRadius
|
||||
defaultValue: Settings.getDefaultValue("bar.frameRadius")
|
||||
onMoved: value => Settings.data.bar.frameRadius = value
|
||||
@@ -261,6 +265,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 18
|
||||
stepSize: 1
|
||||
showReset: true
|
||||
value: Settings.data.bar.marginVertical
|
||||
defaultValue: Settings.getDefaultValue("bar.marginVertical")
|
||||
onMoved: value => Settings.data.bar.marginVertical = value
|
||||
@@ -273,6 +278,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 18
|
||||
stepSize: 1
|
||||
showReset: true
|
||||
value: Settings.data.bar.marginHorizontal
|
||||
defaultValue: Settings.getDefaultValue("bar.marginHorizontal")
|
||||
onMoved: value => Settings.data.bar.marginHorizontal = value
|
||||
@@ -299,6 +305,7 @@ ColumnLayout {
|
||||
from: 100
|
||||
to: 2000
|
||||
stepSize: 100
|
||||
showReset: true
|
||||
value: Settings.data.bar.autoHideDelay
|
||||
defaultValue: Settings.getDefaultValue("bar.autoHideDelay")
|
||||
onMoved: value => Settings.data.bar.autoHideDelay = value
|
||||
@@ -312,6 +319,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 500
|
||||
stepSize: 50
|
||||
showReset: true
|
||||
value: Settings.data.bar.autoShowDelay
|
||||
defaultValue: Settings.getDefaultValue("bar.autoShowDelay")
|
||||
onMoved: value => Settings.data.bar.autoShowDelay = value
|
||||
|
||||
@@ -121,6 +121,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 1
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.dock.backgroundOpacity
|
||||
defaultValue: Settings.getDefaultValue("dock.backgroundOpacity")
|
||||
onMoved: value => Settings.data.dock.backgroundOpacity = value
|
||||
@@ -134,6 +135,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 1
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.dock.deadOpacity
|
||||
defaultValue: Settings.getDefaultValue("dock.deadOpacity")
|
||||
onMoved: value => Settings.data.dock.deadOpacity = value
|
||||
@@ -148,6 +150,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 4
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.dock.floatingRatio
|
||||
defaultValue: Settings.getDefaultValue("dock.floatingRatio")
|
||||
onMoved: value => Settings.data.dock.floatingRatio = value
|
||||
@@ -161,6 +164,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 2
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.dock.size
|
||||
defaultValue: Settings.getDefaultValue("dock.size")
|
||||
onMoved: value => Settings.data.dock.size = value
|
||||
@@ -175,6 +179,7 @@ ColumnLayout {
|
||||
from: 0.1
|
||||
to: 2.0
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.dock.animationSpeed
|
||||
defaultValue: Settings.getDefaultValue("dock.animationSpeed")
|
||||
onMoved: value => Settings.data.dock.animationSpeed = value
|
||||
|
||||
@@ -105,70 +105,32 @@ ColumnLayout {
|
||||
onSelected: key => Settings.data.ui.fontFixed = key
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: Style.marginL
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.general.fonts-default-scale-label")
|
||||
description: I18n.tr("panels.general.fonts-default-scale-description")
|
||||
from: 0.75
|
||||
to: 1.25
|
||||
stepSize: 0.01
|
||||
value: Settings.data.ui.fontDefaultScale
|
||||
defaultValue: Settings.getDefaultValue("ui.fontDefaultScale")
|
||||
onMoved: value => Settings.data.ui.fontDefaultScale = value
|
||||
text: Math.floor(Settings.data.ui.fontDefaultScale * 100) + "%"
|
||||
}
|
||||
|
||||
// Reset button container
|
||||
Item {
|
||||
Layout.preferredWidth: 30 * Style.uiScaleRatio
|
||||
Layout.preferredHeight: 30 * Style.uiScaleRatio
|
||||
|
||||
NIconButton {
|
||||
icon: "restore"
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("panels.general.fonts-reset-scaling")
|
||||
onClicked: Settings.data.ui.fontDefaultScale = 1.0
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
label: I18n.tr("panels.general.fonts-default-scale-label")
|
||||
description: I18n.tr("panels.general.fonts-default-scale-description")
|
||||
from: 0.75
|
||||
to: 1.25
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.ui.fontDefaultScale
|
||||
defaultValue: Settings.getDefaultValue("ui.fontDefaultScale")
|
||||
onMoved: value => Settings.data.ui.fontDefaultScale = value
|
||||
text: Math.floor(Settings.data.ui.fontDefaultScale * 100) + "%"
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: Style.marginL
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.general.fonts-monospace-scale-label")
|
||||
description: I18n.tr("panels.general.fonts-monospace-scale-description")
|
||||
from: 0.75
|
||||
to: 1.25
|
||||
stepSize: 0.01
|
||||
value: Settings.data.ui.fontFixedScale
|
||||
defaultValue: Settings.getDefaultValue("ui.fontFixedScale")
|
||||
onMoved: value => Settings.data.ui.fontFixedScale = value
|
||||
text: Math.floor(Settings.data.ui.fontFixedScale * 100) + "%"
|
||||
}
|
||||
|
||||
// Reset button container
|
||||
Item {
|
||||
Layout.preferredWidth: 30 * Style.uiScaleRatio
|
||||
Layout.preferredHeight: 30 * Style.uiScaleRatio
|
||||
|
||||
NIconButton {
|
||||
icon: "restore"
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("panels.general.fonts-reset-scaling")
|
||||
onClicked: Settings.data.ui.fontFixedScale = 1.0
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
label: I18n.tr("panels.general.fonts-monospace-scale-label")
|
||||
description: I18n.tr("panels.general.fonts-monospace-scale-description")
|
||||
from: 0.75
|
||||
to: 1.25
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.ui.fontFixedScale
|
||||
defaultValue: Settings.getDefaultValue("ui.fontFixedScale")
|
||||
onMoved: value => Settings.data.ui.fontFixedScale = value
|
||||
text: Math.floor(Settings.data.ui.fontFixedScale * 100) + "%"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,11 +61,11 @@ ColumnLayout {
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.lock-screen.lock-on-suspend-label")
|
||||
description: I18n.tr("panels.lock-screen.lock-on-suspend-description")
|
||||
checked: Settings.data.general.lockOnSuspend
|
||||
onToggled: checked => Settings.data.general.lockOnSuspend = checked
|
||||
defaultValue: Settings.getDefaultValue("general.lockOnSuspend")
|
||||
label: I18n.tr("panels.lock-screen.password-chars-label")
|
||||
description: I18n.tr("panels.lock-screen.password-chars-description")
|
||||
checked: Settings.data.general.passwordChars
|
||||
onToggled: checked => Settings.data.general.passwordChars = checked
|
||||
defaultValue: Settings.getDefaultValue("general.passwordChars")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
@@ -84,66 +84,6 @@ ColumnLayout {
|
||||
defaultValue: Settings.getDefaultValue("general.lockScreenAnimations")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.lock-screen.auto-start-auth-label")
|
||||
description: I18n.tr("panels.lock-screen.auto-start-auth-description")
|
||||
checked: Settings.data.general.autoStartAuth
|
||||
onToggled: checked => Settings.data.general.autoStartAuth = checked
|
||||
defaultValue: Settings.getDefaultValue("general.autoStartAuth")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.lock-screen.allow-password-with-fprintd-label")
|
||||
description: I18n.tr("panels.lock-screen.allow-password-with-fprintd-description")
|
||||
checked: Settings.data.general.allowPasswordWithFprintd
|
||||
onToggled: checked => Settings.data.general.allowPasswordWithFprintd = checked
|
||||
defaultValue: Settings.getDefaultValue("general.allowPasswordWithFprintd")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.lock-screen.show-session-buttons-label")
|
||||
description: I18n.tr("panels.lock-screen.show-session-buttons-description")
|
||||
checked: Settings.data.general.showSessionButtonsOnLockScreen
|
||||
onToggled: checked => Settings.data.general.showSessionButtonsOnLockScreen = checked
|
||||
defaultValue: Settings.getDefaultValue("general.showSessionButtonsOnLockScreen")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.lock-screen.show-hibernate-label")
|
||||
description: I18n.tr("panels.lock-screen.show-hibernate-description")
|
||||
checked: Settings.data.general.showHibernateOnLockScreen
|
||||
onToggled: checked => Settings.data.general.showHibernateOnLockScreen = checked
|
||||
visible: Settings.data.general.showSessionButtonsOnLockScreen
|
||||
defaultValue: Settings.getDefaultValue("general.showSessionButtonsOnLockScreen")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.session-menu.enable-countdown-label")
|
||||
description: I18n.tr("panels.session-menu.enable-countdown-description")
|
||||
checked: Settings.data.general.enableLockScreenCountdown
|
||||
onToggled: checked => Settings.data.general.enableLockScreenCountdown = checked
|
||||
visible: Settings.data.general.showSessionButtonsOnLockScreen
|
||||
defaultValue: Settings.getDefaultValue("general.enableLockScreenCountdown")
|
||||
}
|
||||
|
||||
NValueSlider {
|
||||
visible: Settings.data.general.showSessionButtonsOnLockScreen && Settings.data.general.enableLockScreenCountdown
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.session-menu.countdown-duration-label")
|
||||
description: I18n.tr("panels.session-menu.countdown-duration-description")
|
||||
from: 1000
|
||||
to: 30000
|
||||
stepSize: 1000
|
||||
value: Settings.data.general.lockScreenCountdownDuration
|
||||
onMoved: value => Settings.data.general.lockScreenCountdownDuration = value
|
||||
text: Math.round(Settings.data.general.lockScreenCountdownDuration / 1000) + "s"
|
||||
defaultValue: Settings.getDefaultValue("general.lockScreenCountdownDuration")
|
||||
}
|
||||
|
||||
NDivider {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.lock-screen.lock-screen-blur-strength-label")
|
||||
@@ -151,6 +91,7 @@ ColumnLayout {
|
||||
from: 0.0
|
||||
to: 1.0
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.general.lockScreenBlur
|
||||
onMoved: value => Settings.data.general.lockScreenBlur = value
|
||||
text: ((Settings.data.general.lockScreenBlur) * 100).toFixed(0) + "%"
|
||||
@@ -164,6 +105,7 @@ ColumnLayout {
|
||||
from: 0.0
|
||||
to: 1.0
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.general.lockScreenTint
|
||||
onMoved: value => Settings.data.general.lockScreenTint = value
|
||||
text: ((Settings.data.general.lockScreenTint) * 100).toFixed(0) + "%"
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import qs.Commons
|
||||
import qs.Widgets
|
||||
|
||||
ColumnLayout {
|
||||
id: root
|
||||
spacing: Style.marginL
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.lock-screen.lock-on-suspend-label")
|
||||
description: I18n.tr("panels.lock-screen.lock-on-suspend-description")
|
||||
checked: Settings.data.general.lockOnSuspend
|
||||
onToggled: checked => Settings.data.general.lockOnSuspend = checked
|
||||
defaultValue: Settings.getDefaultValue("general.lockOnSuspend")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.lock-screen.auto-start-auth-label")
|
||||
description: I18n.tr("panels.lock-screen.auto-start-auth-description")
|
||||
checked: Settings.data.general.autoStartAuth
|
||||
onToggled: checked => Settings.data.general.autoStartAuth = checked
|
||||
defaultValue: Settings.getDefaultValue("general.autoStartAuth")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.lock-screen.allow-password-with-fprintd-label")
|
||||
description: I18n.tr("panels.lock-screen.allow-password-with-fprintd-description")
|
||||
checked: Settings.data.general.allowPasswordWithFprintd
|
||||
onToggled: checked => Settings.data.general.allowPasswordWithFprintd = checked
|
||||
defaultValue: Settings.getDefaultValue("general.allowPasswordWithFprintd")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.lock-screen.show-session-buttons-label")
|
||||
description: I18n.tr("panels.lock-screen.show-session-buttons-description")
|
||||
checked: Settings.data.general.showSessionButtonsOnLockScreen
|
||||
onToggled: checked => Settings.data.general.showSessionButtonsOnLockScreen = checked
|
||||
defaultValue: Settings.getDefaultValue("general.showSessionButtonsOnLockScreen")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.lock-screen.show-hibernate-label")
|
||||
description: I18n.tr("panels.lock-screen.show-hibernate-description")
|
||||
checked: Settings.data.general.showHibernateOnLockScreen
|
||||
onToggled: checked => Settings.data.general.showHibernateOnLockScreen = checked
|
||||
visible: Settings.data.general.showSessionButtonsOnLockScreen
|
||||
defaultValue: Settings.getDefaultValue("general.showSessionButtonsOnLockScreen")
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("panels.session-menu.enable-countdown-label")
|
||||
description: I18n.tr("panels.session-menu.enable-countdown-description")
|
||||
checked: Settings.data.general.enableLockScreenCountdown
|
||||
onToggled: checked => Settings.data.general.enableLockScreenCountdown = checked
|
||||
visible: Settings.data.general.showSessionButtonsOnLockScreen
|
||||
defaultValue: Settings.getDefaultValue("general.enableLockScreenCountdown")
|
||||
}
|
||||
|
||||
NValueSlider {
|
||||
visible: Settings.data.general.showSessionButtonsOnLockScreen && Settings.data.general.enableLockScreenCountdown
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.session-menu.countdown-duration-label")
|
||||
description: I18n.tr("panels.session-menu.countdown-duration-description")
|
||||
from: 1000
|
||||
to: 30000
|
||||
stepSize: 1000
|
||||
showReset: true
|
||||
value: Settings.data.general.lockScreenCountdownDuration
|
||||
onMoved: value => Settings.data.general.lockScreenCountdownDuration = value
|
||||
text: Math.round(Settings.data.general.lockScreenCountdownDuration / 1000) + "s"
|
||||
defaultValue: Settings.getDefaultValue("general.lockScreenCountdownDuration")
|
||||
}
|
||||
}
|
||||
@@ -21,10 +21,15 @@ ColumnLayout {
|
||||
checked: subTabBar.currentIndex === 0
|
||||
}
|
||||
NTabButton {
|
||||
text: I18n.tr("common.monitors")
|
||||
text: I18n.tr("common.behavior")
|
||||
tabIndex: 1
|
||||
checked: subTabBar.currentIndex === 1
|
||||
}
|
||||
NTabButton {
|
||||
text: I18n.tr("common.monitors")
|
||||
tabIndex: 2
|
||||
checked: subTabBar.currentIndex === 2
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
@@ -37,6 +42,7 @@ ColumnLayout {
|
||||
currentIndex: subTabBar.currentIndex
|
||||
|
||||
AppearanceSubTab {}
|
||||
BehaviorSubTab {}
|
||||
MonitorsSubTab {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,99 +17,45 @@ ColumnLayout {
|
||||
defaultValue: Settings.getDefaultValue("notifications.respectExpireTimeout")
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: Style.marginL
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.notifications.duration-low-urgency-label")
|
||||
description: I18n.tr("panels.notifications.duration-low-urgency-description")
|
||||
from: 1
|
||||
to: 30
|
||||
stepSize: 1
|
||||
value: Settings.data.notifications.lowUrgencyDuration
|
||||
onMoved: value => Settings.data.notifications.lowUrgencyDuration = value
|
||||
text: Settings.data.notifications.lowUrgencyDuration + "s"
|
||||
defaultValue: Settings.getDefaultValue("notifications.lowUrgencyDuration")
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.preferredWidth: 30 * Style.uiScaleRatio
|
||||
Layout.preferredHeight: 30 * Style.uiScaleRatio
|
||||
|
||||
NIconButton {
|
||||
icon: "restore"
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("panels.notifications.duration-reset")
|
||||
onClicked: Settings.data.notifications.lowUrgencyDuration = 3
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
label: I18n.tr("panels.notifications.duration-low-urgency-label")
|
||||
description: I18n.tr("panels.notifications.duration-low-urgency-description")
|
||||
from: 1
|
||||
to: 30
|
||||
stepSize: 1
|
||||
showReset: true
|
||||
value: Settings.data.notifications.lowUrgencyDuration
|
||||
onMoved: value => Settings.data.notifications.lowUrgencyDuration = value
|
||||
text: Settings.data.notifications.lowUrgencyDuration + "s"
|
||||
defaultValue: Settings.getDefaultValue("notifications.lowUrgencyDuration")
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: Style.marginL
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.notifications.duration-normal-urgency-label")
|
||||
description: I18n.tr("panels.notifications.duration-normal-urgency-description")
|
||||
from: 1
|
||||
to: 30
|
||||
stepSize: 1
|
||||
value: Settings.data.notifications.normalUrgencyDuration
|
||||
onMoved: value => Settings.data.notifications.normalUrgencyDuration = value
|
||||
text: Settings.data.notifications.normalUrgencyDuration + "s"
|
||||
defaultValue: Settings.getDefaultValue("notifications.normalUrgencyDuration")
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.preferredWidth: 30 * Style.uiScaleRatio
|
||||
Layout.preferredHeight: 30 * Style.uiScaleRatio
|
||||
|
||||
NIconButton {
|
||||
icon: "restore"
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("panels.notifications.duration-reset")
|
||||
onClicked: Settings.data.notifications.normalUrgencyDuration = 8
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
label: I18n.tr("panels.notifications.duration-normal-urgency-label")
|
||||
description: I18n.tr("panels.notifications.duration-normal-urgency-description")
|
||||
from: 1
|
||||
to: 30
|
||||
stepSize: 1
|
||||
showReset: true
|
||||
value: Settings.data.notifications.normalUrgencyDuration
|
||||
onMoved: value => Settings.data.notifications.normalUrgencyDuration = value
|
||||
text: Settings.data.notifications.normalUrgencyDuration + "s"
|
||||
defaultValue: Settings.getDefaultValue("notifications.normalUrgencyDuration")
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: Style.marginL
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.notifications.duration-critical-urgency-label")
|
||||
description: I18n.tr("panels.notifications.duration-critical-urgency-description")
|
||||
from: 1
|
||||
to: 30
|
||||
stepSize: 1
|
||||
value: Settings.data.notifications.criticalUrgencyDuration
|
||||
onMoved: value => Settings.data.notifications.criticalUrgencyDuration = value
|
||||
text: Settings.data.notifications.criticalUrgencyDuration + "s"
|
||||
defaultValue: Settings.getDefaultValue("notifications.criticalUrgencyDuration")
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.preferredWidth: 30 * Style.uiScaleRatio
|
||||
Layout.preferredHeight: 30 * Style.uiScaleRatio
|
||||
|
||||
NIconButton {
|
||||
icon: "restore"
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("panels.notifications.duration-reset")
|
||||
onClicked: Settings.data.notifications.criticalUrgencyDuration = 15
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
label: I18n.tr("panels.notifications.duration-critical-urgency-label")
|
||||
description: I18n.tr("panels.notifications.duration-critical-urgency-description")
|
||||
from: 1
|
||||
to: 30
|
||||
stepSize: 1
|
||||
showReset: true
|
||||
value: Settings.data.notifications.criticalUrgencyDuration
|
||||
onMoved: value => Settings.data.notifications.criticalUrgencyDuration = value
|
||||
text: Settings.data.notifications.criticalUrgencyDuration + "s"
|
||||
defaultValue: Settings.getDefaultValue("notifications.criticalUrgencyDuration")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,6 +97,7 @@ ColumnLayout {
|
||||
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) + "%"
|
||||
|
||||
@@ -61,6 +61,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 1
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.notifications?.sounds?.volume ?? 0.5
|
||||
onMoved: value => Settings.data.notifications.sounds.volume = value
|
||||
text: Math.round((Settings.data.notifications?.sounds?.volume ?? 0.5) * 100) + "%"
|
||||
|
||||
@@ -79,6 +79,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 100
|
||||
stepSize: 1
|
||||
showReset: true
|
||||
value: Settings.data.osd.backgroundOpacity * 100
|
||||
defaultValue: (Settings.getDefaultValue("osd.backgroundOpacity") || 1) * 100
|
||||
onMoved: value => Settings.data.osd.backgroundOpacity = value / 100
|
||||
@@ -92,6 +93,7 @@ ColumnLayout {
|
||||
from: 500
|
||||
to: 5000
|
||||
stepSize: 100
|
||||
showReset: true
|
||||
value: Settings.data.osd.autoHideMs
|
||||
defaultValue: Settings.getDefaultValue("osd.autoHideMs")
|
||||
onMoved: value => Settings.data.osd.autoHideMs = value
|
||||
|
||||
@@ -113,6 +113,7 @@ ColumnLayout {
|
||||
from: 1000
|
||||
to: 30000
|
||||
stepSize: 1000
|
||||
showReset: true
|
||||
value: Settings.data.sessionMenu.countdownDuration
|
||||
onMoved: value => Settings.data.sessionMenu.countdownDuration = value
|
||||
text: Math.round(Settings.data.sessionMenu.countdownDuration / 1000) + "s"
|
||||
|
||||
@@ -163,6 +163,7 @@ Popup {
|
||||
description: I18n.tr("placeholders.keybind-recording")
|
||||
allowEmpty: true
|
||||
maxKeybinds: 1
|
||||
requireModifierForNormalKeys: false
|
||||
currentKeybinds: keybindInputText ? [keybindInputText] : []
|
||||
settingsPath: "sessionMenu.powerOptions[" + root.entryIndex + "].keybind"
|
||||
onKeybindsChanged: newKeybinds => {
|
||||
|
||||
@@ -102,104 +102,50 @@ ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: Style.marginL
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.user-interface.scaling-label")
|
||||
description: I18n.tr("panels.user-interface.scaling-description")
|
||||
from: 0.8
|
||||
to: 1.2
|
||||
stepSize: 0.05
|
||||
value: Settings.data.general.scaleRatio
|
||||
defaultValue: Settings.getDefaultValue("general.scaleRatio")
|
||||
onMoved: value => Settings.data.general.scaleRatio = value
|
||||
text: Math.floor(Settings.data.general.scaleRatio * 100) + "%"
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.preferredWidth: 30 * Style.uiScaleRatio
|
||||
Layout.preferredHeight: 30 * Style.uiScaleRatio
|
||||
|
||||
NIconButton {
|
||||
icon: "restore"
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("panels.user-interface.scaling-reset-scaling")
|
||||
onClicked: Settings.data.general.scaleRatio = 1.0
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
label: I18n.tr("panels.user-interface.scaling-label")
|
||||
description: I18n.tr("panels.user-interface.scaling-description")
|
||||
from: 0.8
|
||||
to: 1.2
|
||||
stepSize: 0.05
|
||||
showReset: true
|
||||
value: Settings.data.general.scaleRatio
|
||||
defaultValue: Settings.getDefaultValue("general.scaleRatio")
|
||||
onMoved: value => Settings.data.general.scaleRatio = value
|
||||
text: Math.floor(Settings.data.general.scaleRatio * 100) + "%"
|
||||
}
|
||||
|
||||
NDivider {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: Style.marginL
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.user-interface.box-border-radius-label")
|
||||
description: I18n.tr("panels.user-interface.box-border-radius-description")
|
||||
from: 0
|
||||
to: 2
|
||||
stepSize: 0.01
|
||||
value: Settings.data.general.radiusRatio
|
||||
defaultValue: Settings.getDefaultValue("general.radiusRatio")
|
||||
onMoved: value => Settings.data.general.radiusRatio = value
|
||||
text: Math.floor(Settings.data.general.radiusRatio * 100) + "%"
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.preferredWidth: 30 * Style.uiScaleRatio
|
||||
Layout.preferredHeight: 30 * Style.uiScaleRatio
|
||||
|
||||
NIconButton {
|
||||
icon: "restore"
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("panels.user-interface.box-border-radius-reset")
|
||||
onClicked: Settings.data.general.radiusRatio = 1.0
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
label: I18n.tr("panels.user-interface.box-border-radius-label")
|
||||
description: I18n.tr("panels.user-interface.box-border-radius-description")
|
||||
from: 0
|
||||
to: 2
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.general.radiusRatio
|
||||
defaultValue: Settings.getDefaultValue("general.radiusRatio")
|
||||
onMoved: value => Settings.data.general.radiusRatio = value
|
||||
text: Math.floor(Settings.data.general.radiusRatio * 100) + "%"
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: Style.marginL
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
label: I18n.tr("panels.user-interface.control-border-radius-label")
|
||||
description: I18n.tr("panels.user-interface.control-border-radius-description")
|
||||
from: 0
|
||||
to: 2
|
||||
stepSize: 0.01
|
||||
value: Settings.data.general.iRadiusRatio
|
||||
defaultValue: Settings.getDefaultValue("general.iRadiusRatio")
|
||||
onMoved: value => Settings.data.general.iRadiusRatio = value
|
||||
text: Math.floor(Settings.data.general.iRadiusRatio * 100) + "%"
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.preferredWidth: 30 * Style.uiScaleRatio
|
||||
Layout.preferredHeight: 30 * Style.uiScaleRatio
|
||||
|
||||
NIconButton {
|
||||
icon: "restore"
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("panels.user-interface.control-border-radius-reset")
|
||||
onClicked: Settings.data.general.iRadiusRatio = 1.0
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
label: I18n.tr("panels.user-interface.control-border-radius-label")
|
||||
description: I18n.tr("panels.user-interface.control-border-radius-description")
|
||||
from: 0
|
||||
to: 2
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.general.iRadiusRatio
|
||||
defaultValue: Settings.getDefaultValue("general.iRadiusRatio")
|
||||
onMoved: value => Settings.data.general.iRadiusRatio = value
|
||||
text: Math.floor(Settings.data.general.iRadiusRatio * 100) + "%"
|
||||
}
|
||||
|
||||
NDivider {
|
||||
@@ -248,7 +194,7 @@ ColumnLayout {
|
||||
icon: "restore"
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("panels.user-interface.animation-speed-reset")
|
||||
onClicked: Settings.data.general.animationSpeed = 1.0
|
||||
onClicked: Settings.data.general.animationSpeed = Settings.getDefaultValue("general.animationSpeed")
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ ColumnLayout {
|
||||
from: 0.4
|
||||
to: 1
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.ui.panelBackgroundOpacity
|
||||
defaultValue: Settings.getDefaultValue("ui.panelBackgroundOpacity")
|
||||
onMoved: value => Settings.data.ui.panelBackgroundOpacity = value
|
||||
@@ -47,6 +48,7 @@ ColumnLayout {
|
||||
from: 0
|
||||
to: 1
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.general.dimmerOpacity
|
||||
defaultValue: Settings.getDefaultValue("general.dimmerOpacity")
|
||||
onMoved: value => Settings.data.general.dimmerOpacity = value
|
||||
|
||||
@@ -54,7 +54,7 @@ ColumnLayout {
|
||||
icon: "restore"
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("panels.general.screen-corners-radius-reset")
|
||||
onClicked: Settings.data.general.screenRadiusRatio = 1.0
|
||||
onClicked: Settings.data.general.screenRadiusRatio = Settings.getDefaultValue("general.screenRadiusRatio")
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
@@ -201,6 +201,7 @@ ColumnLayout {
|
||||
from: 0.0
|
||||
to: 1.0
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.wallpaper.overviewBlur
|
||||
onMoved: value => Settings.data.wallpaper.overviewBlur = value
|
||||
text: ((Settings.data.wallpaper.overviewBlur) * 100).toFixed(0) + "%"
|
||||
@@ -216,6 +217,7 @@ ColumnLayout {
|
||||
from: 0.0
|
||||
to: 1.0
|
||||
stepSize: 0.01
|
||||
showReset: true
|
||||
value: Settings.data.wallpaper.overviewTint
|
||||
onMoved: value => Settings.data.wallpaper.overviewTint = value
|
||||
text: ((Settings.data.wallpaper.overviewTint) * 100).toFixed(0) + "%"
|
||||
|
||||
@@ -6,6 +6,7 @@ import Quickshell.Bluetooth
|
||||
import Quickshell.Io
|
||||
import "../../Helpers/BluetoothUtils.js" as BluetoothUtils
|
||||
import qs.Commons
|
||||
import qs.Services.System
|
||||
import qs.Services.UI
|
||||
|
||||
Singleton {
|
||||
@@ -114,6 +115,16 @@ Singleton {
|
||||
}
|
||||
}
|
||||
|
||||
// Re-run polling once bluetoothctl availability is known
|
||||
Connections {
|
||||
target: ProgramCheckerService
|
||||
function onBluetoothctlAvailableChanged() {
|
||||
if (!adapter && ProgramCheckerService.bluetoothctlAvailable) {
|
||||
requestCtlPoll(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setAirplaneMode(state) {
|
||||
if (state) {
|
||||
Quickshell.execDetached(["rfkill", "block", "wifi"]);
|
||||
@@ -182,7 +193,7 @@ Singleton {
|
||||
id: ctlPollTimer
|
||||
interval: adapter ? ctlPollMs : 2000
|
||||
repeat: true
|
||||
running: true
|
||||
running: adapter || ProgramCheckerService.bluetoothctlAvailable
|
||||
onTriggered: {
|
||||
pollCtlState();
|
||||
var targetInterval = adapter ? ctlPollMs : 2000;
|
||||
@@ -193,11 +204,17 @@ Singleton {
|
||||
}
|
||||
|
||||
function requestCtlPoll(delayMs) {
|
||||
if (!adapter && !ProgramCheckerService.bluetoothctlAvailable) {
|
||||
return;
|
||||
}
|
||||
ctlPollTimer.interval = Math.max(50, delayMs || ctlPollSoonMs);
|
||||
ctlPollTimer.restart();
|
||||
}
|
||||
|
||||
function pollCtlState() {
|
||||
if (!adapter && !ProgramCheckerService.bluetoothctlAvailable) {
|
||||
return;
|
||||
}
|
||||
if (ctlShowProcess.running) {
|
||||
return;
|
||||
}
|
||||
@@ -280,6 +297,10 @@ Singleton {
|
||||
|
||||
// Unify discovery controls
|
||||
function setScanActive(active) {
|
||||
if (!adapter && !ProgramCheckerService.bluetoothctlAvailable) {
|
||||
Logger.d("Bluetooth", "Scan request ignored: bluetoothctl unavailable");
|
||||
return;
|
||||
}
|
||||
var nativeSuccess = false;
|
||||
try {
|
||||
if (adapter && adapter.discovering !== undefined) {
|
||||
@@ -309,6 +330,10 @@ Singleton {
|
||||
// Adapter power (enable/disable) via bluetoothctl
|
||||
function setBluetoothEnabled(state) {
|
||||
Logger.i("Bluetooth", "SetBluetoothEnabled", state);
|
||||
if (!adapter && !ProgramCheckerService.bluetoothctlAvailable) {
|
||||
Logger.i("Bluetooth", "Enable/Disable skipped: no adapter or bluetoothctl");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (adapter) {
|
||||
adapter.enabled = state;
|
||||
@@ -327,6 +352,10 @@ Singleton {
|
||||
|
||||
// Toggle adapter discoverability (advertising visibility) via bluetoothctl
|
||||
function setDiscoverable(state) {
|
||||
if (!adapter && !ProgramCheckerService.bluetoothctlAvailable) {
|
||||
Logger.d("Bluetooth", "Discoverable change skipped: no adapter or bluetoothctl");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (adapter) {
|
||||
adapter.discoverable = state;
|
||||
|
||||
@@ -8,6 +8,7 @@ import Quickshell.Services.Notifications
|
||||
import Quickshell.Wayland
|
||||
import "../../Helpers/sha256.js" as Checksum
|
||||
import qs.Commons
|
||||
import qs.Services.Compositor
|
||||
import qs.Services.Media
|
||||
import qs.Services.Power
|
||||
import qs.Services.UI
|
||||
@@ -652,7 +653,9 @@ Singleton {
|
||||
"urgency": item.urgency < 0 || item.urgency > 2 ? 1 : item.urgency,
|
||||
"timestamp": time,
|
||||
"originalImage": item.originalImage || "",
|
||||
"cachedImage": cachedImage
|
||||
"cachedImage": cachedImage,
|
||||
"actionsJson": item.actionsJson || "[]",
|
||||
"originalId": item.originalId || 0
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
@@ -896,45 +899,69 @@ Singleton {
|
||||
quickshellIdToInternalId = {};
|
||||
}
|
||||
|
||||
function invokeActionAndSuppressClose(id, actionId) {
|
||||
const notifData = activeNotifications[id];
|
||||
if (notifData && notifData.notification && notifData.onClosed) {
|
||||
try {
|
||||
notifData.notification.closed.disconnect(notifData.onClosed);
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
return invokeAction(id, actionId);
|
||||
}
|
||||
|
||||
function invokeAction(id, actionId) {
|
||||
// 1. Try invoking via live object
|
||||
let invoked = false;
|
||||
const notifData = activeNotifications[id];
|
||||
|
||||
if (!notifData) {
|
||||
// No data
|
||||
} else if (!notifData.notification) {
|
||||
// No notification object
|
||||
} else {
|
||||
// Use cached actions if live actions are empty (which happens if app closed notification)
|
||||
if (notifData && notifData.notification) {
|
||||
const actionsToUse = (notifData.notification.actions && notifData.notification.actions.length > 0) ? notifData.notification.actions : (notifData.cachedActions || []);
|
||||
|
||||
if (actionsToUse && actionsToUse.length > 0) {
|
||||
for (const item of actionsToUse) {
|
||||
const id = item.identifier; // Works for both raw object and wrapper (if properties match)
|
||||
const actionObj = item.actionObject ? item.actionObject : item; // Unwrap if wrapper
|
||||
const itemId = item.identifier;
|
||||
const actionObj = item.actionObject ? item.actionObject : item;
|
||||
|
||||
if (id === actionId) {
|
||||
if (itemId === actionId) {
|
||||
if (actionObj.invoke) {
|
||||
try {
|
||||
actionObj.invoke();
|
||||
invoked = true;
|
||||
} catch (e) {
|
||||
if (manualInvoke(notifData.metadata.originalId, id)) {
|
||||
Logger.w("NotificationService", "invoke() failed, trying manual fallback: " + e);
|
||||
if (manualInvoke(notifData.metadata.originalId, itemId)) {
|
||||
invoked = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (manualInvoke(notifData.metadata.originalId, id)) {
|
||||
if (manualInvoke(notifData.metadata.originalId, itemId)) {
|
||||
invoked = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!invoked && notifData.metadata.originalId) {
|
||||
Logger.w("NotificationService", "Action objects exhausted, trying manual invoke for id=" + id + " action=" + actionId);
|
||||
invoked = manualInvoke(notifData.metadata.originalId, actionId);
|
||||
}
|
||||
} else if (!notifData) {
|
||||
Logger.w("NotificationService", "No active notification data for id=" + id + ", searching history for manual invoke");
|
||||
for (var i = 0; i < historyList.count; i++) {
|
||||
if (historyList.get(i).id === id) {
|
||||
const histEntry = historyList.get(i);
|
||||
if (histEntry.originalId) {
|
||||
invoked = manualInvoke(histEntry.originalId, actionId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!invoked) {
|
||||
Logger.w("NotificationService", "Failed to invoke action '" + actionId + "' for notification " + id);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -964,6 +991,29 @@ Singleton {
|
||||
}
|
||||
}
|
||||
|
||||
function focusSenderWindow(appName) {
|
||||
if (!appName || appName === "" || appName === "Unknown")
|
||||
return false;
|
||||
|
||||
const normalizedName = appName.toLowerCase().replace(/\s+/g, "");
|
||||
|
||||
for (var i = 0; i < CompositorService.windows.count; i++) {
|
||||
const win = CompositorService.windows.get(i);
|
||||
const winAppId = (win.appId || "").toLowerCase();
|
||||
|
||||
const segments = winAppId.split(".");
|
||||
const lastSegment = segments[segments.length - 1] || "";
|
||||
|
||||
if (winAppId === normalizedName || lastSegment === normalizedName || winAppId.includes(normalizedName) || normalizedName.includes(lastSegment)) {
|
||||
CompositorService.focusWindow(win);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Logger.d("NotificationService", "No window found for app: " + appName);
|
||||
return false;
|
||||
}
|
||||
|
||||
function removeFromHistory(notificationId) {
|
||||
for (var i = 0; i < historyList.count; i++) {
|
||||
const notif = historyList.get(i);
|
||||
|
||||
@@ -12,6 +12,7 @@ Singleton {
|
||||
|
||||
// Program availability properties
|
||||
property bool nmcliAvailable: false
|
||||
property bool bluetoothctlAvailable: false
|
||||
property bool wlsunsetAvailable: false
|
||||
property bool app2unitAvailable: false
|
||||
property bool gnomeCalendarAvailable: false
|
||||
@@ -20,6 +21,7 @@ Singleton {
|
||||
|
||||
// Programs to check - maps property names to commands
|
||||
readonly property var programsToCheck: ({
|
||||
"bluetoothctlAvailable": ["sh", "-c", "command -v bluetoothctl"],
|
||||
"nmcliAvailable": ["sh", "-c", "command -v nmcli"],
|
||||
"wlsunsetAvailable": ["sh", "-c", "command -v wlsunset"],
|
||||
"app2unitAvailable": ["sh", "-c", "command -v app2unit"],
|
||||
|
||||
@@ -18,6 +18,7 @@ Item {
|
||||
property string settingsPath: ""
|
||||
|
||||
property int maxKeybinds: 2
|
||||
property bool requireModifierForNormalKeys: true
|
||||
signal keybindsChanged(var newKeybinds)
|
||||
|
||||
implicitHeight: contentLayout.implicitHeight
|
||||
@@ -307,7 +308,7 @@ Item {
|
||||
}
|
||||
|
||||
if (keyName) {
|
||||
// Enforce modifier requirement (Ctrl or Alt) for "normal" keys
|
||||
// Enforce modifier requirement (Ctrl or Alt) for "normal" keys unless explicitly disabled
|
||||
// Allow Arrows, Nav, Function, and System keys without modifiers
|
||||
const isSpecialKey = (event.key >= Qt.Key_F1 && event.key <= Qt.Key_F35) || (event.key >= Qt.Key_Left && event.key <= Qt.Key_Down) || (event.key === Qt.Key_Home || event.key === Qt.Key_End || event.key === Qt.Key_PageUp || event.key === Qt.Key_PageDown) || (event.key === Qt.Key_Insert || event.key === Qt.Key_Delete || event.key
|
||||
=== Qt.Key_Backspace) || (event.key === Qt.Key_Tab || event.key
|
||||
@@ -317,7 +318,7 @@ Item {
|
||||
|
||||
const hasModifier = (event.modifiers & Qt.ControlModifier) || (event.modifiers & Qt.AltModifier);
|
||||
|
||||
if (!hasModifier && !isSpecialKey) {
|
||||
if (root.requireModifierForNormalKeys && !hasModifier && !isSpecialKey) {
|
||||
hasConflict = true;
|
||||
ToastService.showWarning(I18n.tr("panels.general.keybinds-modifier-title"), I18n.tr("panels.general.keybinds-modifier-description"));
|
||||
conflictTimer.restart();
|
||||
|
||||
@@ -190,7 +190,15 @@ Item {
|
||||
boundsBehavior: Flickable.StopAtBounds
|
||||
|
||||
WheelHandler {
|
||||
enabled: root.wheelScrollMultiplier !== 1.0
|
||||
enabled: !root.contentOverflows
|
||||
acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad
|
||||
onWheel: event => {
|
||||
event.accepted = true;
|
||||
}
|
||||
}
|
||||
|
||||
WheelHandler {
|
||||
enabled: root.wheelScrollMultiplier !== 1.0 && root.contentOverflows
|
||||
acceptedDevices: PointerDevice.Mouse | PointerDevice.TouchPad
|
||||
onWheel: event => {
|
||||
const delta = event.pixelDelta.y !== 0 ? event.pixelDelta.y : event.angleDelta.y / 2;
|
||||
|
||||
+59
-36
@@ -4,7 +4,7 @@ import QtQuick.Layouts
|
||||
import qs.Commons
|
||||
import qs.Widgets
|
||||
|
||||
ColumnLayout {
|
||||
RowLayout {
|
||||
id: root
|
||||
|
||||
property real from: 0
|
||||
@@ -21,14 +21,15 @@ ColumnLayout {
|
||||
property string label: ""
|
||||
property string description: ""
|
||||
property var defaultValue: undefined
|
||||
property bool showReset: false
|
||||
|
||||
spacing: Style.marginL
|
||||
Layout.fillWidth: true
|
||||
|
||||
// Signals
|
||||
signal moved(real value)
|
||||
signal pressedChanged(bool pressed, real value)
|
||||
|
||||
spacing: Style.marginS
|
||||
Layout.fillWidth: true
|
||||
|
||||
readonly property bool isValueChanged: defaultValue !== undefined && (value !== defaultValue)
|
||||
readonly property string indicatorTooltip: {
|
||||
if (defaultValue === undefined)
|
||||
@@ -50,43 +51,65 @@ ColumnLayout {
|
||||
});
|
||||
}
|
||||
|
||||
NLabel {
|
||||
label: root.label
|
||||
description: root.description
|
||||
visible: root.label !== "" || root.description !== ""
|
||||
showIndicator: root.isValueChanged
|
||||
indicatorTooltip: root.indicatorTooltip
|
||||
opacity: root.enabled ? 1.0 : 0.6
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: Style.marginL
|
||||
ColumnLayout {
|
||||
spacing: Style.marginS
|
||||
Layout.fillWidth: true
|
||||
|
||||
NSlider {
|
||||
id: slider
|
||||
NLabel {
|
||||
label: root.label
|
||||
description: root.description
|
||||
visible: root.label !== "" || root.description !== ""
|
||||
showIndicator: root.isValueChanged
|
||||
indicatorTooltip: root.indicatorTooltip
|
||||
opacity: root.enabled ? 1.0 : 0.6
|
||||
Layout.fillWidth: true
|
||||
from: root.from
|
||||
to: root.to
|
||||
value: root.value
|
||||
stepSize: root.stepSize
|
||||
cutoutColor: root.cutoutColor
|
||||
snapAlways: root.snapAlways
|
||||
heightRatio: root.customHeightRatio > 0 ? root.customHeightRatio : root.heightRatio
|
||||
onMoved: root.moved(value)
|
||||
onPressedChanged: root.pressedChanged(pressed, value)
|
||||
}
|
||||
|
||||
NText {
|
||||
visible: root.text !== ""
|
||||
text: root.text
|
||||
pointSize: root.textSize
|
||||
family: Settings.data.ui.fontFixed
|
||||
opacity: root.enabled ? 1.0 : 0.6
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
Layout.preferredWidth: 45 * Style.uiScaleRatio
|
||||
horizontalAlignment: Text.AlignRight
|
||||
RowLayout {
|
||||
spacing: Style.marginL
|
||||
Layout.fillWidth: true
|
||||
|
||||
NSlider {
|
||||
id: slider
|
||||
Layout.fillWidth: true
|
||||
from: root.from
|
||||
to: root.to
|
||||
value: root.value
|
||||
stepSize: root.stepSize
|
||||
cutoutColor: root.cutoutColor
|
||||
snapAlways: root.snapAlways
|
||||
heightRatio: root.customHeightRatio > 0 ? root.customHeightRatio : root.heightRatio
|
||||
onMoved: root.moved(value)
|
||||
onPressedChanged: root.pressedChanged(pressed, value)
|
||||
}
|
||||
|
||||
NText {
|
||||
visible: root.text !== ""
|
||||
text: root.text
|
||||
pointSize: root.textSize
|
||||
family: Settings.data.ui.fontFixed
|
||||
opacity: root.enabled ? 1.0 : 0.6
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
Layout.preferredWidth: 45 * Style.uiScaleRatio
|
||||
horizontalAlignment: Text.AlignRight
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: buttonItem
|
||||
visible: root.showReset && root.defaultValue !== undefined
|
||||
Layout.preferredWidth: 30 * Style.uiScaleRatio
|
||||
Layout.preferredHeight: 30 * Style.uiScaleRatio
|
||||
|
||||
NIconButton {
|
||||
icon: "restore"
|
||||
enabled: root.enabled
|
||||
baseSize: Style.baseWidgetSize * 0.8
|
||||
tooltipText: I18n.tr("common.reset")
|
||||
onClicked: root.moved(root.defaultValue)
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user