Files
VRCX/Dotnet/AppApi/Electron/AppApiElectron.cs
Natsumi 938fff63d0 Electron support for Linux (#1074)
* init

* SQLite changes

* Move html folder, edit build scripts

* AppApi interface

* Build flags

* AppApi inheritance

* Finishing touches

* Merge upstream changes

* Test CI

* Fix class inits

* Rename AppApi

* Merge upstream changes

* Fix SQLiteLegacy on Linux, Add Linux interop, build tools

* Linux specific localisation strings

* Make it run

* Bring back most of Linux functionality

* Clean up

* Fix TTS voices

* Fix UI var

* Changes

* Electron minimise to tray

* Remove separate toggle for WlxOverlay

* Fixes

* Touchups

* Move csproj

* Window zoom, Desktop Notifications, VR check on Linux

* Fix desktop notifications, VR check spam

* Fix building on Linux

* Clean up

* Fix WebApi headers

* Rewrite VRCX updater

* Clean up

* Linux updater

* Add Linux to build action

* init

* SQLite changes

* Move html folder, edit build scripts

* AppApi interface

* Build flags

* AppApi inheritance

* Finishing touches

* Merge upstream changes

* Test CI

* Fix class inits

* Rename AppApi

* Merge upstream changes

* Fix SQLiteLegacy on Linux, Add Linux interop, build tools

* Linux specific localisation strings

* Make it run

* Bring back most of Linux functionality

* Clean up

* Fix TTS voices

* Changes

* Electron minimise to tray

* Remove separate toggle for WlxOverlay

* Fixes

* Touchups

* Move csproj

* Window zoom, Desktop Notifications, VR check on Linux

* Fix desktop notifications, VR check spam

* Fix building on Linux

* Clean up

* Fix WebApi headers

* Rewrite VRCX updater

* Clean up

* Linux updater

* Add Linux to build action

* Test updater

* Rebase and handle merge conflicts

* Fix Linux updater

* Fix Linux app restart

* Fix friend order

* Handle AppImageInstaller, show an install message on Linux

* Updates to the AppImage installer

* Fix Linux updater, fix set version, check for .NET, copy wine prefix

* Handle random errors

* Rotate tall prints

* try fix Linux restart bug

* Final

---------

Co-authored-by: rs189 <35667100+rs189@users.noreply.github.com>
2025-01-11 13:09:44 +13:00

140 lines
3.2 KiB
C#

using System;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
using NLog;
namespace VRCX
{
public partial class AppApiElectron : AppApi
{
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
public override void DeleteAllCookies()
{
}
public override void ShowDevTools()
{
}
public override void SetVR(bool active, bool hmdOverlay, bool wristOverlay, bool menuButton, int overlayHand)
{
}
public override void RefreshVR()
{
}
public override void RestartVR()
{
}
public override void SetZoom(double zoomLevel)
{
}
public override async Task<double> GetZoom()
{
return 1;
}
public override void DesktopNotification(string BoldText, string Text = "", string Image = "")
{
}
public override void RestartApplication(bool isUpgrade)
{
}
public override bool CheckForUpdateExe()
{
return false;
}
public override void ExecuteAppFunction(string function, string json)
{
}
public override void ExecuteVrFeedFunction(string function, string json)
{
}
public override void ExecuteVrOverlayFunction(string function, string json)
{
}
public override string GetLaunchCommand()
{
return string.Empty;
}
public override void FocusWindow()
{
}
public override void ChangeTheme(int value)
{
}
public override void DoFunny()
{
}
public override string GetClipboard()
{
return string.Empty;
}
public override void SetStartup(bool enabled)
{
}
public override void CopyImageToClipboard(string path)
{
if (!File.Exists(path) ||
(!path.EndsWith(".png") &&
!path.EndsWith(".jpg") &&
!path.EndsWith(".jpeg") &&
!path.EndsWith(".gif") &&
!path.EndsWith(".bmp") &&
!path.EndsWith(".webp")))
return;
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "xclip",
Arguments = $"-selection clipboard -t image/png -i \"{path}\"",
UseShellExecute = false,
CreateNoWindow = true
}
};
try
{
process.Start();
process.WaitForExit();
}
catch (Exception ex)
{
logger.Error($"Failed to copy image to clipboard: {ex.Message}");
}
}
public override void FlashWindow()
{
}
public override void SetUserAgent()
{
}
public override bool IsRunningUnderWine()
{
return false;
}
}
}