diff --git a/src/main/splash.ts b/src/main/splash.ts index 6ea8dea..cfc7746 100644 --- a/src/main/splash.ts +++ b/src/main/splash.ts @@ -24,7 +24,7 @@ export function createSplashWindow(startMinimized = false) { loadView(splash, "splash.html"); - const { splashBackground, splashColor, splashTheming } = Settings.store; + const { splashBackground, splashColor, splashTheming, splashPixelated } = Settings.store; if (splashTheming !== false) { if (splashColor) { @@ -39,6 +39,10 @@ export function createSplashWindow(startMinimized = false) { } } + if (splashPixelated) { + splash.webContents.insertCSS(`img { image-rendering: pixelated; }`); + } + return splash; } diff --git a/src/renderer/components/settings/UserAssets.css b/src/renderer/components/settings/UserAssets.css index 5ad8cb0..622107a 100644 --- a/src/renderer/components/settings/UserAssets.css +++ b/src/renderer/components/settings/UserAssets.css @@ -13,8 +13,14 @@ } .vcd-user-assets-actions { + display: grid; + width: 100%; + gap: 0.5em; + margin-bottom: auto; +} + +.vcd-user-assets-buttons { display: flex; - flex-direction: column; gap: 0.5em; } diff --git a/src/renderer/components/settings/UserAssets.tsx b/src/renderer/components/settings/UserAssets.tsx index 89b4cae..08c30c7 100644 --- a/src/renderer/components/settings/UserAssets.tsx +++ b/src/renderer/components/settings/UserAssets.tsx @@ -6,7 +6,9 @@ import "./UserAssets.css"; +import { FormSwitch } from "@vencord/types/components"; import { + Margins, ModalCloseButton, ModalContent, ModalHeader, @@ -18,6 +20,7 @@ import { } from "@vencord/types/utils"; import { Button, showToast, Text, useState } from "@vencord/types/webpack/common"; import { UserAssetType } from "main/userAssets"; +import { useSettings } from "renderer/settings"; import { SettingsComponent } from "./Settings"; @@ -51,11 +54,18 @@ function openAssetsModal() { function Asset({ asset }: { asset: UserAssetType }) { // cache busting const [version, setVersion] = useState(Date.now()); + const settings = useSettings(); + + const isSplash = asset === "splash"; + const imageRendering = isSplash && settings.splashPixelated ? "pixelated" : "auto"; const onChooseAsset = (value?: null) => async () => { const res = await VesktopNative.fileManager.chooseUserAsset(asset, value); if (res === "ok") { setVersion(Date.now()); + if (isSplash && value === null) { + settings.splashPixelated = false; + } } else if (res === "failed") { showToast("Something went wrong. Please try again"); } @@ -67,12 +77,28 @@ function Asset({ asset }: { asset: UserAssetType }) { {wordsToTitle(wordsFromCamel(asset))}