This commit is contained in:
2026-02-09 09:17:08 -06:00
parent 9d18d477d5
commit 112ff5c88e
39 changed files with 1660 additions and 88 deletions

View File

@@ -14,12 +14,25 @@ NIconButton {
property string widgetId: ""
property string section: ""
// Bar positioning properties
readonly property string screenName: screen ? screen.name : ""
readonly property string barPosition: Settings.getBarPositionForScreen(screenName)
readonly property bool isVertical: barPosition === "left" || barPosition === "right"
readonly property real barHeight: Style.getBarHeightForScreen(screenName)
readonly property real capsuleHeight: Style.getCapsuleHeightForScreen(screenName)
readonly property real barFontSize: Style.getBarFontSizeForScreen(screenName)
readonly property var mainInstance: pluginApi?.mainInstance
readonly property bool hideInactive:
pluginApi?.pluginSettings?.hideInactive ??
pluginApi?.manifest?.metadata?.defaultSettings?.hideInactive ??
readonly property bool hideInactive:
pluginApi?.pluginSettings?.hideInactive ??
pluginApi?.manifest?.metadata?.defaultSettings?.hideInactive ??
false
property var cfg: pluginApi?.pluginSettings || ({})
property var defaults: pluginApi?.manifest?.metadata?.defaultSettings || ({})
readonly property string iconColorKey: cfg.iconColor ?? defaults.iconColor ?? "none"
readonly property color iconColor: Color.resolveColorKey(iconColorKey)
readonly property bool shouldShow: !hideInactive || (mainInstance?.isRecording ?? false) || (mainInstance?.isPending ?? false)
visible: true
@@ -43,11 +56,11 @@ NIconButton {
icon: "camera-video"
tooltipText: mainInstance?.buildTooltip()
tooltipDirection: BarService.getTooltipDirection()
baseSize: Style.capsuleHeight
baseSize: root.capsuleHeight
applyUiScale: false
customRadius: Style.radiusL
colorBg: mainInstance?.isRecording ? Color.mPrimary : Style.capsuleColor
colorFg: mainInstance?.isRecording ? Color.mOnPrimary : Color.mOnSurface
colorBg: (mainInstance?.isRecording || mainInstance?.isPending) ? Color.mPrimary : Style.capsuleColor
colorFg: (mainInstance?.isRecording || mainInstance?.isPending) ? Color.mOnPrimary : root.iconColor
colorBorder: "transparent"
colorBorderHover: "transparent"
border.color: Style.capsuleBorderColor

View File

@@ -16,6 +16,11 @@ ColumnLayout {
pluginApi?.manifest?.metadata?.defaultSettings?.hideInactive ??
false
property string editIconColor:
pluginApi?.pluginSettings?.iconColor ??
pluginApi?.manifest?.metadata?.defaultSettings?.iconColor ??
"none"
property string editDirectory:
pluginApi?.pluginSettings?.directory ||
pluginApi?.manifest?.metadata?.defaultSettings?.directory ||
@@ -83,6 +88,7 @@ ColumnLayout {
}
pluginApi.pluginSettings.hideInactive = root.editHideInactive
pluginApi.pluginSettings.iconColor = root.editIconColor
pluginApi.pluginSettings.directory = root.editDirectory
pluginApi.pluginSettings.filenamePattern = root.editFilenamePattern
pluginApi.pluginSettings.frameRate = root.editFrameRate
@@ -100,6 +106,16 @@ ColumnLayout {
Logger.i("ScreenRecorder", "Settings saved successfully")
}
// Icon Color
NComboBox {
label: I18n.tr("common.select-icon-color")
description: I18n.tr("common.select-color-description")
model: Color.colorKeyModel
currentKey: root.editIconColor
onSelected: key => root.editIconColor = key
minimumWidth: 200
}
NTextInputButton {
label: pluginApi.tr("settings.general.output-folder")
description: pluginApi.tr("settings.general.output-folder-description")

View File

@@ -12,7 +12,8 @@
"start-recording": "Bildschirmaufnahme (Aufnahme starten)",
"started": "Aufnahme gestartet.",
"stop-recording": "Bildschirmaufnahme (Aufnahme stoppen)",
"stopping": "Aufnahme stoppen…"
"stopping": "Aufnahme stoppen…",
"open-file": "Datei öffnen"
},
"name": "Bildschirmrekorder",
"settings": {

View File

@@ -9,9 +9,9 @@
"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)",
"start-recording": "Screen Recorder (start recording)",
"started": "Recording started.",
"stop-recording": "Screen recorder (stop recording)",
"stop-recording": "Screen Recorder (stop recording)",
"stopping": "Stopping recording…",
"open-file": "Open file"
},

View File

@@ -1,5 +1,5 @@
{
"description": "カスタマイズ可能なビデオおよびオーディオ設定を備えたハードウェアアクセラレーション画面録画",
"description": "カスタマイズ可能なビデオおよびオーディオ設定を備えたハードウェアアクセラレーション対応の画面録画",
"messages": {
"failed-general": "レコーダーがエラーで終了しました。",
"failed-gpu": "gpu-screen-recorder が予期せず終了しました。",
@@ -8,36 +8,39 @@
"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": "録画を停止しています…"
"saved": "録を保存しました。",
"start-recording": "画面録画(開始)",
"started": "録を開始しました。",
"stop-recording": "画面録画(停止)",
"stopping": "録画を停止しています…",
"open-file": "ファイルを開く"
},
"name": "画面レコーダー",
"settings": {
"audio": {
"audio-sources-both": "システム出力 + マイク入力",
"audio-sources-both": "システム出力 マイク入力",
"audio-sources-microphone-input": "マイク入力",
"audio-sources-none": "音声なし",
"audio-sources-system-output": "システム出力",
"codec": "オーディオコーデック",
"codec-desc": "最高のパフォーマンスと最小のオーディオサイズにはOpusが推奨されます",
"source": "オーディオソース",
"source-desc": "録画中にキャプチャるオーディオソース",
"source-desc": "録画中にキャプチャされるオーディオソース",
"title": "オーディオ設定"
},
"filename-pattern": {
"description": "日付/時刻コードを使用したファイル名パターンrecording_yyyyMMdd_HHmmss",
"description": "日付/時刻コードを使用したファイル名パターンrecording_yyyyMMdd_HHmmss",
"label": "ファイル名のパターン"
},
"general": {
"copy-to-clipboard": "クリップボードにコピー",
"copy-to-clipboard-description": "録画終了後、ファイルをクリップボードにコピーします。",
"copy-to-clipboard-description": "録画終了後、ファイルをクリップボードにコピーする",
"hide-when-inactive": "非アクティブ時に非表示",
"hide-when-inactive-description": "録画していないときはウィジェットを隠す",
"output-folder": "出力フォルダー",
"output-folder-description": "画面録画が保存されるフォルダー",
"show-cursor": "カーソルを表示",
"show-cursor-description": "ビデオにマウスカーソルを記録する",
"show-cursor-description": "録画にマウスカーソルを記録する",
"title": "全般"
},
"title": "画面レコーダー設定",
@@ -45,22 +48,22 @@
"codec": "ビデオコーデック",
"codec-desc": "h264は最も一般的なコーデックです",
"color-range": "色範囲",
"color-range-desc": "互換性向上のため制限付きが推奨されます",
"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",
"quality-desc": "品質が高いほどファイルサイズが大きくなります",
"quality-high": "高",
"quality-medium": "",
"quality-ultra": "最高",
"quality-very-high": "超高",
"resolution": "解像度",
"resolution-desc": "出力解像度を制限します。デフォルトでは元の画面解像度が使用されます",
"resolution-original": "デフォルト",
"source": "ビデオソース",
"source-desc": "Portalが推奨されます。アーティファクトが発生する場合は画面を試してください",
"source-desc": "ポータルが推奨されます。アーティファクトが発生する場合は「スクリーン」を試してください",
"sources-portal": "ポータル",
"sources-screen": "スクリーン",
"title": "ビデオ設定"

View File

@@ -39,6 +39,8 @@
"output-folder-description": "屏幕录制将保存到的文件夹",
"show-cursor": "显示光标",
"show-cursor-description": "在视频中录制鼠标光标",
"hide-when-inactive": "非活动时隐藏",
"hide-when-inactive-description": "未录制时隐藏栏指示器",
"title": "常规"
},
"title": "屏幕录制器设置",

View File

@@ -1,7 +1,7 @@
{
"id": "screen-recorder",
"name": "Screen Recorder",
"version": "1.1.2",
"version": "1.1.6",
"minNoctaliaVersion": "3.6.0",
"author": "Noctalia Team",
"official": true,
@@ -24,6 +24,7 @@
"metadata": {
"defaultSettings": {
"hideInactive": false,
"iconColor": "none",
"directory": "",
"filenamePattern": "recording_yyyyMMdd_HHmmss",
"frameRate": "60",