mirror of
https://github.com/Vencord/Vesktop.git
synced 2025-02-23 21:55:09 +00:00
Show error on platforms using XDP
This commit is contained in:
parent
0114f8efa4
commit
34a6043ea8
1 changed files with 26 additions and 2 deletions
|
@ -8,6 +8,7 @@ import { findByCodeLazy } from "@vencord/types/webpack";
|
||||||
import { keybindCallbacks } from "renderer";
|
import { keybindCallbacks } from "renderer";
|
||||||
|
|
||||||
import { addPatch } from "./shared";
|
import { addPatch } from "./shared";
|
||||||
|
import { ErrorCard } from "@vencord/types/components";
|
||||||
const toShortcutString = findByCodeLazy('return"gamepad".');
|
const toShortcutString = findByCodeLazy('return"gamepad".');
|
||||||
const actionReadableNames: { [key: string]: string } = {
|
const actionReadableNames: { [key: string]: string } = {
|
||||||
PUSH_TO_TALK: "Push To Talk",
|
PUSH_TO_TALK: "Push To Talk",
|
||||||
|
@ -26,6 +27,11 @@ addPatch({
|
||||||
{
|
{
|
||||||
find: "keybindActionTypes",
|
find: "keybindActionTypes",
|
||||||
replacement: [
|
replacement: [
|
||||||
|
{
|
||||||
|
// eslint-disable-next-line no-useless-escape
|
||||||
|
match: /(\i\.isPlatformEmbedded\?)(.+renderEmpty\(\i\)\]\}\)\]\}\))/,
|
||||||
|
replace: "$1$self.xdpWarning($2)"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
// eslint-disable-next-line no-useless-escape
|
// eslint-disable-next-line no-useless-escape
|
||||||
match: /\i\.isPlatformEmbedded/g,
|
match: /\i\.isPlatformEmbedded/g,
|
||||||
|
@ -58,6 +64,7 @@ addPatch({
|
||||||
replace: "$&{$self.unregisterKeybind($1);return;}"
|
replace: "$&{$self.unregisterKeybind($1);return;}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
// eslint-disable-next-line no-useless-escape
|
||||||
match: /let{keybinds:(\i)}=\i;/,
|
match: /let{keybinds:(\i)}=\i;/,
|
||||||
replace: "$&$self.preRegisterKeybinds($1);"
|
replace: "$&$self.preRegisterKeybinds($1);"
|
||||||
}
|
}
|
||||||
|
@ -85,7 +92,7 @@ addPatch({
|
||||||
onTrigger: Function;
|
onTrigger: Function;
|
||||||
};
|
};
|
||||||
}) {
|
}) {
|
||||||
let actions: { id: number; name: string }[] = [];
|
const actions: { id: number; name: string }[] = [];
|
||||||
if (!VesktopNative.keybind.shouldPreRegister()) {
|
if (!VesktopNative.keybind.shouldPreRegister()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -113,9 +120,26 @@ addPatch({
|
||||||
// and switch to voice channel which requires a channel parameter which is provided through discord's ui
|
// and switch to voice channel which requires a channel parameter which is provided through discord's ui
|
||||||
// except we can't really provide that with xdp so i'll just skip it for now
|
// except we can't really provide that with xdp so i'll just skip it for now
|
||||||
keybindCallbacks[id] = (keyState: boolean) => val.onTrigger(keyState, undefined);
|
keybindCallbacks[id] = (keyState: boolean) => val.onTrigger(keyState, undefined);
|
||||||
actions.push({ id, name: actionReadableNames[key] });
|
actions.push({ id, name: actionReadableNames[key] || key });
|
||||||
id++;
|
id++;
|
||||||
});
|
});
|
||||||
VesktopNative.keybind.preRegister(actions);
|
VesktopNative.keybind.preRegister(actions);
|
||||||
|
},
|
||||||
|
xdpWarning: function (keybinds) {
|
||||||
|
if (!VesktopNative.keybind.shouldPreRegister()) {
|
||||||
|
return keybinds;
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<ErrorCard>
|
||||||
|
<p>
|
||||||
|
You appear to be using Vesktop on a platform that requires XDG desktop portals for using keybinds.
|
||||||
|
You can configure keybinds using your desktop environment's built-in settings page.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If your desktop environment does not support the GlobalShortcuts portal you have to manually bind
|
||||||
|
your desired keybinds to CLI triggers.
|
||||||
|
</p>
|
||||||
|
</ErrorCard>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
Loading…
Add table
Reference in a new issue