mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-07 06:56:04 +02:00
Remove wine support for Cef
This commit is contained in:
@@ -223,10 +223,5 @@ namespace VRCX
|
|||||||
using var client = MainForm.Instance.Browser.GetDevToolsClient();
|
using var client = MainForm.Instance.Browser.GetDevToolsClient();
|
||||||
_ = client.Network.SetUserAgentOverrideAsync(Program.Version);
|
_ = client.Network.SetUserAgentOverrideAsync(Program.Version);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsRunningUnderWine()
|
|
||||||
{
|
|
||||||
return Wine.GetIfWine();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -75,11 +75,6 @@ namespace VRCX
|
|||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsRunningUnderWine()
|
|
||||||
{
|
|
||||||
return Wine.GetIfWine();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override List<KeyValuePair<string, string>> GetExecuteVrFeedFunctionQueue()
|
public override List<KeyValuePair<string, string>> GetExecuteVrFeedFunctionQueue()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException("GetExecuteVrFeedFunctionQueue is not implemented in AppApiVrCef.");
|
throw new NotImplementedException("GetExecuteVrFeedFunctionQueue is not implemented in AppApiVrCef.");
|
||||||
|
|||||||
@@ -28,17 +28,6 @@ namespace VRCX
|
|||||||
if (ProcessMonitor.Instance.IsProcessRunning("VRChat"))
|
if (ProcessMonitor.Instance.IsProcessRunning("VRChat"))
|
||||||
isGameRunning = true;
|
isGameRunning = true;
|
||||||
|
|
||||||
if (Wine.GetIfWine())
|
|
||||||
{
|
|
||||||
var wineTmpPath = Path.Join(Program.AppDataDirectory, "wine.tmp");
|
|
||||||
if (File.Exists(wineTmpPath))
|
|
||||||
{
|
|
||||||
var wineTmp = File.ReadAllText(wineTmpPath);
|
|
||||||
if (wineTmp.Contains("isGameRunning=true"))
|
|
||||||
isGameRunning = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ProcessMonitor.Instance.IsProcessRunning("vrserver"))
|
if (ProcessMonitor.Instance.IsProcessRunning("vrserver"))
|
||||||
isSteamVRRunning = true;
|
isSteamVRRunning = true;
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ namespace VRCX
|
|||||||
public abstract void CopyImageToClipboard(string path);
|
public abstract void CopyImageToClipboard(string path);
|
||||||
public abstract void FlashWindow();
|
public abstract void FlashWindow();
|
||||||
public abstract void SetUserAgent();
|
public abstract void SetUserAgent();
|
||||||
public abstract bool IsRunningUnderWine();
|
|
||||||
|
|
||||||
// Folders
|
// Folders
|
||||||
public abstract string GetVRChatAppDataLocation();
|
public abstract string GetVRChatAppDataLocation();
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ public abstract partial class AppApiVr
|
|||||||
public abstract double GetUptime();
|
public abstract double GetUptime();
|
||||||
public abstract string CurrentCulture();
|
public abstract string CurrentCulture();
|
||||||
public abstract string CustomVrScript();
|
public abstract string CustomVrScript();
|
||||||
public abstract bool IsRunningUnderWine();
|
|
||||||
public abstract List<KeyValuePair<string, string>> GetExecuteVrFeedFunctionQueue();
|
public abstract List<KeyValuePair<string, string>> GetExecuteVrFeedFunctionQueue();
|
||||||
public abstract List<KeyValuePair<string, string>> GetExecuteVrOverlayFunctionQueue();
|
public abstract List<KeyValuePair<string, string>> GetExecuteVrOverlayFunctionQueue();
|
||||||
}
|
}
|
||||||
@@ -147,12 +147,5 @@ namespace VRCX
|
|||||||
public override void SetUserAgent()
|
public override void SetUserAgent()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsRunningUnderWine()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -93,10 +93,5 @@ namespace VRCX
|
|||||||
|
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsRunningUnderWine()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,10 +72,6 @@ namespace VRCX
|
|||||||
private static void InstallUpdate()
|
private static void InstallUpdate()
|
||||||
{
|
{
|
||||||
var setupArguments = string.Empty;
|
var setupArguments = string.Empty;
|
||||||
#if !LINUX
|
|
||||||
if (Wine.GetIfWine())
|
|
||||||
setupArguments += "/SKIP_SHORTCUT=true";
|
|
||||||
#endif
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
### Download and run AppImage from [Releases](https://github.com/vrcx-team/VRCX/releases)
|
|
||||||
|
|
||||||
If you're using Fedora, you may need to reboot after installing .NET for [DOTNET_ROOT](https://src.fedoraproject.org/rpms/dotnet9.0/blob/rawhide/f/dotnet.sh.in#_3) environment variable to take affect.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Legacy Wine guide
|
|
||||||
|
|
||||||
VRCX on Linux was made possible by these people:
|
|
||||||
|
|
||||||
@RinLovesYou, @galister, @BenjaminZehowlt, @regalialong
|
|
||||||
|
|
||||||
Run `curl -sSf https://raw.githubusercontent.com/vrcx-team/VRCX/master/Linux/install-vrcx.sh | bash`
|
|
||||||
|
|
||||||
It'll preconfigure you a Wine bottle with VRCX.
|
|
||||||
|
|
||||||
You will require Wine >= 9.0 due to CEF and winetricks for corefonts.
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
### twemoji-color-font
|
|
||||||
- [https://github.com/13rac1/twemoji-color-font](https://github.com/13rac1/twemoji-color-font)
|
|
||||||
Binary file not shown.
@@ -1,105 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
steamapps=$HOME/.local/share/Steam/steamapps/compatdata
|
|
||||||
stable="https://api0.vrcx.app/releases/stable/latest/download"
|
|
||||||
nightly="https://api0.vrcx.app/releases/nightly/latest/download"
|
|
||||||
download_url=$stable
|
|
||||||
XDG_DATA_HOME=${XDG_DATA_HOME:=$HOME/.local/share}
|
|
||||||
|
|
||||||
export WINEPREFIX="$XDG_DATA_HOME"/vrcx
|
|
||||||
export WINEARCH=win64
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -u
|
|
||||||
|
|
||||||
# Ensure Wine version >= 9.0
|
|
||||||
wine_version=$(wine --version | grep -Po '(?<=wine-)([0-9.]+)')
|
|
||||||
if [ "${1-}" != "force" ] && awk "BEGIN {exit !($wine_version < 9.0)}"; then
|
|
||||||
echo "Your Wine version: $wine_version"
|
|
||||||
echo "Please upgrade your Wine version to 9.0 or higher."
|
|
||||||
echo "If you want to try anyway, run: install-vrcx.sh force"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! [ -x "$(command -v winetricks)" ]; then
|
|
||||||
echo "You don't have winetricks installed or 'command -v winetricks' doesn't recongize it, you will want it for corefonts."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [[ ! -d $WINEPREFIX ]]; then
|
|
||||||
echo "Creating Wine prefix."
|
|
||||||
logs=$(winecfg /v win10 2>&1)
|
|
||||||
if [ "$?" -ne "0" ]; then
|
|
||||||
echo "*********** Error while creating Wine prefix ***********"
|
|
||||||
echo "$logs"
|
|
||||||
echo "*********** Error while creating Wine prefix ***********"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -d $steamapps ]] && [[ -d $HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata ]]; then
|
|
||||||
echo "Flatpak Steam detected."
|
|
||||||
steamapps=$HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata
|
|
||||||
fi
|
|
||||||
|
|
||||||
vrc_appdata=$steamapps/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat
|
|
||||||
vrc_dst=$WINEPREFIX/drive_c/users/$USER/AppData/LocalLow/VRChat/VRChat
|
|
||||||
|
|
||||||
if [[ ! -d $vrc_appdata ]]; then
|
|
||||||
echo "No VRC installation detected."
|
|
||||||
echo "If you want to use VRC on this computer, please install it now and start it once."
|
|
||||||
echo "Otherwise, you will lose out on some features, like Game Log"
|
|
||||||
read -p "Press enter to continue"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -d $vrc_appdata ]] && [[ ! -d $vrc_dst ]]; then
|
|
||||||
echo "Link VRChat AppData into Wine Prefix"
|
|
||||||
mkdir -p $(dirname $vrc_dst)
|
|
||||||
ln -s $vrc_appdata $vrc_dst
|
|
||||||
fi
|
|
||||||
|
|
||||||
winetricks --force -q corefonts # Workaround for https://bugs.winehq.org/show_bug.cgi?id=32342
|
|
||||||
|
|
||||||
echo "Download VRCX"
|
|
||||||
INSTALL_LOCATION="$WINEPREFIX/drive_c/Program Files/VRCX"
|
|
||||||
|
|
||||||
if [[ ! -d $INSTALL_LOCATION ]]; then
|
|
||||||
mkdir -p "$INSTALL_LOCATION"
|
|
||||||
else
|
|
||||||
rm -rf "${INSTALL_LOCATION:?}/"*
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd "$INSTALL_LOCATION"
|
|
||||||
curl -L $download_url -o vrcx_setup.exe
|
|
||||||
WINEPREFIX=$WINEPREFIX wine vrcx_setup.exe /S /SKIP_SHORTCUT=true
|
|
||||||
rm vrcx_setup.exe
|
|
||||||
|
|
||||||
|
|
||||||
# Install twemoji font as Segoe UI is proprietary and not included in wine
|
|
||||||
echo "Download twemoji font."
|
|
||||||
curl -L https://raw.githubusercontent.com/vrcx-team/VRCX/master/Linux/fonts/seguiemj.ttf -o seguiemj.ttf
|
|
||||||
echo "Install twemoji font."
|
|
||||||
cp seguiemj.ttf "$WINEPREFIX/drive_c/windows/Fonts"
|
|
||||||
WINEPREFIX=$WINEPREFIX wine reg add 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\Fonts' /v 'seguiemj' /t REG_SZ /d 'seguiemj.ttf' /f
|
|
||||||
rm seguiemj.ttf
|
|
||||||
|
|
||||||
curl -L https://raw.githubusercontent.com/vrcx-team/VRCX/master/Linux/vrcx.sh -o $WINEPREFIX/drive_c/vrcx.sh
|
|
||||||
chmod +x $WINEPREFIX/drive_c/vrcx.sh
|
|
||||||
|
|
||||||
curl -L https://raw.githubusercontent.com/vrcx-team/VRCX/master/Linux/winediscordipcbridge.exe -o $WINEPREFIX/drive_c/winediscordipcbridge.exe
|
|
||||||
|
|
||||||
echo "Install VRCX.png to $XDG_DATA_HOME/icons"
|
|
||||||
curl -L https://raw.githubusercontent.com/vrcx-team/VRCX/master/VRCX.png -o "$XDG_DATA_HOME/icons/VRCX.png"
|
|
||||||
|
|
||||||
echo "Install vrcx.exe.desktop to $XDG_DATA_HOME/applications"
|
|
||||||
echo "[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
Name=VRCX
|
|
||||||
Categories=Utility;
|
|
||||||
Exec=$WINEPREFIX/drive_c/vrcx.sh
|
|
||||||
Icon=VRCX
|
|
||||||
" > $XDG_DATA_HOME/applications/vrcx.exe.desktop
|
|
||||||
|
|
||||||
|
|
||||||
echo "Done! Check your menu for VRCX."
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
export WINEPREFIX=~/.local/share/vrcx
|
|
||||||
|
|
||||||
# Function to launch winediscordipcbridge
|
|
||||||
launch_ipcbridge() {
|
|
||||||
wine ~/.local/share/vrcx/drive_c/winediscordipcbridge.exe &
|
|
||||||
IPCBRIDGE_PID=$!
|
|
||||||
}
|
|
||||||
|
|
||||||
# Launch winediscordipcbridge
|
|
||||||
launch_ipcbridge
|
|
||||||
|
|
||||||
# Launch VRCX
|
|
||||||
wine "$WINEPREFIX/drive_c/Program Files/VRCX/VRCX.exe" &
|
|
||||||
VRCX_PID=$!
|
|
||||||
|
|
||||||
while kill -0 $VRCX_PID 2>/dev/null; do
|
|
||||||
# Check if VRChat is running
|
|
||||||
if ps -A | grep -i "VRChat.exe" > /dev/null; then
|
|
||||||
isGameRunning=true
|
|
||||||
else
|
|
||||||
isGameRunning=false
|
|
||||||
fi
|
|
||||||
echo "isGameRunning=$isGameRunning" > "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/VRCX/wine.tmp"
|
|
||||||
|
|
||||||
# Check if winediscordipcbridge is running
|
|
||||||
if ! kill -0 $IPCBRIDGE_PID 2>/dev/null; then
|
|
||||||
echo "winediscordipcbridge.exe not running, restarting..."
|
|
||||||
launch_ipcbridge
|
|
||||||
fi
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# Cleanup after VRCX exits
|
|
||||||
echo "isGameRunning=false" > "$WINEPREFIX/drive_c/users/$USER/AppData/Roaming/VRCX/wine.tmp"
|
|
||||||
|
|
||||||
# Kill winediscordipcbridge if it's still running
|
|
||||||
kill $IPCBRIDGE_PID 2>/dev/null
|
|
||||||
Binary file not shown.
Generated
+600
-722
File diff suppressed because it is too large
Load Diff
+9
-10
@@ -32,33 +32,32 @@
|
|||||||
"homepage": "https://github.com/vrcx-team/VRCX#readme",
|
"homepage": "https://github.com/vrcx-team/VRCX#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@electron/rebuild": "^4.0.1",
|
"@electron/rebuild": "^4.0.1",
|
||||||
"@eslint/js": "^9.31.0",
|
"@eslint/js": "^9.32.0",
|
||||||
"@fontsource/noto-sans-jp": "^5.2.6",
|
"@fontsource/noto-sans-jp": "^5.2.6",
|
||||||
"@fontsource/noto-sans-kr": "^5.2.6",
|
"@fontsource/noto-sans-kr": "^5.2.6",
|
||||||
"@fontsource/noto-sans-sc": "^5.2.6",
|
"@fontsource/noto-sans-sc": "^5.2.6",
|
||||||
"@fontsource/noto-sans-tc": "^5.2.6",
|
"@fontsource/noto-sans-tc": "^5.2.6",
|
||||||
"@infolektuell/noto-color-emoji": "^0.2.0",
|
|
||||||
"@prettier/plugin-pug": "^3.4.0",
|
"@prettier/plugin-pug": "^3.4.0",
|
||||||
"@types/jest": "^30.0.0",
|
"@types/jest": "^30.0.0",
|
||||||
"@types/node": "^24.0.13",
|
"@types/node": "^24.1.0",
|
||||||
"animate.css": "^4.1.1",
|
"animate.css": "^4.1.1",
|
||||||
"concurrently": "^9.2.0",
|
"concurrently": "^9.2.0",
|
||||||
"copy-webpack-plugin": "^13.0.0",
|
"copy-webpack-plugin": "^13.0.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^10.0.0",
|
||||||
"css-loader": "^7.1.2",
|
"css-loader": "^7.1.2",
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.13",
|
||||||
"echarts": "^5.6.0",
|
"echarts": "^6.0.0",
|
||||||
"electron": "^37.2.1",
|
"electron": "^37.2.5",
|
||||||
"electron-builder": "^26.0.12",
|
"electron-builder": "^26.0.12",
|
||||||
"element-ui": "^2.15.14",
|
"element-ui": "^2.15.14",
|
||||||
"esbuild-jest": "^0.5.0",
|
"esbuild-jest": "^0.5.0",
|
||||||
"esbuild-loader": "^4.3.0",
|
"esbuild-loader": "^4.3.0",
|
||||||
"eslint": "^9.31.0",
|
"eslint": "^9.32.0",
|
||||||
"eslint-config-prettier": "^10.1.5",
|
"eslint-config-prettier": "^10.1.8",
|
||||||
"eslint-plugin-vue": "^9.33.0",
|
"eslint-plugin-vue": "^9.33.0",
|
||||||
"globals": "^16.3.0",
|
"globals": "^16.3.0",
|
||||||
"html-webpack-plugin": "^5.6.3",
|
"html-webpack-plugin": "^5.6.3",
|
||||||
"jest": "^30.0.4",
|
"jest": "^30.0.5",
|
||||||
"mini-css-extract-plugin": "^2.9.2",
|
"mini-css-extract-plugin": "^2.9.2",
|
||||||
"noty": "^3.2.0-beta-deprecated",
|
"noty": "^3.2.0-beta-deprecated",
|
||||||
"pinia": "^2.3.1",
|
"pinia": "^2.3.1",
|
||||||
@@ -77,7 +76,7 @@
|
|||||||
"vue-loader": "^15.11.1",
|
"vue-loader": "^15.11.1",
|
||||||
"vue-markdown": "^2.2.4",
|
"vue-markdown": "^2.2.4",
|
||||||
"vue-marquee-text-component": "^1.2.0",
|
"vue-marquee-text-component": "^1.2.0",
|
||||||
"webpack": "^5.100.1",
|
"webpack": "^5.101.0",
|
||||||
"webpack-cli": "^6.0.1",
|
"webpack-cli": "^6.0.1",
|
||||||
"webpack-dev-server": "^5.2.2",
|
"webpack-dev-server": "^5.2.2",
|
||||||
"worker-timers": "^8.0.23",
|
"worker-timers": "^8.0.23",
|
||||||
|
|||||||
@@ -92,14 +92,6 @@
|
|||||||
store.auth.autoLoginAfterMounted();
|
store.auth.autoLoginAfterMounted();
|
||||||
store.vrcx.checkAutoBackupRestoreVrcRegistry();
|
store.vrcx.checkAutoBackupRestoreVrcRegistry();
|
||||||
store.game.checkVRChatDebugLogging();
|
store.game.checkVRChatDebugLogging();
|
||||||
try {
|
|
||||||
if (await AppApi.IsRunningUnderWine()) {
|
|
||||||
store.vrcx.isRunningUnderWine = true;
|
|
||||||
store.vrcx.applyWineEmojis();
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
console.error(err, 'Failed to check if running under Wine');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
+28
-42
@@ -3,10 +3,9 @@
|
|||||||
import '@fontsource/noto-sans-jp';
|
import '@fontsource/noto-sans-jp';
|
||||||
import '@fontsource/noto-sans-sc';
|
import '@fontsource/noto-sans-sc';
|
||||||
import '@fontsource/noto-sans-tc';
|
import '@fontsource/noto-sans-tc';
|
||||||
import '@infolektuell/noto-color-emoji';
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import pugTemplate from './vr.pug';
|
import pugTemplate from './vr.pug';
|
||||||
import Vue, { onMounted, reactive, toRefs } from 'vue';
|
import Vue, { onMounted, reactive, toRefs, nextTick } from 'vue';
|
||||||
import Noty from 'noty';
|
import Noty from 'noty';
|
||||||
import * as workerTimers from 'worker-timers';
|
import * as workerTimers from 'worker-timers';
|
||||||
import MarqueeText from 'vue-marquee-text-component';
|
import MarqueeText from 'vue-marquee-text-component';
|
||||||
@@ -23,7 +22,7 @@
|
|||||||
template: pugTemplate,
|
template: pugTemplate,
|
||||||
components: {
|
components: {
|
||||||
'marquee-text': MarqueeText,
|
'marquee-text': MarqueeText,
|
||||||
'location': VrLocation
|
location: VrLocation
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const vrState = reactive({
|
const vrState = reactive({
|
||||||
@@ -70,10 +69,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
if (WINDOWS) {
|
if (LINUX) {
|
||||||
vrState.isRunningUnderWine = await AppApiVr.IsRunningUnderWine();
|
|
||||||
await applyWineEmojis();
|
|
||||||
} else {
|
|
||||||
updateVrElectronLoop();
|
updateVrElectronLoop();
|
||||||
}
|
}
|
||||||
if (vrState.appType === '1') {
|
if (vrState.appType === '1') {
|
||||||
@@ -82,29 +78,32 @@
|
|||||||
}
|
}
|
||||||
setDatetimeFormat();
|
setDatetimeFormat();
|
||||||
|
|
||||||
window.$app.configUpdate = configUpdate;
|
nextTick(() => {
|
||||||
window.$app.updateOnlineFriendCount = updateOnlineFriendCount;
|
window.$app.configUpdate = configUpdate;
|
||||||
window.$app.nowPlayingUpdate = nowPlayingUpdate;
|
window.$app.updateOnlineFriendCount = updateOnlineFriendCount;
|
||||||
window.$app.lastLocationUpdate = lastLocationUpdate;
|
window.$app.nowPlayingUpdate = nowPlayingUpdate;
|
||||||
window.$app.wristFeedUpdate = wristFeedUpdate;
|
window.$app.lastLocationUpdate = lastLocationUpdate;
|
||||||
window.$app.refreshCustomScript = refreshCustomScript;
|
window.$app.wristFeedUpdate = wristFeedUpdate;
|
||||||
window.$app.playNoty = playNoty;
|
window.$app.refreshCustomScript = refreshCustomScript;
|
||||||
window.$app.statusClass = statusClass;
|
window.$app.playNoty = playNoty;
|
||||||
window.$app.notyClear = notyClear;
|
window.$app.statusClass = statusClass;
|
||||||
window.$app.addEntryHudFeed = addEntryHudFeed;
|
window.$app.notyClear = notyClear;
|
||||||
window.$app.updateHudFeedTag = updateHudFeedTag;
|
window.$app.addEntryHudFeed = addEntryHudFeed;
|
||||||
window.$app.updateHudTimeout = updateHudTimeout;
|
window.$app.updateHudFeedTag = updateHudFeedTag;
|
||||||
window.$app.setDatetimeFormat = setDatetimeFormat;
|
window.$app.updateHudTimeout = updateHudTimeout;
|
||||||
window.$app.setAppLanguage = setAppLanguage;
|
window.$app.setDatetimeFormat = setDatetimeFormat;
|
||||||
window.$app.trackingResultToClass = trackingResultToClass;
|
window.$app.setAppLanguage = setAppLanguage;
|
||||||
window.$app.updateFeedLength = updateFeedLength;
|
window.$app.trackingResultToClass = trackingResultToClass;
|
||||||
window.$app.updateStatsLoop = updateStatsLoop;
|
window.$app.updateFeedLength = updateFeedLength;
|
||||||
window.$app.updateVrElectronLoop = updateVrElectronLoop;
|
window.$app.updateStatsLoop = updateStatsLoop;
|
||||||
window.$app.cleanHudFeedLoop = cleanHudFeedLoop;
|
window.$app.updateVrElectronLoop = updateVrElectronLoop;
|
||||||
window.$app.cleanHudFeed = cleanHudFeed;
|
window.$app.cleanHudFeedLoop = cleanHudFeedLoop;
|
||||||
window.$app.applyWineEmojis = applyWineEmojis;
|
window.$app.cleanHudFeed = cleanHudFeed;
|
||||||
|
|
||||||
window.$app.vrState = vrState;
|
window.$app.vrState = vrState;
|
||||||
|
|
||||||
|
AppApiVr.VrInit();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function configUpdate(json) {
|
function configUpdate(json) {
|
||||||
@@ -621,19 +620,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function applyWineEmojis() {
|
|
||||||
if (document.contains(document.getElementById('app-emoji-font'))) {
|
|
||||||
document.getElementById('app-emoji-font').remove();
|
|
||||||
}
|
|
||||||
if (vrState.isRunningUnderWine) {
|
|
||||||
const $appEmojiFont = document.createElement('link');
|
|
||||||
$appEmojiFont.setAttribute('id', 'app-emoji-font');
|
|
||||||
$appEmojiFont.rel = 'stylesheet';
|
|
||||||
$appEmojiFont.href = 'emoji.font.css';
|
|
||||||
document.head.appendChild($appEmojiFont);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function trackingResultToClass(deviceStatus) {
|
function trackingResultToClass(deviceStatus) {
|
||||||
switch (deviceStatus) {
|
switch (deviceStatus) {
|
||||||
case 'Uninitialized':
|
case 'Uninitialized':
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
body,
|
|
||||||
input,
|
|
||||||
textarea,
|
|
||||||
select,
|
|
||||||
button {
|
|
||||||
font-family: 'Noto Sans JP', 'Noto Sans KR', 'Noto Sans TC', 'Noto Sans SC',
|
|
||||||
'Noto Color Emoji', 'Meiryo UI', 'Malgun Gothic', 'Segoe UI', sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
--md-sys-typescale-headline-medium-font: 'Google Sans', 'Noto Sans',
|
|
||||||
'Noto Sans TC', 'Noto Sans JP', 'Noto Sans SC', 'Noto Color Emoji',
|
|
||||||
'Roboto', sans-serif;
|
|
||||||
--md-sys-typescale-headline-small-font: 'Google Sans', 'Noto Sans',
|
|
||||||
'Noto Sans TC', 'Noto Sans JP', 'Noto Sans SC', 'Noto Color Emoji',
|
|
||||||
'Roboto', sans-serif;
|
|
||||||
--md-sys-typescale-title-medium-font: 'Google Sans', 'Noto Sans',
|
|
||||||
'Noto Sans TC', 'Noto Sans JP', 'Noto Sans SC', 'Noto Color Emoji',
|
|
||||||
'Roboto', sans-serif;
|
|
||||||
--md-sys-typescale-label-large-font: 'Google Sans', 'Noto Sans',
|
|
||||||
'Noto Sans TC', 'Noto Sans JP', 'Noto Sans SC', 'Noto Color Emoji',
|
|
||||||
'Roboto', sans-serif;
|
|
||||||
--md-sys-typescale-label-medium-font: 'Google Sans', 'Noto Sans',
|
|
||||||
'Noto Sans TC', 'Noto Sans JP', 'Noto Sans SC', 'Noto Color Emoji',
|
|
||||||
'Roboto', sans-serif;
|
|
||||||
--md-sys-typescale-body-large-font: 'Google Sans', 'Noto Sans',
|
|
||||||
'Noto Sans TC', 'Noto Sans JP', 'Noto Sans SC', 'Noto Color Emoji',
|
|
||||||
'Roboto', sans-serif;
|
|
||||||
--md-sys-typescale-body-medium-font: 'Google Sans', 'Noto Sans',
|
|
||||||
'Noto Sans TC', 'Noto Sans JP', 'Noto Sans SC', 'Noto Color Emoji',
|
|
||||||
'Roboto', sans-serif;
|
|
||||||
--md-sys-typescale-body-small-font: 'Google Sans', 'Noto Sans',
|
|
||||||
'Noto Sans TC', 'Noto Sans JP', 'Noto Sans SC', 'Noto Color Emoji',
|
|
||||||
'Roboto', sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--font: 'Poppins', 'Noto Sans JP', 'Noto Sans KR', 'Noto Sans TC',
|
|
||||||
'Noto Sans SC', 'Noto Color Emoji', sans-serif;
|
|
||||||
}
|
|
||||||
Vendored
-1
@@ -2,7 +2,6 @@ import '@fontsource/noto-sans-kr';
|
|||||||
import '@fontsource/noto-sans-jp';
|
import '@fontsource/noto-sans-jp';
|
||||||
import '@fontsource/noto-sans-sc';
|
import '@fontsource/noto-sans-sc';
|
||||||
import '@fontsource/noto-sans-tc';
|
import '@fontsource/noto-sans-tc';
|
||||||
import '@infolektuell/noto-color-emoji';
|
|
||||||
|
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import { PiniaVuePlugin } from 'pinia';
|
import { PiniaVuePlugin } from 'pinia';
|
||||||
|
|||||||
@@ -119,10 +119,7 @@ export const useUpdateLoopStore = defineStore('UpdateLoop', () => {
|
|||||||
state.nextAutoStateChange = 3;
|
state.nextAutoStateChange = 3;
|
||||||
userStore.updateAutoStateChange();
|
userStore.updateAutoStateChange();
|
||||||
}
|
}
|
||||||
if (
|
if (LINUX && --state.nextGetLogCheck <= 0) {
|
||||||
(vrcxStore.isRunningUnderWine || LINUX) &&
|
|
||||||
--state.nextGetLogCheck <= 0
|
|
||||||
) {
|
|
||||||
state.nextGetLogCheck = 0.5;
|
state.nextGetLogCheck = 0.5;
|
||||||
const logLines = await LogWatcher.GetLogLines();
|
const logLines = await LogWatcher.GetLogLines();
|
||||||
if (logLines) {
|
if (logLines) {
|
||||||
@@ -131,10 +128,7 @@ export const useUpdateLoopStore = defineStore('UpdateLoop', () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (
|
if (LINUX && --state.nextGameRunningCheck <= 0) {
|
||||||
(vrcxStore.isRunningUnderWine || LINUX) &&
|
|
||||||
--state.nextGameRunningCheck <= 0
|
|
||||||
) {
|
|
||||||
if (WINDOWS) {
|
if (WINDOWS) {
|
||||||
state.nextGameRunningCheck = 3;
|
state.nextGameRunningCheck = 3;
|
||||||
AppApi.CheckGameRunning();
|
AppApi.CheckGameRunning();
|
||||||
|
|||||||
@@ -203,19 +203,6 @@ export const useVrcxStore = defineStore('Vrcx', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
async function applyWineEmojis() {
|
|
||||||
if (document.contains(document.getElementById('app-emoji-font'))) {
|
|
||||||
document.getElementById('app-emoji-font').remove();
|
|
||||||
}
|
|
||||||
if (state.isRunningUnderWine) {
|
|
||||||
const $appEmojiFont = document.createElement('link');
|
|
||||||
$appEmojiFont.setAttribute('id', 'app-emoji-font');
|
|
||||||
$appEmojiFont.rel = 'stylesheet';
|
|
||||||
$appEmojiFont.href = 'emoji.font.css';
|
|
||||||
document.head.appendChild($appEmojiFont);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function showConsole() {
|
function showConsole() {
|
||||||
AppApi.ShowDevTools();
|
AppApi.ShowDevTools();
|
||||||
if (
|
if (
|
||||||
@@ -771,7 +758,6 @@ export const useVrcxStore = defineStore('Vrcx', () => {
|
|||||||
clearVRCXCacheFrequency,
|
clearVRCXCacheFrequency,
|
||||||
maxTableSize,
|
maxTableSize,
|
||||||
showConsole,
|
showConsole,
|
||||||
applyWineEmojis,
|
|
||||||
clearVRCXCache,
|
clearVRCXCache,
|
||||||
startupLaunchCommand,
|
startupLaunchCommand,
|
||||||
eventVrcxMessage,
|
eventVrcxMessage,
|
||||||
|
|||||||
+1
-8
@@ -13,14 +13,7 @@ module.exports = (env, argv) => {
|
|||||||
const isProduction = argv.mode === 'production';
|
const isProduction = argv.mode === 'production';
|
||||||
return {
|
return {
|
||||||
entry: {
|
entry: {
|
||||||
vendor: [
|
vendor: ['element-ui', 'noty', 'vue', 'vue-i18n', 'worker-timers'],
|
||||||
'element-ui',
|
|
||||||
'noty',
|
|
||||||
'vue',
|
|
||||||
'vue-i18n',
|
|
||||||
'worker-timers',
|
|
||||||
`${scssBasePath}emoji.font.scss`
|
|
||||||
],
|
|
||||||
app: {
|
app: {
|
||||||
import: ['./src/app.js', './src/app.scss'],
|
import: ['./src/app.js', './src/app.scss'],
|
||||||
dependOn: 'vendor'
|
dependOn: 'vendor'
|
||||||
|
|||||||
Reference in New Issue
Block a user