From a2ae0834833f4ccd323e55d5c298e1300dd3e945 Mon Sep 17 00:00:00 2001 From: sudacode Date: Fri, 13 Mar 2026 02:31:29 -0700 Subject: [PATCH] upate --- .config/SubMiner/config.jsonc##os.Darwin | 236 +++++++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100755 .config/SubMiner/config.jsonc##os.Darwin diff --git a/.config/SubMiner/config.jsonc##os.Darwin b/.config/SubMiner/config.jsonc##os.Darwin new file mode 100755 index 0000000..c5e414d --- /dev/null +++ b/.config/SubMiner/config.jsonc##os.Darwin @@ -0,0 +1,236 @@ +{ + "keybindings": [], + "shortcuts": { + "copySubtitle": "CommandOrControl+C", + "copySubtitleMultiple": "CommandOrControl+Shift+C", + "updateLastCardFromClipboard": "CommandOrControl+V", + "triggerFieldGrouping": "CommandOrControl+G", + "triggerSubsync": "CommandOrControl+Alt+S", + "mineSentence": "CommandOrControl+S", + "mineSentenceMultiple": "CommandOrControl+Shift+S", + "multiCopyTimeoutMs": 3000, + "toggleSecondarySub": "CommandOrControl+Shift+V", + "markAudioCard": "CommandOrControl+Shift+A", + "openRuntimeOptions": "CommandOrControl+Shift+O", + "toggleVisibleOverlayGlobal": "Alt+Shift+O", + "toggleInvisibleOverlayGlobal": "Alt+Shift+I", + }, + "auto_start_overlay": false, + "texthooker": { + "openBrowser": false, + }, + "websocket": { + "enabled": "auto", + "port": 6677, + }, + "ankiConnect": { + "enabled": true, + "url": "http://127.0.0.1:8765", + "deck": "Minecraft", + "pollingRate": 500, + "fields": { + "audio": "ExpressionAudio", + "image": "Picture", + "sentence": "Sentence", + "miscInfo": "MiscInfo", + "translation": "SelectionText", + }, + "media": { + "generateAudio": true, + "generateImage": true, + "imageType": "avif", + "imageFormat": "webp", + "animatedFps": 24, + "animatedMaxWidth": 640, + "animatedMaxHeight": null, + "animatedCrf": 35, + "audioPadding": 0.5, + "fallbackDuration": 3, + }, + "behavior": { + "overwriteAudio": false, + "overwriteImage": true, + "mediaInsertMode": "append", + "highlightWord": true, + "notificationType": "system", + "showNotificationOnUpdate": true, + "autoUpdateNewCards": true, + }, + "nPlusOne": { + "decks": ["Minecraft", "Kaishi 1.5k"], + "highlightEnabled": true, + "refreshMinutes": 60, + "matchMode": "headword", + }, + "metadata": { + "pattern": "[SubMiner] %f (%t)", + }, + "isLapis": { + "enabled": true, + "sentenceCardModel": "Lapis Morph", + }, + "isKiku": { + "enabled": true, + "fieldGrouping": "manual", + "deleteDuplicateInAuto": true, + }, + "tags": ["SubMiner"], + "proxy": { + "enabled": true, + "host": "127.0.0.1", + "port": 8766, + "upstreamUrl": "http://127.0.0.1:8765", + }, + "ai": { + "enabled": true, + "systemPrompt": "You are a translation engine for translating Japanese into natural-sounding, context-aware English. Return only the translated text with no extra explanations or commentary. The translation must preserve the original tone and intent of the source. If the input is not in the target language, translate it to the target language. If the input is already in the target language, return it as is.", + "model": "google/gemini-2.5-flash-lite", + }, + }, + "ai": { + "enabled": true, + "alwaysUseAiTranslation": false, + "apiKeyCommand": "cat ~/.openrouterapikey", + "baseUrl": "https://openrouter.ai/api/v1", + "sourceLanguage": "Japanese", + }, + "secondarySub": { + "autoLoadSecondarySub": true, + "secondarySubLanguages": ["en", "eng"], + }, + "subsync": { + "defaultMode": "manual", + "alass_path": "alass-cli", + "ffsubsync_path": "ffsubsync", + "ffmpeg_path": "ffmpeg", + "replace": true, + }, + "subtitleStyle": { + "fontFamily": "M PLUS 1 Medium, Noto Sans CJK JP Regular, Noto Sans CJK JP, Arial Unicode MS, Arial, sans-serif", + "fontSize": 30, + "fontColor": "#cad3f5", + "fontWeight": 600, + "lineHeight": 1.35, + "letterSpacing": "-0.01em", + "wordSpacing": 0, + "fontKerning": "normal", + "textRendering": "geometricPrecision", + "textShadow": "0 3px 10px rgba(0,0,0,0.69)", + "fontStyle": "normal", + "backgroundColor": "rgb(30, 32, 48, 0.88)", + "backdropFilter": "blur(6px)", + // "backgroundColor": "transparent", + "preserveLineBreaks": false, + "hoverTokenColor": "#f4dbd6", + "hoverBackground": "rgba(54, 58, 79, 0.84)", + "autoPauseVideoOnHover": true, + "autoPauseVideoOnYomitanPopup": true, + "nameMatchEnabled": true, + "nameMatchColor": "#f5bde6", + "secondary": { + "fontFamily": "Manrope, Inter", + "fontSize": 24, + "fontColor": "#cad3f5", + "textShadow": "0 2px 4px rgba(0,0,0,0.95), 0 0 8px rgba(0,0,0,0.8), 0 0 16px rgba(0,0,0,0.55)", + "backgroundColor": "rgba(20, 22, 34, 0.78)", + "backdropFilter": "blur(6px)", + "fontWeight": "600", + }, + "frequencyDictionary": { + "enabled": true, + "sourcePath": "", + "topX": 10000, + "mode": "banded", + "matchMode": "headword", + "singleColor": "#f5a97f", + "bandedColors": ["#ed8796", "#f5a97f", "#f9e2af", "#8bd5ca", "#8aadf4"], + }, + "enableJlpt": true, // Enable JLPT vocabulary level underlines. When disabled, JLPT tagging lookup and underlines are skipped. Values: true | false + "jlptColors": { + "N1": "#ed8796", + "N2": "#f5a97f", // N2 setting. + "N3": "#f9e2af", // N3 setting. + "N4": "#a6e3a1", // N4 setting. + "N5": "#8aadf4", // N5 setting. + }, // Jlpt colors setting. + "nPlusOneColor": "#c6a0f6", // N plus one color setting. + "knownWordColor": "#a6da95", // Known word color setting. + }, + "jimaku": { + // "apiKey": "YOUR_API_KEY", + // or use a command that outputs the key: + "apiKeyCommand": "cat ~/.jimaku-api-key", + "apiBaseUrl": "https://jimaku.cc", + "languagePreference": "ja", + "maxEntryResults": 10, + }, + "youtubeSubgen": { + "mode": "automatic", // automatic | preprocess | off + "whisperBin": "~/.local/bin/whisper-cli", + "whisperModel": "~/models/whisper.cpp/ggml-medium.bin", + "whisperVadModel": "~/models/ggml-silero-v6.2.0.bin", + "whisperThreads": 8, + "fixWithAi": true, + "ai": { + "model": "google/gemini-2.5-flash-lite", + "systemPrompt": "Fix transcription mistakes only. Preserve the original language exactly. Do not translate, paraphrase, summarize, merge, split, reorder, or omit cues. Preserve cue numbering, cue count, timestamps, line breaks within each cue, and valid SRT formatting exactly. Return only corrected SRT.", + }, + "primarySubLanguages": ["ja", "jpn"], + }, + "anilist": { + "accessToken": "", + "enabled": true, + "characterDictionary": { + "enabled": true, + "maxLoaded": 3, + "profileScope": "all", + }, + }, + "immersionTracking": { + "enabled": true, + "dbPath": "", + }, + "jellyfin": { + "enabled": true, + "serverUrl": "http://pve-main:8096", + "username": "sudacode", + "accessToken": "", + "userId": "", + "deviceId": "subminer", + "clientName": "SubMiner", + "clientVersion": "0.1.0", + "defaultLibraryId": "", + "directPlayPreferred": true, + "remoteControlEnabled": true, + "remoteControlAutoConnect": true, + "autoAnnounce": false, + "remoteControlDeviceName": "SubMiner", + "directPlayContainers": ["mkv", "mp4", "webm", "mov", "flac", "mp3", "aac"], + "transcodeVideoCodec": "h264", + "pullPictures": true, + "iconCacheDir": "/tmp/subminer-jellyfin-icons", + }, + "logging": { + "level": "debug", + }, + "discordPresence": { + "enabled": true, + "detailsTemplate": "Mining and crafting (Anki cards)", + "stateTemplate": "Idle", + "largeImageKey": "subminer-logo", + "largeImageText": "SubMiner", + "smallImageKey": "study", + "smallImageText": "Sentence Mining", + "buttonLabel": "", + "buttonUrl": "", + "updateIntervalMs": 15000, + "debounceMs": 750, + }, + "startupWarmups": { + "lowPowerMode": false, + "mecab": true, + "yomitanExtension": true, + "subtitleDictionaries": true, + "jellyfinRemoteSession": true, + }, +}