ScreenRecorder: removed from core - use the plugin instead.

This commit is contained in:
Lemmy
2026-01-08 20:18:39 -05:00
parent 47abc39c5c
commit 612dfc9db8
28 changed files with 1 additions and 1417 deletions
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Energieprofil",
"tooltip-disabled": "Installiere power-profiles-daemon, um Energieprofile zu verwenden"
},
"screen-recorder": {
"label-stopped": "Aufnehmen"
},
"wifi": {
"label-disconnected": "WLAN getrennt",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Modern"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "System-Ausgabe + Mikrofon-Eingabe",
"audio-sources-microphone-input": "Mikrofon-Eingabe",
"audio-sources-none": "Kein Audio",
"audio-sources-system-output": "System-Ausgabe",
"color-range-full": "Vollständig",
"color-range-limited": "Begrenzt",
"quality-high": "Hoch",
"quality-medium": "Mittel",
"quality-ultra": "Ultra",
"quality-very-high": "Sehr hoch",
"sources-portal": "Portal",
"sources-screen": "Bildschirm"
},
"scrolling-modes": {
"always": "Immer scrollen",
"hover": "Beim Hover scrollen",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Region"
},
"screen-recorder": {
"audio-audio-codec-description": "Opus wird für beste Leistung und kleinste Audio-Größe empfohlen.",
"audio-audio-codec-label": "Audio-Codec",
"audio-audio-source-description": "Audio-Quelle für die Aufnahme.",
"audio-audio-source-label": "Audio-Quelle",
"audio-desc": "Audio-Aufnahme-Optionen konfigurieren.",
"audio-title": "Audio-Einstellungen",
"general-copy-to-clipboard-description": "Kopiere die Datei nach Beendigung der Aufnahme in die Zwischenablage.",
"general-copy-to-clipboard-label": "In die Zwischenablage kopieren",
"general-desc": "Bildschirmaufnahme-Ausgabe und -Inhalt verwalten.",
"general-output-folder-description": "Ordner, in dem Bildschirmaufnahmen gespeichert werden.",
"general-output-folder-label": "Ausgabe-Ordner",
"general-select-output-folder": "Ausgabe-Ordner auswählen",
"general-show-cursor-description": "Mauszeiger im Video aufnehmen.",
"general-show-cursor-label": "Cursor anzeigen",
"general-title": "Allgemeine Einstellungen",
"title": "Bildschirmrekorder",
"video-color-range-description": "Begrenzt wird für bessere Kompatibilität empfohlen.",
"video-color-range-label": "Farbbereich",
"video-desc": "Video-Aufnahme-Optionen konfigurieren.",
"video-frame-rate-description": "Ziel-Bildrate für Bildschirmaufnahmen.",
"video-title": "Video-Einstellungen",
"video-video-codec-description": "h264 ist der gebräuchlichste Codec.",
"video-video-codec-label": "Video-Codec",
"video-video-quality-description": "Höhere Qualität führt zu größeren Dateigrößen.",
"video-video-quality-label": "Video-Qualität",
"video-video-source-description": "Portal wird empfohlen, bei Artefakten versuchen Sie Bildschirm.",
"video-video-source-label": "Video-Quelle"
},
"session-menu": {
"countdown-duration-description": "Legen Sie fest, wie lange der Countdown-Timer vor der Ausführung von Energieaktionen dauert.",
"countdown-duration-label": "Countdown-Dauer",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Wallhaven-Ergebnisse aktualisieren",
"refresh-wallpaper-list": "Hintergrundbild-Liste aktualisieren",
"remove-widget": "Widget entfernen",
"screen-recorder-not-installed": "Bildschirmrekorder (nicht installiert)",
"search-close": "Suche schließen",
"session-menu": "Sitzungsmenü",
"show-all-devices": "Alle Geräte anzeigen",
"stop-screen-recording": "Bildschirmrekorder",
"switch-to-dark-mode": "Dunkler Modus",
"switch-to-light-mode": "Heller Modus",
"unmute": "Stummschaltung aufheben",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Power Profile",
"tooltip-disabled": "Install power-profiles-daemon to use power profiles"
},
"screen-recorder": {
"label-stopped": "Record"
},
"wifi": {
"label-disconnected": "Wi-Fi disconnected",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Modern"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "System output + microphone input",
"audio-sources-microphone-input": "Microphone input",
"audio-sources-none": "No audio",
"audio-sources-system-output": "System output",
"color-range-full": "Full",
"color-range-limited": "Limited",
"quality-high": "High",
"quality-medium": "Medium",
"quality-ultra": "Ultra",
"quality-very-high": "Very high",
"sources-portal": "Portal",
"sources-screen": "Screen"
},
"scrolling-modes": {
"always": "Scroll always",
"hover": "Scroll on hover",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Region"
},
"screen-recorder": {
"audio-audio-codec-description": "Opus is recommended for best performance and smallest audio size.",
"audio-audio-codec-label": "Audio codec",
"audio-audio-source-description": "Audio source to capture during recording.",
"audio-audio-source-label": "Audio source",
"audio-desc": "Configure audio recording options.",
"audio-title": "Audio settings",
"general-copy-to-clipboard-description": "Copy the file to clipboard after recording finishes.",
"general-copy-to-clipboard-label": "Copy to clipboard",
"general-desc": "Manage screen recording output and content.",
"general-output-folder-description": "Folder where screen recordings will be saved.",
"general-output-folder-label": "Output folder",
"general-select-output-folder": "Select output folder",
"general-show-cursor-description": "Record mouse cursor in the video.",
"general-show-cursor-label": "Show cursor",
"general-title": "General settings",
"title": "Screen Recorder",
"video-color-range-description": "Limited is recommended for better compatibility.",
"video-color-range-label": "Color range",
"video-desc": "Configure video recording options.",
"video-frame-rate-description": "Target frame rate for screen recordings.",
"video-title": "Video settings",
"video-video-codec-description": "h264 is the most common codec.",
"video-video-codec-label": "Video codec",
"video-video-quality-description": "Higher quality results in larger file sizes.",
"video-video-quality-label": "Video quality",
"video-video-source-description": "Portal is recommended, if you get artifacts try Screen.",
"video-video-source-label": "Video source"
},
"session-menu": {
"countdown-duration-description": "Set how long the countdown timer lasts before executing power actions.",
"countdown-duration-label": "Countdown duration",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Refresh Wallhaven results",
"refresh-wallpaper-list": "Refresh wallpaper list",
"remove-widget": "Remove widget",
"screen-recorder-not-installed": "Screen recorder (not installed)",
"search-close": "Close search",
"session-menu": "Session menu",
"show-all-devices": "Show all devices",
"stop-screen-recording": "Screen recorder",
"switch-to-dark-mode": "Dark Mode",
"switch-to-light-mode": "Light Mode",
"unmute": "Unmute",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Perfil de energía",
"tooltip-disabled": "Instala power-profiles-daemon para usar perfiles de energía"
},
"screen-recorder": {
"label-stopped": "Grabar"
},
"wifi": {
"label-disconnected": "Wi-Fi desconectado",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Moderno"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "Salida del sistema + entrada del micrófono",
"audio-sources-microphone-input": "Entrada del micrófono",
"audio-sources-none": "No audio",
"audio-sources-system-output": "Salida del sistema",
"color-range-full": "Completo",
"color-range-limited": "Limitado",
"quality-high": "Alta",
"quality-medium": "Media",
"quality-ultra": "Ultra",
"quality-very-high": "Muy alta",
"sources-portal": "Portal",
"sources-screen": "Pantalla"
},
"scrolling-modes": {
"always": "Desplazar siempre",
"hover": "Desplazar al pasar",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Región"
},
"screen-recorder": {
"audio-audio-codec-description": "Se recomienda Opus para el mejor rendimiento y el menor tamaño de audio.",
"audio-audio-codec-label": "Códec de audio",
"audio-audio-source-description": "Fuente de audio a capturar durante la grabación.",
"audio-audio-source-label": "Fuente de audio",
"audio-desc": "Configura las opciones de grabación de audio.",
"audio-title": "Configuración de audio",
"general-copy-to-clipboard-description": "Copiar el archivo al portapapeles después de que termine la grabación.",
"general-copy-to-clipboard-label": "Copiar al portapapeles",
"general-desc": "Gestiona la salida y el contenido de la grabación de pantalla.",
"general-output-folder-description": "Carpeta donde se guardarán las grabaciones de pantalla.",
"general-output-folder-label": "Carpeta de salida",
"general-select-output-folder": "Seleccionar carpeta de salida",
"general-show-cursor-description": "Grabar el cursor del ratón en el video.",
"general-show-cursor-label": "Mostrar cursor",
"general-title": "Configuración general",
"title": "Grabadora de pantalla",
"video-color-range-description": "Se recomienda limitado para una mejor compatibilidad.",
"video-color-range-label": "Rango de color",
"video-desc": "Configura las opciones de grabación de video.",
"video-frame-rate-description": "Tasa de fotogramas objetivo para las grabaciones de pantalla.",
"video-title": "Configuración de video",
"video-video-codec-description": "h264 es el códec más común.",
"video-video-codec-label": "Códec de video",
"video-video-quality-description": "Una mayor calidad resulta en archivos de mayor tamaño.",
"video-video-quality-label": "Calidad de video",
"video-video-source-description": "Se recomienda Portal; si aparecen artefactos, prueba Screen.",
"video-video-source-label": "Fuente de video"
},
"session-menu": {
"countdown-duration-description": "Establecer cuánto tiempo dura el temporizador de cuenta regresiva antes de ejecutar acciones de energía.",
"countdown-duration-label": "Duración de la cuenta regresiva",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Actualizar resultados de Wallhaven",
"refresh-wallpaper-list": "Actualizar lista de fondos de pantalla",
"remove-widget": "Eliminar widget",
"screen-recorder-not-installed": "Grabadora de pantalla (no instalada)",
"search-close": "Cerrar búsqueda",
"session-menu": "Menú de sesión",
"show-all-devices": "Mostrar todos los dispositivos",
"stop-screen-recording": "Grabadora de pantalla",
"switch-to-dark-mode": "Modo oscuro",
"switch-to-light-mode": "Modo claro",
"unmute": "Activar el audio",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Profil d'alimentation",
"tooltip-disabled": "Installez power-profiles-daemon pour utiliser les profils d'alimentation"
},
"screen-recorder": {
"label-stopped": "Enregistrer"
},
"wifi": {
"label-disconnected": "Wi-Fi déconnecté",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Moderne"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "Sortie système + entrée microphone",
"audio-sources-microphone-input": "Entrée microphone",
"audio-sources-none": "Pas d'audio",
"audio-sources-system-output": "Sortie système",
"color-range-full": "Complète",
"color-range-limited": "Limitée",
"quality-high": "Haute",
"quality-medium": "Moyenne",
"quality-ultra": "Ultra",
"quality-very-high": "Très haute",
"sources-portal": "Portail",
"sources-screen": "Écran"
},
"scrolling-modes": {
"always": "Défiler toujours",
"hover": "Défiler au survol",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Région"
},
"screen-recorder": {
"audio-audio-codec-description": "Opus est recommandé pour de meilleures performances et une taille audio minimale.",
"audio-audio-codec-label": "Codec audio",
"audio-audio-source-description": "Source audio à capturer pendant l'enregistrement.",
"audio-audio-source-label": "Source audio",
"audio-desc": "Configurez les options d'enregistrement audio.",
"audio-title": "Paramètres audio",
"general-copy-to-clipboard-description": "Copier le fichier dans le presse-papiers une fois l'enregistrement terminé.",
"general-copy-to-clipboard-label": "Copier dans le presse-papiers",
"general-desc": "Gérez la sortie et le contenu de l'enregistrement d'écran.",
"general-output-folder-description": "Dossier où les enregistrements d'écran seront sauvegardés.",
"general-output-folder-label": "Dossier de sortie",
"general-select-output-folder": "Sélectionner le dossier de sortie",
"general-show-cursor-description": "Enregistrez le curseur de la souris dans la vidéo.",
"general-show-cursor-label": "Afficher le curseur",
"general-title": "Paramètres généraux",
"title": "Enregistreur d'écran",
"video-color-range-description": "Limitée est recommandée pour une meilleure compatibilité.",
"video-color-range-label": "Gamme de couleurs",
"video-desc": "Configurez les options d'enregistrement vidéo.",
"video-frame-rate-description": "Fréquence d'images cible pour les enregistrements d'écran.",
"video-title": "Paramètres vidéo",
"video-video-codec-description": "h264 est le codec le plus courant.",
"video-video-codec-label": "Codec vidéo",
"video-video-quality-description": "Une qualité supérieure entraîne des fichiers de plus grande taille.",
"video-video-quality-label": "Qualité vidéo",
"video-video-source-description": "Portail est recommandé, si vous obtenez des artefacts, essayez Écran.",
"video-video-source-label": "Source vidéo"
},
"session-menu": {
"countdown-duration-description": "Définir la durée du compte à rebours avant d'exécuter les actions d'alimentation.",
"countdown-duration-label": "Durée du compte à rebours",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Actualiser les résultats de Wallhaven",
"refresh-wallpaper-list": "Actualiser la liste des fonds d'écran",
"remove-widget": "Supprimer le widget",
"screen-recorder-not-installed": "Enregistreur d'écran (non installé)",
"search-close": "Fermer la recherche",
"session-menu": "Menu de session",
"show-all-devices": "Afficher tous les appareils",
"stop-screen-recording": "Enregistreur d'écran",
"switch-to-dark-mode": "Mode sombre",
"switch-to-light-mode": "Mode clair",
"unmute": "Réactiver le micro",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Energiaprofil",
"tooltip-disabled": "Telepítse a power-profiles-daemon-t az energiaprofilok használatához"
},
"screen-recorder": {
"label-stopped": "Felvétel"
},
"wifi": {
"label-disconnected": "Wi-Fi leválasztva",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Modern"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "Rendszerkimenet + mikrofonbemenet",
"audio-sources-microphone-input": "Mikrofonbemenet",
"audio-sources-none": "No audio",
"audio-sources-system-output": "Rendszerkimenet",
"color-range-full": "Teljes",
"color-range-limited": "Korlátozott",
"quality-high": "Magas",
"quality-medium": "Közepes",
"quality-ultra": "Ultra",
"quality-very-high": "Nagyon magas",
"sources-portal": "Portál",
"sources-screen": "Képernyő"
},
"scrolling-modes": {
"always": "Mindig görgetés",
"hover": "Görgetés rámutatáskor",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Régió"
},
"screen-recorder": {
"audio-audio-codec-description": "Az Opus ajánlott a legjobb teljesítmény és a legkisebb hangméret érdekében.",
"audio-audio-codec-label": "Hang kodek",
"audio-audio-source-description": "Rögzítés során rögzítendő hangforrás.",
"audio-audio-source-label": "Hangforrás",
"audio-desc": "Hangrögzítési beállítások konfigurálása.",
"audio-title": "Hangbeállítások",
"general-copy-to-clipboard-description": "A felvétel befejezése után másold a fájlt a vágólapra.",
"general-copy-to-clipboard-label": "Másolás a vágólapra",
"general-desc": "Képernyőfelvétel kimenetének és tartalmának kezelése.",
"general-output-folder-description": "Mappa, ahová a képernyőfelvételek mentésre kerülnek.",
"general-output-folder-label": "Kimeneti mappa",
"general-select-output-folder": "Kimeneti mappa kiválasztása",
"general-show-cursor-description": "Egérmutató rögzítése a videóban.",
"general-show-cursor-label": "Mutató megjelenítése",
"general-title": "Általános beállítások",
"title": "Képernyőfelvevő",
"video-color-range-description": "A korlátozott ajánlott a jobb kompatibilitás érdekében.",
"video-color-range-label": "Színtartomány",
"video-desc": "Videórögzítési beállítások konfigurálása.",
"video-frame-rate-description": "Cél képkockasebesség a képernyőfelvételekhez.",
"video-title": "Videóbeállítások",
"video-video-codec-description": "A h264 a leggyakoribb kodek.",
"video-video-codec-label": "Videó kodek",
"video-video-quality-description": "A jobb minőség nagyobb fájlméreteket eredményez.",
"video-video-quality-label": "Videó minősége",
"video-video-source-description": "A Portal ajánlott, ha hibákat tapasztal, próbálja meg a Képernyőt.",
"video-video-source-label": "Videóforrás"
},
"session-menu": {
"countdown-duration-description": "Állítsa be, mennyi ideig tart a visszaszámlálás az energiagazdálkodási műveletek végrehajtása előtt.",
"countdown-duration-label": "Visszaszámlálás időtartama",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Wallhaven eredmények frissítése",
"refresh-wallpaper-list": "Háttérkép lista frissítése",
"remove-widget": "Widget eltávolítása",
"screen-recorder-not-installed": "Képernyőfelvevő (nincs telepítve)",
"search-close": "Keresés bezárása",
"session-menu": "Munkamenet menü",
"show-all-devices": "Összes eszköz megjelenítése",
"stop-screen-recording": "Képernyőfelvevő",
"switch-to-dark-mode": "Sötét mód",
"switch-to-light-mode": "Világos mód",
"unmute": "Némítás feloldása",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "電源プロファイル",
"tooltip-disabled": "電源プロファイルを使用するには power-profiles-daemon をインストールしてください"
},
"screen-recorder": {
"label-stopped": "録画"
},
"wifi": {
"label-disconnected": "Wi-Fi 未接続",
"label-ethernet": "イーサネット"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "モダン"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "システム出力 + マイク入力",
"audio-sources-microphone-input": "マイク入力",
"audio-sources-none": "No audio",
"audio-sources-system-output": "システム出力",
"color-range-full": "フル",
"color-range-limited": "リミテッド",
"quality-high": "高",
"quality-medium": "標準",
"quality-ultra": "ウルトラ",
"quality-very-high": "最高",
"sources-portal": "ポータル",
"sources-screen": "スクリーン"
},
"scrolling-modes": {
"always": "常にスクロール",
"hover": "ホバー時にスクロール",
@@ -1220,35 +1203,6 @@
"region": {
"title": "地域"
},
"screen-recorder": {
"audio-audio-codec-description": "最高のパフォーマンスと最小のファイルサイズを実現する Opus を推奨します。",
"audio-audio-codec-label": "オーディオコーデック",
"audio-audio-source-description": "録画中にキャプチャする音声ソース。",
"audio-audio-source-label": "オーディオソース",
"audio-desc": "音声録音のオプションを設定します。",
"audio-title": "オーディオ設定",
"general-copy-to-clipboard-description": "録画終了後、ファイルをクリップボードにコピーします。",
"general-copy-to-clipboard-label": "クリップボードにコピー",
"general-desc": "画面録画の出力先や内容を管理します。",
"general-output-folder-description": "画面録画ファイルを保存するフォルダ。",
"general-output-folder-label": "出力フォルダ",
"general-select-output-folder": "出力フォルダを選択",
"general-show-cursor-description": "動画にマウスカーソルを含めて録画します。",
"general-show-cursor-label": "カーソルを表示",
"general-title": "一般",
"title": "スクリーンレコーダー",
"video-color-range-description": "互換性を高めるため、リミテッドを推奨します。",
"video-color-range-label": "カラーレンジ",
"video-desc": "映像録画のオプションを設定します。",
"video-frame-rate-description": "画面録画のターゲットフレームレート。",
"video-title": "ビデオ設定",
"video-video-codec-description": "H264 が最も一般的なコーデックです。",
"video-video-codec-label": "ビデオコーデック",
"video-video-quality-description": "品質を高くすると、ファイルサイズが大きくなります。",
"video-video-quality-label": "ビデオ品質",
"video-video-source-description": "ポータルを推奨します。映像が乱れる場合はスクリーンを試してください。",
"video-video-source-label": "ビデオソース"
},
"session-menu": {
"countdown-duration-description": "カウントダウンタイマーが電源操作を実行するまでの時間を設定します。",
"countdown-duration-label": "カウントダウンの時間",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Wallhaven の検索結果を更新",
"refresh-wallpaper-list": "壁紙リストを更新",
"remove-widget": "ウィジェットを削除",
"screen-recorder-not-installed": "スクリーンレコーダー(未インストール)",
"search-close": "検索を閉じる",
"session-menu": "セッションメニュー",
"show-all-devices": "すべてのデバイスを表示",
"stop-screen-recording": "画面録画",
"switch-to-dark-mode": "ダークモード",
"switch-to-light-mode": "ライトモード",
"unmute": "ミュート解除",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Power profile",
"tooltip-disabled": "Daemonê power-profiles-daemon saz bike da ku profîlên hêzê bikar bîne"
},
"screen-recorder": {
"label-stopped": "Tomar bike"
},
"wifi": {
"label-disconnected": "Wi-Fi qut bû.",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Nûjen"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "Derana pergalê + ketana mîkrofonê",
"audio-sources-microphone-input": "Ketana mîkrofonê",
"audio-sources-none": "Bê deng.",
"audio-sources-system-output": "Derana pergal",
"color-range-full": "Tijî",
"color-range-limited": "Sînorkirî",
"quality-high": "Bilind",
"quality-medium": "Navîn",
"quality-ultra": "Ultra",
"quality-very-high": "Pir bilind",
"sources-portal": "Dergeh",
"sources-screen": "Dîmender"
},
"scrolling-modes": {
"always": "Her tim bigere",
"hover": "Li ser gerandinê bigere",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Herêm"
},
"screen-recorder": {
"audio-audio-codec-description": "ئۆپووس بۆ باشترین ئەنجام و بچووکترین قەبارەی دەنگی پێشنیار دەکرێت.",
"audio-audio-codec-label": "Kodkirina dengê",
"audio-audio-source-description": "Çavkaniya dengî ya ku di dema tomarkirinê de were girtin.",
"audio-audio-source-label": "Çavkaniya dengê",
"audio-desc": "Vebijarkên tomarkirina dengî saz bike.",
"audio-title": "Sazkariyên dengê",
"general-copy-to-clipboard-description": "Piştî qedandina tomarkirinê pelê kopî bike clipboardê.",
"general-copy-to-clipboard-label": "Kopî bo clipboardê",
"general-desc": "Derana tomarkirina dîmenderê û naverokê bi rê ve bibe.",
"general-output-folder-description": "Pelda ku dê tomarên dîmenderê lê bên hilanîn.",
"general-output-folder-label": "Peldanka deranê",
"general-select-output-folder": "Pelda qeydê hilbijêre",
"general-show-cursor-description": "Di vîdyoyê de nîşana mişkê tomar bike.",
"general-show-cursor-label": "Nîşankar nîşan bide",
"general-title": "Sazkariyên giştî",
"title": "Tomarkarê dîmenderê",
"video-color-range-description": "Ji bo çêtir lihevhatin, sînorkirî tê pêşniyarkirin.",
"video-color-range-label": "Rêjeya rengê",
"video-desc": "Vebijarkên tomarkirina vîdyoyê saz bike.",
"video-frame-rate-description": "ڕێژەی چوارچێوەی ئامانج بۆ تۆمارکردنی شاشە.",
"video-title": "Sazkariyên vîdyoyê",
"video-video-codec-description": "h264 kodeka herî berbelav e.",
"video-video-codec-label": "Kodkirinê vîdyoyê",
"video-video-quality-description": "Bilindtir kalîte dibe sedema mezinahiya pelên.",
"video-video-quality-label": "Kalîteya vîdyoyê",
"video-video-source-description": "Gerîn tê pêşniyarkirin, eger te artefakt dîtin, Screen biceribîne.",
"video-video-source-label": "Çavkaniya vîdyoyê"
},
"session-menu": {
"countdown-duration-description": "Demjimêra heta pêkanîna kiryarên hêzê destnîşan bike.",
"countdown-duration-label": "Dirêjahiya jimartinê berjêr",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Nûkirina encamên Wallhavenê",
"refresh-wallpaper-list": "Nûkirina lîsteya dîwêr",
"remove-widget": "Rakire amûrekê",
"screen-recorder-not-installed": "Tomarkarê dîmenderê (nehatiye sazkirin)",
"search-close": "Lêgerînê bigire",
"session-menu": "Menuya danişînê",
"show-all-devices": "Hemû amûran nîşan bide",
"stop-screen-recording": "Tomarkarê dîmenderê",
"switch-to-dark-mode": "Awaya tarî",
"switch-to-light-mode": "Awaya ronahî",
"unmute": "Bêdeng neke",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Energieprofiel",
"tooltip-disabled": "Installeer power-profiles-daemon om energieprofielen te gebruiken"
},
"screen-recorder": {
"label-stopped": "Opnemen"
},
"wifi": {
"label-disconnected": "Wi-Fi niet verbonden",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Modern"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "Systeemuitvoer + microfooninvoer",
"audio-sources-microphone-input": "Microfooninvoer",
"audio-sources-none": "Geen audio",
"audio-sources-system-output": "Systeemuitvoer",
"color-range-full": "Volledig",
"color-range-limited": "Beperkt",
"quality-high": "Hoog",
"quality-medium": "Gemiddeld",
"quality-ultra": "Ultra",
"quality-very-high": "Zeer hoog",
"sources-portal": "Portal",
"sources-screen": "Scherm"
},
"scrolling-modes": {
"always": "Altijd scrollen",
"hover": "Scrollen bij hover",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Regio"
},
"screen-recorder": {
"audio-audio-codec-description": "Opus wordt aanbevolen voor de beste prestaties en de kleinste audiogrootte.",
"audio-audio-codec-label": "Audiocodec",
"audio-audio-source-description": "Audiobron om tijdens de opname vast te leggen.",
"audio-audio-source-label": "Audiobron",
"audio-desc": "Configureer opties voor audio-opname.",
"audio-title": "Audio-instellingen",
"general-copy-to-clipboard-description": "Kopieer het bestand naar het klembord nadat de opname is voltooid.",
"general-copy-to-clipboard-label": "Kopiëren naar klembord",
"general-desc": "Beheer schermopname-uitvoer en inhoud.",
"general-output-folder-description": "Map waarin schermopnamen worden opgeslagen.",
"general-output-folder-label": "Uitvoermap",
"general-select-output-folder": "Uitvoermap selecteren",
"general-show-cursor-description": "Neem de muiscursor op in de video.",
"general-show-cursor-label": "Cursor tonen",
"general-title": "Algemene instellingen",
"title": "Schermrecorder",
"video-color-range-description": "Beperkt wordt aanbevolen voor betere compatibiliteit.",
"video-color-range-label": "Kleurbereik",
"video-desc": "Configureer opties voor video-opname.",
"video-frame-rate-description": "Doelframesnelheid voor schermopnamen.",
"video-title": "Video-instellingen",
"video-video-codec-description": "h264 is de meest gebruikte codec.",
"video-video-codec-label": "Videocodec",
"video-video-quality-description": "Hogere kwaliteit resulteert in grotere bestanden.",
"video-video-quality-label": "Videokwaliteit",
"video-video-source-description": "Portal wordt aanbevolen; als je artefacten krijgt, probeer dan Screen.",
"video-video-source-label": "Videobron"
},
"session-menu": {
"countdown-duration-description": "Stel in hoe lang de afteltimer duurt voordat energieacties worden uitgevoerd.",
"countdown-duration-label": "Afteltimer duur",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Wallhaven-resultaten verversen",
"refresh-wallpaper-list": "Achtergrondlijst verversen",
"remove-widget": "Widget verwijderen",
"screen-recorder-not-installed": "Schermrecorder (niet geïnstalleerd)",
"search-close": "Zoeken sluiten",
"session-menu": "Sessiemenu",
"show-all-devices": "Toon alle apparaten",
"stop-screen-recording": "Schermrecorder",
"switch-to-dark-mode": "Donkere modus",
"switch-to-light-mode": "Lichte modus",
"unmute": "Dempen opheffen",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Profil zasilania",
"tooltip-disabled": "Zainstaluj power-profiles-daemon, aby korzystać z profili zasilania"
},
"screen-recorder": {
"label-stopped": "Nagraj"
},
"wifi": {
"label-disconnected": "Wi-Fi rozłączone",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Nowoczesny"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "Wyjście systemowe + mikrofon",
"audio-sources-microphone-input": "Wejście mikrofonu",
"audio-sources-none": "Brak dźwięku.",
"audio-sources-system-output": "Wyjście systemowe",
"color-range-full": "Pełny",
"color-range-limited": "Ograniczony",
"quality-high": "Wysoka",
"quality-medium": "Średnia",
"quality-ultra": "Ultra",
"quality-very-high": "Bardzo wysoka",
"sources-portal": "Portal",
"sources-screen": "Ekran"
},
"scrolling-modes": {
"always": "Zawsze przewijaj",
"hover": "Przewijaj po najechaniu",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Region"
},
"screen-recorder": {
"audio-audio-codec-description": "Opus jest zalecany dla najlepszej wydajności i najmniejszego rozmiaru pliku.",
"audio-audio-codec-label": "Kodek audio",
"audio-audio-source-description": "Źródło dźwięku do przechwycenia podczas nagrywania.",
"audio-audio-source-label": "Źródło audio",
"audio-desc": "Konfiguruj opcje nagrywania dźwięku.",
"audio-title": "Ustawienia audio",
"general-copy-to-clipboard-description": "Skopiuj plik do schowka po zakończeniu nagrywania.",
"general-copy-to-clipboard-label": "Kopiuj do schowka",
"general-desc": "Zarządzaj wyjściem i zawartością nagrań ekranu.",
"general-output-folder-description": "Folder, w którym będą zapisywane nagrania.",
"general-output-folder-label": "Folder wyjściowy",
"general-select-output-folder": "Wybierz folder wyjściowy",
"general-show-cursor-description": "Nagrywaj kursor myszy na wideo.",
"general-show-cursor-label": "Pokaż kursor",
"general-title": "Ustawienia ogólne",
"title": "Nagrywanie ekranu",
"video-color-range-description": "Zakres ograniczony (Limited) jest zalecany dla lepszej kompatybilności.",
"video-color-range-label": "Zakres kolorów",
"video-desc": "Konfiguruj opcje nagrywania wideo.",
"video-frame-rate-description": "Docelowa liczba klatek na sekundę (FPS).",
"video-title": "Ustawienia wideo",
"video-video-codec-description": "h264 to najczęściej spotykany kodek.",
"video-video-codec-label": "Kodek wideo",
"video-video-quality-description": "Wyższa jakość skutkuje większym rozmiarem plików.",
"video-video-quality-label": "Jakość wideo",
"video-video-source-description": "Zalecany jest Portal. Jeśli pojawiają się błędy, spróbuj Ekran (Screen).",
"video-video-source-label": "Źródło wideo"
},
"session-menu": {
"countdown-duration-description": "Ustaw czas odliczania przed wykonaniem akcji zasilania.",
"countdown-duration-label": "Czas trwania odliczania",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Odśwież wyniki Wallhaven",
"refresh-wallpaper-list": "Odśwież listę tapet",
"remove-widget": "Usuń widżet",
"screen-recorder-not-installed": "Nagrywanie ekranu (niezainstalowane)",
"search-close": "Zamknij wyszukiwanie",
"session-menu": "Menu sesji",
"show-all-devices": "Pokaż wszystkie urządzenia.",
"stop-screen-recording": "Nagrywanie ekranu",
"switch-to-dark-mode": "Tryb ciemny",
"switch-to-light-mode": "Tryb jasny",
"unmute": "Wyłącz wyciszenie",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Perfil de energia",
"tooltip-disabled": "Instale power-profiles-daemon para usar perfis de energia"
},
"screen-recorder": {
"label-stopped": "Gravar"
},
"wifi": {
"label-disconnected": "Wi-Fi desconectado",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Moderno"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "Saída do sistema + entrada do microfone",
"audio-sources-microphone-input": "Entrada do microfone",
"audio-sources-none": "No audio",
"audio-sources-system-output": "Saída do sistema",
"color-range-full": "Completa",
"color-range-limited": "Limitada",
"quality-high": "Alta",
"quality-medium": "Média",
"quality-ultra": "Ultra",
"quality-very-high": "Muito alta",
"sources-portal": "Portal",
"sources-screen": "Tela"
},
"scrolling-modes": {
"always": "Rolar sempre",
"hover": "Rolar ao passar o mouse",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Região"
},
"screen-recorder": {
"audio-audio-codec-description": "Opus é recomendado para melhor desempenho e menor tamanho de áudio.",
"audio-audio-codec-label": "Codec de áudio",
"audio-audio-source-description": "Fonte de áudio a ser capturada durante a gravação.",
"audio-audio-source-label": "Fonte de áudio",
"audio-desc": "Configure as opções de gravação de áudio.",
"audio-title": "Configurações de áudio",
"general-copy-to-clipboard-description": "Copiar o arquivo para a área de transferência após a gravação terminar.",
"general-copy-to-clipboard-label": "Copiar para a área de transferência",
"general-desc": "Gerencie a saída e o conteúdo da gravação de tela.",
"general-output-folder-description": "Pasta onde as gravações de tela serão salvas.",
"general-output-folder-label": "Pasta de saída",
"general-select-output-folder": "Selecionar pasta de saída",
"general-show-cursor-description": "Grava o cursor do mouse no vídeo.",
"general-show-cursor-label": "Mostrar cursor",
"general-title": "Configurações gerais",
"title": "Gravador de tela",
"video-color-range-description": "Limitada é recomendada para melhor compatibilidade.",
"video-color-range-label": "Gama de cores",
"video-desc": "Configure as opções de gravação de vídeo.",
"video-frame-rate-description": "Taxa de quadros alvo para gravações de tela.",
"video-title": "Configurações de vídeo",
"video-video-codec-description": "h264 é o codec mais comum.",
"video-video-codec-label": "Codec de vídeo",
"video-video-quality-description": "Qualidade mais alta resulta em arquivos maiores.",
"video-video-quality-label": "Qualidade de vídeo",
"video-video-source-description": "Portal é recomendado, se você tiver artefatos, tente Screen.",
"video-video-source-label": "Fonte de vídeo"
},
"session-menu": {
"countdown-duration-description": "Definir por quanto tempo o temporizador de contagem regressiva dura antes de executar ações de energia.",
"countdown-duration-label": "Duração da contagem regressiva",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Atualizar resultados do Wallhaven",
"refresh-wallpaper-list": "Atualizar lista de papéis de parede",
"remove-widget": "Remover widget",
"screen-recorder-not-installed": "Gravador de tela (não instalado)",
"search-close": "Fechar pesquisa",
"session-menu": "Menu da Sessão",
"show-all-devices": "Mostrar todos os dispositivos",
"stop-screen-recording": "Gravador de tela",
"switch-to-dark-mode": "Modo escuro",
"switch-to-light-mode": "Modo claro",
"unmute": "Desativar o mudo",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Профиль питания",
"tooltip-disabled": "Установите power-profiles-daemon, чтобы использовать профили питания"
},
"screen-recorder": {
"label-stopped": "Записать"
},
"wifi": {
"label-disconnected": "Wi-Fi отключен",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Современный"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "Системный вывод + ввод с микрофона",
"audio-sources-microphone-input": "Ввод с микрофона",
"audio-sources-none": "Нет звука",
"audio-sources-system-output": "Системный вывод",
"color-range-full": "Полный",
"color-range-limited": "Ограниченный",
"quality-high": "Высокое",
"quality-medium": "Среднее",
"quality-ultra": "Ультра",
"quality-very-high": "Очень высокое",
"sources-portal": "Портал",
"sources-screen": "Экран"
},
"scrolling-modes": {
"always": "Всегда прокручивать",
"hover": "Прокручивать при наведении",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Регион"
},
"screen-recorder": {
"audio-audio-codec-description": "Opus рекомендуется для лучшей производительности и наименьшего размера аудио.",
"audio-audio-codec-label": "Аудиокодек",
"audio-audio-source-description": "Источник аудио для захвата во время записи.",
"audio-audio-source-label": "Источник аудио",
"audio-desc": "Настройка параметров записи аудио.",
"audio-title": "Настройки аудио",
"general-copy-to-clipboard-description": "Скопировать файл в буфер обмена после завершения записи.",
"general-copy-to-clipboard-label": "Скопировать в буфер обмена",
"general-desc": "Управление выводом и содержимым записи экрана.",
"general-output-folder-description": "Папка, в которую будут сохраняться записи экрана.",
"general-output-folder-label": "Выходная папка",
"general-select-output-folder": "Выбрать выходную папку",
"general-show-cursor-description": "Записывать курсор мыши в видео.",
"general-show-cursor-label": "Показывать курсор",
"general-title": "Общие настройки",
"title": "Запись экрана",
"video-color-range-description": "Ограниченный (Limited) рекомендуется для лучшей совместимости.",
"video-color-range-label": "Цветовой диапазон",
"video-desc": "Настройка параметров записи видео.",
"video-frame-rate-description": "Целевая частота кадров для записей экрана.",
"video-title": "Настройки видео",
"video-video-codec-description": "h264 — самый распространенный кодек.",
"video-video-codec-label": "Видеокодек",
"video-video-quality-description": "Более высокое качество приводит к большему размеру файла.",
"video-video-quality-label": "Качество видео",
"video-video-source-description": "Портал (Portal) рекомендуется, если появляются артефакты, попробуйте Экран (Screen).",
"video-video-source-label": "Источник видео"
},
"session-menu": {
"countdown-duration-description": "Установить, как долго длится таймер обратного отсчета перед выполнением действий питания.",
"countdown-duration-label": "Длительность обратного отсчета",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Обновить результаты Wallhaven",
"refresh-wallpaper-list": "Обновить список обоев",
"remove-widget": "Удалить виджет",
"screen-recorder-not-installed": "Запись экрана (не установлена)",
"search-close": "Закрыть поиск",
"session-menu": "Меню сеанса",
"show-all-devices": "Показать все устройства",
"stop-screen-recording": "Запись экрана",
"switch-to-dark-mode": "Темный режим",
"switch-to-light-mode": "Светлый режим",
"unmute": "Включить звук",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Güç profili",
"tooltip-disabled": "Güç profillerini kullanmak için power-profiles-daemon kur"
},
"screen-recorder": {
"label-stopped": "Kaydet"
},
"wifi": {
"label-disconnected": "Kablosuz Bağlantı Kesik",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Modern"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "Sistem çıktısı + mikrofon girişi",
"audio-sources-microphone-input": "Mikrofon girişi",
"audio-sources-none": "Ses yok.",
"audio-sources-system-output": "Sistem çıktısı",
"color-range-full": "Tam",
"color-range-limited": "Sınırlı",
"quality-high": "Yüksek",
"quality-medium": "Orta",
"quality-ultra": "Aşırı",
"quality-very-high": "Çok yüksek",
"sources-portal": "Portal",
"sources-screen": "Ekran"
},
"scrolling-modes": {
"always": "Her zaman kaydır",
"hover": "Üzerine gelince kaydır",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Bölge"
},
"screen-recorder": {
"audio-audio-codec-description": "En iyi performans ve en küçük ses boyutu için Opus önerilir.",
"audio-audio-codec-label": "Ses çözücüsü",
"audio-audio-source-description": "Kayıt sırasında yakalanacak ses kaynağı.",
"audio-audio-source-label": "Ses kaynağı",
"audio-desc": "Ses kaydı seçeneklerini yapılandırın.",
"audio-title": "Ses ayarları",
"general-copy-to-clipboard-description": "Kaydı bitirdikten sonra dosyayı panoya kopyala.",
"general-copy-to-clipboard-label": "Panoya kopyala",
"general-desc": "Ekran kaydı çıktısını ve içeriğini yönetin.",
"general-output-folder-description": "Ekran kayıtlarının kaydedileceği klasör.",
"general-output-folder-label": "Çıktı klasörü",
"general-select-output-folder": "Çıktı klasörünü seç",
"general-show-cursor-description": "Görüntü fare imlecini kaydedin.",
"general-show-cursor-label": "İmleci göster",
"general-title": "Genel ayarlar",
"title": "Ekran kaydedici",
"video-color-range-description": "Daha iyi uyumluluk için Sınırlı önerilir.",
"video-color-range-label": "Renk aralığı",
"video-desc": "Görüntü kaydı seçeneklerini yapılandırın.",
"video-frame-rate-description": "Ekran kayıtları için hedef kare hızı.",
"video-title": "Görüntü ayarları",
"video-video-codec-description": "h264 en yaygın çözücüdür.",
"video-video-codec-label": "Görüntü çözücüsü",
"video-video-quality-description": "Daha yüksek kalite daha büyük dosya boyutları ile sonuçlanır.",
"video-video-quality-label": "Görüntü kalitesi",
"video-video-source-description": "Portal önerilir, eğer artefaktlar alırsanız Ekranı deneyin.",
"video-video-source-label": "Görüntü kaynağı"
},
"session-menu": {
"countdown-duration-description": "Güç eylemlerini çalıştırmadan önce geri sayım zamanlayıcısının ne kadar süreceğini ayarlayın.",
"countdown-duration-label": "Geri sayım süresi",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Wallhaven sonuçlarını yenile",
"refresh-wallpaper-list": "Duvar kâğıdı listesini yenile",
"remove-widget": "Araç takımını kaldır",
"screen-recorder-not-installed": "Ekran kaydedici (yüklü değil)",
"search-close": "Aramayı kapat",
"session-menu": "Oturum Menüsü",
"show-all-devices": "Tüm cihazları göster",
"stop-screen-recording": "Ekran kaydedici",
"switch-to-dark-mode": "Koyu mod",
"switch-to-light-mode": "Açık mod",
"unmute": "Sessizliği aç",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "Профіль живлення",
"tooltip-disabled": "Встановіть power-profiles-daemon для використання профілів живлення"
},
"screen-recorder": {
"label-stopped": "Запис"
},
"wifi": {
"label-disconnected": "Wi-Fi відключено",
"label-ethernet": "Ethernet"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "Сучасний"
},
"frame-rates-fps": "{fps} к/с",
"screen-recording": {
"audio-sources-both": "Системний вихід + вхід мікрофона",
"audio-sources-microphone-input": "Вхід мікрофона",
"audio-sources-none": "Немає аудіо",
"audio-sources-system-output": "Системний вихід",
"color-range-full": "Повний",
"color-range-limited": "Обмежений",
"quality-high": "Висока",
"quality-medium": "Середня",
"quality-ultra": "Ультра",
"quality-very-high": "Дуже висока",
"sources-portal": "Портал",
"sources-screen": "Екран"
},
"scrolling-modes": {
"always": "Завжди прокручувати",
"hover": "Прокручувати при наведенні",
@@ -1220,35 +1203,6 @@
"region": {
"title": "Регіон"
},
"screen-recorder": {
"audio-audio-codec-description": "Opus рекомендується для найкращої продуктивності та найменшого розміру аудіо.",
"audio-audio-codec-label": "Кодек аудіо",
"audio-audio-source-description": "Джерело аудіо для захоплення під час запису.",
"audio-audio-source-label": "Джерело аудіо",
"audio-desc": "Налаштуйте параметри запису аудіо.",
"audio-title": "Налаштування аудіо",
"general-copy-to-clipboard-description": "Скопіювати файл у буфер обміну після завершення запису.",
"general-copy-to-clipboard-label": "Скопіювати в буфер обміну",
"general-desc": "Керуйте виведенням та вмістом запису екрана.",
"general-output-folder-description": "Тека, де зберігатимуться записи екрана.",
"general-output-folder-label": "Тека виведення",
"general-select-output-folder": "Вибрати теку виведення",
"general-show-cursor-description": "Записувати курсор миші у відео.",
"general-show-cursor-label": "Показувати курсор",
"general-title": "Загальні налаштування",
"title": "Запис екрана",
"video-color-range-description": "Обмежений рекомендується для кращої сумісності.",
"video-color-range-label": "Діапазон кольорів",
"video-desc": "Налаштуйте параметри запису відео.",
"video-frame-rate-description": "Цільова частота кадрів для записів екрана.",
"video-title": "Налаштування відео",
"video-video-codec-description": "h264 є найпоширенішим кодеком.",
"video-video-codec-label": "Кодек відео",
"video-video-quality-description": "Вища якість призводить до більшого розміру файлів.",
"video-video-quality-label": "Якість відео",
"video-video-source-description": "Рекомендується Portal, якщо виникають артефакти, спробуйте Screen.",
"video-video-source-label": "Джерело відео"
},
"session-menu": {
"countdown-duration-description": "Встановити, як довго триває таймер зворотного відліку перед виконанням дій живлення.",
"countdown-duration-label": "Тривалість зворотного відліку",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "Оновити результати Wallhaven",
"refresh-wallpaper-list": "Оновити список шпалер",
"remove-widget": "Видалити віджет",
"screen-recorder-not-installed": "Запис екрана (не встановлено)",
"search-close": "Закрити пошук",
"session-menu": "Меню сеансу",
"show-all-devices": "Показати всі пристрої",
"stop-screen-recording": "Запис екрана",
"switch-to-dark-mode": "Темний режим",
"switch-to-light-mode": "Світлий режим",
"unmute": "Увімкнути звук",
-48
View File
@@ -464,9 +464,6 @@
"tooltip-action": "电源模式",
"tooltip-disabled": "安装 power-profiles-daemon 以使用电源模式"
},
"screen-recorder": {
"label-stopped": "录制"
},
"wifi": {
"label-disconnected": "Wi-Fi 已断开",
"label-ethernet": "以太网"
@@ -573,20 +570,6 @@
"quick-settings-style-modern": "现代"
},
"frame-rates-fps": "{fps} FPS",
"screen-recording": {
"audio-sources-both": "系统输出 + 麦克风输入",
"audio-sources-microphone-input": "麦克风输入",
"audio-sources-none": "无音频",
"audio-sources-system-output": "系统输出",
"color-range-full": "完全",
"color-range-limited": "有限",
"quality-high": "高",
"quality-medium": "中等",
"quality-ultra": "超高",
"quality-very-high": "很高",
"sources-portal": "Portal",
"sources-screen": "Screen"
},
"scrolling-modes": {
"always": "始终滚动",
"hover": "悬停时滚动",
@@ -1220,35 +1203,6 @@
"region": {
"title": "地区"
},
"screen-recorder": {
"audio-audio-codec-description": "推荐使用 Opus 以获得最佳性能和最小的音频大小。",
"audio-audio-codec-label": "音频编解码器",
"audio-audio-source-description": "录制期间要捕获的音频源。",
"audio-audio-source-label": "音频源",
"audio-desc": "配置音频录制选项。",
"audio-title": "音频设置",
"general-copy-to-clipboard-description": "录制完成后将文件复制到剪贴板。",
"general-copy-to-clipboard-label": "复制到剪贴板",
"general-desc": "管理屏幕录制输出和内容。",
"general-output-folder-description": "屏幕录制将保存的文件夹。",
"general-output-folder-label": "输出文件夹",
"general-select-output-folder": "选择输出文件夹",
"general-show-cursor-description": "在视频中录制鼠标光标。",
"general-show-cursor-label": "显示光标",
"general-title": "常规设置",
"title": "屏幕录制",
"video-color-range-description": "推荐使用 Limited 以获得更好的兼容性。",
"video-color-range-label": "颜色范围",
"video-desc": "配置视频录制选项。",
"video-frame-rate-description": "屏幕录制的目标帧率。",
"video-title": "视频设置",
"video-video-codec-description": "h264 是最常见的编解码器。",
"video-video-codec-label": "视频编解码器",
"video-video-quality-description": "更高的质量会导致更大的文件大小。",
"video-video-quality-label": "视频质量",
"video-video-source-description": "推荐使用 Portal,如果出现伪影请尝试 Screen。",
"video-video-source-label": "视频源"
},
"session-menu": {
"countdown-duration-description": "设置倒计时计时器在执行电源操作之前持续多长时间。",
"countdown-duration-label": "倒计时持续时间",
@@ -1609,11 +1563,9 @@
"refresh-wallhaven": "刷新 Wallhaven 结果",
"refresh-wallpaper-list": "刷新壁纸列表",
"remove-widget": "移除小部件",
"screen-recorder-not-installed": "屏幕录制器(未安装)",
"search-close": "关闭搜索",
"session-menu": "会话菜单",
"show-all-devices": "显示所有设备",
"stop-screen-recording": "屏幕录制器",
"switch-to-dark-mode": "深色模式",
"switch-to-light-mode": "浅色模式",
"unmute": "取消静音",
-18
View File
@@ -38,9 +38,6 @@
}
],
"right": [
{
"id": "ScreenRecorder"
},
{
"id": "Tray"
},
@@ -135,18 +132,6 @@
}
]
},
"screenRecorder": {
"directory": "",
"frameRate": 60,
"audioCodec": "opus",
"videoCodec": "h264",
"quality": "very_high",
"colorRange": "limited",
"showCursor": true,
"copyToClipboard": false,
"audioSource": "default_output",
"videoSource": "portal"
},
"wallpaper": {
"enabled": true,
"overviewEnabled": false,
@@ -208,9 +193,6 @@
{
"id": "Bluetooth"
},
{
"id": "ScreenRecorder"
},
{
"id": "WallpaperSelector"
}
+1
View File
@@ -99,6 +99,7 @@
"showVisualizer": false,
"showProgressRing": true,
"visualizerType": "linear",
"compactMode": false,
"panelShowAlbumArt": true,
"panelShowVisualizer": true,
"compactShowAlbumArt": true,
-1
View File
@@ -119,7 +119,6 @@ Singleton {
"settings-color-scheme": "palette",
"settings-wallpaper": "paint",
"settings-wallpaper-selector": "library-photo",
"settings-screen-recorder": "video",
"settings-hooks": "link",
"settings-notifications": "bell",
"settings-osd": "picture-in-picture",
-21
View File
@@ -64,7 +64,6 @@ Singleton {
// Patch-in the local default, resolved to user's home
adapter.general.avatarImage = defaultAvatar;
adapter.screenRecorder.directory = defaultVideosDirectory;
adapter.wallpaper.directory = defaultWallpapersDirectory;
adapter.ui.fontDefault = Qt.application.font.family;
adapter.ui.fontFixed = "monospace";
@@ -236,9 +235,6 @@ Singleton {
}
]
property list<var> right: [
{
"id": "ScreenRecorder"
},
{
"id": "Tray"
},
@@ -345,20 +341,6 @@ Singleton {
]
}
// screen recorder
property JsonObject screenRecorder: JsonObject {
property string directory: ""
property int frameRate: 60
property string audioCodec: "opus"
property string videoCodec: "h264"
property string quality: "very_high"
property string colorRange: "limited"
property bool showCursor: true
property bool copyToClipboard: false
property string audioSource: "default_output"
property string videoSource: "portal"
}
// wallpaper
property JsonObject wallpaper: JsonObject {
property bool enabled: true
@@ -431,9 +413,6 @@ Singleton {
{
"id": "Bluetooth"
},
{
"id": "ScreenRecorder"
},
{
"id": "WallpaperSelector"
}
-71
View File
@@ -1,71 +0,0 @@
import QtQuick
import Quickshell
import qs.Commons
import qs.Modules.Panels.Settings
import qs.Services.Media
import qs.Services.System
import qs.Services.UI
import qs.Widgets
// Screen Recording Indicator
NIconButton {
id: root
property ShellScreen screen
// Widget properties passed from Bar.qml for per-instance settings
property string widgetId: ""
property string section: ""
property int sectionWidgetIndex: -1
property int sectionWidgetsCount: 0
icon: ScreenRecorderService.isPending ? "" : "camera-video"
tooltipText: ScreenRecorderService.isRecording ? I18n.tr("tooltips.click-to-stop-recording") : I18n.tr("tooltips.click-to-start-recording")
tooltipDirection: BarService.getTooltipDirection()
baseSize: Style.capsuleHeight
applyUiScale: false
customRadius: Style.radiusL
colorBg: ScreenRecorderService.isRecording ? Color.mPrimary : Style.capsuleColor
colorFg: ScreenRecorderService.isRecording ? Color.mOnPrimary : Color.mOnSurface
colorBorder: "transparent"
colorBorderHover: "transparent"
border.color: Style.capsuleBorderColor
border.width: Style.capsuleBorderWidth
function handleClick() {
if (!ScreenRecorderService.isAvailable) {
ToastService.showError(I18n.tr("toast.recording.not-installed"), I18n.tr("toast.recording.not-installed-desc"));
return;
}
ScreenRecorderService.toggleRecording();
}
onClicked: handleClick()
onRightClicked: {
var settingsPanel = PanelService.getPanel("settingsPanel", screen);
settingsPanel.requestedTab = SettingsPanel.Tab.ScreenRecorder;
settingsPanel.open();
}
// Custom spinner shown only during pending start
NIcon {
id: pendingSpinner
icon: "loader-2"
visible: ScreenRecorderService.isPending
pointSize: Style.barFontSize
applyUiScale: false
color: root.enabled && root.hovering ? colorFgHover : colorFg
anchors.centerIn: parent
transformOrigin: Item.Center
RotationAnimation on rotation {
running: ScreenRecorderService.isPending
from: 0
to: 360
duration: Style.animationSlow
loops: Animation.Infinite
onStopped: pendingSpinner.rotation = 0
}
}
}
@@ -1,29 +0,0 @@
import QtQuick.Layouts
import Quickshell
import qs.Commons
import qs.Modules.Panels.Settings
import qs.Services.Media
import qs.Services.System
import qs.Services.UI
import qs.Widgets
NIconButtonHot {
property ShellScreen screen
enabled: ProgramCheckerService.gpuScreenRecorderAvailable
icon: "camera-video"
hot: ScreenRecorderService.isRecording
tooltipText: I18n.tr("panels.screen-recorder.title")
onClicked: {
ScreenRecorderService.toggleRecording();
if (!ScreenRecorderService.isRecording) {
PanelService.getPanel("controlCenterPanel", screen)?.close;
}
}
onRightClicked: {
var settingsPanel = PanelService.getPanel("settingsPanel", screen);
settingsPanel.requestedTab = SettingsPanel.Tab.ScreenRecorder;
settingsPanel.open();
}
}
@@ -93,10 +93,6 @@ Item {
id: wallpaperTab
WallpaperTab {}
}
Component {
id: screenRecorderTab
ScreenRecorderTab {}
}
Component {
id: aboutTab
AboutTab {}
@@ -246,12 +242,6 @@ Item {
"icon": "settings-location",
"source": regionTab
},
{
"id": SettingsPanel.Tab.ScreenRecorder,
"label": "panels.screen-recorder.title",
"icon": "settings-screen-recorder",
"source": screenRecorderTab
},
{
"id": SettingsPanel.Tab.SystemMonitor,
"label": "system-monitor.title",
@@ -87,7 +87,6 @@ SmartPanel {
Network,
Notifications,
Plugins,
ScreenRecorder,
SessionMenu,
SystemMonitor,
UserInterface,
@@ -1,304 +0,0 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import qs.Commons
import qs.Widgets
ColumnLayout {
id: root
spacing: Style.marginL
// Output Folder
NTextInputButton {
label: I18n.tr("panels.screen-recorder.general-output-folder-label")
description: I18n.tr("panels.screen-recorder.general-output-folder-description")
placeholderText: Quickshell.env("HOME") + "/Videos"
text: Settings.data.screenRecorder.directory
buttonIcon: "folder-open"
buttonTooltip: I18n.tr("panels.screen-recorder.general-output-folder-label")
onInputEditingFinished: Settings.data.screenRecorder.directory = text
onButtonClicked: folderPicker.openFilePicker()
}
NDivider {
Layout.fillWidth: true
}
// Show Cursor
NToggle {
label: I18n.tr("panels.screen-recorder.general-show-cursor-label")
description: I18n.tr("panels.screen-recorder.general-show-cursor-description")
checked: Settings.data.screenRecorder.showCursor
onToggled: checked => Settings.data.screenRecorder.showCursor = checked
defaultValue: Settings.getDefaultValue("screenRecorder.showCursor")
}
// Copy to Clipboard
NToggle {
label: I18n.tr("panels.screen-recorder.general-copy-to-clipboard-label")
description: I18n.tr("panels.screen-recorder.general-copy-to-clipboard-description")
checked: Settings.data.screenRecorder.copyToClipboard
onToggled: checked => Settings.data.screenRecorder.copyToClipboard = checked
defaultValue: Settings.getDefaultValue("screenRecorder.copyToClipboard")
}
NDivider {
Layout.fillWidth: true
}
// Video Settings
ColumnLayout {
spacing: Style.marginL
Layout.fillWidth: true
// Source
NComboBox {
label: I18n.tr("panels.screen-recorder.video-video-source-label")
description: I18n.tr("panels.screen-recorder.video-video-source-description")
model: [
{
"key": "portal",
"name": I18n.tr("options.screen-recording.sources-portal")
},
{
"key": "screen",
"name": I18n.tr("options.screen-recording.sources-screen")
}
]
currentKey: Settings.data.screenRecorder.videoSource
onSelected: key => Settings.data.screenRecorder.videoSource = key
defaultValue: Settings.getDefaultValue("screenRecorder.videoSource")
}
// Frame Rate
NComboBox {
label: I18n.tr("panels.audio.media-frame-rate-label")
description: I18n.tr("panels.screen-recorder.video-frame-rate-description")
model: [
{
"key": "30",
"name": I18n.tr("options.frame-rates-fps", {
"fps": "30"
})
},
{
"key": "60",
"name": I18n.tr("options.frame-rates-fps", {
"fps": "60"
})
},
{
"key": "100",
"name": I18n.tr("options.frame-rates-fps", {
"fps": "100"
})
},
{
"key": "120",
"name": I18n.tr("options.frame-rates-fps", {
"fps": "120"
})
},
{
"key": "144",
"name": I18n.tr("options.frame-rates-fps", {
"fps": "144"
})
},
{
"key": "165",
"name": I18n.tr("options.frame-rates-fps", {
"fps": "165"
})
},
{
"key": "240",
"name": I18n.tr("options.frame-rates-fps", {
"fps": "240"
})
}
]
currentKey: Settings.data.screenRecorder.frameRate
onSelected: key => Settings.data.screenRecorder.frameRate = key
defaultValue: Settings.getDefaultValue("screenRecorder.frameRate")
}
// Video Quality
NComboBox {
label: I18n.tr("panels.screen-recorder.video-video-quality-label")
description: I18n.tr("panels.screen-recorder.video-video-quality-description")
model: [
{
"key": "medium",
"name": I18n.tr("options.screen-recording.quality-medium")
},
{
"key": "high",
"name": I18n.tr("options.screen-recording.quality-high")
},
{
"key": "very_high",
"name": I18n.tr("options.screen-recording.quality-very-high")
},
{
"key": "ultra",
"name": I18n.tr("options.screen-recording.quality-ultra")
}
]
currentKey: Settings.data.screenRecorder.quality
onSelected: key => Settings.data.screenRecorder.quality = key
defaultValue: Settings.getDefaultValue("screenRecorder.quality")
}
// Video Codec
NComboBox {
label: I18n.tr("panels.screen-recorder.video-video-codec-label")
description: I18n.tr("panels.screen-recorder.video-video-codec-description")
model: {
let options = [
{
"key": "h264",
"name": "H264"
},
{
"key": "hevc",
"name": "HEVC"
},
{
"key": "av1",
"name": "AV1"
},
{
"key": "vp8",
"name": "VP8"
},
{
"key": "vp9",
"name": "VP9"
}
];
// Only add HDR options if source is 'screen'
if (Settings.data.screenRecorder.videoSource === "screen") {
options.push({
"key": "hevc_hdr",
"name": "HEVC HDR"
});
options.push({
"key": "av1_hdr",
"name": "AV1 HDR"
});
}
return options;
}
currentKey: Settings.data.screenRecorder.videoCodec
onSelected: key => {
Settings.data.screenRecorder.videoCodec = key;
// If an HDR codec is selected, change the colorRange to full
if (key.includes("_hdr")) {
Settings.data.screenRecorder.colorRange = "full";
}
}
defaultValue: Settings.getDefaultValue("screenRecorder.videoCodec")
// If user switches source to portal while an HDR codec is selected, reset to h264
Connections {
target: Settings.data.screenRecorder
function onVideoSourceChanged() {
let source = Settings.data.screenRecorder.videoSource;
let codec = Settings.data.screenRecorder.videoCodec;
if (source !== "screen" && (codec === "av1_hdr" || codec === "hevc_hdr")) {
Settings.data.screenRecorder.videoCodec = "h264";
}
}
}
}
// Color Range
NComboBox {
label: I18n.tr("panels.screen-recorder.video-color-range-label")
description: I18n.tr("panels.screen-recorder.video-color-range-description")
model: [
{
"key": "limited",
"name": I18n.tr("options.screen-recording.color-range-limited")
},
{
"key": "full",
"name": I18n.tr("options.screen-recording.color-range-full")
}
]
currentKey: Settings.data.screenRecorder.colorRange
onSelected: key => Settings.data.screenRecorder.colorRange = key
defaultValue: Settings.getDefaultValue("screenRecorder.colorRange")
}
}
NDivider {
Layout.fillWidth: true
}
// Audio Settings
ColumnLayout {
spacing: Style.marginL
Layout.fillWidth: true
// Audio Source
NComboBox {
label: I18n.tr("panels.screen-recorder.audio-audio-source-label")
description: I18n.tr("panels.screen-recorder.audio-audio-source-description")
model: [
{
"key": "none",
"name": I18n.tr("options.screen-recording.audio-sources-none")
},
{
"key": "default_output",
"name": I18n.tr("options.screen-recording.audio-sources-system-output")
},
{
"key": "default_input",
"name": I18n.tr("options.screen-recording.audio-sources-microphone-input")
},
{
"key": "both",
"name": I18n.tr("options.screen-recording.audio-sources-both")
}
]
currentKey: Settings.data.screenRecorder.audioSource
onSelected: key => Settings.data.screenRecorder.audioSource = key
defaultValue: Settings.getDefaultValue("screenRecorder.audioSource")
}
// Audio Codec
NComboBox {
label: I18n.tr("panels.screen-recorder.audio-audio-codec-label")
description: I18n.tr("panels.screen-recorder.audio-audio-codec-description")
model: [
{
"key": "opus",
"name": "Opus"
},
{
"key": "aac",
"name": "AAC"
}
]
currentKey: Settings.data.screenRecorder.audioCodec
onSelected: key => Settings.data.screenRecorder.audioCodec = key
defaultValue: Settings.getDefaultValue("screenRecorder.audioCodec")
}
}
NFilePicker {
id: folderPicker
selectionMode: "folders"
title: I18n.tr("panels.screen-recorder.general-select-output-folder")
initialPath: Settings.data.screenRecorder.directory || Quickshell.env("HOME") + "/Videos"
onAccepted: paths => {
if (paths.length > 0) {
Settings.data.screenRecorder.directory = paths[0]; // Use first selected file
}
}
}
}
-9
View File
@@ -35,15 +35,6 @@ Item {
}
}
IpcHandler {
target: "screenRecorder"
function toggle() {
if (ScreenRecorderService.isAvailable) {
ScreenRecorderService.toggleRecording();
}
}
}
IpcHandler {
target: "settings"
function toggle() {
-271
View File
@@ -1,271 +0,0 @@
pragma Singleton
import QtQuick
import Quickshell
import Quickshell.Io
import qs.Commons
import qs.Services.System
import qs.Services.UI
Singleton {
id: root
readonly property var settings: Settings.data.screenRecorder
property bool isRecording: false
property bool isPending: false
// True only if the recorder actually started capturing at least once
property bool hasActiveRecording: false
property string outputPath: ""
property bool isAvailable: ProgramCheckerService.gpuScreenRecorderAvailable
// Update availability when ProgramCheckerService completes its checks
Connections {
target: ProgramCheckerService
function onChecksCompleted() {// Availability is now automatically updated via property binding
}
}
// Start or Stop recording
function toggleRecording() {
(isRecording || isPending) ? stopRecording() : startRecording();
}
// Copy file to clipboard as file reference
function copyFileToClipboard(filePath) {
if (!filePath) {
return;
}
// Convert path to file:// URI format for copying as file reference
// Escape special characters in URI (space -> %20, etc.)
const fileUri = "file://" + filePath.replace(/ /g, "%20").replace(/'/g, "%27").replace(/"/g, "%22");
// Escape single quotes in URI for shell safety
const escapedUri = fileUri.replace(/'/g, "'\\''");
const command = "printf '%s' '" + escapedUri + "' | wl-copy --type text/uri-list";
copyToClipboardProcess.exec({
"command": ["sh", "-c", command]
});
}
// Start screen recording using Quickshell.execDetached
function startRecording() {
if (!isAvailable) {
return;
}
if (isRecording || isPending) {
return;
}
isPending = true;
hasActiveRecording = false;
// Close any opened panel
if ((PanelService.openedPanel !== null) && !PanelService.openedPanel.isClosing) {
PanelService.openedPanel.close();
}
// First, ensure xdg-desktop-portal and a compositor portal are running
portalCheckProcess.exec({
"command": ["sh", "-c" // require core portal AND one of the backends
, "pidof xdg-desktop-portal >/dev/null 2>&1 && (pidof xdg-desktop-portal-wlr >/dev/null 2>&1 || pidof xdg-desktop-portal-hyprland >/dev/null 2>&1 || pidof xdg-desktop-portal-gnome >/dev/null 2>&1 || pidof xdg-desktop-portal-kde >/dev/null 2>&1)"]
});
}
function launchRecorder() {
var filename = Time.getFormattedTimestamp() + ".mp4";
var videoDir = Settings.preprocessPath(settings.directory);
if (videoDir && !videoDir.endsWith("/")) {
videoDir += "/";
}
outputPath = videoDir + filename;
const audioFlags = (() => {
if (settings.audioSource === "none") {
return "";
}
if (settings.audioSource === "both") {
return `-ac ${settings.audioCodec} -a "default_output|default_input"`;
}
return `-ac ${settings.audioCodec} -a ${settings.audioSource}`;
})();
var flags = `-w ${settings.videoSource} -f ${settings.frameRate} -k ${settings.videoCodec} ${audioFlags} -q ${settings.quality} -cursor ${settings.showCursor ? "yes" : "no"} -cr ${settings.colorRange} -o "${outputPath}"`;
var command = `
_gpuscreenrecorder_flatpak_installed() {
flatpak list --app | grep -q "com.dec05eba.gpu_screen_recorder"
}
if command -v gpu-screen-recorder >/dev/null 2>&1; then
gpu-screen-recorder ${flags}
elif command -v flatpak >/dev/null 2>&1 && _gpuscreenrecorder_flatpak_installed; then
flatpak run --command=gpu-screen-recorder --file-forwarding com.dec05eba.gpu_screen_recorder ${flags}
else
echo "GPU_SCREEN_RECORDER_NOT_INSTALLED"
fi`;
// Use Process instead of execDetached so we can monitor it and read stderr
recorderProcess.exec({
"command": ["sh", "-c", command]
});
// Start monitoring - if process ends quickly, it was likely cancelled
pendingTimer.running = true;
}
// Stop recording using Quickshell.execDetached
function stopRecording() {
if (!isRecording && !isPending) {
return;
}
ToastService.showNotice(I18n.tr("toast.recording.stopping"), outputPath, "settings-screen-recorder");
Quickshell.execDetached(["sh", "-c", "pkill -SIGINT -f 'gpu-screen-recorder' || pkill -SIGINT -f 'com.dec05eba.gpu_screen_recorder'"]);
isRecording = false;
isPending = false;
pendingTimer.running = false;
monitorTimer.running = false;
hasActiveRecording = false;
// Just in case, force kill after 3 seconds
killTimer.running = true;
}
// Helper function to check if output indicates user cancellation
function isCancelledByUser(stdoutText, stderrText) {
const stdout = String(stdoutText || "").toLowerCase();
const stderr = String(stderrText || "").toLowerCase();
const combined = stdout + " " + stderr;
// Check for various forms of cancellation messages (case-insensitive)
return combined.includes("canceled by") || combined.includes("cancelled by") || combined.includes("canceled by user") || combined.includes("cancelled by user") || combined.includes("canceled by the user") || combined.includes("cancelled by the user");
}
// Process to run and monitor gpu-screen-recorder
Process {
id: recorderProcess
stdout: StdioCollector {}
stderr: StdioCollector {}
onExited: function (exitCode, exitStatus) {
const stdout = String(recorderProcess.stdout.text || "").trim();
const stderr = String(recorderProcess.stderr.text || "").trim();
const wasCancelled = isCancelledByUser(stdout, stderr);
if (isPending) {
// Process ended while we were pending - likely cancelled or error
isPending = false;
pendingTimer.running = false;
// Check if gpu-screen-recorder is not installed
if (stdout === "GPU_SCREEN_RECORDER_NOT_INSTALLED") {
ToastService.showError(I18n.tr("toast.recording.not-installed"), I18n.tr("toast.recording.not-installed-desc"));
return;
}
// If it failed to start, show a clear error toast with stderr
// But don't show error if user intentionally cancelled via portal
if (exitCode !== 0) {
if (stderr.length > 0 && !wasCancelled) {
ToastService.showError(I18n.tr("toast.recording.failed-start"), stderr);
Logger.e(stderr);
}
// If user cancelled, silently return without error toast
}
} else if (isRecording || hasActiveRecording) {
// Process ended normally while recording (check both flags to handle race condition)
isRecording = false;
monitorTimer.running = false;
if (exitCode === 0) {
ToastService.showNotice(I18n.tr("toast.recording.saved"), outputPath, "settings-screen-recorder");
if (settings.copyToClipboard) {
copyFileToClipboard(outputPath);
}
} else {
// Don't show error if user intentionally cancelled
if (!wasCancelled) {
if (stderr.length > 0) {
ToastService.showError(I18n.tr("toast.recording.failed-start"), stderr);
Logger.e(stderr);
} else {
ToastService.showError(I18n.tr("toast.recording.failed-start"), I18n.tr("toast.recording.failed-general"));
}
}
}
hasActiveRecording = false;
} else if (!isPending && exitCode === 0 && outputPath) {
// Fallback: if process exited successfully with an outputPath, handle it
// (handles case where flags were cleared before onExited fired)
ToastService.showNotice(I18n.tr("toast.recording.saved"), outputPath, "settings-screen-recorder");
if (settings.copyToClipboard) {
copyFileToClipboard(outputPath);
}
}
}
}
// Pre-flight check for xdg-desktop-portal
Process {
id: portalCheckProcess
onExited: function (exitCode, exitStatus) {
if (exitCode === 0) {
// Portals available, proceed to launch
launchRecorder();
} else {
isPending = false;
hasActiveRecording = false;
ToastService.showError(I18n.tr("toast.recording.no-portals"), I18n.tr("toast.recording.no-portals-desc"));
}
}
}
// Process to copy file to clipboard
Process {
id: copyToClipboardProcess
onExited: function (exitCode, exitStatus) {
if (exitCode !== 0) {
Logger.e("ScreenRecorderService", "Failed to copy file to clipboard, exit code:", exitCode);
}
}
}
Timer {
id: pendingTimer
interval: 2000 // Wait 2 seconds to see if process stays alive
running: false
repeat: false
onTriggered: {
if (isPending && recorderProcess.running) {
// Process is still running after 2 seconds - assume recording started successfully
isPending = false;
isRecording = true;
hasActiveRecording = true;
monitorTimer.running = true;
// Don't show a toast when recording starts to avoid having the toast in every video.
} else if (isPending) {
// Process not running anymore - was cancelled or failed
isPending = false;
}
}
}
// Monitor timer to periodically check if we're still recording
Timer {
id: monitorTimer
interval: 2000
running: false
repeat: true
onTriggered: {
if (!recorderProcess.running && isRecording) {
isRecording = false;
running = false;
}
}
}
Timer {
id: killTimer
interval: 3000
running: false
repeat: false
onTriggered: {
Quickshell.execDetached(["sh", "-c", "pkill -9 -f 'gpu-screen-recorder' 2>/dev/null || pkill -9 -f 'com.dec05eba.gpu_screen_recorder' 2>/dev/null || true"]);
}
}
}
@@ -11,7 +11,6 @@ Singleton {
id: root
// Program availability properties
property bool gpuScreenRecorderAvailable: false
property bool matugenAvailable: false
property bool nmcliAvailable: false
property bool wlsunsetAvailable: false
@@ -21,7 +20,6 @@ Singleton {
// Programs to check - maps property names to commands
readonly property var programsToCheck: ({
"gpuScreenRecorderAvailable": ["sh", "-c", "command -v gpu-screen-recorder >/dev/null 2>&1 || (command -v flatpak >/dev/null 2>&1 && flatpak list --app | grep -q 'com.dec05eba.gpu_screen_recorder')"],
"matugenAvailable": ["sh", "-c", "command -v matugen"],
"nmcliAvailable": ["sh", "-c", "command -v nmcli"],
"wlsunsetAvailable": ["sh", "-c", "command -v wlsunset"],
-4
View File
@@ -32,7 +32,6 @@ Singleton {
"NoctaliaPerformance": noctaliaPerformanceComponent,
"NotificationHistory": notificationHistoryComponent,
"PowerProfile": powerProfileComponent,
"ScreenRecorder": screenRecorderComponent,
"SessionMenu": sessionMenuComponent,
"Spacer": spacerComponent,
"SystemMonitor": systemMonitorComponent,
@@ -309,9 +308,6 @@ Singleton {
property Component sessionMenuComponent: Component {
SessionMenu {}
}
property Component screenRecorderComponent: Component {
ScreenRecorder {}
}
property Component controlCenterComponent: Component {
ControlCenter {}
}
@@ -17,7 +17,6 @@ Singleton {
"NightLight": nightLightComponent,
"Notifications": notificationsComponent,
"PowerProfile": powerProfileComponent,
"ScreenRecorder": screenRecorderComponent,
"WiFi": networkComponent,
"Network": networkComponent,
"WallpaperSelector": wallpaperSelectorComponent
@@ -57,9 +56,6 @@ Singleton {
property Component powerProfileComponent: Component {
PowerProfile {}
}
property Component screenRecorderComponent: Component {
ScreenRecorder {}
}
property Component networkComponent: Component {
Network {}
}