update
This commit is contained in:
2
etc/cron.d/zfs-auto-snapshot.new-1.2.4_3
Normal file
2
etc/cron.d/zfs-auto-snapshot.new-1.2.4_3
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
*/15 * * * * root command -v zfs-auto-snapshot > /dev/null || exit 0 ; zfs-auto-snapshot --quiet --syslog --label=frequent --keep=4 //
|
||||||
6
etc/cron.daily/zfs-auto-snapshot.new-1.2.4_3
Executable file
6
etc/cron.daily/zfs-auto-snapshot.new-1.2.4_3
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Only call zfs-auto-snapshot if it's available
|
||||||
|
command -v zfs-auto-snapshot > /dev/null || exit 0
|
||||||
|
|
||||||
|
exec zfs-auto-snapshot --quiet --syslog --label=daily --keep=31 //
|
||||||
6
etc/cron.hourly/sddm-background
Executable file
6
etc/cron.hourly/sddm-background
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#only call if script is there
|
||||||
|
command -v /home/aiden/sddm-random-background.sh >/dev/null || exit 0
|
||||||
|
|
||||||
|
exec /home/aiden/sddm-random-background.sh
|
||||||
6
etc/cron.hourly/zfs-auto-snapshot.new-1.2.4_3
Executable file
6
etc/cron.hourly/zfs-auto-snapshot.new-1.2.4_3
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Only call zfs-auto-snapshot if it's available
|
||||||
|
command -v zfs-auto-snapshot > /dev/null || exit 0
|
||||||
|
|
||||||
|
exec zfs-auto-snapshot --quiet --syslog --label=hourly --keep=24 //
|
||||||
6
etc/cron.monthly/zfs-auto-snapshot.new-1.2.4_3
Executable file
6
etc/cron.monthly/zfs-auto-snapshot.new-1.2.4_3
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Only call zfs-auto-snapshot if it's available
|
||||||
|
command -v zfs-auto-snapshot > /dev/null || exit 0
|
||||||
|
|
||||||
|
exec zfs-auto-snapshot --quiet --syslog --label=monthly --keep=12 //
|
||||||
6
etc/cron.weekly/zfs-auto-snapshot.new-1.2.4_3
Executable file
6
etc/cron.weekly/zfs-auto-snapshot.new-1.2.4_3
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Only call zfs-auto-snapshot if it's available
|
||||||
|
command -v zfs-auto-snapshot > /dev/null || exit 0
|
||||||
|
|
||||||
|
exec zfs-auto-snapshot --quiet --syslog --label=weekly --keep=8 //
|
||||||
@@ -13,12 +13,12 @@ layout {
|
|||||||
}
|
}
|
||||||
|
|
||||||
shadow {
|
shadow {
|
||||||
color "#00000070"
|
color "#11111b70"
|
||||||
}
|
}
|
||||||
|
|
||||||
tab-indicator {
|
tab-indicator {
|
||||||
active-color "#cba6f7"
|
active-color "#cba6f7"
|
||||||
inactive-color "#460594"
|
inactive-color "#6b02e9"
|
||||||
urgent-color "#f38ba8"
|
urgent-color "#f38ba8"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -26,3 +26,10 @@ layout {
|
|||||||
color "#cba6f780"
|
color "#cba6f780"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
recent-windows {
|
||||||
|
highlight {
|
||||||
|
active-color "#cba6f7"
|
||||||
|
urgent-color "#f38ba8"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -13,18 +13,23 @@ spawn-at-startup "/usr/bin/swayidle" "-w"
|
|||||||
workspace "chat" {
|
workspace "chat" {
|
||||||
open-on-output "DP-3"
|
open-on-output "DP-3"
|
||||||
}
|
}
|
||||||
|
window-rule {
|
||||||
|
match app-id="nheko"
|
||||||
|
open-on-workspace "chat"
|
||||||
|
}
|
||||||
|
spawn-at-startup "/usr/bin/flatpak" "run" "im.nheko.Nheko"
|
||||||
window-rule {
|
window-rule {
|
||||||
match app-id="Element"
|
match app-id="Element"
|
||||||
open-on-workspace "chat"
|
open-on-workspace "chat"
|
||||||
}
|
}
|
||||||
spawn-at-startup "/usr/bin/element-desktop"
|
//spawn-at-startup "/usr/bin/element-desktop"
|
||||||
//"--enable-features=UseOzonePlatform" "--ozone-platform=wayland"
|
//"--enable-features=UseOzonePlatform" "--ozone-platform=wayland"
|
||||||
window-rule {
|
window-rule {
|
||||||
match app-id="discord"
|
match app-id="discord"
|
||||||
open-on-workspace "chat"
|
open-on-workspace "chat"
|
||||||
}
|
}
|
||||||
//spawn-at-startup "/usr/bin/flatpak" "run" "--socket=wayland" "com.discordapp.Discord" "--enable-features=UseOzonePlatform" "--ozone-platform=wayland"
|
//spawn-at-startup "/usr/bin/flatpak" "run" "--socket=wayland" "com.discordapp.Discord" "--enable-features=UseOzonePlatform" "--ozone-platform=wayland"
|
||||||
spawn-at-startup "/usr/local/bin/discord-delay.sh"
|
//spawn-at-startup "/usr/local/bin/discord-delay.sh"
|
||||||
//window-rule {
|
//window-rule {
|
||||||
// match app-id="srain"
|
// match app-id="srain"
|
||||||
// open-on-workspace "chat"
|
// open-on-workspace "chat"
|
||||||
|
|||||||
@@ -93,11 +93,11 @@ animations {
|
|||||||
// enable transparency
|
// enable transparency
|
||||||
window-rule {
|
window-rule {
|
||||||
match is-active=false
|
match is-active=false
|
||||||
opacity 0.8 //inactive transparency
|
opacity 1.0 //inactive transparency
|
||||||
}
|
}
|
||||||
window-rule {
|
window-rule {
|
||||||
match is-active=true
|
match is-active=true
|
||||||
opacity 0.95 //active transparency
|
opacity 1.0 //active transparency
|
||||||
}
|
}
|
||||||
window-rule {
|
window-rule {
|
||||||
draw-border-with-background false
|
draw-border-with-background false
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#auth sufficient pam_fprintd.so max-tries=1
|
auth sufficient pam_fprintd.so timeout=-1
|
||||||
# only uncomment this if you have a fingerprint reader
|
auth sufficient /run/current-system/sw/lib/security/pam_fprintd.so timeout=-1 # for NixOS
|
||||||
auth required pam_unix.so
|
auth required pam_unix.so
|
||||||
|
|||||||
@@ -8,10 +8,16 @@
|
|||||||
],
|
],
|
||||||
"states": {
|
"states": {
|
||||||
"privacy-indicator": {
|
"privacy-indicator": {
|
||||||
"enabled": true
|
"enabled": true,
|
||||||
|
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
|
},
|
||||||
|
"screen-recorder": {
|
||||||
|
"enabled": true,
|
||||||
|
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
},
|
},
|
||||||
"update-count": {
|
"update-count": {
|
||||||
"enabled": true
|
"enabled": true,
|
||||||
|
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": 1
|
"version": 1
|
||||||
|
|||||||
@@ -0,0 +1,83 @@
|
|||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell
|
||||||
|
import qs.Commons
|
||||||
|
import qs.Services.UI
|
||||||
|
import qs.Services.System
|
||||||
|
import qs.Widgets
|
||||||
|
|
||||||
|
NIconButton {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
property var pluginApi: null
|
||||||
|
property ShellScreen screen
|
||||||
|
property string widgetId: ""
|
||||||
|
property string section: ""
|
||||||
|
|
||||||
|
readonly property var mainInstance: pluginApi?.mainInstance
|
||||||
|
|
||||||
|
enabled: mainInstance?.isAvailable ?? false
|
||||||
|
icon: "camera-video"
|
||||||
|
tooltipText: mainInstance?.buildTooltip()
|
||||||
|
tooltipDirection: BarService.getTooltipDirection()
|
||||||
|
baseSize: Style.capsuleHeight
|
||||||
|
applyUiScale: false
|
||||||
|
customRadius: Style.radiusL
|
||||||
|
colorBg: mainInstance?.isRecording ? Color.mPrimary : Style.capsuleColor
|
||||||
|
colorFg: mainInstance?.isRecording ? Color.mOnPrimary : Color.mOnSurface
|
||||||
|
colorBorder: "transparent"
|
||||||
|
colorBorderHover: "transparent"
|
||||||
|
border.color: Style.capsuleBorderColor
|
||||||
|
border.width: Style.capsuleBorderWidth
|
||||||
|
|
||||||
|
onClicked: {
|
||||||
|
if (!enabled) {
|
||||||
|
ToastService.showError(pluginApi.tr("messages.not-installed"), pluginApi.tr("messages.not-installed-desc"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mainInstance) {
|
||||||
|
mainInstance.toggleRecording()
|
||||||
|
if (!mainInstance.isRecording && !mainInstance.isPending) {
|
||||||
|
// Recording was stopped, close control center if open
|
||||||
|
var controlCenter = PanelService.getPanel("controlCenterPanel", screen)
|
||||||
|
if (controlCenter) {
|
||||||
|
controlCenter.close()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onRightClicked: {
|
||||||
|
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
|
||||||
|
if (popupMenuWindow) {
|
||||||
|
popupMenuWindow.showContextMenu(contextMenu);
|
||||||
|
contextMenu.openAtItem(root, screen);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NPopupContextMenu {
|
||||||
|
id: contextMenu
|
||||||
|
|
||||||
|
model: [
|
||||||
|
{
|
||||||
|
"label": I18n.tr("actions.widget-settings"),
|
||||||
|
"action": "widget-settings",
|
||||||
|
"icon": "settings"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
onTriggered: action => {
|
||||||
|
var popupMenuWindow = PanelService.getPopupMenuWindow(screen);
|
||||||
|
if (popupMenuWindow) {
|
||||||
|
popupMenuWindow.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (action === "widget-settings") {
|
||||||
|
BarService.openPluginSettings(screen, pluginApi.manifest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import Quickshell
|
||||||
|
import qs.Widgets
|
||||||
|
import qs.Commons
|
||||||
|
|
||||||
|
NIconButton {
|
||||||
|
property ShellScreen screen
|
||||||
|
property var pluginApi: null
|
||||||
|
readonly property var mainInstance: pluginApi?.mainInstance
|
||||||
|
|
||||||
|
enabled: mainInstance?.isAvailable ?? false
|
||||||
|
icon: "camera-video"
|
||||||
|
tooltipText: mainInstance?.buildTooltip()
|
||||||
|
colorFg: mainInstance?.isRecording ? Color.mOnPrimary : Color.mPrimary
|
||||||
|
colorBg: mainInstance?.isRecording ? Color.mPrimary : Style.capsuleColor
|
||||||
|
onClicked: {
|
||||||
|
if (pluginApi && pluginApi.mainInstance) {
|
||||||
|
pluginApi.mainInstance.toggleRecording();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
417
home/aiden/.config/noctalia/plugins/screen-recorder/Main.qml
Normal file
417
home/aiden/.config/noctalia/plugins/screen-recorder/Main.qml
Normal file
@@ -0,0 +1,417 @@
|
|||||||
|
import QtQuick
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
import qs.Commons
|
||||||
|
import qs.Services.UI
|
||||||
|
import qs.Services.System
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
property var pluginApi: null
|
||||||
|
|
||||||
|
property bool isRecording: false
|
||||||
|
property bool isPending: false
|
||||||
|
property bool hasActiveRecording: false
|
||||||
|
property string outputPath: ""
|
||||||
|
property bool isAvailable: false
|
||||||
|
|
||||||
|
// Single reusable Process object
|
||||||
|
Process {
|
||||||
|
id: checker
|
||||||
|
running: true
|
||||||
|
command: ["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')"]
|
||||||
|
|
||||||
|
onExited: function (exitCode) {
|
||||||
|
isAvailable = (exitCode === 0);
|
||||||
|
running = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
stdout: StdioCollector {}
|
||||||
|
stderr: StdioCollector {}
|
||||||
|
}
|
||||||
|
|
||||||
|
IpcHandler {
|
||||||
|
target: "plugin:screen-recorder"
|
||||||
|
|
||||||
|
function toggle() {
|
||||||
|
if (root.isAvailable) {
|
||||||
|
root.toggleRecording()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
if (root.isAvailable && !root.isRecording && !root.isPending) {
|
||||||
|
root.startRecording()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function stop() {
|
||||||
|
if (root.isRecording || root.isPending) {
|
||||||
|
root.stopRecording()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Settings shortcuts
|
||||||
|
readonly property string directory: pluginApi?.pluginSettings?.directory || ""
|
||||||
|
readonly property string filenamePattern: pluginApi?.pluginSettings?.filenamePattern || "recording_yyyyMMdd_HHmmss"
|
||||||
|
readonly property string frameRate: pluginApi?.pluginSettings?.frameRate || "60"
|
||||||
|
readonly property string audioCodec: pluginApi?.pluginSettings?.audioCodec || "opus"
|
||||||
|
readonly property string videoCodec: pluginApi?.pluginSettings?.videoCodec || "h264"
|
||||||
|
readonly property string quality: pluginApi?.pluginSettings?.quality || "very_high"
|
||||||
|
readonly property string colorRange: pluginApi?.pluginSettings?.colorRange || "limited"
|
||||||
|
readonly property bool showCursor: pluginApi?.pluginSettings?.showCursor ?? true
|
||||||
|
readonly property bool copyToClipboard: pluginApi?.pluginSettings?.copyToClipboard ?? false
|
||||||
|
readonly property string audioSource: pluginApi?.pluginSettings?.audioSource || "default_output"
|
||||||
|
readonly property string videoSource: pluginApi?.pluginSettings?.videoSource || "portal"
|
||||||
|
readonly property string resolution: pluginApi?.pluginSettings?.resolution || "original"
|
||||||
|
|
||||||
|
function buildTooltip() {
|
||||||
|
if (!isAvailable) {
|
||||||
|
return pluginApi.tr("messages.not-installed")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isPending) {
|
||||||
|
pluginApi.tr("messages.started")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isRecording) {
|
||||||
|
return pluginApi.tr("messages.stop-recording")
|
||||||
|
}
|
||||||
|
|
||||||
|
return pluginApi.tr("messages.start-recording")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Start or Stop recording
|
||||||
|
function toggleRecording() {
|
||||||
|
(isRecording || isPending) ? stopRecording() : startRecording()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open recording file
|
||||||
|
function openFile(path) {
|
||||||
|
if (!path) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
Quickshell.execDetached(["xdg-open", path])
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy file to clipboard as file reference
|
||||||
|
function copyFileToClipboard(filePath) {
|
||||||
|
if (!filePath) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Convert path to file:// URI format for copying as file reference
|
||||||
|
const fileUri = "file://" + filePath.replace(/ /g, "%20").replace(/'/g, "%27").replace(/"/g, "%22")
|
||||||
|
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
|
||||||
|
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",
|
||||||
|
"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 expandFilenamePattern(pattern) {
|
||||||
|
var now = new Date()
|
||||||
|
|
||||||
|
// Known Qt date/time format tokens sorted by length (longest first to match greedily)
|
||||||
|
var tokens = ['unix', 'MMMM', 'dddd', 'yyyy', 'MMM', 'ddd', 'zzz', 'HH', 'hh', 'mm', 'ss',
|
||||||
|
'yy', 'MM', 'dd', 'AP', 'ap', 'M', 'd', 'H', 'h', 'm', 's', 'z', 'A', 'a', 't'];
|
||||||
|
|
||||||
|
// Escape literal text by wrapping non-token sequences in single quotes
|
||||||
|
var escaped = "";
|
||||||
|
var i = 0;
|
||||||
|
var literalBuffer = "";
|
||||||
|
|
||||||
|
while (i < pattern.length) {
|
||||||
|
var matched = false;
|
||||||
|
|
||||||
|
// Try to match each token at current position (longest first)
|
||||||
|
for (var j = 0; j < tokens.length; j++) {
|
||||||
|
var token = tokens[j];
|
||||||
|
if (pattern.substr(i, token.length) === token) {
|
||||||
|
// Check if this is a single-letter token that might be part of a word
|
||||||
|
// Only match single letters if they're preceded/followed by non-letter or another token
|
||||||
|
if (token.length === 1) {
|
||||||
|
var prevChar = i > 0 ? pattern[i - 1] : "";
|
||||||
|
var nextChar = i + 1 < pattern.length ? pattern[i + 1] : "";
|
||||||
|
// If surrounded by letters, it's probably part of a word, not a token
|
||||||
|
if ((prevChar.match(/[a-zA-Z]/) || nextChar.match(/[a-zA-Z]/))) {
|
||||||
|
continue; // Skip this token match, treat as literal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flush any accumulated literal text
|
||||||
|
if (literalBuffer) {
|
||||||
|
escaped += "'" + literalBuffer + "'";
|
||||||
|
literalBuffer = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (token === 'unix') {
|
||||||
|
// Replace 'unix' token with the actual timestamp literal
|
||||||
|
// Do not wrap in quotes to avoid creating '' sequences which are interpreted as escaped quotes
|
||||||
|
escaped += Math.floor(now.getTime() / 1000);
|
||||||
|
} else {
|
||||||
|
// Add other tokens as-is
|
||||||
|
escaped += token;
|
||||||
|
}
|
||||||
|
|
||||||
|
i += token.length;
|
||||||
|
matched = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!matched) {
|
||||||
|
// Character is not part of a token, add to literal buffer
|
||||||
|
literalBuffer += pattern[i];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flush any remaining literal text
|
||||||
|
if (literalBuffer) {
|
||||||
|
escaped += "'" + literalBuffer + "'";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use Qt's I18n.locale.toString for proper date/time formatting
|
||||||
|
var expanded = I18n.locale.toString(now, escaped)
|
||||||
|
return expanded + ".mp4"
|
||||||
|
}
|
||||||
|
|
||||||
|
function launchRecorder() {
|
||||||
|
var pattern = filenamePattern || "recording_yyyyMMdd_HHmmss"
|
||||||
|
var filename = expandFilenamePattern(pattern)
|
||||||
|
var videoDir = Settings.preprocessPath(directory)
|
||||||
|
if (!videoDir) {
|
||||||
|
videoDir = Quickshell.env("HOME") + "/Videos"
|
||||||
|
}
|
||||||
|
if (videoDir && !videoDir.endsWith("/")) {
|
||||||
|
videoDir += "/"
|
||||||
|
}
|
||||||
|
outputPath = videoDir + filename
|
||||||
|
|
||||||
|
const audioFlags = (() => {
|
||||||
|
if (audioSource === "none") {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
if (audioSource === "both") {
|
||||||
|
return `-ac ${audioCodec} -a "default_output|default_input"`
|
||||||
|
}
|
||||||
|
return `-ac ${audioCodec} -a ${audioSource}`
|
||||||
|
})()
|
||||||
|
|
||||||
|
var resolutionFlag = (resolution !== "original") ? `-s ${resolution}` : ""
|
||||||
|
var flags = `-w ${videoSource} -f ${frameRate} -k ${videoCodec} ${audioFlags} -q ${quality} -cursor ${showCursor ? "yes" : "no"} -cr ${colorRange} ${resolutionFlag} -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 to 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
|
||||||
|
function stopRecording() {
|
||||||
|
if (!isRecording && !isPending) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
ToastService.showNotice(pluginApi.tr("messages.stopping"), outputPath, "video")
|
||||||
|
|
||||||
|
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 truncate text for toast display
|
||||||
|
function truncateForToast(text, maxLength = 128) {
|
||||||
|
if (text.length <= maxLength) return text
|
||||||
|
return text.substring(0, maxLength) + "…"
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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
|
||||||
|
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(pluginApi.tr("messages.not-installed"), pluginApi.tr("messages.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(pluginApi.tr("messages.failed-start"), truncateForToast(stderr))
|
||||||
|
Logger.e("ScreenRecorder", stderr)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (isRecording || hasActiveRecording) {
|
||||||
|
// Process ended normally while recording
|
||||||
|
isRecording = false
|
||||||
|
monitorTimer.running = false
|
||||||
|
if (exitCode === 0) {
|
||||||
|
// ToastService.showNotice(pluginApi.tr("messages.saved"), outputPath, "video")
|
||||||
|
ToastService.showNotice(pluginApi.tr("messages.saved"), outputPath, "video", 3000, pluginApi.tr("messages.open-file"), () => openFile(outputPath))
|
||||||
|
|
||||||
|
if (copyToClipboard) {
|
||||||
|
copyFileToClipboard(outputPath)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Don't show error if user intentionally cancelled
|
||||||
|
if (!wasCancelled) {
|
||||||
|
if (stderr.length > 0) {
|
||||||
|
ToastService.showError(pluginApi.tr("messages.failed-start"), truncateForToast(stderr))
|
||||||
|
Logger.e("ScreenRecorder", stderr)
|
||||||
|
} else {
|
||||||
|
ToastService.showError(pluginApi.tr("messages.failed-start"), pluginApi.tr("messages.failed-general"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
hasActiveRecording = false
|
||||||
|
} else if (!isPending && exitCode === 0 && outputPath) {
|
||||||
|
// Fallback: if process exited successfully with an outputPath, handle it
|
||||||
|
// ToastService.showNotice(pluginApi.tr("messages.saved"), outputPath, "video")
|
||||||
|
ToastService.showNotice(pluginApi.tr("messages.saved"), outputPath, "video", 3000, pluginApi.tr("messages.open-file"), () => openFile(outputPath))
|
||||||
|
|
||||||
|
if (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(pluginApi.tr("messages.no-portals"), pluginApi.tr("messages.no-portals-desc"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process to copy file to clipboard
|
||||||
|
Process {
|
||||||
|
id: copyToClipboardProcess
|
||||||
|
onExited: function (exitCode, exitStatus) {
|
||||||
|
if (exitCode !== 0) {
|
||||||
|
Logger.e("ScreenRecorder", "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
|
||||||
|
} 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"])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
124
home/aiden/.config/noctalia/plugins/screen-recorder/README.md
Normal file
124
home/aiden/.config/noctalia/plugins/screen-recorder/README.md
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
# Screen Recorder Plugin
|
||||||
|
|
||||||
|
Hardware-accelerated screen recording for Noctalia using [gpu-screen-recorder](https://git.dec05eba.com/gpu-screen-recorder/about/).
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Hardware-accelerated screen recording
|
||||||
|
- Customizable video codecs (H264, HEVC, AV1, VP8, VP9, HDR variants)
|
||||||
|
- Audio recording with multiple sources (system output, microphone, both, or none)
|
||||||
|
- Adjustable frame rates (30-240 FPS)
|
||||||
|
- Configurable output resolution (Full HD, 4K, QHD, HD, or original)
|
||||||
|
- Configurable output directory
|
||||||
|
- Optional clipboard copy after recording
|
||||||
|
- Optional cursor recording
|
||||||
|
- Multiple quality presets
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- **gpu-screen-recorder** - The screen recording backend
|
||||||
|
- Install via package manager: `gpu-screen-recorder`
|
||||||
|
- **xdg-desktop-portal** and a compositor portal backend (wlr/hyprland/gnome etc)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. Copy this plugin to your Noctalia plugins directory:
|
||||||
|
```bash
|
||||||
|
cp -r screen-recorder ~/.config/noctalia/plugins/
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Add the widget to your bar through Noctalia settings
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Bar Widget
|
||||||
|
|
||||||
|
- **Left Click**: Start/stop recording
|
||||||
|
- **Right Click**: Open plugin settings
|
||||||
|
|
||||||
|
### Settings
|
||||||
|
|
||||||
|
Configure the plugin through the settings panel:
|
||||||
|
|
||||||
|
- **Output Folder**: Where recordings will be saved (defaults to `~/Videos`)
|
||||||
|
- **Filename Pattern**: Pattern for generated filenames. Supports standard Qt date format tokens (e.g., `yyyy`, `MM`, `dd` etc.) and `unix` for Unix timestamp.
|
||||||
|
- **Video Source**: Choose between Portal (recommended) or Screen
|
||||||
|
- **Frame Rate**: Target FPS (30, 60, 100, 120, 144, 165, 240)
|
||||||
|
- **Video Quality**: Medium, High, Very High, or Ultra
|
||||||
|
- **Video Codec**: H264, HEVC, AV1, VP8, VP9 (+ HDR variants for screen source)
|
||||||
|
- **Color Range**: Limited (recommended) or Full
|
||||||
|
- **Resolution**: Output resolution limit (1920x1080, 2560x1440, 3840x2160, 1280x720, or Original)
|
||||||
|
- **Audio Source**: None, System Output, Microphone, or Both
|
||||||
|
- **Audio Codec**: Opus (recommended) or AAC
|
||||||
|
- **Show Cursor**: Include mouse cursor in recording
|
||||||
|
- **Copy to Clipboard**: Automatically copy file after recording
|
||||||
|
|
||||||
|
### IPC Commands
|
||||||
|
|
||||||
|
Control the screen recorder via IPC for keybindings or scripts:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Toggle recording on/off
|
||||||
|
qs -c noctalia-shell ipc call plugin:screen-recorder toggle
|
||||||
|
|
||||||
|
# Explicitly start recording
|
||||||
|
qs -c noctalia-shell ipc call plugin:screen-recorder start
|
||||||
|
|
||||||
|
# Explicitly stop recording
|
||||||
|
qs -c noctalia-shell ipc call plugin:screen-recorder stop
|
||||||
|
```
|
||||||
|
|
||||||
|
## Video Codecs
|
||||||
|
|
||||||
|
- **H264**: Most compatible, good quality, works everywhere
|
||||||
|
- **HEVC (H.265)**: Better compression than H264, smaller files
|
||||||
|
- **AV1**: Best compression, smallest files, newer codec
|
||||||
|
- **VP8/VP9**: Open-source alternatives
|
||||||
|
- **HDR variants**: Available when using "Screen" source for high dynamic range content
|
||||||
|
|
||||||
|
## Audio Sources
|
||||||
|
|
||||||
|
- **None**: No audio recording
|
||||||
|
- **System Output**: Capture system sounds (what you hear)
|
||||||
|
- **Microphone Input**: Capture from microphone
|
||||||
|
- **Both**: Record both system and microphone audio
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### "Screen recorder not installed" error
|
||||||
|
Install gpu-screen-recorder:
|
||||||
|
```bash
|
||||||
|
# Arch Linux
|
||||||
|
sudo pacman -S gpu-screen-recorder
|
||||||
|
|
||||||
|
# Or via Flatpak
|
||||||
|
flatpak install com.dec05eba.gpu_screen_recorder
|
||||||
|
```
|
||||||
|
|
||||||
|
### "Desktop portals not running" error
|
||||||
|
Ensure xdg-desktop-portal and a compositor portal are running:
|
||||||
|
```bash
|
||||||
|
# Check if portals are running
|
||||||
|
pidof xdg-desktop-portal
|
||||||
|
pidof xdg-desktop-portal-wlr # or -hyprland, -gnome, -kde
|
||||||
|
|
||||||
|
# Install if needed (example for Arch)
|
||||||
|
sudo pacman -S xdg-desktop-portal xdg-desktop-portal-wlr
|
||||||
|
```
|
||||||
|
|
||||||
|
### Recording fails with artifacts
|
||||||
|
Try changing the video source from "Portal" to "Screen" in settings.
|
||||||
|
|
||||||
|
### Recording stops immediately
|
||||||
|
- Check if the output directory exists and is writable
|
||||||
|
- Ensure gpu-screen-recorder has necessary permissions
|
||||||
|
- Check Noctalia logs for detailed error messages
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
- Uses [gpu-screen-recorder](https://git.dec05eba.com/gpu-screen-recorder/about/) by dec05eba
|
||||||
|
- Part of the [Noctalia](https://github.com/noctalia-dev/noctalia-shell) plugin ecosystem
|
||||||
395
home/aiden/.config/noctalia/plugins/screen-recorder/Settings.qml
Normal file
395
home/aiden/.config/noctalia/plugins/screen-recorder/Settings.qml
Normal file
@@ -0,0 +1,395 @@
|
|||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell
|
||||||
|
import qs.Commons
|
||||||
|
import qs.Widgets
|
||||||
|
import qs.Services.UI
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
id: root
|
||||||
|
spacing: Style.marginL
|
||||||
|
|
||||||
|
property var pluginApi: null
|
||||||
|
|
||||||
|
property string editDirectory:
|
||||||
|
pluginApi?.pluginSettings?.directory ||
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.directory ||
|
||||||
|
""
|
||||||
|
|
||||||
|
property string editFilenamePattern:
|
||||||
|
pluginApi?.pluginSettings?.filenamePattern ||
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.filenamePattern ||
|
||||||
|
"recording_yyyyMMdd_HHmmss"
|
||||||
|
|
||||||
|
property string editFrameRate:
|
||||||
|
pluginApi?.pluginSettings?.frameRate ||
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.frameRate ||
|
||||||
|
"60"
|
||||||
|
|
||||||
|
property string editAudioCodec:
|
||||||
|
pluginApi?.pluginSettings?.audioCodec ||
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.audioCodec ||
|
||||||
|
"opus"
|
||||||
|
|
||||||
|
property string editVideoCodec:
|
||||||
|
pluginApi?.pluginSettings?.videoCodec ||
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.videoCodec ||
|
||||||
|
"h264"
|
||||||
|
|
||||||
|
property string editQuality:
|
||||||
|
pluginApi?.pluginSettings?.quality ||
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.quality ||
|
||||||
|
"very_high"
|
||||||
|
|
||||||
|
property string editColorRange:
|
||||||
|
pluginApi?.pluginSettings?.colorRange ||
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.colorRange ||
|
||||||
|
"limited"
|
||||||
|
|
||||||
|
property bool editShowCursor:
|
||||||
|
pluginApi?.pluginSettings?.showCursor ??
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.showCursor ??
|
||||||
|
true
|
||||||
|
|
||||||
|
property bool editCopyToClipboard:
|
||||||
|
pluginApi?.pluginSettings?.copyToClipboard ??
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.copyToClipboard ??
|
||||||
|
false
|
||||||
|
|
||||||
|
property string editAudioSource:
|
||||||
|
pluginApi?.pluginSettings?.audioSource ||
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.audioSource ||
|
||||||
|
"default_output"
|
||||||
|
|
||||||
|
property string editVideoSource:
|
||||||
|
pluginApi?.pluginSettings?.videoSource ||
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.videoSource ||
|
||||||
|
"portal"
|
||||||
|
|
||||||
|
property string editResolution:
|
||||||
|
pluginApi?.pluginSettings?.resolution ||
|
||||||
|
pluginApi?.manifest?.metadata?.defaultSettings?.resolution ||
|
||||||
|
"original"
|
||||||
|
|
||||||
|
function saveSettings() {
|
||||||
|
if (!pluginApi) {
|
||||||
|
Logger.e("ScreenRecorder", "Cannot save: pluginApi is null")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
pluginApi.pluginSettings.directory = root.editDirectory
|
||||||
|
pluginApi.pluginSettings.filenamePattern = root.editFilenamePattern
|
||||||
|
pluginApi.pluginSettings.frameRate = root.editFrameRate
|
||||||
|
pluginApi.pluginSettings.audioCodec = root.editAudioCodec
|
||||||
|
pluginApi.pluginSettings.videoCodec = root.editVideoCodec
|
||||||
|
pluginApi.pluginSettings.quality = root.editQuality
|
||||||
|
pluginApi.pluginSettings.colorRange = root.editColorRange
|
||||||
|
pluginApi.pluginSettings.showCursor = root.editShowCursor
|
||||||
|
pluginApi.pluginSettings.copyToClipboard = root.editCopyToClipboard
|
||||||
|
pluginApi.pluginSettings.audioSource = root.editAudioSource
|
||||||
|
pluginApi.pluginSettings.videoSource = root.editVideoSource
|
||||||
|
pluginApi.pluginSettings.resolution = root.editResolution
|
||||||
|
|
||||||
|
pluginApi.saveSettings()
|
||||||
|
|
||||||
|
Logger.i("ScreenRecorder", "Settings saved successfully")
|
||||||
|
}
|
||||||
|
NTextInputButton {
|
||||||
|
label: pluginApi.tr("settings.general.output-folder")
|
||||||
|
description: pluginApi.tr("settings.general.output-folder-description")
|
||||||
|
placeholderText: Quickshell.env("HOME") + "/Videos"
|
||||||
|
text: root.editDirectory
|
||||||
|
buttonIcon: "folder-open"
|
||||||
|
buttonTooltip: pluginApi.tr("settings.general.output-folder")
|
||||||
|
onInputEditingFinished: root.editDirectory = text
|
||||||
|
onButtonClicked: folderPicker.openFilePicker()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filename Pattern
|
||||||
|
NTextInput {
|
||||||
|
label: pluginApi?.tr("settings.filename-pattern.label") || "Filename pattern"
|
||||||
|
description: pluginApi?.tr("settings.filename-pattern.description") || "Pattern for generated filenames. Supported: yyyy, yy, MM, M, dd, d, HH, H, mm, m, ss, s (e.g., mycool-recording_yyyyMMdd_HHmmss)"
|
||||||
|
placeholderText: "recording_yyyyMMdd_HHmmss"
|
||||||
|
text: root.editFilenamePattern
|
||||||
|
onTextChanged: root.editFilenamePattern = text
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
NDivider {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Show Cursor
|
||||||
|
NToggle {
|
||||||
|
label: pluginApi.tr("settings.general.show-cursor")
|
||||||
|
description: pluginApi.tr("settings.general.show-cursor-description")
|
||||||
|
checked: root.editShowCursor
|
||||||
|
onToggled: root.editShowCursor = checked
|
||||||
|
defaultValue: pluginApi?.manifest?.metadata?.defaultSettings?.showCursor ?? true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy to Clipboard
|
||||||
|
NToggle {
|
||||||
|
label: pluginApi.tr("settings.general.copy-to-clipboard")
|
||||||
|
description: pluginApi.tr("settings.general.copy-to-clipboard-description")
|
||||||
|
checked: root.editCopyToClipboard
|
||||||
|
onToggled: root.editCopyToClipboard = checked
|
||||||
|
defaultValue: pluginApi?.manifest?.metadata?.defaultSettings?.copyToClipboard ?? false
|
||||||
|
}
|
||||||
|
|
||||||
|
NDivider {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Video Settings
|
||||||
|
ColumnLayout {
|
||||||
|
spacing: Style.marginL
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
// Source
|
||||||
|
NComboBox {
|
||||||
|
label: pluginApi.tr("settings.video.source")
|
||||||
|
description: pluginApi.tr("settings.video.source-desc")
|
||||||
|
model: [
|
||||||
|
{
|
||||||
|
"key": "portal",
|
||||||
|
"name": pluginApi.tr("settings.video.sources-portal")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "screen",
|
||||||
|
"name": pluginApi.tr("settings.video.sources-screen")
|
||||||
|
}
|
||||||
|
]
|
||||||
|
currentKey: root.editVideoSource
|
||||||
|
onSelected: key => root.editVideoSource = key
|
||||||
|
defaultValue: pluginApi?.manifest?.metadata?.defaultSettings?.videoSource || "portal"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Frame Rate
|
||||||
|
NComboBox {
|
||||||
|
label: pluginApi.tr("settings.video.frame-rate")
|
||||||
|
description: pluginApi.tr("settings.video.frame-rate-desc")
|
||||||
|
model: [
|
||||||
|
{
|
||||||
|
"key": "30",
|
||||||
|
"name": "30 FPS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "60",
|
||||||
|
"name": "60 FPS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "100",
|
||||||
|
"name": "100 FPS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "120",
|
||||||
|
"name": "120 FPS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "144",
|
||||||
|
"name": "144 FPS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "165",
|
||||||
|
"name": "165 FPS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "240",
|
||||||
|
"name": "240 FPS"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
currentKey: root.editFrameRate
|
||||||
|
onSelected: key => root.editFrameRate = key
|
||||||
|
defaultValue: pluginApi?.manifest?.metadata?.defaultSettings?.frameRate || "60"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Video Quality
|
||||||
|
NComboBox {
|
||||||
|
label: pluginApi.tr("settings.video.quality")
|
||||||
|
description: pluginApi.tr("settings.video.quality-desc")
|
||||||
|
model: [
|
||||||
|
{
|
||||||
|
"key": "medium",
|
||||||
|
"name": pluginApi.tr("settings.video.quality-medium")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "high",
|
||||||
|
"name": pluginApi.tr("settings.video.quality-high")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "very_high",
|
||||||
|
"name": pluginApi.tr("settings.video.quality-very-high")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "ultra",
|
||||||
|
"name": pluginApi.tr("settings.video.quality-ultra")
|
||||||
|
}
|
||||||
|
]
|
||||||
|
currentKey: root.editQuality
|
||||||
|
onSelected: key => root.editQuality = key
|
||||||
|
defaultValue: pluginApi?.manifest?.metadata?.defaultSettings?.quality || "very_high"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Video Codec
|
||||||
|
NComboBox {
|
||||||
|
label: pluginApi.tr("settings.video.codec")
|
||||||
|
description: pluginApi.tr("settings.video.codec-desc")
|
||||||
|
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 (root.editVideoSource === "screen") {
|
||||||
|
options.push({"key": "hevc_hdr", "name": "HEVC HDR"})
|
||||||
|
options.push({"key": "av1_hdr", "name": "AV1 HDR"})
|
||||||
|
}
|
||||||
|
return options
|
||||||
|
}
|
||||||
|
currentKey: root.editVideoCodec
|
||||||
|
onSelected: key => {
|
||||||
|
root.editVideoCodec = key
|
||||||
|
// If an HDR codec is selected, change the colorRange to full
|
||||||
|
if (key.includes("_hdr")) {
|
||||||
|
root.editColorRange = "full"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
defaultValue: pluginApi?.manifest?.metadata?.defaultSettings?.videoCodec || "h264"
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: root
|
||||||
|
function onEditVideoSourceChanged() {
|
||||||
|
if (root.editVideoSource !== "screen" && (root.editVideoCodec === "av1_hdr" || root.editVideoCodec === "hevc_hdr")) {
|
||||||
|
root.editVideoCodec = "h264"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Color Range
|
||||||
|
NComboBox {
|
||||||
|
label: pluginApi.tr("settings.video.color-range")
|
||||||
|
description: pluginApi.tr("settings.video.color-range-desc")
|
||||||
|
model: [
|
||||||
|
{
|
||||||
|
"key": "limited",
|
||||||
|
"name": pluginApi.tr("settings.video.color-range-limited")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "full",
|
||||||
|
"name": pluginApi.tr("settings.video.color-range-full")
|
||||||
|
}
|
||||||
|
]
|
||||||
|
currentKey: root.editColorRange
|
||||||
|
onSelected: key => root.editColorRange = key
|
||||||
|
defaultValue: pluginApi?.manifest?.metadata?.defaultSettings?.colorRange || "limited"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Resolution
|
||||||
|
NComboBox {
|
||||||
|
label: pluginApi.tr("settings.video.resolution")
|
||||||
|
description: pluginApi.tr("settings.video.resolution-desc")
|
||||||
|
model: [
|
||||||
|
{
|
||||||
|
"key": "original",
|
||||||
|
"name": pluginApi.tr("settings.video.resolution-original")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "1920x1080",
|
||||||
|
"name": "1920x1080 (Full HD)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "2560x1440",
|
||||||
|
"name": "2560x1440 (QHD)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "3840x2160",
|
||||||
|
"name": "3840x2160 (4K)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "1280x720",
|
||||||
|
"name": "1280x720 (HD)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
currentKey: root.editResolution
|
||||||
|
onSelected: key => root.editResolution = key
|
||||||
|
defaultValue: pluginApi?.manifest?.metadata?.defaultSettings?.resolution || "original"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
NDivider {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Audio Settings
|
||||||
|
ColumnLayout {
|
||||||
|
spacing: Style.marginL
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
// Audio Source
|
||||||
|
NComboBox {
|
||||||
|
label: pluginApi.tr("settings.audio.source")
|
||||||
|
description: pluginApi.tr("settings.audio.source-desc")
|
||||||
|
model: [
|
||||||
|
{
|
||||||
|
"key": "none",
|
||||||
|
"name": pluginApi.tr("settings.audio.audio-sources-none")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "default_output",
|
||||||
|
"name": pluginApi.tr("settings.audio.audio-sources-system-output")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "default_input",
|
||||||
|
"name": pluginApi.tr("settings.audio.audio-sources-microphone-input")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "both",
|
||||||
|
"name": pluginApi.tr("settings.audio.audio-sources-both")
|
||||||
|
}
|
||||||
|
]
|
||||||
|
currentKey: root.editAudioSource
|
||||||
|
onSelected: key => root.editAudioSource = key
|
||||||
|
defaultValue: pluginApi?.manifest?.metadata?.defaultSettings?.audioSource || "default_output"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Audio Codec
|
||||||
|
NComboBox {
|
||||||
|
label: pluginApi.tr("settings.audio.codec")
|
||||||
|
description: pluginApi.tr("settings.audio.codec-desc")
|
||||||
|
model: [
|
||||||
|
{
|
||||||
|
"key": "opus",
|
||||||
|
"name": "Opus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "aac",
|
||||||
|
"name": "AAC"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
currentKey: root.editAudioCodec
|
||||||
|
onSelected: key => root.editAudioCodec = key
|
||||||
|
defaultValue: pluginApi?.manifest?.metadata?.defaultSettings?.audioCodec || "opus"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Layout.fillHeight: true
|
||||||
|
}
|
||||||
|
|
||||||
|
NFilePicker {
|
||||||
|
id: folderPicker
|
||||||
|
selectionMode: "folders"
|
||||||
|
title: pluginApi.tr("settings.general.output-folder")
|
||||||
|
initialPath: root.editDirectory || Quickshell.env("HOME") + "/Videos"
|
||||||
|
onAccepted: paths => {
|
||||||
|
if (paths.length > 0) {
|
||||||
|
root.editDirectory = paths[0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Hardwarebeschleunigte Bildschirmaufnahme mit anpassbaren Video- und Audioeinstellungen",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "Der Recorder wurde mit einem Fehler beendet.",
|
||||||
|
"failed-gpu": "gpu-screen-recorder wurde unerwartet beendet.",
|
||||||
|
"failed-start": "Aufnahme konnte nicht gestartet werden.",
|
||||||
|
"no-portals": "Desktop-Portale laufen nicht.",
|
||||||
|
"no-portals-desc": "Starte xdg-desktop-portal und ein Compositor-Portal (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "gpu-screen-recorder ist nicht installiert.",
|
||||||
|
"not-installed-desc": "Bitte installieren Sie gpu-screen-recorder, um die Bildschirmaufzeichnungsfunktionen zu nutzen.",
|
||||||
|
"saved": "Aufnahme gespeichert.",
|
||||||
|
"start-recording": "Bildschirmaufnahme (Aufnahme starten)",
|
||||||
|
"started": "Aufnahme gestartet.",
|
||||||
|
"stop-recording": "Bildschirmaufnahme (Aufnahme stoppen)",
|
||||||
|
"stopping": "Aufnahme stoppen…"
|
||||||
|
},
|
||||||
|
"name": "Bildschirmrekorder",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "Systemausgabe + Mikrofoneingang",
|
||||||
|
"audio-sources-microphone-input": "Mikrofoneingang",
|
||||||
|
"audio-sources-none": "Kein Audio",
|
||||||
|
"audio-sources-system-output": "Systemausgabe",
|
||||||
|
"codec": "Audio-Codec",
|
||||||
|
"codec-desc": "Opus wird für beste Leistung und kleinste Audiogröße empfohlen",
|
||||||
|
"source": "Audioquelle",
|
||||||
|
"source-desc": "Audioquelle, die während der Aufnahme aufgenommen werden soll",
|
||||||
|
"title": "Audioeinstellungen"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Dateimuster mit Datums-/Zeitcodes (z. B. aufnahme_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Dateimuster"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "In die Zwischenablage kopieren",
|
||||||
|
"copy-to-clipboard-description": "Kopiere die Datei nach Abschluss der Aufnahme in die Zwischenablage.",
|
||||||
|
"output-folder": "Ausgabeordner",
|
||||||
|
"output-folder-description": "Ordner, in dem Bildschirmaufnahmen gespeichert werden",
|
||||||
|
"show-cursor": "Cursor anzeigen",
|
||||||
|
"show-cursor-description": "Mauszeiger im Video aufnehmen",
|
||||||
|
"title": "Allgemein"
|
||||||
|
},
|
||||||
|
"title": "Bildschirmrekorder-Einstellungen",
|
||||||
|
"video": {
|
||||||
|
"codec": "Video-Codec",
|
||||||
|
"codec-desc": "h264 ist der gängigste Codec",
|
||||||
|
"color-range": "Farbbereich",
|
||||||
|
"color-range-desc": "Begrenzt wird für bessere Kompatibilität empfohlen",
|
||||||
|
"color-range-full": "Vollständig",
|
||||||
|
"color-range-limited": "Begrenzt",
|
||||||
|
"frame-rate": "Bildrate",
|
||||||
|
"frame-rate-desc": "Ziel-Bildrate für Bildschirmaufnahmen",
|
||||||
|
"quality": "Videoqualität",
|
||||||
|
"quality-desc": "Höhere Qualität führt zu größeren Dateien",
|
||||||
|
"quality-high": "Hoch",
|
||||||
|
"quality-medium": "Mittel",
|
||||||
|
"quality-ultra": "Ultra",
|
||||||
|
"quality-very-high": "Sehr hoch",
|
||||||
|
"resolution": "Auflösung",
|
||||||
|
"resolution-desc": "Ausgabeauflösung begrenzen. Standard verwendet Originalbildschirmauflösung",
|
||||||
|
"resolution-original": "Standard",
|
||||||
|
"source": "Videoquelle",
|
||||||
|
"source-desc": "Portal wird empfohlen, bei Artefakten versuchen Sie Bildschirm",
|
||||||
|
"sources-portal": "Portal",
|
||||||
|
"sources-screen": "Bildschirm",
|
||||||
|
"title": "Videoeinstellungen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"description": "Hardware-accelerated screen recording with customizable video and audio settings",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "Recorder exited with an error.",
|
||||||
|
"failed-gpu": "gpu-screen-recorder exited unexpectedly.",
|
||||||
|
"failed-start": "Failed to start recording.",
|
||||||
|
"no-portals": "Desktop portals not running.",
|
||||||
|
"no-portals-desc": "Start xdg-desktop-portal and a compositor portal (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "gpu-screen-recorder not installed.",
|
||||||
|
"not-installed-desc": "Please install gpu-screen-recorder to use screen recording features.",
|
||||||
|
"saved": "Recording saved.",
|
||||||
|
"start-recording": "Screen recorder (start recording)",
|
||||||
|
"started": "Recording started.",
|
||||||
|
"stop-recording": "Screen recorder (stop recording)",
|
||||||
|
"stopping": "Stopping recording…",
|
||||||
|
"open-file": "Open file"
|
||||||
|
},
|
||||||
|
"name": "Screen Recorder",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "System output + microphone input",
|
||||||
|
"audio-sources-microphone-input": "Microphone input",
|
||||||
|
"audio-sources-none": "No audio",
|
||||||
|
"audio-sources-system-output": "System output",
|
||||||
|
"codec": "Audio codec",
|
||||||
|
"codec-desc": "Opus is recommended for best performance and smallest audio size",
|
||||||
|
"source": "Audio source",
|
||||||
|
"source-desc": "Audio source to capture during recording",
|
||||||
|
"title": "Audio Settings"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Filename pattern using date/time codes (e.g., recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Filename pattern"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Copy to clipboard",
|
||||||
|
"copy-to-clipboard-description": "Copy the file to clipboard after recording finishes.",
|
||||||
|
"output-folder": "Output folder",
|
||||||
|
"output-folder-description": "Folder where screen recordings will be saved",
|
||||||
|
"show-cursor": "Show cursor",
|
||||||
|
"show-cursor-description": "Record mouse cursor in the video",
|
||||||
|
"title": "General"
|
||||||
|
},
|
||||||
|
"title": "Screen Recorder Settings",
|
||||||
|
"video": {
|
||||||
|
"codec": "Video codec",
|
||||||
|
"codec-desc": "h264 is the most common codec",
|
||||||
|
"color-range": "Color range",
|
||||||
|
"color-range-desc": "Limited is recommended for better compatibility",
|
||||||
|
"color-range-full": "Full",
|
||||||
|
"color-range-limited": "Limited",
|
||||||
|
"frame-rate": "Frame rate",
|
||||||
|
"frame-rate-desc": "Target frame rate for screen recordings",
|
||||||
|
"quality": "Video quality",
|
||||||
|
"quality-desc": "Higher quality results in larger file sizes",
|
||||||
|
"quality-high": "High",
|
||||||
|
"quality-medium": "Medium",
|
||||||
|
"quality-ultra": "Ultra",
|
||||||
|
"quality-very-high": "Very high",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Video source",
|
||||||
|
"source-desc": "Portal is recommended, if you get artifacts try Screen",
|
||||||
|
"sources-portal": "Portal",
|
||||||
|
"sources-screen": "Screen",
|
||||||
|
"title": "Video Settings"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Grabación de pantalla acelerada por hardware con configuración personalizable de video y audio",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "El grabador salió con un error.",
|
||||||
|
"failed-gpu": "gpu-screen-recorder se cerró inesperadamente.",
|
||||||
|
"failed-start": "No se pudo iniciar la grabación.",
|
||||||
|
"no-portals": "Portales de escritorio no están en ejecución.",
|
||||||
|
"no-portals-desc": "Inicia xdg-desktop-portal y un portal de compositor (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "gpu-screen-recorder no está instalado.",
|
||||||
|
"not-installed-desc": "Por favor, instale gpu-screen-recorder para usar las funciones de grabación de pantalla.",
|
||||||
|
"saved": "Grabación guardada.",
|
||||||
|
"start-recording": "Grabador de pantalla (empezar a grabar)",
|
||||||
|
"started": "Grabación iniciada.",
|
||||||
|
"stop-recording": "Grabador de pantalla (detener grabación)",
|
||||||
|
"stopping": "Deteniendo la grabación…"
|
||||||
|
},
|
||||||
|
"name": "Grabadora de Pantalla",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "Salida del sistema + entrada de micrófono",
|
||||||
|
"audio-sources-microphone-input": "Entrada de micrófono",
|
||||||
|
"audio-sources-none": "Sin audio",
|
||||||
|
"audio-sources-system-output": "Salida del sistema",
|
||||||
|
"codec": "Códec de audio",
|
||||||
|
"codec-desc": "Opus se recomienda para mejor rendimiento y tamaño de audio más pequeño",
|
||||||
|
"source": "Fuente de audio",
|
||||||
|
"source-desc": "Fuente de audio para capturar durante la grabación",
|
||||||
|
"title": "Configuración de Audio"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Patrón de nombre de archivo usando códigos de fecha/hora (p. ej., recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Patrón de nombre de archivo"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Copiar al portapapeles",
|
||||||
|
"copy-to-clipboard-description": "Copia el archivo al portapapeles después de que termine la grabación.",
|
||||||
|
"output-folder": "Carpeta de salida",
|
||||||
|
"output-folder-description": "Carpeta donde se guardarán las grabaciones de pantalla",
|
||||||
|
"show-cursor": "Mostrar cursor",
|
||||||
|
"show-cursor-description": "Grabar el cursor del ratón en el video",
|
||||||
|
"title": "General"
|
||||||
|
},
|
||||||
|
"title": "Configuración de Grabadora de Pantalla",
|
||||||
|
"video": {
|
||||||
|
"codec": "Códec de video",
|
||||||
|
"codec-desc": "h264 es el códec más común",
|
||||||
|
"color-range": "Rango de color",
|
||||||
|
"color-range-desc": "Limitado se recomienda para mejor compatibilidad",
|
||||||
|
"color-range-full": "Completo",
|
||||||
|
"color-range-limited": "Limitado",
|
||||||
|
"frame-rate": "Tasa de fotogramas",
|
||||||
|
"frame-rate-desc": "Tasa de fotogramas objetivo para grabaciones de pantalla",
|
||||||
|
"quality": "Calidad de video",
|
||||||
|
"quality-desc": "Mayor calidad resulta en archivos más grandes",
|
||||||
|
"quality-high": "Alto",
|
||||||
|
"quality-medium": "Mediano",
|
||||||
|
"quality-ultra": "Ultra",
|
||||||
|
"quality-very-high": "Muy alto",
|
||||||
|
"resolution": "Resolución",
|
||||||
|
"resolution-desc": "Limitar resolución de salida. Predeterminado usa resolución de pantalla original",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Fuente de video",
|
||||||
|
"source-desc": "Se recomienda Portal, si obtiene artefactos intente Pantalla",
|
||||||
|
"sources-portal": "Portal",
|
||||||
|
"sources-screen": "Pantalla",
|
||||||
|
"title": "Configuración de Video"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Enregistrement d'écran accéléré par matériel avec paramètres vidéo et audio personnalisables",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "L'enregistreur a quitté avec une erreur.",
|
||||||
|
"failed-gpu": "L'enregistreur d'écran GPU s'est arrêté de manière inattendue.",
|
||||||
|
"failed-start": "Échec du démarrage de l'enregistrement.",
|
||||||
|
"no-portals": "Les portails de bureau ne fonctionnent pas.",
|
||||||
|
"no-portals-desc": "Démarrer xdg-desktop-portal et un portail de compositeur (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "enregistreur d'écran gpu non installé.",
|
||||||
|
"not-installed-desc": "Veuillez installer gpu-screen-recorder pour utiliser les fonctionnalités d'enregistrement d'écran.",
|
||||||
|
"saved": "Enregistrement sauvegardé.",
|
||||||
|
"start-recording": "Enregistreur d'écran (démarrer l'enregistrement)",
|
||||||
|
"started": "Enregistrement démarré.",
|
||||||
|
"stop-recording": "Enregistreur d'écran (arrêter l'enregistrement)",
|
||||||
|
"stopping": "Arrêt de l'enregistrement..."
|
||||||
|
},
|
||||||
|
"name": "Enregistreur d'Écran",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"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",
|
||||||
|
"codec": "Codec audio",
|
||||||
|
"codec-desc": "Opus est recommandé pour les meilleures performances et la plus petite taille audio",
|
||||||
|
"source": "Source audio",
|
||||||
|
"source-desc": "Source audio à capturer pendant l'enregistrement",
|
||||||
|
"title": "Paramètres Audio"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Modèle de nom de fichier utilisant les codes date/heure (par exemple, recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Modèle de nom de fichier"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Copier dans le presse-papiers",
|
||||||
|
"copy-to-clipboard-description": "Copier le fichier dans le presse-papiers une fois l'enregistrement terminé.",
|
||||||
|
"output-folder": "Dossier de sortie",
|
||||||
|
"output-folder-description": "Dossier où les enregistrements d'écran seront enregistrés",
|
||||||
|
"show-cursor": "Afficher le curseur",
|
||||||
|
"show-cursor-description": "Enregistrer le curseur de la souris dans la vidéo",
|
||||||
|
"title": "Général"
|
||||||
|
},
|
||||||
|
"title": "Paramètres de l'Enregistreur d'Écran",
|
||||||
|
"video": {
|
||||||
|
"codec": "Codec vidéo",
|
||||||
|
"codec-desc": "h264 est le codec le plus courant",
|
||||||
|
"color-range": "Gamme de couleurs",
|
||||||
|
"color-range-desc": "Limité est recommandé pour une meilleure compatibilité",
|
||||||
|
"color-range-full": "Complet / Plein",
|
||||||
|
"color-range-limited": "Limité(e)",
|
||||||
|
"frame-rate": "Fréquence d'images",
|
||||||
|
"frame-rate-desc": "Fréquence d'images cible pour les enregistrements d'écran",
|
||||||
|
"quality": "Qualité vidéo",
|
||||||
|
"quality-desc": "Une qualité supérieure résulte en des fichiers plus volumineux",
|
||||||
|
"quality-high": "Haut/Haute",
|
||||||
|
"quality-medium": "Moyen",
|
||||||
|
"quality-ultra": "Ultra",
|
||||||
|
"quality-very-high": "Très élevé",
|
||||||
|
"resolution": "Résolution",
|
||||||
|
"resolution-desc": "Limiter la résolution de sortie. Par défaut utilise la résolution d'écran originale",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Source vidéo",
|
||||||
|
"source-desc": "Portal est recommandé, si vous obtenez des artefacts essayez Écran",
|
||||||
|
"sources-portal": "Portail",
|
||||||
|
"sources-screen": "Écran",
|
||||||
|
"title": "Paramètres Vidéo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Hardveresen gyorsított képernyőfelvétel testreszabható videó- és hangbeállításokkal",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "A rögzítő hibával kilépett.",
|
||||||
|
"failed-gpu": "A gpu-screen-recorder váratlanul leállt.",
|
||||||
|
"failed-start": "A felvétel indítása sikertelen.",
|
||||||
|
"no-portals": "Az asztali portálok nem futnak.",
|
||||||
|
"no-portals-desc": "xdg-desktop-portal és egy kompozitor portál (wlr/hyprland/gnome/kde) indítása.",
|
||||||
|
"not-installed": "A gpu-screen-recorder nincs telepítve.",
|
||||||
|
"not-installed-desc": "Kérlek, telepítsd a gpu-screen-recorder alkalmazást a képernyőfelvétel funkciók használatához.",
|
||||||
|
"saved": "A felvétel mentve.",
|
||||||
|
"start-recording": "Képernyőrögzítő (felvétel indítása)",
|
||||||
|
"started": "A felvétel elindult.",
|
||||||
|
"stop-recording": "Képernyőfelvevő (felvétel leállítása)",
|
||||||
|
"stopping": "A felvétel leállítása…"
|
||||||
|
},
|
||||||
|
"name": "Képernyőfelvevő",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "Rendszerkimenet + mikrofonbemenet",
|
||||||
|
"audio-sources-microphone-input": "Mikrofon bemenet",
|
||||||
|
"audio-sources-none": "Nincs hang",
|
||||||
|
"audio-sources-system-output": "Rendszerkimenet",
|
||||||
|
"codec": "Audió kodek",
|
||||||
|
"codec-desc": "Az Opus ajánlott a legjobb teljesítmény és a legkisebb hangméret érdekében",
|
||||||
|
"source": "Hangforrás",
|
||||||
|
"source-desc": "Hangrögzítés során rögzítendő hangforrás",
|
||||||
|
"title": "Hangbeállítások"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Fájlnév minta dátum/idő kódokkal (pl. recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Fájlnév minta"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Másolás a vágólapra",
|
||||||
|
"copy-to-clipboard-description": "A felvétel befejezése után másolja a fájlt a vágólapra.",
|
||||||
|
"output-folder": "Kimeneti mappa",
|
||||||
|
"output-folder-description": "Mappa, ahová a képernyőfelvételek mentésre kerülnek",
|
||||||
|
"show-cursor": "Kurzor megjelenítése",
|
||||||
|
"show-cursor-description": "Egérkurzor rögzítése a videóban",
|
||||||
|
"title": "Általános"
|
||||||
|
},
|
||||||
|
"title": "Képernyőrögzítő beállítások",
|
||||||
|
"video": {
|
||||||
|
"codec": "Videó kodek",
|
||||||
|
"codec-desc": "a h264 a legelterjedtebb kodek",
|
||||||
|
"color-range": "Színtartomány",
|
||||||
|
"color-range-desc": "A korlátozott ajánlott a jobb kompatibilitás érdekében",
|
||||||
|
"color-range-full": "Teljes",
|
||||||
|
"color-range-limited": "Korlátozott",
|
||||||
|
"frame-rate": "Képkockasebesség",
|
||||||
|
"frame-rate-desc": "Képernyőfelvételek célzott képkockasebessége",
|
||||||
|
"quality": "Videóminőség",
|
||||||
|
"quality-desc": "A jobb minőség nagyobb fájlméretet eredményez",
|
||||||
|
"quality-high": "Magas",
|
||||||
|
"quality-medium": "Közepes",
|
||||||
|
"quality-ultra": "Ultra",
|
||||||
|
"quality-very-high": "Nagyon magas",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Videóforrás",
|
||||||
|
"source-desc": "A Portal ajánlott, ha hibákat tapasztalsz, próbáld a Screen-t",
|
||||||
|
"sources-portal": "Portál",
|
||||||
|
"sources-screen": "Képernyő",
|
||||||
|
"title": "Videóbeállítások"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Registrazione dello schermo con accelerazione hardware e impostazioni video e audio personalizzabili",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "Registratore uscito con un errore.",
|
||||||
|
"failed-gpu": "ضبط الشاشة باستخدام معالج الرسوميات توقف بشكل غير متوقع.",
|
||||||
|
"failed-start": "Nuk arrita të filloj regjistrimin.",
|
||||||
|
"no-portals": "Non è in esecuzione alcun portale desktop.",
|
||||||
|
"no-portals-desc": "Avvia xdg-desktop-portal e un portale compositore (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "gpu-screen-recorder non è installato.",
|
||||||
|
"not-installed-desc": "Bitte installiere gpu-screen-recorder, um die Bildschirmaufzeichnungsfunktionen zu nutzen.",
|
||||||
|
"saved": "Registrazione salvata.",
|
||||||
|
"start-recording": "P錄影 (開始錄影)",
|
||||||
|
"started": "Aufnahme gestartet.",
|
||||||
|
"stop-recording": "Skjáupptökutæki (hætta upptöku)",
|
||||||
|
"stopping": "Nagpapatigil ng pagrekord..."
|
||||||
|
},
|
||||||
|
"name": "Registratore Schermo",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "Risultato del sistema + ingresso microfono",
|
||||||
|
"audio-sources-microphone-input": "Eingang für Mikrofon",
|
||||||
|
"audio-sources-none": "Léir aon fhuaim",
|
||||||
|
"audio-sources-system-output": "Risultato del sistema",
|
||||||
|
"codec": "Codec audio",
|
||||||
|
"codec-desc": "Opus è consigliato per le migliori prestazioni e dimensioni audio più piccole",
|
||||||
|
"source": "Sorgente audio",
|
||||||
|
"source-desc": "Sorgente audio da catturare durante la registrazione",
|
||||||
|
"title": "Impostazioni Audio"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Padrone di u nome di u schedariu chì usa i codici di data/ora (per esempiu, recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Modello nome file"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Copia negli appunti",
|
||||||
|
"copy-to-clipboard-description": "Kopyahin ang file sa clipboard pagkatapos matapos ang pag-record.",
|
||||||
|
"output-folder": "Cartella di output",
|
||||||
|
"output-folder-description": "Cartella dove verranno salvate le registrazioni dello schermo",
|
||||||
|
"show-cursor": "Mostra cursore",
|
||||||
|
"show-cursor-description": "Registra il cursore del mouse nel video",
|
||||||
|
"title": "Generale"
|
||||||
|
},
|
||||||
|
"title": "Impostazioni Registratore Schermo",
|
||||||
|
"video": {
|
||||||
|
"codec": "Codec video",
|
||||||
|
"codec-desc": "h264 è il codec più comune",
|
||||||
|
"color-range": "Gamma colori",
|
||||||
|
"color-range-desc": "Limitato è consigliato per una migliore compatibilità",
|
||||||
|
"color-range-full": "Puno",
|
||||||
|
"color-range-limited": "Limitato",
|
||||||
|
"frame-rate": "Frequenza fotogrammi",
|
||||||
|
"frame-rate-desc": "Frequenza fotogrammi target per le registrazioni dello schermo",
|
||||||
|
"quality": "Qualità video",
|
||||||
|
"quality-desc": "Qualità superiore risulta in file più grandi",
|
||||||
|
"quality-high": "Alta",
|
||||||
|
"quality-medium": "Mezzano",
|
||||||
|
"quality-ultra": "Ultra",
|
||||||
|
"quality-very-high": "Molto alto",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Sorgente video",
|
||||||
|
"source-desc": "Portal è consigliato, se si ottengono artefatti prova Schermo",
|
||||||
|
"sources-portal": "Portale",
|
||||||
|
"sources-screen": "Skjerm",
|
||||||
|
"title": "Impostazioni Video"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "カスタマイズ可能なビデオおよびオーディオ設定を備えたハードウェアアクセラレーション画面録画",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "レコーダーがエラーで終了しました。",
|
||||||
|
"failed-gpu": "gpu-screen-recorder が予期せず終了しました。",
|
||||||
|
"failed-start": "録画を開始できませんでした。",
|
||||||
|
"no-portals": "デスクトップポータルが実行されていません。",
|
||||||
|
"no-portals-desc": "xdg-desktop-portalとコンポジターポータル (wlr/hyprland/gnome/kde) を起動します。",
|
||||||
|
"not-installed": "gpu-screen-recorder がインストールされていません。",
|
||||||
|
"not-installed-desc": "画面録画機能を使用するには、gpu-screen-recorderをインストールしてください。",
|
||||||
|
"saved": "録音を保存しました。",
|
||||||
|
"start-recording": "画面録画(録画開始)",
|
||||||
|
"started": "録音を開始しました。",
|
||||||
|
"stop-recording": "画面録画(録画停止)",
|
||||||
|
"stopping": "録画を停止しています…"
|
||||||
|
},
|
||||||
|
"name": "画面レコーダー",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "システム出力 + マイク入力",
|
||||||
|
"audio-sources-microphone-input": "マイク入力",
|
||||||
|
"audio-sources-none": "音声なし",
|
||||||
|
"audio-sources-system-output": "システム出力",
|
||||||
|
"codec": "オーディオコーデック",
|
||||||
|
"codec-desc": "最高のパフォーマンスと最小のオーディオサイズにはOpusが推奨されます",
|
||||||
|
"source": "オーディオソース",
|
||||||
|
"source-desc": "録画中にキャプチャするオーディオソース",
|
||||||
|
"title": "オーディオ設定"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "日付/時刻コードを使用したファイル名パターン(例:recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "ファイル名のパターン"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "クリップボードにコピー",
|
||||||
|
"copy-to-clipboard-description": "録画終了後、ファイルをクリップボードにコピーします。",
|
||||||
|
"output-folder": "出力フォルダー",
|
||||||
|
"output-folder-description": "画面録画が保存されるフォルダー",
|
||||||
|
"show-cursor": "カーソルを表示",
|
||||||
|
"show-cursor-description": "ビデオにマウスカーソルを記録する",
|
||||||
|
"title": "全般"
|
||||||
|
},
|
||||||
|
"title": "画面レコーダー設定",
|
||||||
|
"video": {
|
||||||
|
"codec": "ビデオコーデック",
|
||||||
|
"codec-desc": "h264は最も一般的なコーデックです",
|
||||||
|
"color-range": "色範囲",
|
||||||
|
"color-range-desc": "互換性向上のため制限付きが推奨されます",
|
||||||
|
"color-range-full": "フル",
|
||||||
|
"color-range-limited": "限定",
|
||||||
|
"frame-rate": "フレームレート",
|
||||||
|
"frame-rate-desc": "画面録画の目標フレームレート",
|
||||||
|
"quality": "ビデオ品質",
|
||||||
|
"quality-desc": "品質が高いほどファイルサイズが大きくなります",
|
||||||
|
"quality-high": "高い",
|
||||||
|
"quality-medium": "ミディアム",
|
||||||
|
"quality-ultra": "ウルトラ",
|
||||||
|
"quality-very-high": "非常に高い",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "ビデオソース",
|
||||||
|
"source-desc": "Portalが推奨されます。アーティファクトが発生する場合は画面を試してください",
|
||||||
|
"sources-portal": "ポータル",
|
||||||
|
"sources-screen": "スクリーン",
|
||||||
|
"title": "ビデオ設定"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Qeydkirina dîmenderê ya bi lezkerdana hardware bi mîhengên vîdyo û deng ên xwerû",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "Qeydker bi xeletî derket.",
|
||||||
|
"failed-gpu": "Qeydkerê dîmenderê GPU bi awayekî nediyar derket.",
|
||||||
|
"failed-start": "Dest pê kirina qeydê bi ser neket.",
|
||||||
|
"no-portals": "Portalên sermaseyê naxebitin.",
|
||||||
|
"no-portals-desc": "Xdg-desktop-portal û portalekî komposîtorê (wlr/hyprland/gnome/kde) bide destpêkirin.",
|
||||||
|
"not-installed": "gpu-screen-recorder nehati hati saz kirin.",
|
||||||
|
"not-installed-desc": "Ji bo bikaranîna taybetmendiyên tomarkirina dîmenderê, ji kerema xwe gpu-screen-recorder saz bikin.",
|
||||||
|
"saved": "Tomar qeyd kirin.",
|
||||||
|
"start-recording": "Qeydkerê ekranê (dest bi qeydkirinê bike)",
|
||||||
|
"started": "Qeydkirin dest pê kir.",
|
||||||
|
"stop-recording": "Tomarkera dîmenderê (tomarkirinê bide sekinandin)",
|
||||||
|
"stopping": "Qeydkirin radiweste…"
|
||||||
|
},
|
||||||
|
"name": "Qeydkerê Ekranê",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "Derçûna pergalê + têketina mîkrofonê",
|
||||||
|
"audio-sources-microphone-input": "Ketina mîkrofonê",
|
||||||
|
"audio-sources-none": "Ti dengê tune",
|
||||||
|
"audio-sources-system-output": "Derçûna pergalê",
|
||||||
|
"codec": "Kodêkê deng",
|
||||||
|
"codec-desc": "Opus ji bo performansa herî baş û mezinahiya dengî ya herî biçûk tê pêşniyar kirin",
|
||||||
|
"source": "Çavkanîya deng",
|
||||||
|
"source-desc": "Çavkanîya dengî ya ku di dema qeydkirinê de were girtin",
|
||||||
|
"title": "Mîhengên Deng"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Şiklê navê pelê ku kodên dîrok/dem bikar tîne (mînak, recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Nimûneya navê pelê"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Kopyayî ser clipboardê bike",
|
||||||
|
"copy-to-clipboard-description": "Piştî qedandina tomarkirinê pelê kopî klîpbordê bike.",
|
||||||
|
"output-folder": "Cilda peldanka ya derketinê",
|
||||||
|
"output-folder-description": "Cihê ku tomarên ekranê dê lê bên tomarkirin",
|
||||||
|
"show-cursor": "Nîşan bide mişk",
|
||||||
|
"show-cursor-description": "Qeydê nîşankerê mişkê di vîdeoyê de",
|
||||||
|
"title": "Giştî"
|
||||||
|
},
|
||||||
|
"title": "Mîhengên Qeydkerê Dîmenderê",
|
||||||
|
"video": {
|
||||||
|
"codec": "Kodêka vîdyoyî",
|
||||||
|
"codec-desc": "h264 kodêka herî berbelav e",
|
||||||
|
"color-range": "Rêza rengan",
|
||||||
|
"color-range-desc": "Bi sînorkirî ji bo lihevkirina baştir tê pêşniyarkirin",
|
||||||
|
"color-range-full": "Tije",
|
||||||
|
"color-range-limited": "Sînorkirî",
|
||||||
|
"frame-rate": "Rêjeya çarçoveyê",
|
||||||
|
"frame-rate-desc": "Rêjeya çarçoveya hedefê ji bo qeydên ekranê",
|
||||||
|
"quality": "Kalîteya vîdyoyê",
|
||||||
|
"quality-desc": "Encamên bi kalîte bilindtir dibin sedema mezinahiyên pelan ên mezintir",
|
||||||
|
"quality-high": "Bilind",
|
||||||
|
"quality-medium": "Navîn",
|
||||||
|
"quality-ultra": "Ultra",
|
||||||
|
"quality-very-high": "Zaf bilind",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Çavkanîya vîdyoyê",
|
||||||
|
"source-desc": "Portal tê pêşniyarkirin, eger tu artefaktan bibînî Screen biceribîne",
|
||||||
|
"sources-portal": "Portal",
|
||||||
|
"sources-screen": "Dîmende",
|
||||||
|
"title": "Mîhengên Vîdeoyê"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Hardware-versnelde schermopname met aanpasbare video- en audio-instellingen",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "Recorder is afgesloten met een fout.",
|
||||||
|
"failed-gpu": "gpu-screen-recorder is onverwachts afgesloten.",
|
||||||
|
"failed-start": "Opname starten mislukt.",
|
||||||
|
"no-portals": "Desktop portals werken niet.",
|
||||||
|
"no-portals-desc": "Start xdg-desktop-portal en een compositor portaal (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "gpu-screen-recorder niet geïnstalleerd.",
|
||||||
|
"not-installed-desc": "Installeer gpu-screen-recorder om schermopnamefuncties te gebruiken.",
|
||||||
|
"saved": "Opname opgeslagen.",
|
||||||
|
"start-recording": "Schermrecorder (opname starten)",
|
||||||
|
"started": "Opname gestart.",
|
||||||
|
"stop-recording": "Schermrecorder (opname stoppen)",
|
||||||
|
"stopping": "Opname stoppen…"
|
||||||
|
},
|
||||||
|
"name": "Schermrecorder",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "Systeemuitvoer + microfooningang",
|
||||||
|
"audio-sources-microphone-input": "Microfooningang",
|
||||||
|
"audio-sources-none": "Geen audio",
|
||||||
|
"audio-sources-system-output": "Systeemuitvoer",
|
||||||
|
"codec": "Audio-codec",
|
||||||
|
"codec-desc": "Opus wordt aanbevolen voor beste prestaties en kleinste audiogrootte",
|
||||||
|
"source": "Audiobron",
|
||||||
|
"source-desc": "Audiobron om tijdens opname vast te leggen",
|
||||||
|
"title": "Audio-instellingen"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Bestandsnaam patroon met datum/tijd codes (bijv. recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Bestandsnaam patroon"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Kopiëren naar klembord",
|
||||||
|
"copy-to-clipboard-description": "Kopieer het bestand naar het klembord nadat de opname is voltooid.",
|
||||||
|
"output-folder": "Uitvoermap",
|
||||||
|
"output-folder-description": "Map waar schermopnames worden opgeslagen",
|
||||||
|
"show-cursor": "Cursor tonen",
|
||||||
|
"show-cursor-description": "Muiscursor in de video opnemen",
|
||||||
|
"title": "Algemeen"
|
||||||
|
},
|
||||||
|
"title": "Schermrecorder Instellingen",
|
||||||
|
"video": {
|
||||||
|
"codec": "Video-codec",
|
||||||
|
"codec-desc": "h264 is de meest voorkomende codec",
|
||||||
|
"color-range": "Kleurbereik",
|
||||||
|
"color-range-desc": "Beperkt wordt aanbevolen voor betere compatibiliteit",
|
||||||
|
"color-range-full": "Volledig",
|
||||||
|
"color-range-limited": "Beperkt",
|
||||||
|
"frame-rate": "Framesnelheid",
|
||||||
|
"frame-rate-desc": "Doelframesnelheid voor schermopnames",
|
||||||
|
"quality": "Videokwaliteit",
|
||||||
|
"quality-desc": "Hogere kwaliteit resulteert in grotere bestanden",
|
||||||
|
"quality-high": "Hoog",
|
||||||
|
"quality-medium": "Medium",
|
||||||
|
"quality-ultra": "Ultra",
|
||||||
|
"quality-very-high": "Zeer hoog",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Videobron",
|
||||||
|
"source-desc": "Portal wordt aanbevolen, probeer Scherm als u artefacten krijgt",
|
||||||
|
"sources-portal": "Portaal",
|
||||||
|
"sources-screen": "Scherm",
|
||||||
|
"title": "Video-instellingen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Nagrywanie ekranu z akceleracją sprzętową z możliwością dostosowania ustawień wideo i audio",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "Rejestrator zakończył pracę z błędem.",
|
||||||
|
"failed-gpu": "Rejestrator ekranu GPU zakończył pracę nieoczekiwanie.",
|
||||||
|
"failed-start": "Nie udało się rozpocząć nagrywania.",
|
||||||
|
"no-portals": "Portale pulpitu nie działają.",
|
||||||
|
"no-portals-desc": "Uruchom xdg-desktop-portal i portal kompozytora (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "gpu-screen-recorder nie jest zainstalowany.",
|
||||||
|
"not-installed-desc": "Zainstaluj gpu-screen-recorder, aby korzystać z funkcji nagrywania ekranu.",
|
||||||
|
"saved": "Nagranie zapisane.",
|
||||||
|
"start-recording": "Rejestrator ekranu (rozpocznij nagrywanie)",
|
||||||
|
"started": "Rozpoczęto nagrywanie.",
|
||||||
|
"stop-recording": "Rejestrator ekranu (zatrzymaj nagrywanie)",
|
||||||
|
"stopping": "Zatrzymywanie nagrywania…"
|
||||||
|
},
|
||||||
|
"name": "Rejestrator ekranu",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "Wyjście systemowe + wejście mikrofonu",
|
||||||
|
"audio-sources-microphone-input": "Wejście mikrofonu",
|
||||||
|
"audio-sources-none": "Brak dźwięku",
|
||||||
|
"audio-sources-system-output": "Wyjście systemowe",
|
||||||
|
"codec": "Kodek audio",
|
||||||
|
"codec-desc": "Opus jest zalecany dla najlepszej wydajności i najmniejszego rozmiaru dźwięku",
|
||||||
|
"source": "Źródło dźwięku",
|
||||||
|
"source-desc": "Źródło dźwięku do przechwytywania podczas nagrywania",
|
||||||
|
"title": "Ustawienia audio"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Wzorzec nazwy pliku używający kodów daty/czasu (np. nagranie_rrrrMMdd_HHmmss)",
|
||||||
|
"label": "Wzorzec nazwy pliku"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Kopiuj do schowka",
|
||||||
|
"copy-to-clipboard-description": "Kopiuj plik do schowka po zakończeniu nagrywania.",
|
||||||
|
"output-folder": "Folder wyjściowy",
|
||||||
|
"output-folder-description": "Folder, w którym będą zapisywane nagrania ekranu",
|
||||||
|
"show-cursor": "Pokaż kursor",
|
||||||
|
"show-cursor-description": "Nagrywaj kursor myszy na filmie",
|
||||||
|
"title": "Ogólne"
|
||||||
|
},
|
||||||
|
"title": "Ustawienia rejestratora ekranu",
|
||||||
|
"video": {
|
||||||
|
"codec": "Kodek wideo",
|
||||||
|
"codec-desc": "h264 to najpopularniejszy kodek",
|
||||||
|
"color-range": "Zakres kolorów",
|
||||||
|
"color-range-desc": "Zalecane jest \"Ograniczone\" dla lepszej kompatybilności",
|
||||||
|
"color-range-full": "Pełny",
|
||||||
|
"color-range-limited": "Ograniczone",
|
||||||
|
"frame-rate": "Liczba klatek na sekundę",
|
||||||
|
"frame-rate-desc": "Docelowa liczba klatek na sekundę dla nagrań ekranu",
|
||||||
|
"quality": "Jakość wideo",
|
||||||
|
"quality-desc": "Wyższa jakość skutkuje większymi rozmiarami plików",
|
||||||
|
"quality-high": "Wysoki",
|
||||||
|
"quality-medium": "Średni",
|
||||||
|
"quality-ultra": "Bardzo",
|
||||||
|
"quality-very-high": "Bardzo wysoki",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Źródło wideo",
|
||||||
|
"source-desc": "Zalecany jest Portal, jeśli występują artefakty, spróbuj opcji Ekran",
|
||||||
|
"sources-portal": "Portal",
|
||||||
|
"sources-screen": "Ekran",
|
||||||
|
"title": "Ustawienia wideo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Gravação de tela acelerada por hardware com configurações personalizáveis de vídeo e áudio",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "O gravador foi encerrado com um erro.",
|
||||||
|
"failed-gpu": "gpu-screen-recorder foi encerrado inesperadamente.",
|
||||||
|
"failed-start": "Falha ao iniciar a gravação.",
|
||||||
|
"no-portals": "Portais de desktop não estão em execução.",
|
||||||
|
"no-portals-desc": "Inicie o xdg-desktop-portal e um portal compositor (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "gpu-screen-recorder não instalado.",
|
||||||
|
"not-installed-desc": "Por favor, instale o gpu-screen-recorder para usar os recursos de gravação de tela.",
|
||||||
|
"saved": "Gravação salva.",
|
||||||
|
"start-recording": "Gravador de tela (iniciar gravação)",
|
||||||
|
"started": "Gravação iniciada.",
|
||||||
|
"stop-recording": "Gravador de tela (parar gravação)",
|
||||||
|
"stopping": "Parando a gravação..."
|
||||||
|
},
|
||||||
|
"name": "Gravador de Tela",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "Saída do sistema + entrada do microfone",
|
||||||
|
"audio-sources-microphone-input": "Entrada de microfone",
|
||||||
|
"audio-sources-none": "Sem áudio",
|
||||||
|
"audio-sources-system-output": "Saída do sistema",
|
||||||
|
"codec": "Codec de áudio",
|
||||||
|
"codec-desc": "Opus é recomendado para melhor desempenho e menor tamanho de áudio",
|
||||||
|
"source": "Fonte de áudio",
|
||||||
|
"source-desc": "Fonte de áudio para capturar durante a gravação",
|
||||||
|
"title": "Configurações de Áudio"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Padrão de nome de arquivo usando códigos de data/hora (por exemplo, recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Padrão de nome de arquivo"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Copiar para área de transferência",
|
||||||
|
"copy-to-clipboard-description": "Copiar o arquivo para a área de transferência após a gravação terminar.",
|
||||||
|
"output-folder": "Pasta de saída",
|
||||||
|
"output-folder-description": "Pasta onde as gravações de tela serão salvas",
|
||||||
|
"show-cursor": "Mostrar cursor",
|
||||||
|
"show-cursor-description": "Gravar o cursor do mouse no vídeo",
|
||||||
|
"title": "Geral"
|
||||||
|
},
|
||||||
|
"title": "Configurações do Gravador de Tela",
|
||||||
|
"video": {
|
||||||
|
"codec": "Codec de vídeo",
|
||||||
|
"codec-desc": "h264 é o codec mais comum",
|
||||||
|
"color-range": "Faixa de cores",
|
||||||
|
"color-range-desc": "Limitado é recomendado para melhor compatibilidade",
|
||||||
|
"color-range-full": "Completo",
|
||||||
|
"color-range-limited": "Limitado",
|
||||||
|
"frame-rate": "Taxa de quadros",
|
||||||
|
"frame-rate-desc": "Taxa de quadros alvo para gravações de tela",
|
||||||
|
"quality": "Qualidade de vídeo",
|
||||||
|
"quality-desc": "Maior qualidade resulta em arquivos maiores",
|
||||||
|
"quality-high": "Alto(a)",
|
||||||
|
"quality-medium": "Médio",
|
||||||
|
"quality-ultra": "Ultra",
|
||||||
|
"quality-very-high": "Muito alto/altíssima/elevadíssimo(a)",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Fonte de vídeo",
|
||||||
|
"source-desc": "Portal é recomendado, se obtiver artefatos tente Tela",
|
||||||
|
"sources-portal": "Portal",
|
||||||
|
"sources-screen": "Tela",
|
||||||
|
"title": "Configurações de Vídeo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Аппаратно-ускоренная запись экрана с настраиваемыми параметрами видео и аудио",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "Рекордер завершил работу с ошибкой.",
|
||||||
|
"failed-gpu": "gpu-screen-recorder неожиданно завершил работу.",
|
||||||
|
"failed-start": "Не удалось начать запись.",
|
||||||
|
"no-portals": "Порталы рабочего стола не работают.",
|
||||||
|
"no-portals-desc": "Запустить xdg-desktop-portal и портал композитора (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "gpu-screen-recorder не установлен.",
|
||||||
|
"not-installed-desc": "Пожалуйста, установите gpu-screen-recorder, чтобы использовать функции записи экрана.",
|
||||||
|
"saved": "Запись сохранена.",
|
||||||
|
"start-recording": "Запись экрана (начать запись)",
|
||||||
|
"started": "Запись началась.",
|
||||||
|
"stop-recording": "Запись экрана (остановить запись)",
|
||||||
|
"stopping": "Остановка записи…"
|
||||||
|
},
|
||||||
|
"name": "Запись Экрана",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "Вывод системы + ввод с микрофона",
|
||||||
|
"audio-sources-microphone-input": "Микрофонный вход",
|
||||||
|
"audio-sources-none": "Нет звука",
|
||||||
|
"audio-sources-system-output": "Вывод системы",
|
||||||
|
"codec": "Аудиокодек",
|
||||||
|
"codec-desc": "Opus рекомендуется для лучшей производительности и наименьшего размера аудио",
|
||||||
|
"source": "Источник аудио",
|
||||||
|
"source-desc": "Источник аудио для захвата во время записи",
|
||||||
|
"title": "Настройки Аудио"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Шаблон имени файла с использованием кодов даты/времени (например, recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Шаблон имени файла"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Копировать в буфер обмена",
|
||||||
|
"copy-to-clipboard-description": "Скопировать файл в буфер обмена после завершения записи.",
|
||||||
|
"output-folder": "Папка вывода",
|
||||||
|
"output-folder-description": "Папка, в которую будут сохраняться записи экрана",
|
||||||
|
"show-cursor": "Показать курсор",
|
||||||
|
"show-cursor-description": "Записывать курсор мыши в видео",
|
||||||
|
"title": "Общие"
|
||||||
|
},
|
||||||
|
"title": "Настройки Записи Экрана",
|
||||||
|
"video": {
|
||||||
|
"codec": "Видеокодек",
|
||||||
|
"codec-desc": "h264 является наиболее распространенным кодеком",
|
||||||
|
"color-range": "Цветовой диапазон",
|
||||||
|
"color-range-desc": "Ограниченный рекомендуется для лучшей совместимости",
|
||||||
|
"color-range-full": "Полный",
|
||||||
|
"color-range-limited": "Ограниченный",
|
||||||
|
"frame-rate": "Частота кадров",
|
||||||
|
"frame-rate-desc": "Целевая частота кадров для записи экрана",
|
||||||
|
"quality": "Качество видео",
|
||||||
|
"quality-desc": "Более высокое качество приводит к большим размерам файлов",
|
||||||
|
"quality-high": "Высокий",
|
||||||
|
"quality-medium": "Средний",
|
||||||
|
"quality-ultra": "Ультра",
|
||||||
|
"quality-very-high": "Очень высокий",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Источник видео",
|
||||||
|
"source-desc": "Рекомендуется Portal, если появляются артефакты попробуйте Экран",
|
||||||
|
"sources-portal": "Портал",
|
||||||
|
"sources-screen": "Экран",
|
||||||
|
"title": "Настройки Видео"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Özelleştirilebilir video ve ses ayarlarıyla donanım hızlandırmalı ekran kaydı",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "Kaydedici bir hatayla çıktı.",
|
||||||
|
"failed-gpu": "gpu-screen-recorder beklenmedik şekilde çıktı.",
|
||||||
|
"failed-start": "Kayda başlama başarısız oldu.",
|
||||||
|
"no-portals": "Masaüstü portalları çalışmıyor.",
|
||||||
|
"no-portals-desc": "xdg-desktop-portal'ı ve bir compositor portalı başlat (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "gpu-screen-recorder kurulu değil.",
|
||||||
|
"not-installed-desc": "Ekran kaydı özelliklerini kullanmak için lütfen gpu-screen-recorder'ı kurun.",
|
||||||
|
"saved": "Kayıt kaydedildi.",
|
||||||
|
"start-recording": "Ekran kaydedici (kayda başla)",
|
||||||
|
"started": "Kayıt başladı.",
|
||||||
|
"stop-recording": "Ekran kaydedici (kaydı durdur)",
|
||||||
|
"stopping": "Kaydı durdurma…"
|
||||||
|
},
|
||||||
|
"name": "Ekran Kaydedici",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"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ı",
|
||||||
|
"codec": "Ses codec",
|
||||||
|
"codec-desc": "En iyi performans ve en küçük ses boyutu için Opus önerilir",
|
||||||
|
"source": "Ses kaynağı",
|
||||||
|
"source-desc": "Kayıt sırasında yakalanacak ses kaynağı",
|
||||||
|
"title": "Ses Ayarları"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Tarih/saat kodları kullanan dosya adı deseni (ör. kayit_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Dosya adı deseni"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Panoya kopyala",
|
||||||
|
"copy-to-clipboard-description": "Kayıt bittikten sonra dosyayı panoya kopyala.",
|
||||||
|
"output-folder": "Çıktı klasörü",
|
||||||
|
"output-folder-description": "Ekran kayıtlarının kaydedileceği klasör",
|
||||||
|
"show-cursor": "İmleci göster",
|
||||||
|
"show-cursor-description": "Videoda fare imlecini kaydet",
|
||||||
|
"title": "Genel"
|
||||||
|
},
|
||||||
|
"title": "Ekran Kaydedici Ayarları",
|
||||||
|
"video": {
|
||||||
|
"codec": "Video codec",
|
||||||
|
"codec-desc": "h264 en yaygın codec'tir",
|
||||||
|
"color-range": "Renk aralığı",
|
||||||
|
"color-range-desc": "Daha iyi uyumluluk için Sınırlı önerilir",
|
||||||
|
"color-range-full": "Tam",
|
||||||
|
"color-range-limited": "Sınırlı",
|
||||||
|
"frame-rate": "Kare hızı",
|
||||||
|
"frame-rate-desc": "Ekran kayıtları için hedef kare hızı",
|
||||||
|
"quality": "Video kalitesi",
|
||||||
|
"quality-desc": "Daha yüksek kalite daha büyük dosya boyutlarına yol açar",
|
||||||
|
"quality-high": "Yüksek",
|
||||||
|
"quality-medium": "Orta",
|
||||||
|
"quality-ultra": "Ultra",
|
||||||
|
"quality-very-high": "Çok yüksek",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Video kaynağı",
|
||||||
|
"source-desc": "Portal önerilir, artefaktlar alırsanız Ekran'ı deneyin",
|
||||||
|
"sources-portal": "Portal",
|
||||||
|
"sources-screen": "Ekran",
|
||||||
|
"title": "Video Ayarları"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"description": "Апаратно-прискорений запис екрану з налаштовуваними параметрами відео та аудіо",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "Рекордер завершив роботу з помилкою.",
|
||||||
|
"failed-gpu": "gpu-screen-recorder несподівано завершив роботу.",
|
||||||
|
"failed-start": "Не вдалося почати запис.",
|
||||||
|
"no-portals": "Настільні портали не працюють.",
|
||||||
|
"no-portals-desc": "Запустити xdg-desktop-portal та портал композитора (wlr/hyprland/gnome/kde).",
|
||||||
|
"not-installed": "gpu-screen-recorder не встановлено.",
|
||||||
|
"not-installed-desc": "Будь ласка, встановіть gpu-screen-recorder, щоб використовувати функції запису екрана.",
|
||||||
|
"saved": "Запис збережено.",
|
||||||
|
"start-recording": "Запис екрана (почати запис)",
|
||||||
|
"started": "Запис розпочато.",
|
||||||
|
"stop-recording": "Запис екрана (зупинити запис)",
|
||||||
|
"stopping": "Зупинка запису…"
|
||||||
|
},
|
||||||
|
"name": "Записувач Екрану",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "Вивід системи + вхід мікрофона",
|
||||||
|
"audio-sources-microphone-input": "Мікрофонний вхід",
|
||||||
|
"audio-sources-none": "Немає аудіо",
|
||||||
|
"audio-sources-system-output": "Вивід системи",
|
||||||
|
"codec": "Аудіокодек",
|
||||||
|
"codec-desc": "Opus рекомендується для найкращої продуктивності та найменшого розміру аудіо",
|
||||||
|
"source": "Джерело аудіо",
|
||||||
|
"source-desc": "Джерело аудіо для захоплення під час запису",
|
||||||
|
"title": "Налаштування Аудіо"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "Шаблон імені файлу з використанням кодів дати/часу (наприклад, recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "Шаблон імені файлу"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "Копіювати до буфера обміну",
|
||||||
|
"copy-to-clipboard-description": "Копіювати файл у буфер обміну після завершення запису.",
|
||||||
|
"output-folder": "Папка виводу",
|
||||||
|
"output-folder-description": "Папка, де зберігатимуться записи екрану",
|
||||||
|
"show-cursor": "Показати курсор",
|
||||||
|
"show-cursor-description": "Записувати курсор миші у відео",
|
||||||
|
"title": "Загальні"
|
||||||
|
},
|
||||||
|
"title": "Налаштування Записувача Екрану",
|
||||||
|
"video": {
|
||||||
|
"codec": "Відеокодек",
|
||||||
|
"codec-desc": "h264 є найпоширенішим кодеком",
|
||||||
|
"color-range": "Кольоровий діапазон",
|
||||||
|
"color-range-desc": "Обмежений рекомендується для кращої сумісності",
|
||||||
|
"color-range-full": "Повний",
|
||||||
|
"color-range-limited": "Обмежений",
|
||||||
|
"frame-rate": "Частота кадрів",
|
||||||
|
"frame-rate-desc": "Цільова частота кадрів для запису екрану",
|
||||||
|
"quality": "Якість відео",
|
||||||
|
"quality-desc": "Вища якість призводить до більших розмірів файлів",
|
||||||
|
"quality-high": "Високий",
|
||||||
|
"quality-medium": "Середній",
|
||||||
|
"quality-ultra": "Ультра",
|
||||||
|
"quality-very-high": "Дуже високий",
|
||||||
|
"resolution": "Resolution",
|
||||||
|
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||||
|
"resolution-original": "Default",
|
||||||
|
"source": "Джерело відео",
|
||||||
|
"source-desc": "Рекомендується Portal, якщо з'являються артефакти спробуйте Екран",
|
||||||
|
"sources-portal": "Портал",
|
||||||
|
"sources-screen": "Екран",
|
||||||
|
"title": "Налаштування Відео"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
"description": "具有可自定义视频和音频设置的硬件加速屏幕录制",
|
||||||
|
"messages": {
|
||||||
|
"failed-general": "录制器出错退出。",
|
||||||
|
"failed-gpu": "gpu-screen-recorder 意外退出。",
|
||||||
|
"failed-start": "无法开始录制。",
|
||||||
|
"no-portals": "桌面门户未运行。",
|
||||||
|
"no-portals-desc": "启动 xdg-desktop-portal 和一个合成器门户 (wlr/hyprland/gnome/kde)。",
|
||||||
|
"not-installed": "gpu-screen-recorder 未安装。",
|
||||||
|
"not-installed-desc": "请安装 gpu-screen-recorder 以使用屏幕录制功能。",
|
||||||
|
"saved": "已保存录像。",
|
||||||
|
"start-recording": "屏幕录像(开始录制)",
|
||||||
|
"started": "已开始录制。",
|
||||||
|
"stop-recording": "屏幕录像(停止录制)",
|
||||||
|
"stopping": "停止录制…",
|
||||||
|
"open-file": "打开文件"
|
||||||
|
},
|
||||||
|
"name": "屏幕录制器",
|
||||||
|
"settings": {
|
||||||
|
"audio": {
|
||||||
|
"audio-sources-both": "系统输出 + 麦克风输入",
|
||||||
|
"audio-sources-microphone-input": "麦克风输入",
|
||||||
|
"audio-sources-none": "无音频",
|
||||||
|
"audio-sources-system-output": "系统输出",
|
||||||
|
"codec": "音频编解码器",
|
||||||
|
"codec-desc": "建议使用 Opus 以获得最佳性能和最小音频大小",
|
||||||
|
"source": "音频源",
|
||||||
|
"source-desc": "录制期间要捕获的音频源",
|
||||||
|
"title": "音频设置"
|
||||||
|
},
|
||||||
|
"filename-pattern": {
|
||||||
|
"description": "使用日期/时间代码的文件名模式 (例如,recording_yyyyMMdd_HHmmss)",
|
||||||
|
"label": "文件名模式"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"copy-to-clipboard": "复制到剪贴板",
|
||||||
|
"copy-to-clipboard-description": "录制结束后将文件复制到剪贴板。",
|
||||||
|
"output-folder": "输出文件夹",
|
||||||
|
"output-folder-description": "屏幕录制将保存到的文件夹",
|
||||||
|
"show-cursor": "显示光标",
|
||||||
|
"show-cursor-description": "在视频中录制鼠标光标",
|
||||||
|
"title": "常规"
|
||||||
|
},
|
||||||
|
"title": "屏幕录制器设置",
|
||||||
|
"video": {
|
||||||
|
"codec": "视频编解码器",
|
||||||
|
"codec-desc": "h264 是最常见的编解码器",
|
||||||
|
"color-range": "色彩范围",
|
||||||
|
"color-range-desc": "建议使用“有限”以获得更好的兼容性",
|
||||||
|
"color-range-full": "全范围",
|
||||||
|
"color-range-limited": "有限",
|
||||||
|
"frame-rate": "帧率",
|
||||||
|
"frame-rate-desc": "屏幕录制的目标帧率",
|
||||||
|
"quality": "视频质量",
|
||||||
|
"quality-desc": "更高的质量会导致更大的文件大小",
|
||||||
|
"quality-high": "高",
|
||||||
|
"quality-medium": "中等",
|
||||||
|
"quality-ultra": "极高",
|
||||||
|
"quality-very-high": "非常高",
|
||||||
|
"resolution": "分辨率",
|
||||||
|
"resolution-desc": "限制输出分辨率。默认使用原始屏幕分辨率",
|
||||||
|
"resolution-original": "默认",
|
||||||
|
"source": "视频源",
|
||||||
|
"source-desc": "推荐使用桌面门户 (Portal),如果出现画面异常请尝试屏幕",
|
||||||
|
"sources-portal": "桌面门户",
|
||||||
|
"sources-screen": "屏幕",
|
||||||
|
"title": "视频设置"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"id": "screen-recorder",
|
||||||
|
"name": "Screen Recorder",
|
||||||
|
"version": "1.0.8",
|
||||||
|
"minNoctaliaVersion": "3.6.0",
|
||||||
|
"author": "Noctalia Team",
|
||||||
|
"license": "MIT",
|
||||||
|
"repository": "https://github.com/noctalia-dev/noctalia-plugins",
|
||||||
|
"description": "Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings",
|
||||||
|
"tags": [
|
||||||
|
"Bar",
|
||||||
|
"Utility"
|
||||||
|
],
|
||||||
|
"entryPoints": {
|
||||||
|
"main": "Main.qml",
|
||||||
|
"barWidget": "BarWidget.qml",
|
||||||
|
"controlCenterWidget": "ControlCenterWidget.qml",
|
||||||
|
"settings": "Settings.qml"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"plugins": []
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
"defaultSettings": {
|
||||||
|
"directory": "",
|
||||||
|
"filenamePattern": "recording_yyyyMMdd_HHmmss",
|
||||||
|
"frameRate": "60",
|
||||||
|
"audioCodec": "opus",
|
||||||
|
"videoCodec": "h264",
|
||||||
|
"quality": "very_high",
|
||||||
|
"colorRange": "limited",
|
||||||
|
"showCursor": true,
|
||||||
|
"copyToClipboard": false,
|
||||||
|
"audioSource": "default_output",
|
||||||
|
"videoSource": "portal",
|
||||||
|
"resolution": "original"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
home/aiden/.config/noctalia/plugins/screen-recorder/preview.png
Normal file
BIN
home/aiden/.config/noctalia/plugins/screen-recorder/preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 128 KiB |
@@ -60,7 +60,7 @@ Rectangle {
|
|||||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
||||||
text: root.pluginApi?.mainInstance?.updateCount.toString()
|
text: root.pluginApi?.mainInstance?.updateCount.toString()
|
||||||
color: root.hovered ? Color.mOnHover : Color.mOnSurface
|
color: root.hovered ? Color.mOnHover : Color.mOnSurface
|
||||||
pointSize: Style.fontSizeS
|
pointSize: Style.barFontSize
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
{
|
{
|
||||||
"id": "update-count",
|
"id": "update-count",
|
||||||
"name": "Update Count",
|
"name": "Update Count",
|
||||||
"version": "1.0.6",
|
"version": "1.0.9",
|
||||||
"minNoctaliaVersion": "3.6.0",
|
"minNoctaliaVersion": "3.6.0",
|
||||||
"author": "BukoMoon",
|
"author": "BukoMoon",
|
||||||
"license": "GPLv3",
|
"license": "GPLv3",
|
||||||
"repository": "https://github.com/noctalia-dev/noctalia-plugins",
|
"repository": "https://github.com/noctalia-dev/noctalia-plugins",
|
||||||
"description": "Checks for system updates and shows the update count. Click to run update command in a terminal.",
|
"description": "Checks for system updates and shows the update count. Click to run update command in a terminal.",
|
||||||
|
"tags": ["Bar", "System"],
|
||||||
"entryPoints": {
|
"entryPoints": {
|
||||||
"main": "Main.qml",
|
"main": "Main.qml",
|
||||||
"barWidget": "BarWidget.qml",
|
"barWidget": "BarWidget.qml",
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
{
|
{
|
||||||
"name": "yay",
|
"name": "yay",
|
||||||
"cmdCheck": "command -v yay >/dev/null 2>&1",
|
"cmdCheck": "command -v yay >/dev/null 2>&1",
|
||||||
"cmdGetNumUpdates": "yay -Sy >/dev/null 2>&1; yay -Quq 2>/dev/null | wc -l",
|
"cmdGetNumUpdates": "yay -Qu 2>/dev/null | wc -l",
|
||||||
"cmdDoSystemUpdate": "yay -Syu"
|
"cmdDoSystemUpdate": "yay -Syu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "paru",
|
"name": "paru",
|
||||||
"cmdCheck": "command -v paru >/dev/null 2>&1",
|
"cmdCheck": "command -v paru >/dev/null 2>&1",
|
||||||
"cmdGetNumUpdates": "paru -Sy >/dev/null 2>&1; paru -Quq 2>/dev/null | wc -l",
|
"cmdGetNumUpdates": "paru -Qu 2>/dev/null | wc -l",
|
||||||
"cmdDoSystemUpdate": "paru -Syu"
|
"cmdDoSystemUpdate": "paru -Syu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,14 +1,20 @@
|
|||||||
{
|
{
|
||||||
"appLauncher": {
|
"appLauncher": {
|
||||||
|
"autoPasteClipboard": false,
|
||||||
|
"clipboardWrapText": true,
|
||||||
"customLaunchPrefix": "",
|
"customLaunchPrefix": "",
|
||||||
"customLaunchPrefixEnabled": false,
|
"customLaunchPrefixEnabled": false,
|
||||||
"enableClipPreview": true,
|
"enableClipPreview": true,
|
||||||
"enableClipboardHistory": true,
|
"enableClipboardHistory": true,
|
||||||
|
"enableSettingsSearch": true,
|
||||||
"iconMode": "tabler",
|
"iconMode": "tabler",
|
||||||
"pinnedExecs": [
|
"ignoreMouseInput": false,
|
||||||
|
"pinnedApps": [
|
||||||
],
|
],
|
||||||
"position": "center",
|
"position": "center",
|
||||||
|
"screenshotAnnotationTool": "",
|
||||||
"showCategories": true,
|
"showCategories": true,
|
||||||
|
"showIconBackground": true,
|
||||||
"sortByMostUsed": true,
|
"sortByMostUsed": true,
|
||||||
"terminalCommand": "alacritty -e",
|
"terminalCommand": "alacritty -e",
|
||||||
"useApp2Unit": false,
|
"useApp2Unit": false,
|
||||||
@@ -16,11 +22,11 @@
|
|||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"cavaFrameRate": 30,
|
"cavaFrameRate": 30,
|
||||||
"externalMixer": "pwvucontrol || pavucontrol",
|
|
||||||
"mprisBlacklist": [
|
"mprisBlacklist": [
|
||||||
],
|
],
|
||||||
"preferredPlayer": "",
|
"preferredPlayer": "",
|
||||||
"visualizerType": "linear",
|
"visualizerType": "linear",
|
||||||
|
"volumeFeedback": false,
|
||||||
"volumeOverdrive": true,
|
"volumeOverdrive": true,
|
||||||
"volumeStep": 5
|
"volumeStep": 5
|
||||||
},
|
},
|
||||||
@@ -30,22 +36,30 @@
|
|||||||
"density": "comfortable",
|
"density": "comfortable",
|
||||||
"exclusive": true,
|
"exclusive": true,
|
||||||
"floating": false,
|
"floating": false,
|
||||||
"marginHorizontal": 0.25,
|
"hideOnOverview": false,
|
||||||
"marginVertical": 0.25,
|
"marginHorizontal": 5,
|
||||||
|
"marginVertical": 5,
|
||||||
"monitors": [
|
"monitors": [
|
||||||
],
|
],
|
||||||
"outerCorners": false,
|
"outerCorners": false,
|
||||||
"position": "top",
|
"position": "top",
|
||||||
|
"screenOverrides": [
|
||||||
|
],
|
||||||
"showCapsule": true,
|
"showCapsule": true,
|
||||||
"showOutline": false,
|
"showOutline": false,
|
||||||
"useSeparateOpacity": false,
|
"useSeparateOpacity": false,
|
||||||
"widgets": {
|
"widgets": {
|
||||||
"center": [
|
"center": [
|
||||||
{
|
{
|
||||||
|
"compactMode": false,
|
||||||
|
"compactShowAlbumArt": true,
|
||||||
|
"compactShowVisualizer": false,
|
||||||
"hideMode": "hidden",
|
"hideMode": "hidden",
|
||||||
"hideWhenIdle": false,
|
"hideWhenIdle": false,
|
||||||
"id": "MediaMini",
|
"id": "MediaMini",
|
||||||
"maxWidth": 250,
|
"maxWidth": 250,
|
||||||
|
"panelShowAlbumArt": true,
|
||||||
|
"panelShowVisualizer": true,
|
||||||
"scrollingMode": "hover",
|
"scrollingMode": "hover",
|
||||||
"showAlbumArt": true,
|
"showAlbumArt": true,
|
||||||
"showArtistFirst": true,
|
"showArtistFirst": true,
|
||||||
@@ -57,9 +71,12 @@
|
|||||||
],
|
],
|
||||||
"left": [
|
"left": [
|
||||||
{
|
{
|
||||||
|
"colorizeSystemIcon": "none",
|
||||||
|
"enableColorization": false,
|
||||||
"hideMode": "alwaysExpanded",
|
"hideMode": "alwaysExpanded",
|
||||||
"icon": "rocket",
|
"icon": "rocket",
|
||||||
"id": "CustomButton",
|
"id": "CustomButton",
|
||||||
|
"ipcIdentifier": "",
|
||||||
"leftClickExec": "qs -c noctalia-shell ipc call launcher toggle",
|
"leftClickExec": "qs -c noctalia-shell ipc call launcher toggle",
|
||||||
"leftClickUpdateText": false,
|
"leftClickUpdateText": false,
|
||||||
"maxTextLength": {
|
"maxTextLength": {
|
||||||
@@ -91,6 +108,7 @@
|
|||||||
"followFocusedScreen": false,
|
"followFocusedScreen": false,
|
||||||
"groupedBorderOpacity": 1,
|
"groupedBorderOpacity": 1,
|
||||||
"hideUnoccupied": true,
|
"hideUnoccupied": true,
|
||||||
|
"iconScale": 0.8,
|
||||||
"id": "Workspace",
|
"id": "Workspace",
|
||||||
"labelMode": "name",
|
"labelMode": "name",
|
||||||
"showApplications": false,
|
"showApplications": false,
|
||||||
@@ -123,9 +141,11 @@
|
|||||||
"showCpuUsage": true,
|
"showCpuUsage": true,
|
||||||
"showDiskUsage": false,
|
"showDiskUsage": false,
|
||||||
"showGpuTemp": false,
|
"showGpuTemp": false,
|
||||||
|
"showLoadAverage": false,
|
||||||
"showMemoryAsPercent": false,
|
"showMemoryAsPercent": false,
|
||||||
"showMemoryUsage": true,
|
"showMemoryUsage": true,
|
||||||
"showNetworkStats": true,
|
"showNetworkStats": true,
|
||||||
|
"showSwapUsage": false,
|
||||||
"useMonospaceFont": true,
|
"useMonospaceFont": true,
|
||||||
"usePrimaryColor": true
|
"usePrimaryColor": true
|
||||||
},
|
},
|
||||||
@@ -145,9 +165,38 @@
|
|||||||
],
|
],
|
||||||
"right": [
|
"right": [
|
||||||
{
|
{
|
||||||
|
"defaultSettings": {
|
||||||
|
"audioCodec": "opus",
|
||||||
|
"audioSource": "default_output",
|
||||||
|
"colorRange": "limited",
|
||||||
|
"copyToClipboard": false,
|
||||||
|
"directory": "",
|
||||||
|
"filenamePattern": "recording_yyyyMMdd_HHmmss",
|
||||||
|
"frameRate": "60",
|
||||||
|
"quality": "very_high",
|
||||||
|
"showCursor": true,
|
||||||
|
"videoCodec": "h264",
|
||||||
|
"videoSource": "portal"
|
||||||
|
},
|
||||||
|
"id": "plugin:screen-recorder"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"blacklist": [
|
||||||
|
],
|
||||||
|
"colorizeIcons": false,
|
||||||
|
"drawerEnabled": true,
|
||||||
|
"hidePassive": false,
|
||||||
|
"id": "Tray",
|
||||||
|
"pinned": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"colorizeSystemIcon": "none",
|
||||||
|
"enableColorization": false,
|
||||||
"hideMode": "alwaysExpanded",
|
"hideMode": "alwaysExpanded",
|
||||||
"icon": "eye",
|
"icon": "eye",
|
||||||
"id": "CustomButton",
|
"id": "CustomButton",
|
||||||
|
"ipcIdentifier": "",
|
||||||
"leftClickExec": "/home/aiden/toggle-transparency.sh",
|
"leftClickExec": "/home/aiden/toggle-transparency.sh",
|
||||||
"leftClickUpdateText": true,
|
"leftClickUpdateText": true,
|
||||||
"maxTextLength": {
|
"maxTextLength": {
|
||||||
@@ -173,35 +222,9 @@
|
|||||||
"wheelUpdateText": false
|
"wheelUpdateText": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "ScreenRecorder"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"blacklist": [
|
|
||||||
],
|
|
||||||
"colorizeIcons": false,
|
|
||||||
"drawerEnabled": true,
|
|
||||||
"hidePassive": false,
|
|
||||||
"id": "Tray",
|
|
||||||
"pinned": [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"hideWhenZero": true,
|
|
||||||
"id": "NotificationHistory",
|
|
||||||
"showUnreadBadge": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"deviceNativePath": "",
|
|
||||||
"displayMode": "alwaysShow",
|
"displayMode": "alwaysShow",
|
||||||
"hideIfNotDetected": true,
|
"id": "Volume",
|
||||||
"id": "Battery",
|
"middleClickCommand": "pwvucontrol || pavucontrol"
|
||||||
"showNoctaliaPerformance": false,
|
|
||||||
"showPowerProfiles": true,
|
|
||||||
"warningThreshold": 30
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"displayMode": "onhover",
|
|
||||||
"id": "Volume"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"displayMode": "onhover",
|
"displayMode": "onhover",
|
||||||
@@ -214,6 +237,26 @@
|
|||||||
},
|
},
|
||||||
"id": "plugin:privacy-indicator"
|
"id": "plugin:privacy-indicator"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"deviceNativePath": "",
|
||||||
|
"displayMode": "alwaysShow",
|
||||||
|
"hideIfIdle": false,
|
||||||
|
"hideIfNotDetected": true,
|
||||||
|
"id": "Battery",
|
||||||
|
"showNoctaliaPerformance": false,
|
||||||
|
"showPowerProfiles": true,
|
||||||
|
"warningThreshold": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"displayMode": "alwaysShow",
|
||||||
|
"id": "VPN"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hideWhenZero": true,
|
||||||
|
"hideWhenZeroUnread": false,
|
||||||
|
"id": "NotificationHistory",
|
||||||
|
"showUnreadBadge": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"colorizeDistroLogo": false,
|
"colorizeDistroLogo": false,
|
||||||
"colorizeSystemIcon": "none",
|
"colorizeSystemIcon": "none",
|
||||||
@@ -241,10 +284,6 @@
|
|||||||
"enabled": true,
|
"enabled": true,
|
||||||
"id": "calendar-month-card"
|
"id": "calendar-month-card"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"enabled": true,
|
|
||||||
"id": "timer-card"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"id": "weather-card"
|
"id": "weather-card"
|
||||||
@@ -253,10 +292,10 @@
|
|||||||
},
|
},
|
||||||
"colorSchemes": {
|
"colorSchemes": {
|
||||||
"darkMode": true,
|
"darkMode": true,
|
||||||
"generateTemplatesForPredefined": true,
|
"generationMethod": "tonal-spot",
|
||||||
"manualSunrise": "06:30",
|
"manualSunrise": "06:30",
|
||||||
"manualSunset": "18:30",
|
"manualSunset": "18:30",
|
||||||
"matugenSchemeType": "scheme-fruit-salad",
|
"monitorForColors": "",
|
||||||
"predefinedScheme": "Catppuccin",
|
"predefinedScheme": "Catppuccin",
|
||||||
"schedulingMode": "off",
|
"schedulingMode": "off",
|
||||||
"useWallpaperColors": false
|
"useWallpaperColors": false
|
||||||
@@ -288,6 +327,7 @@
|
|||||||
"id": "brightness-card"
|
"id": "brightness-card"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"diskPath": "/",
|
||||||
"position": "close_to_bar_button",
|
"position": "close_to_bar_button",
|
||||||
"shortcuts": {
|
"shortcuts": {
|
||||||
"left": [
|
"left": [
|
||||||
@@ -296,18 +336,9 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "Bluetooth"
|
"id": "Bluetooth"
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "ScreenRecorder"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "WallpaperSelector"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"right": [
|
"right": [
|
||||||
{
|
|
||||||
"id": "Notifications"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": "PowerProfile"
|
"id": "PowerProfile"
|
||||||
},
|
},
|
||||||
@@ -341,16 +372,17 @@
|
|||||||
"backgroundOpacity": 1,
|
"backgroundOpacity": 1,
|
||||||
"colorizeIcons": true,
|
"colorizeIcons": true,
|
||||||
"deadOpacity": 0.6,
|
"deadOpacity": 0.6,
|
||||||
"displayMode": "auto_hide",
|
"displayMode": "always_visible",
|
||||||
"enabled": false,
|
"enabled": false,
|
||||||
"floatingRatio": 1,
|
"floatingRatio": 1,
|
||||||
"inactiveIndicators": false,
|
"inactiveIndicators": false,
|
||||||
"monitors": [
|
"monitors": [
|
||||||
],
|
],
|
||||||
"onlySameOutput": true,
|
"onlySameOutput": false,
|
||||||
"pinnedApps": [
|
"pinnedApps": [
|
||||||
],
|
],
|
||||||
"pinnedStatic": false,
|
"pinnedStatic": false,
|
||||||
|
"position": "bottom",
|
||||||
"size": 1
|
"size": 1
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
@@ -361,20 +393,24 @@
|
|||||||
"boxRadiusRatio": 1,
|
"boxRadiusRatio": 1,
|
||||||
"compactLockScreen": false,
|
"compactLockScreen": false,
|
||||||
"dimmerOpacity": 0,
|
"dimmerOpacity": 0,
|
||||||
|
"enableLockScreenCountdown": true,
|
||||||
"enableShadows": true,
|
"enableShadows": true,
|
||||||
"forceBlackScreenCorners": false,
|
"forceBlackScreenCorners": false,
|
||||||
"iRadiusRatio": 1,
|
"iRadiusRatio": 1,
|
||||||
"language": "",
|
"language": "",
|
||||||
"lockOnSuspend": true,
|
"lockOnSuspend": true,
|
||||||
|
"lockScreenCountdownDuration": 10000,
|
||||||
"radiusRatio": 1,
|
"radiusRatio": 1,
|
||||||
"scaleRatio": 1,
|
"scaleRatio": 1,
|
||||||
"screenRadiusRatio": 1,
|
"screenRadiusRatio": 1,
|
||||||
"shadowDirection": "bottom_right",
|
"shadowDirection": "bottom_right",
|
||||||
"shadowOffsetX": 2,
|
"shadowOffsetX": 2,
|
||||||
"shadowOffsetY": 3,
|
"shadowOffsetY": 3,
|
||||||
"showHibernateOnLockScreen": false,
|
"showChangelogOnStartup": true,
|
||||||
|
"showHibernateOnLockScreen": true,
|
||||||
"showScreenCorners": false,
|
"showScreenCorners": false,
|
||||||
"showSessionButtonsOnLockScreen": true
|
"showSessionButtonsOnLockScreen": true,
|
||||||
|
"telemetryEnabled": true
|
||||||
},
|
},
|
||||||
"hooks": {
|
"hooks": {
|
||||||
"darkModeChange": "",
|
"darkModeChange": "",
|
||||||
@@ -383,11 +419,15 @@
|
|||||||
"performanceModeEnabled": "",
|
"performanceModeEnabled": "",
|
||||||
"screenLock": "",
|
"screenLock": "",
|
||||||
"screenUnlock": "",
|
"screenUnlock": "",
|
||||||
|
"session": "",
|
||||||
|
"startup": "",
|
||||||
"wallpaperChange": ""
|
"wallpaperChange": ""
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"analogClockInCalendar": false,
|
"analogClockInCalendar": false,
|
||||||
"firstDayOfWeek": -1,
|
"firstDayOfWeek": -1,
|
||||||
|
"hideWeatherCityName": false,
|
||||||
|
"hideWeatherTimezone": false,
|
||||||
"name": "Winnipeg, MB",
|
"name": "Winnipeg, MB",
|
||||||
"showCalendarEvents": true,
|
"showCalendarEvents": true,
|
||||||
"showCalendarWeather": true,
|
"showCalendarWeather": true,
|
||||||
@@ -398,6 +438,11 @@
|
|||||||
"weatherShowEffects": true
|
"weatherShowEffects": true
|
||||||
},
|
},
|
||||||
"network": {
|
"network": {
|
||||||
|
"bluetoothDetailsViewMode": "grid",
|
||||||
|
"bluetoothHideUnnamedDevices": false,
|
||||||
|
"bluetoothRssiPollIntervalMs": 10000,
|
||||||
|
"bluetoothRssiPollingEnabled": false,
|
||||||
|
"wifiDetailsViewMode": "grid",
|
||||||
"wifiEnabled": true
|
"wifiEnabled": true
|
||||||
},
|
},
|
||||||
"nightLight": {
|
"nightLight": {
|
||||||
@@ -413,6 +458,7 @@
|
|||||||
"backgroundOpacity": 1,
|
"backgroundOpacity": 1,
|
||||||
"criticalUrgencyDuration": 15,
|
"criticalUrgencyDuration": 15,
|
||||||
"enableKeyboardLayoutToast": true,
|
"enableKeyboardLayoutToast": true,
|
||||||
|
"enableMediaToast": false,
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"location": "top_right",
|
"location": "top_right",
|
||||||
"lowUrgencyDuration": 3,
|
"lowUrgencyDuration": 3,
|
||||||
@@ -451,21 +497,10 @@
|
|||||||
],
|
],
|
||||||
"overlayLayer": true
|
"overlayLayer": true
|
||||||
},
|
},
|
||||||
"screenRecorder": {
|
|
||||||
"audioCodec": "opus",
|
|
||||||
"audioSource": "default_output",
|
|
||||||
"colorRange": "limited",
|
|
||||||
"copyToClipboard": false,
|
|
||||||
"directory": "/home/aiden/Videos",
|
|
||||||
"frameRate": 60,
|
|
||||||
"quality": "very_high",
|
|
||||||
"showCursor": true,
|
|
||||||
"videoCodec": "h264",
|
|
||||||
"videoSource": "portal"
|
|
||||||
},
|
|
||||||
"sessionMenu": {
|
"sessionMenu": {
|
||||||
"countdownDuration": 10000,
|
"countdownDuration": 10000,
|
||||||
"enableCountdown": true,
|
"enableCountdown": true,
|
||||||
|
"largeButtonsLayout": "grid",
|
||||||
"largeButtonsStyle": false,
|
"largeButtonsStyle": false,
|
||||||
"position": "center",
|
"position": "center",
|
||||||
"powerOptions": [
|
"powerOptions": [
|
||||||
@@ -485,7 +520,7 @@
|
|||||||
"action": "hibernate",
|
"action": "hibernate",
|
||||||
"command": "",
|
"command": "",
|
||||||
"countdownEnabled": true,
|
"countdownEnabled": true,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"action": "reboot",
|
"action": "reboot",
|
||||||
@@ -509,24 +544,27 @@
|
|||||||
"showHeader": true,
|
"showHeader": true,
|
||||||
"showNumberLabels": true
|
"showNumberLabels": true
|
||||||
},
|
},
|
||||||
"settingsVersion": 35,
|
"settingsVersion": 44,
|
||||||
"systemMonitor": {
|
"systemMonitor": {
|
||||||
"cpuCriticalThreshold": 90,
|
"cpuCriticalThreshold": 90,
|
||||||
"cpuPollingInterval": 3000,
|
"cpuPollingInterval": 3000,
|
||||||
"cpuWarningThreshold": 80,
|
"cpuWarningThreshold": 80,
|
||||||
"criticalColor": "",
|
"criticalColor": "",
|
||||||
"diskCriticalThreshold": 90,
|
"diskCriticalThreshold": 90,
|
||||||
"diskPath": "/",
|
|
||||||
"diskPollingInterval": 3000,
|
"diskPollingInterval": 3000,
|
||||||
"diskWarningThreshold": 80,
|
"diskWarningThreshold": 80,
|
||||||
"enableDgpuMonitoring": false,
|
"enableDgpuMonitoring": false,
|
||||||
|
"externalMonitor": "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor",
|
||||||
"gpuCriticalThreshold": 90,
|
"gpuCriticalThreshold": 90,
|
||||||
"gpuPollingInterval": 3000,
|
"gpuPollingInterval": 3000,
|
||||||
"gpuWarningThreshold": 80,
|
"gpuWarningThreshold": 80,
|
||||||
|
"loadAvgPollingInterval": 3000,
|
||||||
"memCriticalThreshold": 90,
|
"memCriticalThreshold": 90,
|
||||||
"memPollingInterval": 3000,
|
"memPollingInterval": 3000,
|
||||||
"memWarningThreshold": 80,
|
"memWarningThreshold": 80,
|
||||||
"networkPollingInterval": 3000,
|
"networkPollingInterval": 3000,
|
||||||
|
"swapCriticalThreshold": 90,
|
||||||
|
"swapWarningThreshold": 80,
|
||||||
"tempCriticalThreshold": 90,
|
"tempCriticalThreshold": 90,
|
||||||
"tempPollingInterval": 3000,
|
"tempPollingInterval": 3000,
|
||||||
"tempWarningThreshold": 80,
|
"tempWarningThreshold": 80,
|
||||||
@@ -534,39 +572,35 @@
|
|||||||
"warningColor": ""
|
"warningColor": ""
|
||||||
},
|
},
|
||||||
"templates": {
|
"templates": {
|
||||||
"alacritty": false,
|
"activeTemplates": [
|
||||||
"cava": false,
|
{
|
||||||
"code": false,
|
"enabled": true,
|
||||||
"discord": false,
|
"id": "gtk"
|
||||||
"emacs": false,
|
},
|
||||||
"enableUserTemplates": false,
|
{
|
||||||
"foot": false,
|
"enabled": true,
|
||||||
"fuzzel": false,
|
"id": "qt"
|
||||||
"ghostty": false,
|
},
|
||||||
"gtk": true,
|
{
|
||||||
"helix": false,
|
"enabled": true,
|
||||||
"hyprland": false,
|
"id": "kcolorscheme"
|
||||||
"kcolorscheme": true,
|
},
|
||||||
"kitty": false,
|
{
|
||||||
"mango": false,
|
"enabled": true,
|
||||||
"niri": true,
|
"id": "niri"
|
||||||
"pywalfox": false,
|
}
|
||||||
"qt": true,
|
],
|
||||||
"spicetify": false,
|
"enableUserTheming": false
|
||||||
"telegram": false,
|
|
||||||
"vicinae": false,
|
|
||||||
"walker": false,
|
|
||||||
"wezterm": false,
|
|
||||||
"yazi": false,
|
|
||||||
"zed": false
|
|
||||||
},
|
},
|
||||||
"ui": {
|
"ui": {
|
||||||
"bluetoothDetailsViewMode": "grid",
|
"bluetoothDetailsViewMode": "grid",
|
||||||
"bluetoothHideUnnamedDevices": false,
|
"bluetoothHideUnnamedDevices": false,
|
||||||
|
"boxBorderEnabled": false,
|
||||||
"fontDefault": "Sans Serif",
|
"fontDefault": "Sans Serif",
|
||||||
"fontDefaultScale": 1,
|
"fontDefaultScale": 1,
|
||||||
"fontFixed": "monospace",
|
"fontFixed": "monospace",
|
||||||
"fontFixedScale": 1,
|
"fontFixedScale": 1,
|
||||||
|
"networkPanelView": "wifi",
|
||||||
"panelBackgroundOpacity": 0.5,
|
"panelBackgroundOpacity": 0.5,
|
||||||
"panelsAttachedToBar": true,
|
"panelsAttachedToBar": true,
|
||||||
"settingsPanelMode": "centered",
|
"settingsPanelMode": "centered",
|
||||||
@@ -574,6 +608,7 @@
|
|||||||
"wifiDetailsViewMode": "grid"
|
"wifiDetailsViewMode": "grid"
|
||||||
},
|
},
|
||||||
"wallpaper": {
|
"wallpaper": {
|
||||||
|
"automationEnabled": true,
|
||||||
"directory": "/home/aiden/Pictures/Wallpapers",
|
"directory": "/home/aiden/Pictures/Wallpapers",
|
||||||
"enableMultiMonitorDirectories": true,
|
"enableMultiMonitorDirectories": true,
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
@@ -589,14 +624,16 @@
|
|||||||
],
|
],
|
||||||
"overviewEnabled": false,
|
"overviewEnabled": false,
|
||||||
"panelPosition": "follow_bar",
|
"panelPosition": "follow_bar",
|
||||||
"randomEnabled": true,
|
|
||||||
"randomIntervalSec": 600,
|
"randomIntervalSec": 600,
|
||||||
"recursiveSearch": false,
|
|
||||||
"setWallpaperOnAllMonitors": false,
|
"setWallpaperOnAllMonitors": false,
|
||||||
|
"showHiddenFiles": false,
|
||||||
|
"solidColor": "#1a1a2e",
|
||||||
"transitionDuration": 1500,
|
"transitionDuration": 1500,
|
||||||
"transitionEdgeSmoothness": 0.05,
|
"transitionEdgeSmoothness": 0.05,
|
||||||
"transitionType": "random",
|
"transitionType": "random",
|
||||||
|
"useSolidColor": false,
|
||||||
"useWallhaven": false,
|
"useWallhaven": false,
|
||||||
|
"viewMode": "single",
|
||||||
"wallhavenApiKey": "",
|
"wallhavenApiKey": "",
|
||||||
"wallhavenCategories": "111",
|
"wallhavenCategories": "111",
|
||||||
"wallhavenOrder": "desc",
|
"wallhavenOrder": "desc",
|
||||||
|
|||||||
Reference in New Issue
Block a user