Compare commits

...

7 Commits

Author SHA1 Message Date
Beebles 6ff704512c initial potential fix, gotta test on device 2026-05-11 15:52:56 -06:00
Michael T. DeGuzis d31c2bf034 fix(toaster): Forward playSound prop to ProcessNotification info (#901)
Co-authored-by: Michael DeGuzis <deguzim@amazon.com>
2026-04-30 12:58:53 -04:00
Kirill Nikiforov b7a884f26f fix setuid/setgid when running rootless (#892) 2026-04-11 15:35:54 -07:00
AAGaming a477bf6829 show sponsors now! [ci skip] 2026-03-24 21:08:42 -04:00
ynhhoJ 1e8bf43e5f Add key prop inside map (#867)
* fix: add unique key to list items in TestingVersionList component

* fix: add unique key to PluginCard components in BrowseTab
2026-03-23 10:43:00 -04:00
AAGaming 259d01d7ec Remove incorrect padding in the decky menu (#891) 2026-03-21 21:09:13 -04:00
AAGaming a13887a13a fix(deps): bump @decky/ui to fix tabs component on bta 2026-03-21 20:39:27 -04:00
9 changed files with 24 additions and 24 deletions
+1 -1
View File
@@ -23,7 +23,7 @@
[Become a backer or sponsor](https://opencollective.com/steamdeckhomebrew) to support our work! Contributing to our collective effort will help Decky Loader developers cover the costs of web servers, acquire new development hardware, and more.
<!-- SPONSORS COMMENTED OUT UNTIL WE GET SOME SPONSORS TO AVOID BLANK SVG SPACE -->
<!-- <a href="https://opencollective.com/steamdeckhomebrew"><img alt="Steam Deck Homebrew sponsors on Open Collective" src="https://opencollective.com/steamdeckhomebrew/sponsors.svg?button=true&avatarHeight=46&width=750"></a> -->
<a href="https://opencollective.com/steamdeckhomebrew"><img alt="Steam Deck Homebrew sponsors on Open Collective" src="https://opencollective.com/steamdeckhomebrew/sponsors.svg?button=true&avatarHeight=46&width=750"></a>
<a href="https://opencollective.com/steamdeckhomebrew"><img alt="Steam Deck Homebrew backers on Open Collective" src="https://opencollective.com/steamdeckhomebrew/backers.svg?button=false&avatarHeight=46&width=750"></a>
@@ -116,28 +116,26 @@ def get_username() -> str:
return _get_user()
def setgid(user : UserType = UserType.HOST_USER):
user_id = 0
if user == UserType.HOST_USER:
user_id = _get_user_group_id()
host_user_group_id, effective_user_group_id = _get_user_group_id(), _get_effective_user_group_id()
if host_user_group_id == effective_user_group_id:
pass
elif user == UserType.HOST_USER:
os.setgid(host_user_group_id)
elif user == UserType.EFFECTIVE_USER:
pass # we already are
os.setgid(effective_user_group_id)
else:
raise Exception("Unknown user type")
os.setgid(user_id)
def setuid(user : UserType = UserType.HOST_USER):
user_id = 0
if user == UserType.HOST_USER:
user_id = _get_user_id()
host_user_id, effective_user_id = _get_user_id(), _get_effective_user_id()
if host_user_id == effective_user_id:
pass
elif user == UserType.HOST_USER:
os.setuid(host_user_id)
elif user == UserType.EFFECTIVE_USER:
pass # we already are
os.setuid(effective_user_id)
else:
raise Exception("Unknown user type")
os.setuid(user_id)
async def service_active(service_name : str) -> bool:
res, _, _ = await run(["systemctl", "is-active", service_name], stdout=DEVNULL, stderr=DEVNULL)
+1 -1
View File
@@ -47,7 +47,7 @@
}
},
"dependencies": {
"@decky/ui": "^4.11.2",
"@decky/ui": "^4.11.3",
"compare-versions": "^6.1.1",
"filesize": "^10.1.2",
"i18next": "^25.6.0",
+5 -5
View File
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@decky/ui':
specifier: ^4.11.2
version: 4.11.2
specifier: ^4.11.3
version: 4.11.3
compare-versions:
specifier: ^6.1.1
version: 6.1.1
@@ -222,8 +222,8 @@ packages:
'@decky/api@1.1.3':
resolution: {integrity: sha512-XsPCZxfxk5I1UtylIUN3qaWQI31siQbKfbLIskkI5innEatY1m4NQqBv/6hwPaO9mKMbdqYpnh5PSJDeMEOOBA==}
'@decky/ui@4.11.2':
resolution: {integrity: sha512-IHwgy37DZLdRK8XUHF1Eoss/sTCcW/g/fmE4Wd3EKyQjJAbM5385wMUxzZqcE5MNC6TsdAKTa941m0n5flSOxw==}
'@decky/ui@4.11.3':
resolution: {integrity: sha512-lA79I3isehiYpjisbrQCiqmzOOVjJaMwd8Ta3ZHVH3iNgCgeeG9F4LjkjiV3Palpx/ShDawR9H4MOsvhd/EfxA==}
'@esbuild/aix-ppc64@0.20.2':
resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
@@ -2311,7 +2311,7 @@ snapshots:
'@decky/api@1.1.3': {}
'@decky/ui@4.11.2': {}
'@decky/ui@4.11.3': {}
'@esbuild/aix-ppc64@0.20.2':
optional: true
+2 -1
View File
@@ -56,7 +56,8 @@ const PluginView: FC = () => {
<PanelSectionRow key={name}>
<ButtonItem layout="below" onClick={() => setActivePlugin(name)}>
<div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
{icon}
{/* @ts-expect-error - ErrorBoundary is given fallback in the patch in errorboundary-hook.tsx, but it's not typed */}
<ErrorBoundary fallback={<span></span>}>{icon}</ErrorBoundary>
<div>{name}</div>
<NotificationBadge show={updates?.has(name)} style={{ top: '-5px', right: '-5px' }} />
</div>
-1
View File
@@ -8,7 +8,6 @@ import { useDeckyState } from './DeckyState';
const titleStyles: CSSProperties = {
display: 'flex',
paddingTop: '3px',
paddingRight: '16px',
position: 'sticky',
top: '0px',
@@ -80,7 +80,7 @@ export default function TestingVersionList() {
<ul style={{ listStyleType: 'none', padding: '0' }}>
{testingVersions.map((version) => {
return (
<li>
<li key={`${version.id}_${version.name}`}>
<Field
label={
<>
+1
View File
@@ -240,6 +240,7 @@ const BrowseTab: FC<{ setPluginCount: Dispatch<SetStateAction<number | null>> }>
})
.map((plugin: StorePlugin) => (
<PluginCard
key={`${plugin.id}_${plugin.name}`}
storePlugin={plugin}
installedPlugin={installedPlugins.find((installedPlugin) => installedPlugin.name === plugin.name)}
/>
+1
View File
@@ -81,6 +81,7 @@ class Toaster extends Logger {
const info = {
showToast: toast.showToast,
sound: toast.sound,
playSound: toast.playSound,
eFeature: 0,
toastDurationMS: toastData.nToastDurationMS,
bCritical: toast.critical,