mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-06-25 12:39:12 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 647f3fe8ed | |||
| 3146ebf85f | |||
| 9295e4b038 | |||
| f9a07da3cc | |||
| 12a99b8b06 | |||
| e3d72b6082 | |||
| 39f4f2870b |
@@ -18,7 +18,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v35.6.3
|
||||
uses: tj-actions/changed-files@v41.0.0
|
||||
with:
|
||||
separator: ","
|
||||
files: |
|
||||
|
||||
@@ -0,0 +1,253 @@
|
||||
{
|
||||
"BranchSelect": {
|
||||
"update_channel": {
|
||||
"stable": "安定",
|
||||
"testing": "テスト",
|
||||
"label": "アップデートチャンネル",
|
||||
"prerelease": "プレリリース"
|
||||
}
|
||||
},
|
||||
"DropdownMultiselect": {
|
||||
"button": {
|
||||
"back": "戻る"
|
||||
}
|
||||
},
|
||||
"FilePickerIndex": {
|
||||
"file": {
|
||||
"select": "ファイルを選択"
|
||||
},
|
||||
"files": {
|
||||
"all_files": "すべてのファイル",
|
||||
"file_type": "ファイルタイプ",
|
||||
"show_hidden": "非表示ファイルを表示する"
|
||||
},
|
||||
"filter": {
|
||||
"name_asce": "Z-A",
|
||||
"name_desc": "A-Z",
|
||||
"size_asce": "サイズ(小さい順)",
|
||||
"size_desc": "サイズ(大きい順)",
|
||||
"created_asce": "作成日(古い順)",
|
||||
"created_desc": "作成日(新しい順)",
|
||||
"modified_asce": "更新日(古い順)",
|
||||
"modified_desc": "更新日(新しい順)"
|
||||
},
|
||||
"folder": {
|
||||
"label": "フォルダ",
|
||||
"select": "このフォルダを使用",
|
||||
"show_more": "その他のファイルを表示"
|
||||
}
|
||||
},
|
||||
"MultiplePluginsInstallModal": {
|
||||
"description": {
|
||||
"install": "インストール {{name}} {{version}}",
|
||||
"reinstall": "再インストール {{name}} {{version}}",
|
||||
"update": "アップデート {{name}} {{version}}"
|
||||
},
|
||||
"ok_button": {
|
||||
"idle": "確認",
|
||||
"loading": "作業中"
|
||||
},
|
||||
"title": {
|
||||
"install_other": "{{count}} 個のプラグインをインストール",
|
||||
"mixed_other": "{{count}} 個のプラグインを修正",
|
||||
"update_other": "{{count}} 個のプラグインをアップデート",
|
||||
"reinstall_other": "{{count}} 個のプラグインを再インストール"
|
||||
},
|
||||
"confirm": "以下の変更を加えてもよろしいですか?"
|
||||
},
|
||||
"Developer": {
|
||||
"enabling": "React DevToolsを有効",
|
||||
"disabling": "React DevToolsを無効",
|
||||
"5secreload": "5秒以内に再読み込みされます"
|
||||
},
|
||||
"PluginInstallModal": {
|
||||
"install": {
|
||||
"button_idle": "インストール",
|
||||
"title": "{{artifact}} をインストール",
|
||||
"button_processing": "インストール中",
|
||||
"desc": "{{artifact}} {{version}} をインストールしてもよろしいですか?"
|
||||
},
|
||||
"no_hash": "このプラグインにはハッシュがありません。ご自身の責任でインストールしてください。",
|
||||
"reinstall": {
|
||||
"button_idle": "再インストール",
|
||||
"button_processing": "再インストール中",
|
||||
"desc": "{{artifact}} {{version}} を再インストールしてもよろしいですか?",
|
||||
"title": "{{artifact}} を再インストール"
|
||||
},
|
||||
"update": {
|
||||
"button_idle": "アップデート",
|
||||
"title": "{{artifact}} をアップデート",
|
||||
"desc": "{{artifact}} {{version}} をアップデートしてもよろしいですか?",
|
||||
"button_processing": "アップデート中"
|
||||
}
|
||||
},
|
||||
"PluginListIndex": {
|
||||
"hide": "クイックアクセス: 非表示",
|
||||
"no_plugin": "プラグインがインストールされていません!",
|
||||
"reinstall": "再インストール",
|
||||
"reload": "再読み込み",
|
||||
"uninstall": "アンインストール",
|
||||
"plugin_actions": "プラグインアクション",
|
||||
"update_all_other": "{{count}} 個のプラグインをアップデート",
|
||||
"show": "クイックアクセス: 表示",
|
||||
"update_to": "{{name}} を更新"
|
||||
},
|
||||
"PluginListLabel": {
|
||||
"hidden": "クイックアクセスメニューから非表示にします"
|
||||
},
|
||||
"PluginLoader": {
|
||||
"error": "エラー",
|
||||
"plugin_load_error": {
|
||||
"message": "プラグイン {{name}} の読み込みエラー",
|
||||
"toast": "{{name}} の読み込みエラー"
|
||||
},
|
||||
"plugin_uninstall": {
|
||||
"button": "アンインストール",
|
||||
"desc": "{{name}} をアンインストールしてもよろしいですか?",
|
||||
"title": "{{name}} をアンインストール"
|
||||
},
|
||||
"decky_title": "Decky",
|
||||
"decky_update_available": "{{tag_name}} のアップデートが利用可能です!",
|
||||
"plugin_update_other": "{{count}} 個のプラグインのアップデートが利用可能です!",
|
||||
"plugin_error_uninstall": "{{name}} プラグインを読み込む際に上記のような例外が発生しました。 これは通常、SteamUIの最新バージョンに合ったプラグインのアップデートが必要な場合に発生します。Decky設定のプラグインセクションでアップデートがあるかどうかを確認するか、アンインストールをお試しください。"
|
||||
},
|
||||
"SettingsDeveloperIndex": {
|
||||
"cef_console": {
|
||||
"button": "コンソールを開く",
|
||||
"label": "CEFコンソール",
|
||||
"desc": "CEFコンソールを開きます。デバッグ目的でのみ使用してください。これらの項目は危険な可能性があるので、プラグイン開発者であるか、開発者のガイドに従う場合のみ使用する必要があります。"
|
||||
},
|
||||
"react_devtools": {
|
||||
"ip_label": "IP",
|
||||
"label": "React DevTools を有効化",
|
||||
"desc": "React DevToolsを実行しているコンピューターへの接続を有効にします。この設定を変更すると、Steam が再ロードされます。有効にする前にIPアドレスを設定してください。"
|
||||
},
|
||||
"third_party_plugins": {
|
||||
"button_install": "インストール",
|
||||
"button_zip": "ブラウズ",
|
||||
"header": "サードパーティプラグイン",
|
||||
"label_desc": "URL",
|
||||
"label_url": "URLからプラグインをインストール",
|
||||
"label_zip": "ZIPファイルからプラグインをインストール"
|
||||
},
|
||||
"valve_internal": {
|
||||
"desc1": "Valveの内部開発者メニューを有効にします。",
|
||||
"desc2": "このメニューの機能が分からない場合、このメニューには触れないでください。",
|
||||
"label": "Valve Internalを有効"
|
||||
},
|
||||
"header": "その他"
|
||||
},
|
||||
"PluginView": {
|
||||
"hidden_other": "{{count}} 個のプラグインがこのリストから非表示になります"
|
||||
},
|
||||
"SettingsGeneralIndex": {
|
||||
"about": {
|
||||
"decky_version": "Deckyバージョン",
|
||||
"header": "情報"
|
||||
},
|
||||
"developer_mode": {
|
||||
"label": "開発者モード"
|
||||
},
|
||||
"notifications": {
|
||||
"header": "通知",
|
||||
"plugin_updates_label": "プラグインのアップデートが利用可能な場合に通知",
|
||||
"decky_updates_label": "Deckyのアップデートが利用可能な場合に通知"
|
||||
},
|
||||
"beta": {
|
||||
"header": "ベータ版への参加"
|
||||
},
|
||||
"other": {
|
||||
"header": "その他"
|
||||
},
|
||||
"updates": {
|
||||
"header": "アップデート"
|
||||
}
|
||||
},
|
||||
"SettingsIndex": {
|
||||
"developer_title": "開発者",
|
||||
"plugins_title": "プラグイン",
|
||||
"general_title": "一般"
|
||||
},
|
||||
"Store": {
|
||||
"store_filter": {
|
||||
"label": "フィルター",
|
||||
"label_def": "すべて"
|
||||
},
|
||||
"store_search": {
|
||||
"label": "検索"
|
||||
},
|
||||
"store_sort": {
|
||||
"label": "並べ替え",
|
||||
"label_def": "直近のアップデート(新しい順)"
|
||||
},
|
||||
"store_source": {
|
||||
"desc": "すべてのプラグインのソース コードは、GitHubのSteamDeckHomebrew/decky-plugin-databaseリポジトリで入手できます。",
|
||||
"label": "ソースコード"
|
||||
},
|
||||
"store_tabs": {
|
||||
"alph_asce": "アルファベット(Z to A)",
|
||||
"alph_desc": "アルファベット(A to Z)",
|
||||
"title": "閲覧",
|
||||
"about": "概要"
|
||||
},
|
||||
"store_testing_warning": {
|
||||
"label": "テストストア チャンネルへようこそ",
|
||||
"desc": "このストアチャンネルを使用して、最先端のプラグイン バージョンをテストできます。 すべてのユーザーがプラグインを更新できるように、必ずGitHubにフィードバックを残してください。"
|
||||
},
|
||||
"store_contrib": {
|
||||
"desc": "Decky Plugin Storeに貢献したい場合は、GitHubのSteamDeckHomebrew/decky-plugin-templateリポジトリを確認してください。 開発と配布に関する情報は README で入手できます。",
|
||||
"label": "貢献"
|
||||
},
|
||||
"store_testing_cta": "Decky Loaderチームを支援するために、新しいプラグインのテストを検討してください!"
|
||||
},
|
||||
"StoreSelect": {
|
||||
"custom_store": {
|
||||
"label": "カスタムストア",
|
||||
"url_label": "URL"
|
||||
},
|
||||
"store_channel": {
|
||||
"custom": "カスタム",
|
||||
"default": "デフォルト",
|
||||
"label": "ストアチャンネル",
|
||||
"testing": "テスト"
|
||||
}
|
||||
},
|
||||
"TitleView": {
|
||||
"decky_store_desc": "Deckyストアを開く",
|
||||
"settings_desc": "Decky設定を開く"
|
||||
},
|
||||
"Updater": {
|
||||
"decky_updates": "Deckyアップデート",
|
||||
"no_patch_notes_desc": "このバージョンのパッチノートはありません",
|
||||
"patch_notes_desc": "パッチノート",
|
||||
"updates": {
|
||||
"check_button": "アップデートを確認",
|
||||
"checking": "確認中",
|
||||
"cur_version": "現在のバージョン: {{ver}}",
|
||||
"install_button": "アップデートをインストール",
|
||||
"label": "アップデート",
|
||||
"lat_version": "アップデート: {{ver}} を実行中",
|
||||
"reloading": "再読み込み中",
|
||||
"updating": "アップデート中"
|
||||
}
|
||||
},
|
||||
"FilePickerError": {
|
||||
"errors": {
|
||||
"file_not_found": "指定されたパスは無効です。 内容をご確認の上、正しく入力し直してください。",
|
||||
"unknown": "不明なエラーが発生しました。 エラー内容は次のとおりです: {{raw_error}}",
|
||||
"perm_denied": "選択したパスへのアクセス権がありません。選択したフォルダ/ファイルのアクセス権がユーザー(Steam Deckのdeckユーザー)に合わせて正しく設定されていることを確認してください。"
|
||||
}
|
||||
},
|
||||
"PluginCard": {
|
||||
"plugin_version_label": "プラグインバージョン",
|
||||
"plugin_no_desc": "説明はありません。",
|
||||
"plugin_full_access": "このプラグインはSteam Deckの全てのアクセス権を持ちます。",
|
||||
"plugin_install": "インストール"
|
||||
},
|
||||
"RemoteDebugging": {
|
||||
"remote_cef": {
|
||||
"label": "リモート CEF デバッグを許可する",
|
||||
"desc": "ネットワーク上のすべてのユーザーにCEFデバッガへの非認証アクセスを許可します"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -210,7 +210,11 @@
|
||||
"title": "Navegar",
|
||||
"alph_asce": "Alfabética (Z - A)"
|
||||
},
|
||||
"store_testing_cta": "Por favor, considere testar os novos plugins para ajudar o time do Decky Loader!"
|
||||
"store_testing_cta": "Por favor, considere testar os novos plugins para ajudar o time do Decky Loader!",
|
||||
"store_testing_warning": {
|
||||
"desc": "Você pode usar este canal da loja para testar versões avançadas do plugin. Certifique-se de deixar feedback no GitHub para que o plugin possa ser atualizado para todos os usuários.",
|
||||
"label": "Bem-vindo ao Canal de Testes da Loja"
|
||||
}
|
||||
},
|
||||
"StoreSelect": {
|
||||
"custom_store": {
|
||||
@@ -255,5 +259,9 @@
|
||||
"unknown": "Ocorreu um erro desconhecido. O erro completo é: {{raw_error}}",
|
||||
"perm_denied": "Você não tem acesso à este diretório. Por favor, verifiquei se seu usuário (deck no Steam Deck) tem as permissões necessárias para acessar este arquivo/pasta."
|
||||
}
|
||||
},
|
||||
"TitleView": {
|
||||
"decky_store_desc": "Abrir Loja Decky",
|
||||
"settings_desc": "Abrir Definições Decky"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,27 @@
|
||||
{
|
||||
"FilePickerIndex": {
|
||||
"folder": {
|
||||
"select": "Usar esta pasta"
|
||||
"select": "Usar esta pasta",
|
||||
"label": "Pasta",
|
||||
"show_more": "Mostrar mais ficheiros"
|
||||
},
|
||||
"file": {
|
||||
"select": "Selecionar este ficheiro"
|
||||
},
|
||||
"filter": {
|
||||
"size_desc": "Tamanho (maior)",
|
||||
"created_asce": "Criado (mais antigo)",
|
||||
"created_desc": "Criado (mais recente)",
|
||||
"modified_asce": "Modificado (mais antigo)",
|
||||
"modified_desc": "Modificado (mais recente)",
|
||||
"name_asce": "Z-A",
|
||||
"name_desc": "A-Z",
|
||||
"size_asce": "Tamanho (mais pequeno)"
|
||||
},
|
||||
"files": {
|
||||
"file_type": "Tipo de ficheiro",
|
||||
"show_hidden": "Mostrar ficheiros ocultos",
|
||||
"all_files": "Todos os ficheiros"
|
||||
}
|
||||
},
|
||||
"PluginView": {
|
||||
@@ -157,6 +177,11 @@
|
||||
},
|
||||
"updates": {
|
||||
"header": "Actualizações"
|
||||
},
|
||||
"notifications": {
|
||||
"decky_updates_label": "Atualização Decky disponível",
|
||||
"header": "Notificações",
|
||||
"plugin_updates_label": "Atualizações de plugins disponíveis"
|
||||
}
|
||||
},
|
||||
"SettingsIndex": {
|
||||
@@ -190,7 +215,11 @@
|
||||
"alph_desc": "Alfabeticamente (A-Z)",
|
||||
"title": "Navegar"
|
||||
},
|
||||
"store_testing_cta": "Testa novos plugins e ajuda a equipa do Decky Loader!"
|
||||
"store_testing_cta": "Testa novos plugins e ajuda a equipa do Decky Loader!",
|
||||
"store_testing_warning": {
|
||||
"desc": "Pode usar esta versão da loja para testar versões experimentais de plugins. Certifique-se de deixar feedback no GitHub para que o plugin possa ser atualizado para todos os utilizadores.",
|
||||
"label": "Bem-vindo ao Canal de Testes da Loja"
|
||||
}
|
||||
},
|
||||
"StoreSelect": {
|
||||
"custom_store": {
|
||||
@@ -218,5 +247,21 @@
|
||||
"reloading": "Recarregar",
|
||||
"install_button": "Instalar actualização"
|
||||
}
|
||||
},
|
||||
"FilePickerError": {
|
||||
"errors": {
|
||||
"perm_denied": "Não tem acesso ao diretório especificado. Por favor, verifique se o seu utilizador (deck na Steam Deck) possui as permissões correspondentes para aceder à pasta/ficheiro especificado.",
|
||||
"unknown": "Ocorreu um erro desconhecido. O erro é: {{raw_error}}",
|
||||
"file_not_found": "O caminho especificado não é válido. Por favor, verifique e insira-o corretamente."
|
||||
}
|
||||
},
|
||||
"TitleView": {
|
||||
"decky_store_desc": "Abrir a Loja Decky",
|
||||
"settings_desc": "Abrir as Definições Decky"
|
||||
},
|
||||
"DropdownMultiselect": {
|
||||
"button": {
|
||||
"back": "Voltar"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
aiohttp==3.8.5
|
||||
aiohttp==3.9.0
|
||||
aiohttp-jinja2==1.5.1
|
||||
aiohttp_cors==0.7.0
|
||||
watchdog==2.1.7
|
||||
|
||||
@@ -412,7 +412,7 @@ async def get_tab_lambda(test: Callable[[Tab], bool]) -> Tab:
|
||||
|
||||
SHARED_CTX_NAMES = ["SharedJSContext", "Steam Shared Context presented by Valve™", "Steam", "SP"]
|
||||
CLOSEABLE_URLS = ["about:blank", "data:text/html,%3Cbody%3E%3C%2Fbody%3E"] # Closing anything other than these *really* likes to crash Steam
|
||||
DO_NOT_CLOSE_URL = "Valve Steam Gamepad/default" # Steam Big Picture Mode tab
|
||||
DO_NOT_CLOSE_URLS = ["Valve Steam Gamepad/default", "Valve%20Steam%20Gamepad/default"] # Steam Big Picture Mode tab
|
||||
|
||||
def tab_is_gamepadui(t: Tab) -> bool:
|
||||
return "https://steamloopback.host/routes/" in t.url and t.title in SHARED_CTX_NAMES
|
||||
@@ -432,7 +432,7 @@ async def inject_to_tab(tab_name: str, js: str, run_async: bool = False):
|
||||
async def close_old_tabs():
|
||||
tabs = await get_tabs()
|
||||
for t in tabs:
|
||||
if not t.title or (t.title not in SHARED_CTX_NAMES and any(url in t.url for url in CLOSEABLE_URLS) and DO_NOT_CLOSE_URL not in t.url):
|
||||
if not t.title or (t.title not in SHARED_CTX_NAMES and any(url in t.url for url in CLOSEABLE_URLS) and not any(url in t.url for url in DO_NOT_CLOSE_URLS)):
|
||||
logger.debug("Closing tab: " + getattr(t, "title", "Untitled"))
|
||||
await t.close()
|
||||
await sleep(0.5)
|
||||
|
||||
@@ -118,11 +118,11 @@ class PluginWrapper:
|
||||
|
||||
if "stop" in data:
|
||||
self.log.info("Calling Loader unload function.")
|
||||
await self._unload()
|
||||
get_event_loop().stop()
|
||||
while get_event_loop().is_running():
|
||||
await sleep(0)
|
||||
get_event_loop().close()
|
||||
await self._unload()
|
||||
raise Exception("Closing message listener")
|
||||
|
||||
# TODO there is definitely a better way to type this
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"decky-frontend-lib": "3.24.1",
|
||||
"decky-frontend-lib": "3.24.2",
|
||||
"filesize": "^10.0.7",
|
||||
"i18next": "^23.2.1",
|
||||
"i18next-http-backend": "^2.2.1",
|
||||
|
||||
Generated
+4
-4
@@ -6,8 +6,8 @@ settings:
|
||||
|
||||
dependencies:
|
||||
decky-frontend-lib:
|
||||
specifier: 3.24.1
|
||||
version: 3.24.1
|
||||
specifier: 3.24.2
|
||||
version: 3.24.2
|
||||
filesize:
|
||||
specifier: ^10.0.7
|
||||
version: 10.0.7
|
||||
@@ -1482,8 +1482,8 @@ packages:
|
||||
dependencies:
|
||||
ms: 2.1.2
|
||||
|
||||
/decky-frontend-lib@3.24.1:
|
||||
resolution: {integrity: sha512-VGxLTPetxx/pQVC+t8odTHrwQAh7uy4bO2Od2gGWSTfmUUoxtAcEtiXGyE9mKsoD6t7QNHrGvgXn78sf2i/IeQ==}
|
||||
/decky-frontend-lib@3.24.2:
|
||||
resolution: {integrity: sha512-G6AEV/PTdOaw2AoGGs+tpEWIPhVODzM8XWAJcHwXVpCnAGH+qUhHZH/Mz56ZxYcbVdN3m6FRAQ2eHSUIEY9TjA==}
|
||||
dev: false
|
||||
|
||||
/decode-named-character-reference@1.0.2:
|
||||
|
||||
@@ -56,7 +56,8 @@ class Toaster extends Logger {
|
||||
if (
|
||||
currentNode?.memoizedProps?.className?.startsWith?.('gamepadtoasts_GamepadToastPlaceholder') ||
|
||||
currentNode?.memoizedProps?.className?.startsWith?.('toastmanager_ToastPlaceholder') ||
|
||||
currentNode?.memoizedProps?.className?.startsWith?.('toastmanager_ToastPopup')
|
||||
currentNode?.memoizedProps?.className?.startsWith?.('toastmanager_ToastPopup') ||
|
||||
currentNode?.memoizedProps?.className?.startsWith?.('gamepadtoasts_GamepadToastPopup')
|
||||
) {
|
||||
this.log(`Toaster root was found in ${iters} recursion cycles`);
|
||||
return currentNode;
|
||||
|
||||
Reference in New Issue
Block a user