Compare commits

...

5 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)
Builder Win / Build PluginLoader for Win (push) Has been cancelled
Builder / Build PluginLoader (push) Has been cancelled
Push Updated Plugin Stub to Template / copy-stub (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Type Check / Run type checkers (push) Has been cancelled
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)
Builder Win / Build PluginLoader for Win (push) Has been cancelled
Builder / Build PluginLoader (push) Has been cancelled
Push Updated Plugin Stub to Template / copy-stub (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Type Check / Run type checkers (push) Has been cancelled
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)
Builder Win / Build PluginLoader for Win (push) Has been cancelled
Builder / Build PluginLoader (push) Has been cancelled
Push Updated Plugin Stub to Template / copy-stub (push) Has been cancelled
Lint / Run linters (push) Has been cancelled
Type Check / Run type checkers (push) Has been cancelled
* 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
6 changed files with 18 additions and 17 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)
+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>
@@ -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,