From edafce57be287c49791e708cb6f78b6f3fec1f2a Mon Sep 17 00:00:00 2001 From: Xpl0itR Date: Mon, 2 Sep 2019 17:03:57 +0100 Subject: [PATCH] Added GUI to Ryujinx (#695) * Added GUI to Ryujinx * Updated to use Glade Also added scrollbar and default dark theme * Added support for loading icon from .nro files and cleaned up the code a bit * Added General Settings Menu (read-only for now) and moved some functionality from MainMenu.cs to ApplicationLibrary.cs * Added custom GUI theme support and changed the defualt theme to one I just wrote * Added GTK to process path, fixed a bug and minor edits * some more edits and a bug fix * general settings menu is now fully functional. also fixed the bug where ryujinx crashes when it trys to load an invalid gamedir * big rewrite * aesthetic changes to General Settings menu * Added Control Settings one day done feature :P * minor changes * 1st wave of changes * 2nd wave of changes * 3rd wave of changes * Cleanup settings ui * minor edits * new about window added, still needs styling * added spin button for new option and tooltips to settings * Game icons and names are now shown in the games list * add nuget package which contains gtk dependencies * requested changes have been changed * put CreateGameWindow on a new thread and stopped destroying the main menu when a game loads * fixed bug that allowed a user to attempt to load multiple games at a time which causes a crash * Added LastPlayed and TimePlayed columns to the game list * Did some testing and fixed some bugs Im not happy with one of the fixes so i will do it properly an upcoming commit * did some more bug testing and fixed another 2 bugs * caught an exception when ryujinx tries to load non-homebrew as homebrew * Large changes Rewrote ApplicationLibrary.cs (added comments too) so any devs reading it wont get eye cancer, also its probably more efficient now. Added 2 new columns (Developer name and application version) to the game list and wrote the logic for it. Ryujinx now loads NRO's TitleName and TitleID from the NACP file instead of the default NPDM. I also killed a lot of bugs * Moved Files moved ApplicationLibrary.cs to Ryujinx.HLE as that is a better place for it. Moved contents of GUI folder to Ui folder and changed the namespaces of the gui files from Ryujinx to Ryujinx.Ui * Added 'Open Ryujinx Folder' button to the file menu and did some small fixes * New features * updated nuget package with missing dlls and changed emmauss' requested changes * fixed some minor issues * all requested changes marked as resolved have been changed * gdkchan's requested changes * fixed an issue with settings window getting chopped on small res * fixed 2 problems caused by rebase * changed the default theme * applied Thog's patch to fix issue on linux * fixed issue caused by rebase * added update check button that runs ryujinx-updater * reads version info from installer and displays it in about menu * changes completed * requested changes changed * fixed issue with default theme * fixed a bug and completed requested changes * added more tooltips and changed some text --- Ryujinx.HLE/FileSystem/SaveHelper.cs | 2 +- Ryujinx.HLE/FileSystem/SaveInfo.cs | 4 +- Ryujinx.HLE/FileSystem/VirtualFileSystem.cs | 4 +- Ryujinx.HLE/HOS/Horizon.cs | 53 +- Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs | 4 +- .../HOS/Kernel/Process/ProcessCreationInfo.cs | 6 +- .../HOS/Kernel/SupervisorCall/SvcSystem.cs | 2 +- .../HOS/Services/FspSrv/IFileSystemProxy.cs | 2 +- Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs | 2 - .../Executables/KernelInitialProcess.cs | 4 +- Ryujinx.HLE/Loaders/Npdm/ACI0.cs | 4 +- Ryujinx.HLE/Loaders/Npdm/Npdm.cs | 2 +- Ryujinx.sln | 10 +- Ryujinx/{Config.jsonc => Config.json} | 73 +- Ryujinx/Configuration.cs | 151 +- Ryujinx/Program.cs | 176 +- Ryujinx/RPsupported.dat | 9 +- Ryujinx/Ryujinx.csproj | 25 +- Ryujinx/Theme.css | 4054 +++++++++++++++++ Ryujinx/Ui/AboutWindow.cs | 116 + Ryujinx/Ui/AboutWindow.glade | 574 +++ Ryujinx/Ui/ApplicationLibrary.cs | 450 ++ Ryujinx/Ui/GLScreen.cs | 2 +- Ryujinx/Ui/MainWindow.cs | 601 +++ Ryujinx/Ui/MainWindow.glade | 347 ++ Ryujinx/Ui/NpadKeyboard.cs | 4 +- Ryujinx/Ui/SwitchSettings.cs | 424 ++ Ryujinx/Ui/SwitchSettings.glade | 1989 ++++++++ Ryujinx/Ui/assets/DiscordLogo.png | Bin 0 -> 5216 bytes Ryujinx/Ui/assets/GitHubLogo.png | Bin 0 -> 4044 bytes Ryujinx/Ui/assets/JoyCon.png | Bin 0 -> 288310 bytes Ryujinx/Ui/assets/PatreonLogo.png | Bin 0 -> 5899 bytes Ryujinx/Ui/assets/TwitterLogo.png | Bin 0 -> 8012 bytes Ryujinx/Ui/assets/ryujinxIcon.png | Bin 0 -> 53785 bytes Ryujinx/Ui/assets/ryujinxNCAIcon.png | Bin 0 -> 13675 bytes Ryujinx/Ui/assets/ryujinxNROIcon.png | Bin 0 -> 13902 bytes Ryujinx/Ui/assets/ryujinxNSOIcon.png | Bin 0 -> 13948 bytes Ryujinx/Ui/assets/ryujinxNSPIcon.png | Bin 0 -> 13198 bytes Ryujinx/Ui/assets/ryujinxXCIIcon.png | Bin 0 -> 13093 bytes Ryujinx/_schema.json | 32 + 40 files changed, 8807 insertions(+), 319 deletions(-) rename Ryujinx/{Config.jsonc => Config.json} (55%) create mode 100644 Ryujinx/Theme.css create mode 100644 Ryujinx/Ui/AboutWindow.cs create mode 100644 Ryujinx/Ui/AboutWindow.glade create mode 100644 Ryujinx/Ui/ApplicationLibrary.cs create mode 100644 Ryujinx/Ui/MainWindow.cs create mode 100644 Ryujinx/Ui/MainWindow.glade create mode 100644 Ryujinx/Ui/SwitchSettings.cs create mode 100644 Ryujinx/Ui/SwitchSettings.glade create mode 100644 Ryujinx/Ui/assets/DiscordLogo.png create mode 100644 Ryujinx/Ui/assets/GitHubLogo.png create mode 100644 Ryujinx/Ui/assets/JoyCon.png create mode 100644 Ryujinx/Ui/assets/PatreonLogo.png create mode 100644 Ryujinx/Ui/assets/TwitterLogo.png create mode 100644 Ryujinx/Ui/assets/ryujinxIcon.png create mode 100644 Ryujinx/Ui/assets/ryujinxNCAIcon.png create mode 100644 Ryujinx/Ui/assets/ryujinxNROIcon.png create mode 100644 Ryujinx/Ui/assets/ryujinxNSOIcon.png create mode 100644 Ryujinx/Ui/assets/ryujinxNSPIcon.png create mode 100644 Ryujinx/Ui/assets/ryujinxXCIIcon.png diff --git a/Ryujinx.HLE/FileSystem/SaveHelper.cs b/Ryujinx.HLE/FileSystem/SaveHelper.cs index 411d13e25..51400458b 100644 --- a/Ryujinx.HLE/FileSystem/SaveHelper.cs +++ b/Ryujinx.HLE/FileSystem/SaveHelper.cs @@ -10,7 +10,7 @@ namespace Ryujinx.HLE.FileSystem public static string GetSavePath(SaveInfo saveMetaData, ServiceCtx context) { string baseSavePath = NandPath; - long currentTitleId = saveMetaData.TitleId; + ulong currentTitleId = saveMetaData.TitleId; switch (saveMetaData.SaveSpaceId) { diff --git a/Ryujinx.HLE/FileSystem/SaveInfo.cs b/Ryujinx.HLE/FileSystem/SaveInfo.cs index db7f6765d..8685e6ca5 100644 --- a/Ryujinx.HLE/FileSystem/SaveInfo.cs +++ b/Ryujinx.HLE/FileSystem/SaveInfo.cs @@ -4,7 +4,7 @@ namespace Ryujinx.HLE.FileSystem { struct SaveInfo { - public long TitleId { get; private set; } + public ulong TitleId { get; private set; } public long SaveId { get; private set; } public UInt128 UserId { get; private set; } @@ -12,7 +12,7 @@ namespace Ryujinx.HLE.FileSystem public SaveSpaceId SaveSpaceId { get; private set; } public SaveInfo( - long titleId, + ulong titleId, long saveId, SaveDataType saveDataType, UInt128 userId, diff --git a/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs b/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs index eed5953f1..e71fc27f3 100644 --- a/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs +++ b/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs @@ -5,7 +5,7 @@ using System.IO; namespace Ryujinx.HLE.FileSystem { - class VirtualFileSystem : IDisposable + public class VirtualFileSystem : IDisposable { public const string BasePath = "RyuFs"; public const string NandPath = "nand"; @@ -60,7 +60,7 @@ namespace Ryujinx.HLE.FileSystem public string GetSystemPath() => MakeDirAndGetFullPath(SystemPath); - public string GetGameSavePath(SaveInfo save, ServiceCtx context) + internal string GetGameSavePath(SaveInfo save, ServiceCtx context) { return MakeDirAndGetFullPath(SaveHelper.GetSavePath(save, context)); } diff --git a/Ryujinx.HLE/HOS/Horizon.cs b/Ryujinx.HLE/HOS/Horizon.cs index 5873223ef..334cba126 100644 --- a/Ryujinx.HLE/HOS/Horizon.cs +++ b/Ryujinx.HLE/HOS/Horizon.cs @@ -94,7 +94,7 @@ namespace Ryujinx.HLE.HOS internal KEvent VsyncEvent { get; private set; } - internal Keyset KeySet { get; private set; } + public Keyset KeySet { get; private set; } private bool _hasStarted; @@ -453,9 +453,7 @@ namespace Ryujinx.HLE.HOS Nacp controlData = new Nacp(controlFile.AsStream()); TitleName = CurrentTitle = controlData.Descriptions[(int)State.DesiredTitleLanguage].Title; - TitleID = metaData.Aci0.TitleId.ToString("x16"); - - CurrentTitle = controlData.Descriptions[(int)State.DesiredTitleLanguage].Title; + TitleID = metaData.Aci0.TitleId.ToString("x16"); if (string.IsNullOrWhiteSpace(CurrentTitle)) { @@ -551,18 +549,51 @@ namespace Ryujinx.HLE.HOS if (asetVersion == 0) { ulong iconOffset = reader.ReadUInt64(); - ulong iconSize = reader.ReadUInt64(); + ulong iconSize = reader.ReadUInt64(); ulong nacpOffset = reader.ReadUInt64(); - ulong nacpSize = reader.ReadUInt64(); + ulong nacpSize = reader.ReadUInt64(); ulong romfsOffset = reader.ReadUInt64(); - ulong romfsSize = reader.ReadUInt64(); + ulong romfsSize = reader.ReadUInt64(); if (romfsSize != 0) { Device.FileSystem.SetRomFs(new HomebrewRomFsStream(input, obj.FileSize + (long)romfsOffset)); } + + if (nacpSize != 0) + { + input.Seek(obj.FileSize + (long)nacpOffset, SeekOrigin.Begin); + using (MemoryStream stream = new MemoryStream(reader.ReadBytes((int)nacpSize))) + { + ControlData = new Nacp(stream); + } + + metaData.TitleName = ControlData.Descriptions[(int)State.DesiredTitleLanguage].Title; + + if (string.IsNullOrWhiteSpace(metaData.TitleName)) + { + metaData.TitleName = ControlData.Descriptions.ToList().Find(x => !string.IsNullOrWhiteSpace(x.Title)).Title; + } + + metaData.Aci0.TitleId = ControlData.PresenceGroupId; + + if (metaData.Aci0.TitleId == 0) + { + metaData.Aci0.TitleId = ControlData.SaveDataOwnerId; + } + + if (metaData.Aci0.TitleId == 0) + { + metaData.Aci0.TitleId = ControlData.AddOnContentBaseId - 0x1000; + } + + if (metaData.Aci0.TitleId.ToString("x16") == "fffffffffffff000") + { + metaData.Aci0.TitleId = 0000000000000000; + } + } } else { @@ -578,8 +609,8 @@ namespace Ryujinx.HLE.HOS ContentManager.LoadEntries(); - TitleID = CurrentTitle = metaData.Aci0.TitleId.ToString("x16"); - TitleName = metaData.TitleName; + TitleName = CurrentTitle = metaData.TitleName; + TitleID = metaData.Aci0.TitleId.ToString("x16"); ProgramLoader.LoadStaticObjects(this, metaData, new IExecutable[] { staticObject }); } @@ -687,7 +718,9 @@ namespace Ryujinx.HLE.HOS // It's only safe to release resources once all threads // have exited. ThreadCounter.Signal(); - ThreadCounter.Wait(); + //ThreadCounter.Wait(); // FIXME: Uncomment this + // BODY: Right now, guest processes don't exit properly because the logic waits for them to exit. + // BODY: However, this doesn't happen when you close the main window so we need to find a way to make them exit gracefully Scheduler.Dispose(); diff --git a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs index beb376f64..c6283afd4 100644 --- a/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs +++ b/Ryujinx.HLE/HOS/Kernel/Process/KProcess.cs @@ -60,8 +60,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Process public KProcessCapabilities Capabilities { get; private set; } - public long TitleId { get; private set; } - public long Pid { get; private set; } + public ulong TitleId { get; private set; } + public long Pid { get; private set; } private long _creationTimestamp; private ulong _entrypoint; diff --git a/Ryujinx.HLE/HOS/Kernel/Process/ProcessCreationInfo.cs b/Ryujinx.HLE/HOS/Kernel/Process/ProcessCreationInfo.cs index ba9f54bf3..7431d7dd2 100644 --- a/Ryujinx.HLE/HOS/Kernel/Process/ProcessCreationInfo.cs +++ b/Ryujinx.HLE/HOS/Kernel/Process/ProcessCreationInfo.cs @@ -4,8 +4,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Process { public string Name { get; private set; } - public int Category { get; private set; } - public long TitleId { get; private set; } + public int Category { get; private set; } + public ulong TitleId { get; private set; } public ulong CodeAddress { get; private set; } public int CodePagesCount { get; private set; } @@ -17,7 +17,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Process public ProcessCreationInfo( string name, int category, - long titleId, + ulong titleId, ulong codeAddress, int codePagesCount, int mmuFlags, diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcSystem.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcSystem.cs index 094e1935f..6525628f2 100644 --- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcSystem.cs +++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/SvcSystem.cs @@ -285,7 +285,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall break; - case 18: value = process.TitleId; break; + case 18: value = (long)process.TitleId; break; case 20: value = (long)process.UserExceptionContextAddress; break; diff --git a/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystemProxy.cs b/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystemProxy.cs index 16bfc00e2..ab425cffe 100644 --- a/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystemProxy.cs +++ b/Ryujinx.HLE/HOS/Services/FspSrv/IFileSystemProxy.cs @@ -225,7 +225,7 @@ namespace Ryujinx.HLE.HOS.Services.FspSrv { SaveSpaceId saveSpaceId = (SaveSpaceId)context.RequestData.ReadInt64(); - long titleId = context.RequestData.ReadInt64(); + ulong titleId = context.RequestData.ReadUInt64(); UInt128 userId = context.RequestData.ReadStruct(); diff --git a/Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs b/Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs index 36775b078..97fa1d74b 100644 --- a/Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs +++ b/Ryujinx.HLE/HOS/SystemState/SystemStateMgr.cs @@ -40,8 +40,6 @@ namespace Ryujinx.HLE.HOS.SystemState internal string ActiveAudioOutput { get; private set; } - public bool DiscordIntegrationEnabled { get; set; } - public bool DockedMode { get; set; } public ColorSet ThemeColor { get; set; } diff --git a/Ryujinx.HLE/Loaders/Executables/KernelInitialProcess.cs b/Ryujinx.HLE/Loaders/Executables/KernelInitialProcess.cs index af57cf2d0..d6a1cb66b 100644 --- a/Ryujinx.HLE/Loaders/Executables/KernelInitialProcess.cs +++ b/Ryujinx.HLE/Loaders/Executables/KernelInitialProcess.cs @@ -7,7 +7,7 @@ namespace Ryujinx.HLE.Loaders.Executables { public string Name { get; private set; } - public long TitleId { get; private set; } + public ulong TitleId { get; private set; } public int ProcessCategory { get; private set; } @@ -65,7 +65,7 @@ namespace Ryujinx.HLE.Loaders.Executables Name = ReadString(reader, 12); - TitleId = reader.ReadInt64(); + TitleId = reader.ReadUInt64(); ProcessCategory = reader.ReadInt32(); diff --git a/Ryujinx.HLE/Loaders/Npdm/ACI0.cs b/Ryujinx.HLE/Loaders/Npdm/ACI0.cs index af426bcfc..8350acf72 100644 --- a/Ryujinx.HLE/Loaders/Npdm/ACI0.cs +++ b/Ryujinx.HLE/Loaders/Npdm/ACI0.cs @@ -7,7 +7,7 @@ namespace Ryujinx.HLE.Loaders.Npdm { private const int Aci0Magic = 'A' << 0 | 'C' << 8 | 'I' << 16 | '0' << 24; - public long TitleId { get; private set; } + public ulong TitleId { get; set; } public int FsVersion { get; private set; } public ulong FsPermissionsBitmask { get; private set; } @@ -28,7 +28,7 @@ namespace Ryujinx.HLE.Loaders.Npdm stream.Seek(0xc, SeekOrigin.Current); - TitleId = reader.ReadInt64(); + TitleId = reader.ReadUInt64(); // Reserved. stream.Seek(8, SeekOrigin.Current); diff --git a/Ryujinx.HLE/Loaders/Npdm/Npdm.cs b/Ryujinx.HLE/Loaders/Npdm/Npdm.cs index 36449e40a..169e68daf 100644 --- a/Ryujinx.HLE/Loaders/Npdm/Npdm.cs +++ b/Ryujinx.HLE/Loaders/Npdm/Npdm.cs @@ -18,7 +18,7 @@ namespace Ryujinx.HLE.Loaders.Npdm public int PersonalMmHeapSize { get; private set; } public int ProcessCategory { get; private set; } public int MainThreadStackSize { get; private set; } - public string TitleName { get; private set; } + public string TitleName { get; set; } public byte[] ProductCode { get; private set; } public Aci0 Aci0 { get; private set; } diff --git a/Ryujinx.sln b/Ryujinx.sln index 8177f8617..18df571bb 100644 --- a/Ryujinx.sln +++ b/Ryujinx.sln @@ -28,7 +28,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Common", "Ryujinx.C EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Profiler", "Ryujinx.Profiler\Ryujinx.Profiler.csproj", "{4E69B67F-8CA7-42CF-A9E1-CCB0915DFB34}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ARMeilleure", "ARMeilleure\ARMeilleure.csproj", "{ABF09A5E-2D8B-4B6F-A51D-5CE414DDB15A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ARMeilleure", "ARMeilleure\ARMeilleure.csproj", "{ABF09A5E-2D8B-4B6F-A51D-5CE414DDB15A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -126,6 +126,14 @@ Global {4E69B67F-8CA7-42CF-A9E1-CCB0915DFB34}.Profile Release|Any CPU.Build.0 = Profile Release|Any CPU {4E69B67F-8CA7-42CF-A9E1-CCB0915DFB34}.Release|Any CPU.ActiveCfg = Release|Any CPU {4E69B67F-8CA7-42CF-A9E1-CCB0915DFB34}.Release|Any CPU.Build.0 = Release|Any CPU + {ABF09A5E-2D8B-4B6F-A51D-5CE414DDB15A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABF09A5E-2D8B-4B6F-A51D-5CE414DDB15A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABF09A5E-2D8B-4B6F-A51D-5CE414DDB15A}.Profile Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABF09A5E-2D8B-4B6F-A51D-5CE414DDB15A}.Profile Debug|Any CPU.Build.0 = Debug|Any CPU + {ABF09A5E-2D8B-4B6F-A51D-5CE414DDB15A}.Profile Release|Any CPU.ActiveCfg = Release|Any CPU + {ABF09A5E-2D8B-4B6F-A51D-5CE414DDB15A}.Profile Release|Any CPU.Build.0 = Release|Any CPU + {ABF09A5E-2D8B-4B6F-A51D-5CE414DDB15A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABF09A5E-2D8B-4B6F-A51D-5CE414DDB15A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Ryujinx/Config.jsonc b/Ryujinx/Config.json similarity index 55% rename from Ryujinx/Config.jsonc rename to Ryujinx/Config.json index 2acb7f38d..d6ed189ad 100644 --- a/Ryujinx/Config.jsonc +++ b/Ryujinx/Config.json @@ -1,75 +1,28 @@ { - "$schema": "./_schema.json", - - // Dump shaders in local directory (e.g. `C:\ShaderDumps`) "graphics_shaders_dump_path": "", - - // Enable printing debug logs "logging_enable_debug": false, - - // Enable printing stubbed calls logs "logging_enable_stub": true, - - // Enable printing information logs "logging_enable_info": true, - - // Enable printing warning logs "logging_enable_warn": true, - - // Enable printing error logs "logging_enable_error": true, - - // Enable printing guest logs "logging_enable_guest": true, - - // Enable printing FS access logs. fs_global_access_log_mode must be 2 or 3 "logging_enable_fs_access_log": false, - - // Filtered log classes, in a JSON array, eg. `[ "Loader", "ServiceFs" ]` "logging_filtered_classes": [ ], - - // Enable file logging "enable_file_log": true, - - // Change System Language - // System Language list: https://gist.github.com/HorrorTroll/b6e4a88d774c3c9b3bdf54d79a7ca43b "system_language": "AmericanEnglish", - - // Enable or disable Docked Mode "docked_mode": false, - - // Enable or disable Discord Rich Presence "enable_discord_integration": true, - - // Enable or disable Game Vsync "enable_vsync": true, - - // Enable or disable Multi-core scheduling of threads "enable_multicore_scheduling": true, - - // Enable integrity checks on Switch content files "enable_fs_integrity_checks": true, - - // Sets the "GlobalAccessLogMode". Possible modes are 0-3 - "fs_global_access_log_mode": 0, - - // Use old ChocolArm64 ARM emulator "enable_legacy_jit": false, - - // Enable or disable ignoring missing services, this may cause instability "ignore_missing_services": false, - - // The primary controller's type - // Supported Values: Handheld, ProController, NpadPair, NpadLeft, NpadRight "controller_type": "Handheld", - - // Enable or disable "direct keyboard access (HID) support" (Provides games access to your keyboard as a text entry device). - "enable_keyboard": false, - - // Keyboard Controls - // https://github.com/opentk/opentk/blob/master/src/OpenTK/Input/Key.cs + "gui_columns": [ true, true, true, true, true, true, true, true, true ], + "game_dirs": [], + "enable_custom_theme": false, + "custom_theme_path": "", "keyboard_controls": { - // Left JoyCon Keyboard Bindings "left_joycon": { "stick_up": "W", "stick_down": "S", @@ -84,8 +37,6 @@ "button_l": "E", "button_zl": "Q" }, - - // Right JoyCon Keyboard Bindings "right_joycon": { "stick_up": "I", "stick_down": "K", @@ -100,27 +51,15 @@ "button_r": "U", "button_zr": "O" }, - "hotkeys": { "toggle_vsync": "Tab" } }, - - // Controller Controls - "joystick_controls": { - // Whether or not to enable Controller support + "joystick_controls": { "enabled": true, - - // Controller Device Index "index": 0, - - // Controller Analog Stick Deadzone "deadzone": 0.05, - - // The value of how pressed down each trigger has to be in order to register a button press "trigger_threshold": 0.5, - - // Left JoyCon Controller Bindings "left_joycon": { "stick": "Axis0", "stick_button": "Button13", @@ -132,8 +71,6 @@ "button_l": "Button6", "button_zl": "Button8" }, - - // Right JoyCon Controller Bindings "right_joycon": { "stick": "Axis2", "stick_button": "Button14", diff --git a/Ryujinx/Configuration.cs b/Ryujinx/Configuration.cs index 7c9182052..53560521b 100644 --- a/Ryujinx/Configuration.cs +++ b/Ryujinx/Configuration.cs @@ -1,4 +1,4 @@ -using ARMeilleure; +using JsonPrettyPrinterPlus; using LibHac.Fs; using OpenTK.Input; using Ryujinx.Common; @@ -7,9 +7,12 @@ using Ryujinx.HLE; using Ryujinx.HLE.HOS.SystemState; using Ryujinx.HLE.HOS.Services; using Ryujinx.HLE.Input; +using Ryujinx.UI; using Ryujinx.UI.Input; using System; +using System.Collections.Generic; using System.IO; +using System.Text; using System.Threading.Tasks; using Utf8Json; using Utf8Json.Resolvers; @@ -26,112 +29,132 @@ namespace Ryujinx /// /// Dumps shaders in this local directory /// - public string GraphicsShadersDumpPath { get; private set; } + public string GraphicsShadersDumpPath { get; set; } /// /// Enables printing debug log messages /// - public bool LoggingEnableDebug { get; private set; } + public bool LoggingEnableDebug { get; set; } /// /// Enables printing stub log messages /// - public bool LoggingEnableStub { get; private set; } + public bool LoggingEnableStub { get; set; } /// /// Enables printing info log messages /// - public bool LoggingEnableInfo { get; private set; } + public bool LoggingEnableInfo { get; set; } /// /// Enables printing warning log messages /// - public bool LoggingEnableWarn { get; private set; } + public bool LoggingEnableWarn { get; set; } /// /// Enables printing error log messages /// - public bool LoggingEnableError { get; private set; } + public bool LoggingEnableError { get; set; } /// /// Enables printing guest log messages /// - public bool LoggingEnableGuest { get; private set; } + public bool LoggingEnableGuest { get; set; } /// /// Enables printing FS access log messages /// - public bool LoggingEnableFsAccessLog { get; private set; } + public bool LoggingEnableFsAccessLog { get; set; } /// /// Controls which log messages are written to the log targets /// - public LogClass[] LoggingFilteredClasses { get; private set; } + public LogClass[] LoggingFilteredClasses { get; set; } /// /// Enables or disables logging to a file on disk /// - public bool EnableFileLog { get; private set; } + public bool EnableFileLog { get; set; } /// /// Change System Language /// - public SystemLanguage SystemLanguage { get; private set; } + public SystemLanguage SystemLanguage { get; set; } /// /// Enables or disables Docked Mode /// - public bool DockedMode { get; private set; } + public bool DockedMode { get; set; } /// /// Enables or disables Discord Rich Presence /// - public bool EnableDiscordIntegration { get; private set; } + public bool EnableDiscordIntegration { get; set; } /// /// Enables or disables Vertical Sync /// - public bool EnableVsync { get; private set; } + public bool EnableVsync { get; set; } /// /// Enables or disables multi-core scheduling of threads /// - public bool EnableMulticoreScheduling { get; private set; } + public bool EnableMulticoreScheduling { get; set; } /// /// Enables integrity checks on Game content files /// - public bool EnableFsIntegrityChecks { get; private set; } + public bool EnableFsIntegrityChecks { get; set; } /// /// Enables FS access log output to the console. Possible modes are 0-3 /// - public int FsGlobalAccessLogMode { get; private set; } + public int FsGlobalAccessLogMode { get; set; } /// /// Use old ChocolArm64 ARM emulator /// - public bool EnableLegacyJit { get; private set; } + public bool EnableLegacyJit { get; set; } /// /// Enable or disable ignoring missing services /// - public bool IgnoreMissingServices { get; private set; } + public bool IgnoreMissingServices { get; set; } /// /// The primary controller's type /// - public ControllerStatus ControllerType { get; private set; } + public ControllerStatus ControllerType { get; set; } + + /// + /// Used to toggle columns in the GUI + /// + public List GuiColumns { get; set; } + + /// + /// A list of directories containing games to be used to load games into the games list + /// + public List GameDirs { get; set; } + + /// + /// Enable or disable custom themes in the GUI + /// + public bool EnableCustomTheme { get; set; } + + /// + /// Path to custom GUI theme + /// + public string CustomThemePath { get; set; } /// /// Enable or disable keyboard support (Independent from controllers binding) /// - public bool EnableKeyboard { get; private set; } + public bool EnableKeyboard { get; set; } /// /// Keyboard control bindings /// - public NpadKeyboard KeyboardControls { get; private set; } + public NpadKeyboard KeyboardControls { get; set; } /// /// Controller control bindings @@ -161,8 +184,8 @@ namespace Ryujinx /// The path to the JSON configuration file public static async Task LoadAsync(string path) { - var resolver = CompositeResolver.Create( - new[] { new ConfigurationEnumFormatter() }, + IJsonFormatterResolver resolver = CompositeResolver.Create( + new[] { new ConfigurationEnumFormatter() }, new[] { StandardResolver.AllowPrivateSnakeCase } ); @@ -172,18 +195,33 @@ namespace Ryujinx } } + /// + /// Save a configuration file to disk + /// + /// The path to the JSON configuration file + public static void SaveConfig(Configuration config, string path) + { + IJsonFormatterResolver resolver = CompositeResolver.Create( + new[] { new ConfigurationEnumFormatter() }, + new[] { StandardResolver.AllowPrivateSnakeCase } + ); + + byte[] data = JsonSerializer.Serialize(config, resolver); + File.WriteAllText(path, Encoding.UTF8.GetString(data, 0, data.Length).PrettyPrintJson()); + } + /// /// Configures a instance /// /// The instance to configure - public static void Configure(Switch device) + public static void InitialConfigure(Switch device) { if (Instance == null) { throw new InvalidOperationException("Configuration has not been loaded yet."); } - GraphicsConfig.ShadersDumpPath = Instance.GraphicsShadersDumpPath; + SwitchSettings.ConfigureSettings(Instance); Logger.AddTarget(new AsyncLogTargetWrapper( new ConsoleLogTarget(), @@ -194,65 +232,74 @@ namespace Ryujinx if (Instance.EnableFileLog) { Logger.AddTarget(new AsyncLogTargetWrapper( - new FileLogTarget(Path.Combine(Program.ApplicationDirectory, "Ryujinx.log")), + new FileLogTarget(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Ryujinx.log")), 1000, AsyncLogTargetOverflowAction.Block )); } - Logger.SetEnable(LogLevel.Debug, Instance.LoggingEnableDebug); - Logger.SetEnable(LogLevel.Stub, Instance.LoggingEnableStub); - Logger.SetEnable(LogLevel.Info, Instance.LoggingEnableInfo); - Logger.SetEnable(LogLevel.Warning, Instance.LoggingEnableWarn); - Logger.SetEnable(LogLevel.Error, Instance.LoggingEnableError); - Logger.SetEnable(LogLevel.Guest, Instance.LoggingEnableGuest); - Logger.SetEnable(LogLevel.AccessLog, Instance.LoggingEnableFsAccessLog); + Configure(device, Instance); + } - if (Instance.LoggingFilteredClasses.Length > 0) + public static void Configure(Switch device, Configuration SwitchConfig) + { + GraphicsConfig.ShadersDumpPath = SwitchConfig.GraphicsShadersDumpPath; + + Logger.SetEnable(LogLevel.Debug, SwitchConfig.LoggingEnableDebug ); + Logger.SetEnable(LogLevel.Stub, SwitchConfig.LoggingEnableStub ); + Logger.SetEnable(LogLevel.Info, SwitchConfig.LoggingEnableInfo ); + Logger.SetEnable(LogLevel.Warning, SwitchConfig.LoggingEnableWarn ); + Logger.SetEnable(LogLevel.Error, SwitchConfig.LoggingEnableError ); + Logger.SetEnable(LogLevel.Guest, SwitchConfig.LoggingEnableGuest ); + Logger.SetEnable(LogLevel.AccessLog, SwitchConfig.LoggingEnableFsAccessLog); + + if (SwitchConfig.LoggingFilteredClasses.Length > 0) { foreach (var logClass in EnumExtensions.GetValues()) { Logger.SetEnable(logClass, false); } - foreach (var logClass in Instance.LoggingFilteredClasses) + foreach (var logClass in SwitchConfig.LoggingFilteredClasses) { Logger.SetEnable(logClass, true); } } - device.System.State.DiscordIntegrationEnabled = Instance.EnableDiscordIntegration; + MainWindow.DiscordIntegrationEnabled = SwitchConfig.EnableDiscordIntegration; - device.EnableDeviceVsync = Instance.EnableVsync; + device.EnableDeviceVsync = SwitchConfig.EnableVsync; - device.System.State.DockedMode = Instance.DockedMode; + device.System.State.DockedMode = SwitchConfig.DockedMode; - device.System.State.SetLanguage(Instance.SystemLanguage); + device.System.State.SetLanguage(SwitchConfig.SystemLanguage); - if (Instance.EnableMulticoreScheduling) + if (SwitchConfig.EnableMulticoreScheduling) { device.System.EnableMultiCoreScheduling(); } - device.System.FsIntegrityCheckLevel = Instance.EnableFsIntegrityChecks + device.System.FsIntegrityCheckLevel = SwitchConfig.EnableFsIntegrityChecks ? IntegrityCheckLevel.ErrorOnInvalid : IntegrityCheckLevel.None; - device.System.GlobalAccessLogMode = Instance.FsGlobalAccessLogMode; + device.System.GlobalAccessLogMode = SwitchConfig.FsGlobalAccessLogMode; - device.System.UseLegacyJit = Instance.EnableLegacyJit; + device.System.UseLegacyJit = SwitchConfig.EnableLegacyJit; - ServiceConfiguration.IgnoreMissingServices = Instance.IgnoreMissingServices; - - if (Instance.JoystickControls.Enabled) + ServiceConfiguration.IgnoreMissingServices = SwitchConfig.IgnoreMissingServices; + } + + public static void ConfigureHid(Switch device, Configuration SwitchConfig) + { + if (SwitchConfig.JoystickControls.Enabled) { - if (!Joystick.GetState(Instance.JoystickControls.Index).IsConnected) + if (!Joystick.GetState(SwitchConfig.JoystickControls.Index).IsConnected) { - Instance.JoystickControls.SetEnabled(false); + SwitchConfig.JoystickControls.SetEnabled(false); } } - - device.Hid.InitializePrimaryController(Instance.ControllerType); + device.Hid.InitializePrimaryController(SwitchConfig.ControllerType); device.Hid.InitializeKeyboard(); } diff --git a/Ryujinx/Program.cs b/Ryujinx/Program.cs index d0518441b..5663a5d5b 100644 --- a/Ryujinx/Program.cs +++ b/Ryujinx/Program.cs @@ -1,169 +1,41 @@ -using DiscordRPC; -using Ryujinx.Audio; +using Gtk; using Ryujinx.Common.Logging; -using Ryujinx.Graphics.Gal; -using Ryujinx.Graphics.Gal.OpenGL; -using Ryujinx.HLE; using Ryujinx.Profiler; +using Ryujinx.UI; using System; using System.IO; -using System.Linq; namespace Ryujinx { class Program { - public static DiscordRpcClient DiscordClient; - - public static RichPresence DiscordPresence; - - public static string ApplicationDirectory => AppDomain.CurrentDomain.BaseDirectory; - static void Main(string[] args) { Console.Title = "Ryujinx Console"; - IGalRenderer renderer = new OglRenderer(); - - IAalOutput audioOut = InitializeAudioEngine(); - - Switch device = new Switch(renderer, audioOut); - - Configuration.Load(Path.Combine(ApplicationDirectory, "Config.jsonc")); - Configuration.Configure(device); - - Profile.Initialize(); + string systemPath = Environment.GetEnvironmentVariable("Path", EnvironmentVariableTarget.Machine); + Environment.SetEnvironmentVariable("Path", $"{Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin")};{systemPath}"); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit; - if (device.System.State.DiscordIntegrationEnabled) - { - DiscordClient = new DiscordRpcClient("568815339807309834"); - DiscordPresence = new RichPresence - { - Assets = new Assets - { - LargeImageKey = "ryujinx", - LargeImageText = "Ryujinx is an emulator for the Nintendo Switch" - } - }; + Profile.Initialize(); - DiscordClient.Initialize(); - DiscordClient.SetPresence(DiscordPresence); - } + Application.Init(); - if (args.Length == 1) - { - if (Directory.Exists(args[0])) - { - string[] romFsFiles = Directory.GetFiles(args[0], "*.istorage"); + Application gtkApplication = new Application("Ryujinx.Ryujinx", GLib.ApplicationFlags.None); + MainWindow mainWindow = new MainWindow(args, gtkApplication); - if (romFsFiles.Length == 0) - { - romFsFiles = Directory.GetFiles(args[0], "*.romfs"); - } + gtkApplication.Register(GLib.Cancellable.Current); + gtkApplication.AddWindow(mainWindow); + mainWindow.Show(); - if (romFsFiles.Length > 0) - { - Logger.PrintInfo(LogClass.Application, "Loading as cart with RomFS."); - device.LoadCart(args[0], romFsFiles[0]); - } - else - { - Logger.PrintInfo(LogClass.Application, "Loading as cart WITHOUT RomFS."); - device.LoadCart(args[0]); - } - } - else if (File.Exists(args[0])) - { - switch (Path.GetExtension(args[0]).ToLowerInvariant()) - { - case ".xci": - Logger.PrintInfo(LogClass.Application, "Loading as XCI."); - device.LoadXci(args[0]); - break; - case ".nca": - Logger.PrintInfo(LogClass.Application, "Loading as NCA."); - device.LoadNca(args[0]); - break; - case ".nsp": - case ".pfs0": - Logger.PrintInfo(LogClass.Application, "Loading as NSP."); - device.LoadNsp(args[0]); - break; - default: - Logger.PrintInfo(LogClass.Application, "Loading as homebrew."); - device.LoadProgram(args[0]); - break; - } - } - else - { - Logger.PrintWarning(LogClass.Application, "Please specify a valid XCI/NCA/NSP/PFS0/NRO file"); - } - } - else - { - Logger.PrintWarning(LogClass.Application, "Please specify the folder with the NSOs/IStorage or a NSO/NRO."); - } - - if (device.System.State.DiscordIntegrationEnabled) - { - if (File.ReadAllLines(Path.Combine(ApplicationDirectory, "RPsupported.dat")).Contains(device.System.TitleID)) - { - DiscordPresence.Assets.LargeImageKey = device.System.TitleID; - } - - string state = device.System.TitleID; - - if (state == null) - { - state = "Ryujinx"; - } - else - { - state = state.ToUpper(); - } - - string details = "Idling"; - - if (device.System.TitleName != null) - { - details = $"Playing {device.System.TitleName}"; - } - - DiscordPresence.Details = details; - DiscordPresence.State = state; - DiscordPresence.Assets.LargeImageText = device.System.TitleName; - DiscordPresence.Assets.SmallImageKey = "ryujinx"; - DiscordPresence.Assets.SmallImageText = "Ryujinx is an emulator for the Nintendo Switch"; - DiscordPresence.Timestamps = new Timestamps(DateTime.UtcNow); - - DiscordClient.SetPresence(DiscordPresence); - } - - using (GlScreen screen = new GlScreen(device, renderer)) - { - screen.MainLoop(); - - Profile.FinishProfiling(); - - device.Dispose(); - } - - audioOut.Dispose(); - - Logger.Shutdown(); - - DiscordClient.Dispose(); + Application.Run(); } private static void CurrentDomain_ProcessExit(object sender, EventArgs e) { Logger.Shutdown(); - - DiscordClient.Dispose(); } private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) @@ -175,29 +47,7 @@ namespace Ryujinx if (e.IsTerminating) { Logger.Shutdown(); - - DiscordClient.Dispose(); - } - } - - /// - /// Picks an audio output renderer supported on this machine - /// - /// An supported by this machine - private static IAalOutput InitializeAudioEngine() - { - if (SoundIoAudioOut.IsSupported) - { - return new SoundIoAudioOut(); - } - else if (OpenALAudioOut.IsSupported) - { - return new OpenALAudioOut(); - } - else - { - return new DummyAudioOut(); } } } -} +} \ No newline at end of file diff --git a/Ryujinx/RPsupported.dat b/Ryujinx/RPsupported.dat index ad2d715df..bcce8b495 100644 --- a/Ryujinx/RPsupported.dat +++ b/Ryujinx/RPsupported.dat @@ -2,10 +2,10 @@ 01000d700be88000 01000dc007e90000 01000e2003fa0000 -01002fc00c6d0000 0100225000fee000 010028d0045ce000 01002b30028f6000 +01002fc00c6d0000 010034e005c9c000 01004f8006a78000 010051f00ac5e000 @@ -15,12 +15,14 @@ 010065500b218000 010068f00aa78000 01006a800016e000 +010072800cbe8000 01007330027ee000 0100749009844000 01007a4008486000 010080b00ad66000 010094e00b52e000 01009aa000faa000 +01009b90006dc000 0100a4200a284000 0100a5c00d162000 0100ae000aebc000 @@ -31,8 +33,11 @@ 0100d6b00cd88000 0100d870045b6000 0100e0c00adac000 +0100e46006708000 0100e7200b272000 0100e9f00b882000 0100eab00605c000 0100efd00a4fa000 -0100f6a00a684000 \ No newline at end of file +0100f6a00a684000 +0100f9f00c696000 +051337133769a000 \ No newline at end of file diff --git a/Ryujinx/Ryujinx.csproj b/Ryujinx/Ryujinx.csproj index 80b03f46b..763feec72 100644 --- a/Ryujinx/Ryujinx.csproj +++ b/Ryujinx/Ryujinx.csproj @@ -18,8 +18,28 @@ false + + + + + + + + + + + + + + + + + + + + @@ -33,7 +53,10 @@ - + + PreserveNewest + + PreserveNewest diff --git a/Ryujinx/Theme.css b/Ryujinx/Theme.css new file mode 100644 index 000000000..286e092c8 --- /dev/null +++ b/Ryujinx/Theme.css @@ -0,0 +1,4054 @@ +/* GTK NAMED COLORS + ---------------- + use responsibly! */ +/* +widget text/foreground color */ +@define-color theme_fg_color white; +/* +text color for entries, views and content in general */ +@define-color theme_text_color white; +/* +widget base background color */ +@define-color theme_bg_color #292f34; +/* +text widgets and the like base background color */ +@define-color theme_base_color #292f34; +/* +base background color of selections */ +@define-color theme_selected_bg_color #FF5F57; +/* +text/foreground color of selections */ +@define-color theme_selected_fg_color white; +/* +base background color of insensitive widgets */ +@define-color insensitive_bg_color #252b2f; +/* +text foreground color of insensitive widgets */ +@define-color insensitive_fg_color rgba(232, 232, 232, 0.35); +/* +insensitive text widgets and the like base background color */ +@define-color insensitive_base_color rgba(232, 232, 232, 0.35); +/* +widget text/foreground color on backdrop windows */ +@define-color theme_unfocused_fg_color white; +/* +text color for entries, views and content in general on backdrop windows */ +@define-color theme_unfocused_text_color white; +/* +widget base background color on backdrop windows */ +@define-color theme_unfocused_bg_color #292f34; +/* +text widgets and the like base background color on backdrop windows */ +@define-color theme_unfocused_base_color #292f34; +/* +base background color of selections on backdrop windows */ +@define-color theme_unfocused_selected_bg_color rgba(255, 95, 87, 0.5); +/* +text/foreground color of selections on backdrop windows */ +@define-color theme_unfocused_selected_fg_color white; +/* +widgets main borders color */ +@define-color borders #5f6367; +/* +widgets main borders color on backdrop windows */ +@define-color unfocused_borders #5f6367; +/* +widgets main borders color insensitive */ +@define-color insensitive_borders rgba(86, 90, 94, 0.35); +/* +these are pretty self explicative */ +@define-color warning_color #e67e22; +@define-color error_color #e74c3c; +@define-color success_color #3498db; +@define-color content_view_bg #292f34; +* { + padding: 0; + -GtkToolButton-icon-spacing: 4; + -GtkTextView-error-underline-color: #e74c3c; + -GtkScrolled-window-overlay-scrolling: FALSE; + -GtkToolItemGroup-expander-size: 11; + -GtkExpander-expander-size: 16; + -GtkTreeView-expander-size: 11; + -GtkTreeView-horizontal-separator: 4; + -GtkWidget-text-handle-width: 20; + -GtkWidget-text-handle-height: 20; + -GtkDialog-button-spacing: 4; + -GtkDialog-action-area-border: 0; + -GtkStatusbar-shadow-type: none; + outline-width: 0px; } + +/*************** + * Base States * + ***************/ +* { + color: white +} + +.background { + color: white; + background-color: #292f34; } + .background:backdrop { + text-shadow: none; + -gtk-icon-shadow: none; + color: white; + background-color: #292f34; } + +/* + These wildcard seems unavoidable, need to investigate. + Wildcards are bad and troublesome, use them with care, + or better, just don't. + Everytime a wildcard is used a kitten dies, painfully. +*/ +*:disabled { + -gtk-icon-effect: dim; } + +.gtkstyle-fallback { + background-color: #292f34; + color: white; } + .gtkstyle-fallback:hover { + background-color: #3f4951; + color: white; } + .gtkstyle-fallback:active { + background-color: #131517; + color: white; } + .gtkstyle-fallback:disabled { + background-color: #252b2f; + color: rgba(232, 232, 232, 0.35); } + .gtkstyle-fallback:selected { + background-color: #FF5F57; + color: white; } + +.view text, +textview text, +.view { + color: white; + background-color: #292f34; } + .view text:backdrop, + textview text:backdrop, + .view:backdrop { + color: white; + background-color: #292f34; } + .view text:selected:focus, + textview text:selected:focus, .view text:selected, + textview text:selected, + .view:selected:focus, + .view:selected { + border-radius: 3px; } + +textview border { + background-color: #292f34; + background-image: image(#5f6367); + background-repeat: no-repeat; } + textview border:backdrop { + background-color: #292f34; } + textview border.bottom { + background-size: 100% 1px; + background-position: top; } + textview border.top { + background-size: 100% 1px; + background-position: bottom; } + textview border.left { + background-size: 1px 100%; + background-position: right; } + textview border.right { + background-size: 1px 100%; + background-position: left; } + +.rubberband, +rubberband, +flowbox rubberband, +treeview.view rubberband { + border: 1px solid #FF5F57; + background-color: rgba(255, 95, 87, 0.2); } + .rubberband:backdrop, + rubberband:backdrop, + treeview.view rubberband:backdrop { + border-color: #FF5F57; + background-color: rgba(255, 95, 87, 0.2); } + +flowbox flowboxchild { + padding: 3px; + border-radius: 3px; } + flowbox flowboxchild:selected { + outline-offset: 0px; } + +label.separator { + color: white; } + label.separator:backdrop { + color: white; } +label selection { + background-color: #FF5F57; + color: white; } +label:disabled { + color: rgba(232, 232, 232, 0.35); } + label:disabled:backdrop { + color: rgba(232, 232, 232, 0.35); } +label:backdrop { + color: white; } + +.dim-label, label.separator, +headerbar .subtitle { + opacity: 0.5; + text-shadow: none; } + +assistant .sidebar { + background-color: white; + border-top: 1px solid #5f6367; } + assistant .sidebar:backdrop { + background-color: white; + border-color: #5f6367; } +assistant.csd .sidebar { + border-top-style: none; } +assistant .sidebar label { + padding: 6px 12px; } +assistant .sidebar label.highlight { + background-color: #54595d; } + +.app-notification, +.app-notification.frame, .csd popover.background.touch-selection, .csd popover.background.magnifier, popover.background.touch-selection, popover.background.magnifier, .csd popover.background.osd, popover.background.osd, +.osd { + color: white; + border: 1px solid #5f6367; + background-color: rgba(41, 47, 52, 0.8); + background-clip: padding-box; + box-shadow: none; + text-shadow: none; + -gtk-icon-shadow: none; } + .app-notification:backdrop, popover.background.touch-selection:backdrop, popover.background.magnifier:backdrop, popover.background.osd:backdrop, + .osd:backdrop { + color: white; + background-color: rgba(41, 47, 52, 0.8); + -gtk-icon-shadow: none; } + +.view text:selected:focus, +textview text:selected:focus, .view text:selected, +textview text:selected, +.view:selected:focus, +.view:selected, .view text selection:focus, .view text selection, +textview text selection:focus, +textview text selection, flowbox flowboxchild:selected, spinbutton:not(.vertical) selection:focus, spinbutton:not(.vertical) selection, +entry selection:focus, +entry selection, row:selected, .sidebar:selected { + background-color: #FF5F57; + color: white; } + textview text:hover:selected:focus, .view text:hover:selected, + textview text:hover:selected, + .view:hover:selected, .view text selection:hover, + textview text selection:hover, flowbox flowboxchild:hover:selected, spinbutton:not(.vertical) selection:hover, + entry selection:hover, row:hover:selected, .sidebar:hover:selected { + background-color: #FF5F57; + color: white; } + textview text:backdrop:selected:focus, .view text:backdrop:selected, + textview text:backdrop:selected, + .view:backdrop:selected, .view text selection:backdrop, + textview text selection:backdrop, flowbox flowboxchild:backdrop:selected, label:backdrop selction, spinbutton:not(.vertical) selection:backdrop, + entry selection:backdrop, row:backdrop:selected, .sidebar:backdrop:selected { + background-color: rgba(255, 95, 87, 0.5); + color: #292f34; } + +.view text:selected:focus, +textview text:selected:focus, .view text:selected, +textview text:selected, +.view:selected:focus, +.view:selected, .view text selection:focus, .view text selection, +textview text selection:focus, +textview text selection, flowbox flowboxchild:selected, spinbutton:not(.vertical) selection:focus, spinbutton:not(.vertical) selection, +entry selection:focus, +entry selection, row:selected, .sidebar:selected { + background-color: #FF5F57; + border-radius: 0px; } + .view text:selected:focus, + textview text:selected:focus, .view text:selected, + textview text:selected, + .view:selected:focus, + .view:selected, .view text selection:focus, .view text selection, + textview text selection:focus, + textview text selection, flowbox flowboxchild:selected, spinbutton:not(.vertical) selection:focus, spinbutton:not(.vertical) selection, + entry selection:focus, + entry selection, row:selected, .sidebar:selected { + color: white; } + textview text:disabled:selected:focus, .view text:disabled:selected, + textview text:disabled:selected, + .view:disabled:selected, .view text selection:disabled, + textview text selection:disabled, flowbox flowboxchild:disabled:selected, label:disabled selection, spinbutton:not(.vertical) selection:disabled, + entry selection:disabled, row:disabled:selected, .sidebar:disabled:selected { + color: rgba(232, 232, 232, 0.35); } + textview text:backdrop:selected:focus, .view text:backdrop:selected, + textview text:backdrop:selected, + .view:backdrop:selected, .view text selection:backdrop, + textview text selection:backdrop, flowbox flowboxchild:backdrop:selected, label:backdrop selction, spinbutton:not(.vertical) selection:backdrop, + entry selection:backdrop, row:backdrop:selected, .sidebar:backdrop:selected { + color: white; } + .view text:backdrop:disabled:selected, + textview text:backdrop:disabled:selected, + .view:backdrop:disabled:selected, .view text selection:backdrop:disabled, + textview text selection:backdrop:disabled, flowbox flowboxchild:backdrop:disabled:selected, label:disabled selection:backdrop, label:backdrop selction:disabled, spinbutton:not(.vertical) selection:backdrop:disabled, + entry selection:backdrop:disabled, row:backdrop:disabled:selected, .sidebar:backdrop:disabled:selected { + color: rgba(232, 232, 232, 0.35); } + +/*********** + * Buttons * + ***********/ +@keyframes needs_attention { + from { + background-image: -gtk-gradient(radial, center center, 0, center center, 0.01, to(#FF5F57), to(transparent)); } + to { + background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(#FF5F57), to(transparent)); } } +notebook > header > tabs > arrow, .csd popover.background.touch-selection button, .csd popover.background.magnifier button, popover.background.touch-selection button, popover.background.magnifier button, +button, notebook > header > tabs > arrow.osd, +button.osd { + border: 1px solid; + border-radius: 3px; + padding: 4px 6px; + background-clip: border-box; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); + text-shadow: none; + -gtk-icon-shadow: none; + color: white; + border-color: #5f6367; + background-image: linear-gradient(to bottom, #292f35, #282e32); } + notebook > header > tabs > arrow, button.sidebar-button, popover.background.touch-selection button.flat, popover.background.magnifier button.flat, + button.flat, notebook > header > tabs > arrow.osd, button.osd.sidebar-button { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; + transition: none; } + notebook > header > tabs > arrow:hover, button.sidebar-button:hover, popover.background.touch-selection button.flat:hover, popover.background.magnifier button.flat:hover, + button.flat:hover, notebook > header > tabs > arrow.osd:hover { + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + transition-duration: 500ms; } + notebook > header > tabs > arrow:hover:active, button.sidebar-button:hover:active, + button.flat:hover:active { + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + notebook > header > tabs > arrow:checked, button.sidebar-button:checked, popover.background.touch-selection button.flat:checked, popover.background.magnifier button.flat:checked, + button.flat:checked, notebook > header > tabs > arrow.osd:checked { + background-color: #5f6367; } + notebook > header > tabs > arrow:hover, popover.background.touch-selection button:hover, popover.background.magnifier button:hover, + button:hover, notebook > header > tabs > arrow.osd:hover { + color: white; + border-color: #FF5F57; + -gtk-icon-effect: none; } + notebook > header > tabs > arrow:active, popover.background.touch-selection button:active, popover.background.magnifier button:active, + button:active, notebook > header > tabs > arrow.osd:active, notebook > header > tabs > arrow:checked, popover.background.touch-selection button:checked, popover.background.magnifier button:checked, + button:checked, notebook > header > tabs > arrow.osd:checked { + color: white; + border-color: #FF5F57; + background-image: linear-gradient(to bottom, #FF5F57, #FF5F57); + transition-duration: 50ms; } + notebook > header > tabs > arrow:active:hover, popover.background.touch-selection button:active:hover, popover.background.magnifier button:active:hover, + button:active:hover, notebook > header > tabs > arrow:checked:hover, popover.background.touch-selection button:checked:hover, popover.background.magnifier button:checked:hover, + button:checked:hover { + color: white; + border-color: #FF5F57; + background-image: linear-gradient(to bottom, #FF5F57, #FF5F57); } + notebook > header > tabs > arrow:backdrop, popover.background.touch-selection button:backdrop, popover.background.magnifier button:backdrop, + button:backdrop, notebook > header > tabs > arrow.osd:backdrop { + color: white; + border-color: #5f6367; + background-image: linear-gradient(to bottom, #292f35, #282e32); + -gtk-icon-effect: none; } + notebook > header > tabs > arrow:backdrop:active, popover.background.touch-selection button:backdrop:active, popover.background.magnifier button:backdrop:active, + button:backdrop:active, notebook > header > tabs > arrow:backdrop:checked, popover.background.touch-selection button:backdrop:checked, popover.background.magnifier button:backdrop:checked, + button:backdrop:checked { + color: white; + border-color: #FF5F57; + background-image: linear-gradient(to bottom, #FF5F57, #FF5F57); } + notebook > header > tabs > arrow:backdrop:disabled, popover.background.touch-selection button:backdrop:disabled, popover.background.magnifier button:backdrop:disabled, + button:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(86, 90, 94, 0.35); + background-image: linear-gradient(to bottom, #262b30, #24292e); } + notebook > header > tabs > arrow:backdrop:disabled > .label, popover.background.touch-selection button:backdrop:disabled > .label, popover.background.magnifier button:backdrop:disabled > .label, + button:backdrop:disabled > .label { + color: inherit; } + notebook > header > tabs > arrow:backdrop:disabled:active, + button:backdrop:disabled:active, notebook > header > tabs > arrow:backdrop:disabled:checked, + button:backdrop:disabled:checked { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(24, 171, 142, 0.35); + background-image: linear-gradient(to bottom, rgba(255, 95, 87, 0.35), rgba(255, 95, 87, 0.35)); } + notebook > header > tabs > arrow:backdrop:disabled:active > .label, popover.background.touch-selection button:backdrop:disabled:active > .label, popover.background.magnifier button:backdrop:disabled:active > .label, + button:backdrop:disabled:active > .label, notebook > header > tabs > arrow:backdrop:disabled:checked > .label, popover.background.touch-selection button:backdrop:disabled:checked > .label, popover.background.magnifier button:backdrop:disabled:checked > .label, + button:backdrop:disabled:checked > .label { + color: inherit; } + notebook > header > tabs > arrow:backdrop, button.sidebar-button:backdrop, popover.background.touch-selection button.flat:backdrop, popover.background.magnifier button.flat:backdrop, + button.flat:backdrop, notebook > header > tabs > arrow.osd:backdrop { + -gtk-icon-effect: none; + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; + color: white; } + notebook > header > tabs > arrow:disabled, button.sidebar-button:disabled, popover.background.touch-selection button.flat:disabled, popover.background.magnifier button.flat:disabled, + button.flat:disabled, notebook > header > tabs > arrow.osd:disabled { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; + color: rgba(232, 232, 232, 0.35); } + notebook > header > tabs > arrow:backdrop:disabled, button.sidebar-button:backdrop:disabled, + button.flat:backdrop:disabled { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; + color: rgba(232, 232, 232, 0.35); } + notebook > header > tabs > arrow:disabled, popover.background.touch-selection button:disabled, popover.background.magnifier button:disabled, + button:disabled, notebook > header > tabs > arrow.osd:disabled { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(86, 90, 94, 0.35); + background-image: linear-gradient(to bottom, #262b30, #24292e); } + notebook > header > tabs > arrow:disabled > .label, popover.background.touch-selection button:disabled > .label, popover.background.magnifier button:disabled > .label, + button:disabled > .label { + color: inherit; } + notebook > header > tabs > arrow:disabled:active, popover.background.touch-selection button:disabled:active, popover.background.magnifier button:disabled:active, + button:disabled:active, notebook > header > tabs > arrow:disabled:checked, popover.background.touch-selection button:disabled:checked, popover.background.magnifier button:disabled:checked, + button:disabled:checked { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(24, 171, 142, 0.35); + background-image: linear-gradient(to bottom, rgba(255, 95, 87, 0.35), rgba(255, 95, 87, 0.35)); } + notebook > header > tabs > arrow:disabled:active > .label, popover.background.touch-selection button:disabled:active > .label, popover.background.magnifier button:disabled:active > .label, + button:disabled:active > .label, notebook > header > tabs > arrow:disabled:checked > .label, popover.background.touch-selection button:disabled:checked > .label, popover.background.magnifier button:disabled:checked > .label, + button:disabled:checked > .label { + color: inherit; } + notebook > header > tabs > arrow separator, .csd popover.background.touch-selection button separator, .csd popover.background.magnifier button separator, popover.background.touch-selection button separator, popover.background.magnifier button separator, + button separator, notebook > header > tabs > arrow.osd separator, + button.osd separator { + background-color: transparent; + background-image: none; + color: transparent; } + +notebook > header > tabs > arrow.image-button, popover.background.touch-selection button.image-button, popover.background.magnifier button.image-button, +button.image-button { + min-width: 16px; + padding: 6px; } +notebook > header > tabs > arrow.text-button, popover.background.touch-selection button.text-button, popover.background.magnifier button.text-button, +button.text-button { + padding-left: 6px; + padding-right: 6px; } +notebook > header > tabs > arrow.text-button.image-button, popover.background.touch-selection button.text-button.image-button, popover.background.magnifier button.text-button.image-button, +button.text-button.image-button { + padding-left: 6px; + padding-right: 6px; } + notebook > header > tabs > arrow.text-button.image-button label, popover.background.touch-selection button.text-button.image-button label, popover.background.magnifier button.text-button.image-button label, + button.text-button.image-button label { + padding-left: 6px; + padding-right: 6px; } +row:selected popover.background.touch-selection button, popover.background.touch-selection row:selected button, row:selected popover.background.magnifier button, popover.background.magnifier row:selected button, row:selected +button { + border-color: #FF5F57; } + row:selected popover.background.touch-selection button.flat:not(:active):not(:checked):not(:hover):not(disabled), popover.background.touch-selection row:selected button.flat:not(:active):not(:checked):not(:hover):not(disabled), row:selected popover.background.magnifier button.flat:not(:active):not(:checked):not(:hover):not(disabled), popover.background.magnifier row:selected button.flat:not(:active):not(:checked):not(:hover):not(disabled), row:selected + button.flat:not(:active):not(:checked):not(:hover):not(disabled) { + color: white; + border-color: transparent; } + row:selected popover.background.touch-selection button.flat:not(:active):not(:checked):not(:hover):not(disabled):backdrop, popover.background.touch-selection row:selected button.flat:not(:active):not(:checked):not(:hover):not(disabled):backdrop, row:selected popover.background.magnifier button.flat:not(:active):not(:checked):not(:hover):not(disabled):backdrop, popover.background.magnifier row:selected button.flat:not(:active):not(:checked):not(:hover):not(disabled):backdrop, row:selected + button.flat:not(:active):not(:checked):not(:hover):not(disabled):backdrop { + color: white; } +popover.background.touch-selection button.suggested-action, popover.background.magnifier button.suggested-action, popover.background.touch-selection button.suggested-action.osd button, popover.background.magnifier button.suggested-action.osd button, +button.suggested-action, +button.suggested-action.osd popover.background.touch-selection button, +popover.background.touch-selection button.suggested-action.osd button, +button.suggested-action.osd popover.background.magnifier button, +popover.background.magnifier button.suggested-action.osd button, popover.background.touch-selection button.suggested-action.osd +button, popover.background.magnifier button.suggested-action.osd +button, +button.suggested-action.osd +button { + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); + text-shadow: none; + -gtk-icon-shadow: none; + color: white; + border-color: #FF5F57; + background-image: linear-gradient(to bottom, #FF5F57, #FF5F57); } + popover.background.touch-selection button.suggested-action.flat, popover.background.magnifier button.suggested-action.flat, popover.background.touch-selection button.suggested-action.osd button.flat, popover.background.magnifier button.suggested-action.osd button.flat, + button.suggested-action.flat, + button.suggested-action.osd popover.background.touch-selection button.flat, + popover.background.touch-selection button.suggested-action.osd button.flat, + button.suggested-action.osd popover.background.magnifier button.flat, + popover.background.magnifier button.suggested-action.osd button.flat, popover.background.touch-selection button.suggested-action.osd + button.flat, popover.background.magnifier button.suggested-action.osd + button.flat, + button.suggested-action.osd + button.flat { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; + color: #FF5F57; } + popover.background.touch-selection button.suggested-action:hover, popover.background.magnifier button.suggested-action:hover, popover.background.touch-selection button.suggested-action.osd button:hover, popover.background.magnifier button.suggested-action.osd button:hover, + button.suggested-action:hover, + button.suggested-action.osd popover.background.touch-selection button:hover, + popover.background.touch-selection button.suggested-action.osd button:hover, + button.suggested-action.osd popover.background.magnifier button:hover, + popover.background.magnifier button.suggested-action.osd button:hover, popover.background.touch-selection button.suggested-action.osd + button:hover, popover.background.magnifier button.suggested-action.osd + button:hover, + button.suggested-action.osd + button:hover { + color: white; + border-color: #FF5F57; } + popover.background.touch-selection button.suggested-action:active, popover.background.magnifier button.suggested-action:active, popover.background.touch-selection button.suggested-action:checked, popover.background.magnifier button.suggested-action:checked, popover.background.touch-selection button.suggested-action.osd button:active, popover.background.magnifier button.suggested-action.osd button:active, popover.background.touch-selection button.suggested-action.osd button:checked, popover.background.magnifier button.suggested-action.osd button:checked, + button.suggested-action:active, + button.suggested-action:checked, + button.suggested-action.osd popover.background.touch-selection button:active, + popover.background.touch-selection button.suggested-action.osd button:active, + button.suggested-action.osd popover.background.magnifier button:active, + popover.background.magnifier button.suggested-action.osd button:active, + button.suggested-action.osd popover.background.touch-selection button:checked, + popover.background.touch-selection button.suggested-action.osd button:checked, + button.suggested-action.osd popover.background.magnifier button:checked, + popover.background.magnifier button.suggested-action.osd button:checked, popover.background.touch-selection button.suggested-action.osd + button:active, popover.background.magnifier button.suggested-action.osd + button:active, popover.background.touch-selection button.suggested-action.osd + button:checked, popover.background.magnifier button.suggested-action.osd + button:checked, + button.suggested-action.osd + button:active, + button.suggested-action.osd + button:checked { + color: white; + border-color: #FF5F57; + background-image: linear-gradient(to bottom, #FF5F57, #FF5F57); } + popover.background.touch-selection button.suggested-action:backdrop, popover.background.magnifier button.suggested-action:backdrop, popover.background.touch-selection button.suggested-action.flat:backdrop, popover.background.magnifier button.suggested-action.flat:backdrop, popover.background.touch-selection button.suggested-action.osd button:backdrop, popover.background.magnifier button.suggested-action.osd button:backdrop, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop, popover.background.magnifier button.suggested-action.osd button.flat:backdrop, + button.suggested-action:backdrop, + button.suggested-action.flat:backdrop, + button.suggested-action.osd popover.background.touch-selection button:backdrop, + popover.background.touch-selection button.suggested-action.osd button:backdrop, + button.suggested-action.osd popover.background.magnifier button:backdrop, + popover.background.magnifier button.suggested-action.osd button:backdrop, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop, popover.background.touch-selection button.suggested-action.osd + button:backdrop, popover.background.magnifier button.suggested-action.osd + button:backdrop, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop, + button.suggested-action.osd + button:backdrop, + button.suggested-action.osd + button.flat:backdrop { + color: white; + border-color: #5f6367; + background-image: linear-gradient(to bottom, #FF5F57, #FF5F57); } + popover.background.touch-selection button.suggested-action:backdrop:active, popover.background.magnifier button.suggested-action:backdrop:active, popover.background.touch-selection button.suggested-action:backdrop:checked, popover.background.magnifier button.suggested-action:backdrop:checked, popover.background.touch-selection button.suggested-action.flat:backdrop:active, popover.background.magnifier button.suggested-action.flat:backdrop:active, popover.background.touch-selection button.suggested-action.flat:backdrop:checked, popover.background.magnifier button.suggested-action.flat:backdrop:checked, popover.background.touch-selection button.suggested-action.osd button:backdrop:active, popover.background.magnifier button.suggested-action.osd button:backdrop:active, popover.background.touch-selection button.suggested-action.osd button:backdrop:checked, popover.background.magnifier button.suggested-action.osd button:backdrop:checked, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:active, popover.background.magnifier button.suggested-action.osd button.flat:backdrop:active, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:checked, popover.background.magnifier button.suggested-action.osd button.flat:backdrop:checked, + button.suggested-action:backdrop:active, + button.suggested-action:backdrop:checked, + button.suggested-action.flat:backdrop:active, + button.suggested-action.flat:backdrop:checked, + button.suggested-action.osd popover.background.touch-selection button:backdrop:active, + popover.background.touch-selection button.suggested-action.osd button:backdrop:active, + button.suggested-action.osd popover.background.magnifier button:backdrop:active, + popover.background.magnifier button.suggested-action.osd button:backdrop:active, + button.suggested-action.osd popover.background.touch-selection button:backdrop:checked, + popover.background.touch-selection button.suggested-action.osd button:backdrop:checked, + button.suggested-action.osd popover.background.magnifier button:backdrop:checked, + popover.background.magnifier button.suggested-action.osd button:backdrop:checked, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:active, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:active, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop:active, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop:active, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:checked, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:checked, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop:checked, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop:checked, popover.background.touch-selection button.suggested-action.osd + button:backdrop:active, popover.background.magnifier button.suggested-action.osd + button:backdrop:active, popover.background.touch-selection button.suggested-action.osd + button:backdrop:checked, popover.background.magnifier button.suggested-action.osd + button:backdrop:checked, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop:active, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop:active, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop:checked, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop:checked, + button.suggested-action.osd + button:backdrop:active, + button.suggested-action.osd + button:backdrop:checked, + button.suggested-action.osd + button.flat:backdrop:active, + button.suggested-action.osd + button.flat:backdrop:checked { + color: white; + border-color: #FF5F57; + background-image: linear-gradient(to bottom, #FF5F57, #FF5F57); } + popover.background.touch-selection button.suggested-action:backdrop:disabled, popover.background.magnifier button.suggested-action:backdrop:disabled, popover.background.touch-selection button.suggested-action.flat:backdrop:disabled, popover.background.magnifier button.suggested-action.flat:backdrop:disabled, popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled, popover.background.magnifier button.suggested-action.osd button:backdrop:disabled, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled, popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled, + button.suggested-action:backdrop:disabled, + button.suggested-action.flat:backdrop:disabled, + button.suggested-action.osd popover.background.touch-selection button:backdrop:disabled, + popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled, + button.suggested-action.osd popover.background.magnifier button:backdrop:disabled, + popover.background.magnifier button.suggested-action.osd button:backdrop:disabled, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:disabled, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop:disabled, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled, popover.background.touch-selection button.suggested-action.osd + button:backdrop:disabled, popover.background.magnifier button.suggested-action.osd + button:backdrop:disabled, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop:disabled, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop:disabled, + button.suggested-action.osd + button:backdrop:disabled, + button.suggested-action.osd + button.flat:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(86, 90, 94, 0.35); + background-image: linear-gradient(to bottom, #262b30, #24292e); } + popover.background.touch-selection button.suggested-action:backdrop:disabled > .label, popover.background.magnifier button.suggested-action:backdrop:disabled > .label, popover.background.touch-selection button.suggested-action.flat:backdrop:disabled > .label, popover.background.magnifier button.suggested-action.flat:backdrop:disabled > .label, popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled > .label, popover.background.magnifier button.suggested-action.osd popover.background.touch-selection button:backdrop:disabled > .label, popover.background.touch-selection button.suggested-action.osd popover.background.magnifier button:backdrop:disabled > .label, popover.background.magnifier button.suggested-action.osd button:backdrop:disabled > .label, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled > .label, popover.background.magnifier button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:disabled > .label, popover.background.touch-selection button.suggested-action.osd popover.background.magnifier button.flat:backdrop:disabled > .label, popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled > .label, + button.suggested-action:backdrop:disabled > .label, + button.suggested-action.flat:backdrop:disabled > .label, + button.suggested-action.osd popover.background.touch-selection button:backdrop:disabled > .label, + popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled > .label, + button.suggested-action.osd popover.background.magnifier button:backdrop:disabled > .label, + popover.background.magnifier button.suggested-action.osd button:backdrop:disabled > .label, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:disabled > .label, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled > .label, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop:disabled > .label, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled > .label, popover.background.touch-selection button.suggested-action.osd + button:backdrop:disabled > .label, popover.background.magnifier button.suggested-action.osd + button:backdrop:disabled > .label, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop:disabled > .label, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop:disabled > .label, + button.suggested-action.osd + button:backdrop:disabled > .label, + button.suggested-action.osd + button.flat:backdrop:disabled > .label { + color: inherit; } + popover.background.touch-selection button.suggested-action:backdrop:disabled:active, popover.background.magnifier button.suggested-action:backdrop:disabled:active, popover.background.touch-selection button.suggested-action:backdrop:disabled:checked, popover.background.magnifier button.suggested-action:backdrop:disabled:checked, popover.background.touch-selection button.suggested-action.flat:backdrop:disabled:active, popover.background.magnifier button.suggested-action.flat:backdrop:disabled:active, popover.background.touch-selection button.suggested-action.flat:backdrop:disabled:checked, popover.background.magnifier button.suggested-action.flat:backdrop:disabled:checked, popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled:active, popover.background.magnifier button.suggested-action.osd button:backdrop:disabled:active, popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled:checked, popover.background.magnifier button.suggested-action.osd button:backdrop:disabled:checked, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled:active, popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled:active, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled:checked, popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled:checked, + button.suggested-action:backdrop:disabled:active, + button.suggested-action:backdrop:disabled:checked, + button.suggested-action.flat:backdrop:disabled:active, + button.suggested-action.flat:backdrop:disabled:checked, + button.suggested-action.osd popover.background.touch-selection button:backdrop:disabled:active, + popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled:active, + button.suggested-action.osd popover.background.magnifier button:backdrop:disabled:active, + popover.background.magnifier button.suggested-action.osd button:backdrop:disabled:active, + button.suggested-action.osd popover.background.touch-selection button:backdrop:disabled:checked, + popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled:checked, + button.suggested-action.osd popover.background.magnifier button:backdrop:disabled:checked, + popover.background.magnifier button.suggested-action.osd button:backdrop:disabled:checked, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:disabled:active, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled:active, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop:disabled:active, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled:active, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:disabled:checked, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled:checked, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop:disabled:checked, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled:checked, popover.background.touch-selection button.suggested-action.osd + button:backdrop:disabled:active, popover.background.magnifier button.suggested-action.osd + button:backdrop:disabled:active, popover.background.touch-selection button.suggested-action.osd + button:backdrop:disabled:checked, popover.background.magnifier button.suggested-action.osd + button:backdrop:disabled:checked, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop:disabled:active, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop:disabled:active, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop:disabled:checked, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop:disabled:checked, + button.suggested-action.osd + button:backdrop:disabled:active, + button.suggested-action.osd + button:backdrop:disabled:checked, + button.suggested-action.osd + button.flat:backdrop:disabled:active, + button.suggested-action.osd + button.flat:backdrop:disabled:checked { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(24, 171, 142, 0.35); + background-image: linear-gradient(to bottom, rgba(255, 95, 87, 0.35), rgba(255, 95, 87, 0.35)); } + popover.background.touch-selection button.suggested-action:backdrop:disabled:active > .label, popover.background.magnifier button.suggested-action:backdrop:disabled:active > .label, popover.background.touch-selection button.suggested-action:backdrop:disabled:checked > .label, popover.background.magnifier button.suggested-action:backdrop:disabled:checked > .label, popover.background.touch-selection button.suggested-action.flat:backdrop:disabled:active > .label, popover.background.magnifier button.suggested-action.flat:backdrop:disabled:active > .label, popover.background.touch-selection button.suggested-action.flat:backdrop:disabled:checked > .label, popover.background.magnifier button.suggested-action.flat:backdrop:disabled:checked > .label, popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled:active > .label, popover.background.magnifier button.suggested-action.osd popover.background.touch-selection button:backdrop:disabled:active > .label, popover.background.touch-selection button.suggested-action.osd popover.background.magnifier button:backdrop:disabled:active > .label, popover.background.magnifier button.suggested-action.osd button:backdrop:disabled:active > .label, popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled:checked > .label, popover.background.magnifier button.suggested-action.osd popover.background.touch-selection button:backdrop:disabled:checked > .label, popover.background.touch-selection button.suggested-action.osd popover.background.magnifier button:backdrop:disabled:checked > .label, popover.background.magnifier button.suggested-action.osd button:backdrop:disabled:checked > .label, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled:active > .label, popover.background.magnifier button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:disabled:active > .label, popover.background.touch-selection button.suggested-action.osd popover.background.magnifier button.flat:backdrop:disabled:active > .label, popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled:active > .label, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled:checked > .label, popover.background.magnifier button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:disabled:checked > .label, popover.background.touch-selection button.suggested-action.osd popover.background.magnifier button.flat:backdrop:disabled:checked > .label, popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled:checked > .label, + button.suggested-action:backdrop:disabled:active > .label, + button.suggested-action:backdrop:disabled:checked > .label, + button.suggested-action.flat:backdrop:disabled:active > .label, + button.suggested-action.flat:backdrop:disabled:checked > .label, + button.suggested-action.osd popover.background.touch-selection button:backdrop:disabled:active > .label, + popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled:active > .label, + button.suggested-action.osd popover.background.magnifier button:backdrop:disabled:active > .label, + popover.background.magnifier button.suggested-action.osd button:backdrop:disabled:active > .label, + button.suggested-action.osd popover.background.touch-selection button:backdrop:disabled:checked > .label, + popover.background.touch-selection button.suggested-action.osd button:backdrop:disabled:checked > .label, + button.suggested-action.osd popover.background.magnifier button:backdrop:disabled:checked > .label, + popover.background.magnifier button.suggested-action.osd button:backdrop:disabled:checked > .label, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:disabled:active > .label, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled:active > .label, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop:disabled:active > .label, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled:active > .label, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:disabled:checked > .label, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled:checked > .label, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop:disabled:checked > .label, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled:checked > .label, popover.background.touch-selection button.suggested-action.osd + button:backdrop:disabled:active > .label, popover.background.magnifier button.suggested-action.osd + button:backdrop:disabled:active > .label, popover.background.touch-selection button.suggested-action.osd + button:backdrop:disabled:checked > .label, popover.background.magnifier button.suggested-action.osd + button:backdrop:disabled:checked > .label, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop:disabled:active > .label, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop:disabled:active > .label, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop:disabled:checked > .label, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop:disabled:checked > .label, + button.suggested-action.osd + button:backdrop:disabled:active > .label, + button.suggested-action.osd + button:backdrop:disabled:checked > .label, + button.suggested-action.osd + button.flat:backdrop:disabled:active > .label, + button.suggested-action.osd + button.flat:backdrop:disabled:checked > .label { + color: inherit; } + popover.background.touch-selection button.suggested-action.flat:backdrop, popover.background.magnifier button.suggested-action.flat:backdrop, popover.background.touch-selection button.suggested-action.flat:disabled, popover.background.magnifier button.suggested-action.flat:disabled, popover.background.touch-selection button.suggested-action.flat:backdrop:disabled, popover.background.magnifier button.suggested-action.flat:backdrop:disabled, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop, popover.background.magnifier button.suggested-action.osd button.flat:backdrop, popover.background.touch-selection button.suggested-action.osd button.flat:disabled, popover.background.magnifier button.suggested-action.osd button.flat:disabled, popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled, popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled, + button.suggested-action.flat:backdrop, + button.suggested-action.flat:disabled, + button.suggested-action.flat:backdrop:disabled, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop, + button.suggested-action.osd popover.background.touch-selection button.flat:disabled, + popover.background.touch-selection button.suggested-action.osd button.flat:disabled, + button.suggested-action.osd popover.background.magnifier button.flat:disabled, + popover.background.magnifier button.suggested-action.osd button.flat:disabled, + button.suggested-action.osd popover.background.touch-selection button.flat:backdrop:disabled, + popover.background.touch-selection button.suggested-action.osd button.flat:backdrop:disabled, + button.suggested-action.osd popover.background.magnifier button.flat:backdrop:disabled, + popover.background.magnifier button.suggested-action.osd button.flat:backdrop:disabled, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop, popover.background.touch-selection button.suggested-action.osd + button.flat:disabled, popover.background.magnifier button.suggested-action.osd + button.flat:disabled, popover.background.touch-selection button.suggested-action.osd + button.flat:backdrop:disabled, popover.background.magnifier button.suggested-action.osd + button.flat:backdrop:disabled, + button.suggested-action.osd + button.flat:backdrop, + button.suggested-action.osd + button.flat:disabled, + button.suggested-action.osd + button.flat:backdrop:disabled { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; + color: rgba(255, 95, 87, 0.8); } + popover.background.touch-selection button.suggested-action:disabled, popover.background.magnifier button.suggested-action:disabled, popover.background.touch-selection button.suggested-action.osd button:disabled, popover.background.magnifier button.suggested-action.osd button:disabled, + button.suggested-action:disabled, + button.suggested-action.osd popover.background.touch-selection button:disabled, + popover.background.touch-selection button.suggested-action.osd button:disabled, + button.suggested-action.osd popover.background.magnifier button:disabled, + popover.background.magnifier button.suggested-action.osd button:disabled, popover.background.touch-selection button.suggested-action.osd + button:disabled, popover.background.magnifier button.suggested-action.osd + button:disabled, + button.suggested-action.osd + button:disabled { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(86, 90, 94, 0.35); + background-image: linear-gradient(to bottom, #262b30, #24292e); } + popover.background.touch-selection button.suggested-action:disabled > .label, popover.background.magnifier button.suggested-action:disabled > .label, popover.background.touch-selection button.suggested-action.osd button:disabled > .label, popover.background.magnifier button.suggested-action.osd popover.background.touch-selection button:disabled > .label, popover.background.touch-selection button.suggested-action.osd popover.background.magnifier button:disabled > .label, popover.background.magnifier button.suggested-action.osd button:disabled > .label, + button.suggested-action:disabled > .label, + button.suggested-action.osd popover.background.touch-selection button:disabled > .label, + popover.background.touch-selection button.suggested-action.osd button:disabled > .label, + button.suggested-action.osd popover.background.magnifier button:disabled > .label, + popover.background.magnifier button.suggested-action.osd button:disabled > .label, popover.background.touch-selection button.suggested-action.osd + button:disabled > .label, popover.background.magnifier button.suggested-action.osd + button:disabled > .label, + button.suggested-action.osd + button:disabled > .label { + color: inherit; } + popover.background.touch-selection button.suggested-action:disabled:active, popover.background.magnifier button.suggested-action:disabled:active, popover.background.touch-selection button.suggested-action:disabled:checked, popover.background.magnifier button.suggested-action:disabled:checked, popover.background.touch-selection button.suggested-action.osd button:disabled:active, popover.background.magnifier button.suggested-action.osd button:disabled:active, popover.background.touch-selection button.suggested-action.osd button:disabled:checked, popover.background.magnifier button.suggested-action.osd button:disabled:checked, + button.suggested-action:disabled:active, + button.suggested-action:disabled:checked, + button.suggested-action.osd popover.background.touch-selection button:disabled:active, + popover.background.touch-selection button.suggested-action.osd button:disabled:active, + button.suggested-action.osd popover.background.magnifier button:disabled:active, + popover.background.magnifier button.suggested-action.osd button:disabled:active, + button.suggested-action.osd popover.background.touch-selection button:disabled:checked, + popover.background.touch-selection button.suggested-action.osd button:disabled:checked, + button.suggested-action.osd popover.background.magnifier button:disabled:checked, + popover.background.magnifier button.suggested-action.osd button:disabled:checked, popover.background.touch-selection button.suggested-action.osd + button:disabled:active, popover.background.magnifier button.suggested-action.osd + button:disabled:active, popover.background.touch-selection button.suggested-action.osd + button:disabled:checked, popover.background.magnifier button.suggested-action.osd + button:disabled:checked, + button.suggested-action.osd + button:disabled:active, + button.suggested-action.osd + button:disabled:checked { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(24, 171, 142, 0.35); + background-image: linear-gradient(to bottom, rgba(255, 95, 87, 0.35), rgba(255, 95, 87, 0.35)); } + popover.background.touch-selection button.suggested-action:disabled:active > .label, popover.background.magnifier button.suggested-action:disabled:active > .label, popover.background.touch-selection button.suggested-action:disabled:checked > .label, popover.background.magnifier button.suggested-action:disabled:checked > .label, popover.background.touch-selection button.suggested-action.osd button:disabled:active > .label, popover.background.magnifier button.suggested-action.osd popover.background.touch-selection button:disabled:active > .label, popover.background.touch-selection button.suggested-action.osd popover.background.magnifier button:disabled:active > .label, popover.background.magnifier button.suggested-action.osd button:disabled:active > .label, popover.background.touch-selection button.suggested-action.osd button:disabled:checked > .label, popover.background.magnifier button.suggested-action.osd popover.background.touch-selection button:disabled:checked > .label, popover.background.touch-selection button.suggested-action.osd popover.background.magnifier button:disabled:checked > .label, popover.background.magnifier button.suggested-action.osd button:disabled:checked > .label, + button.suggested-action:disabled:active > .label, + button.suggested-action:disabled:checked > .label, + button.suggested-action.osd popover.background.touch-selection button:disabled:active > .label, + popover.background.touch-selection button.suggested-action.osd button:disabled:active > .label, + button.suggested-action.osd popover.background.magnifier button:disabled:active > .label, + popover.background.magnifier button.suggested-action.osd button:disabled:active > .label, + button.suggested-action.osd popover.background.touch-selection button:disabled:checked > .label, + popover.background.touch-selection button.suggested-action.osd button:disabled:checked > .label, + button.suggested-action.osd popover.background.magnifier button:disabled:checked > .label, + popover.background.magnifier button.suggested-action.osd button:disabled:checked > .label, popover.background.touch-selection button.suggested-action.osd + button:disabled:active > .label, popover.background.magnifier button.suggested-action.osd + button:disabled:active > .label, popover.background.touch-selection button.suggested-action.osd + button:disabled:checked > .label, popover.background.magnifier button.suggested-action.osd + button:disabled:checked > .label, + button.suggested-action.osd + button:disabled:active > .label, + button.suggested-action.osd + button:disabled:checked > .label { + color: inherit; } +popover.background.touch-selection button.destructive-action, popover.background.magnifier button.destructive-action, popover.background.touch-selection button.destructive-action.osd button, popover.background.magnifier button.destructive-action.osd button, +button.destructive-action, +button.destructive-action.osd popover.background.touch-selection button, +popover.background.touch-selection button.destructive-action.osd button, +button.destructive-action.osd popover.background.magnifier button, +popover.background.magnifier button.destructive-action.osd button, popover.background.touch-selection button.destructive-action.osd +button, popover.background.magnifier button.destructive-action.osd +button, +button.destructive-action.osd +button { + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); + text-shadow: none; + -gtk-icon-shadow: none; + color: white; + border-color: #e74c3c; + background-image: linear-gradient(to bottom, #e74e3f, #e64534); } + popover.background.touch-selection button.destructive-action.flat, popover.background.magnifier button.destructive-action.flat, popover.background.touch-selection button.destructive-action.osd button.flat, popover.background.magnifier button.destructive-action.osd button.flat, + button.destructive-action.flat, + button.destructive-action.osd popover.background.touch-selection button.flat, + popover.background.touch-selection button.destructive-action.osd button.flat, + button.destructive-action.osd popover.background.magnifier button.flat, + popover.background.magnifier button.destructive-action.osd button.flat, popover.background.touch-selection button.destructive-action.osd + button.flat, popover.background.magnifier button.destructive-action.osd + button.flat, + button.destructive-action.osd + button.flat { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; + color: #e74c3c; } + popover.background.touch-selection button.destructive-action:hover, popover.background.magnifier button.destructive-action:hover, popover.background.touch-selection button.destructive-action.osd button:hover, popover.background.magnifier button.destructive-action.osd button:hover, + button.destructive-action:hover, + button.destructive-action.osd popover.background.touch-selection button:hover, + popover.background.touch-selection button.destructive-action.osd button:hover, + button.destructive-action.osd popover.background.magnifier button:hover, + popover.background.magnifier button.destructive-action.osd button:hover, popover.background.touch-selection button.destructive-action.osd + button:hover, popover.background.magnifier button.destructive-action.osd + button:hover, + button.destructive-action.osd + button:hover { + color: white; + border-color: #e74c3c; } + popover.background.touch-selection button.destructive-action:active, popover.background.magnifier button.destructive-action:active, popover.background.touch-selection button.destructive-action:checked, popover.background.magnifier button.destructive-action:checked, popover.background.touch-selection button.destructive-action.osd button:active, popover.background.magnifier button.destructive-action.osd button:active, popover.background.touch-selection button.destructive-action.osd button:checked, popover.background.magnifier button.destructive-action.osd button:checked, + button.destructive-action:active, + button.destructive-action:checked, + button.destructive-action.osd popover.background.touch-selection button:active, + popover.background.touch-selection button.destructive-action.osd button:active, + button.destructive-action.osd popover.background.magnifier button:active, + popover.background.magnifier button.destructive-action.osd button:active, + button.destructive-action.osd popover.background.touch-selection button:checked, + popover.background.touch-selection button.destructive-action.osd button:checked, + button.destructive-action.osd popover.background.magnifier button:checked, + popover.background.magnifier button.destructive-action.osd button:checked, popover.background.touch-selection button.destructive-action.osd + button:active, popover.background.magnifier button.destructive-action.osd + button:active, popover.background.touch-selection button.destructive-action.osd + button:checked, popover.background.magnifier button.destructive-action.osd + button:checked, + button.destructive-action.osd + button:active, + button.destructive-action.osd + button:checked { + color: white; + border-color: #e74c3c; + background-image: linear-gradient(to bottom, #e85344, #e43624); } + popover.background.touch-selection button.destructive-action:backdrop, popover.background.magnifier button.destructive-action:backdrop, popover.background.touch-selection button.destructive-action.flat:backdrop, popover.background.magnifier button.destructive-action.flat:backdrop, popover.background.touch-selection button.destructive-action.osd button:backdrop, popover.background.magnifier button.destructive-action.osd button:backdrop, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop, popover.background.magnifier button.destructive-action.osd button.flat:backdrop, + button.destructive-action:backdrop, + button.destructive-action.flat:backdrop, + button.destructive-action.osd popover.background.touch-selection button:backdrop, + popover.background.touch-selection button.destructive-action.osd button:backdrop, + button.destructive-action.osd popover.background.magnifier button:backdrop, + popover.background.magnifier button.destructive-action.osd button:backdrop, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop, popover.background.touch-selection button.destructive-action.osd + button:backdrop, popover.background.magnifier button.destructive-action.osd + button:backdrop, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop, + button.destructive-action.osd + button:backdrop, + button.destructive-action.osd + button.flat:backdrop { + color: white; + border-color: #5f6367; + background-image: linear-gradient(to bottom, #e74e3f, #e64534); } + popover.background.touch-selection button.destructive-action:backdrop:active, popover.background.magnifier button.destructive-action:backdrop:active, popover.background.touch-selection button.destructive-action:backdrop:checked, popover.background.magnifier button.destructive-action:backdrop:checked, popover.background.touch-selection button.destructive-action.flat:backdrop:active, popover.background.magnifier button.destructive-action.flat:backdrop:active, popover.background.touch-selection button.destructive-action.flat:backdrop:checked, popover.background.magnifier button.destructive-action.flat:backdrop:checked, popover.background.touch-selection button.destructive-action.osd button:backdrop:active, popover.background.magnifier button.destructive-action.osd button:backdrop:active, popover.background.touch-selection button.destructive-action.osd button:backdrop:checked, popover.background.magnifier button.destructive-action.osd button:backdrop:checked, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:active, popover.background.magnifier button.destructive-action.osd button.flat:backdrop:active, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:checked, popover.background.magnifier button.destructive-action.osd button.flat:backdrop:checked, + button.destructive-action:backdrop:active, + button.destructive-action:backdrop:checked, + button.destructive-action.flat:backdrop:active, + button.destructive-action.flat:backdrop:checked, + button.destructive-action.osd popover.background.touch-selection button:backdrop:active, + popover.background.touch-selection button.destructive-action.osd button:backdrop:active, + button.destructive-action.osd popover.background.magnifier button:backdrop:active, + popover.background.magnifier button.destructive-action.osd button:backdrop:active, + button.destructive-action.osd popover.background.touch-selection button:backdrop:checked, + popover.background.touch-selection button.destructive-action.osd button:backdrop:checked, + button.destructive-action.osd popover.background.magnifier button:backdrop:checked, + popover.background.magnifier button.destructive-action.osd button:backdrop:checked, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:active, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:active, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop:active, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop:active, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:checked, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:checked, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop:checked, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop:checked, popover.background.touch-selection button.destructive-action.osd + button:backdrop:active, popover.background.magnifier button.destructive-action.osd + button:backdrop:active, popover.background.touch-selection button.destructive-action.osd + button:backdrop:checked, popover.background.magnifier button.destructive-action.osd + button:backdrop:checked, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop:active, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop:active, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop:checked, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop:checked, + button.destructive-action.osd + button:backdrop:active, + button.destructive-action.osd + button:backdrop:checked, + button.destructive-action.osd + button.flat:backdrop:active, + button.destructive-action.osd + button.flat:backdrop:checked { + color: white; + border-color: #e74c3c; + background-image: linear-gradient(to bottom, #e85344, #e43624); } + popover.background.touch-selection button.destructive-action:backdrop:disabled, popover.background.magnifier button.destructive-action:backdrop:disabled, popover.background.touch-selection button.destructive-action.flat:backdrop:disabled, popover.background.magnifier button.destructive-action.flat:backdrop:disabled, popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled, popover.background.magnifier button.destructive-action.osd button:backdrop:disabled, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled, popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled, + button.destructive-action:backdrop:disabled, + button.destructive-action.flat:backdrop:disabled, + button.destructive-action.osd popover.background.touch-selection button:backdrop:disabled, + popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled, + button.destructive-action.osd popover.background.magnifier button:backdrop:disabled, + popover.background.magnifier button.destructive-action.osd button:backdrop:disabled, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:disabled, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop:disabled, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled, popover.background.touch-selection button.destructive-action.osd + button:backdrop:disabled, popover.background.magnifier button.destructive-action.osd + button:backdrop:disabled, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop:disabled, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop:disabled, + button.destructive-action.osd + button:backdrop:disabled, + button.destructive-action.osd + button.flat:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(86, 90, 94, 0.35); + background-image: linear-gradient(to bottom, #262b30, #24292e); } + popover.background.touch-selection button.destructive-action:backdrop:disabled > .label, popover.background.magnifier button.destructive-action:backdrop:disabled > .label, popover.background.touch-selection button.destructive-action.flat:backdrop:disabled > .label, popover.background.magnifier button.destructive-action.flat:backdrop:disabled > .label, popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled > .label, popover.background.magnifier button.destructive-action.osd popover.background.touch-selection button:backdrop:disabled > .label, popover.background.touch-selection button.destructive-action.osd popover.background.magnifier button:backdrop:disabled > .label, popover.background.magnifier button.destructive-action.osd button:backdrop:disabled > .label, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled > .label, popover.background.magnifier button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:disabled > .label, popover.background.touch-selection button.destructive-action.osd popover.background.magnifier button.flat:backdrop:disabled > .label, popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled > .label, + button.destructive-action:backdrop:disabled > .label, + button.destructive-action.flat:backdrop:disabled > .label, + button.destructive-action.osd popover.background.touch-selection button:backdrop:disabled > .label, + popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled > .label, + button.destructive-action.osd popover.background.magnifier button:backdrop:disabled > .label, + popover.background.magnifier button.destructive-action.osd button:backdrop:disabled > .label, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:disabled > .label, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled > .label, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop:disabled > .label, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled > .label, popover.background.touch-selection button.destructive-action.osd + button:backdrop:disabled > .label, popover.background.magnifier button.destructive-action.osd + button:backdrop:disabled > .label, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop:disabled > .label, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop:disabled > .label, + button.destructive-action.osd + button:backdrop:disabled > .label, + button.destructive-action.osd + button.flat:backdrop:disabled > .label { + color: inherit; } + popover.background.touch-selection button.destructive-action:backdrop:disabled:active, popover.background.magnifier button.destructive-action:backdrop:disabled:active, popover.background.touch-selection button.destructive-action:backdrop:disabled:checked, popover.background.magnifier button.destructive-action:backdrop:disabled:checked, popover.background.touch-selection button.destructive-action.flat:backdrop:disabled:active, popover.background.magnifier button.destructive-action.flat:backdrop:disabled:active, popover.background.touch-selection button.destructive-action.flat:backdrop:disabled:checked, popover.background.magnifier button.destructive-action.flat:backdrop:disabled:checked, popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled:active, popover.background.magnifier button.destructive-action.osd button:backdrop:disabled:active, popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled:checked, popover.background.magnifier button.destructive-action.osd button:backdrop:disabled:checked, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled:active, popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled:active, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled:checked, popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled:checked, + button.destructive-action:backdrop:disabled:active, + button.destructive-action:backdrop:disabled:checked, + button.destructive-action.flat:backdrop:disabled:active, + button.destructive-action.flat:backdrop:disabled:checked, + button.destructive-action.osd popover.background.touch-selection button:backdrop:disabled:active, + popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled:active, + button.destructive-action.osd popover.background.magnifier button:backdrop:disabled:active, + popover.background.magnifier button.destructive-action.osd button:backdrop:disabled:active, + button.destructive-action.osd popover.background.touch-selection button:backdrop:disabled:checked, + popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled:checked, + button.destructive-action.osd popover.background.magnifier button:backdrop:disabled:checked, + popover.background.magnifier button.destructive-action.osd button:backdrop:disabled:checked, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:disabled:active, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled:active, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop:disabled:active, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled:active, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:disabled:checked, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled:checked, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop:disabled:checked, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled:checked, popover.background.touch-selection button.destructive-action.osd + button:backdrop:disabled:active, popover.background.magnifier button.destructive-action.osd + button:backdrop:disabled:active, popover.background.touch-selection button.destructive-action.osd + button:backdrop:disabled:checked, popover.background.magnifier button.destructive-action.osd + button:backdrop:disabled:checked, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop:disabled:active, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop:disabled:active, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop:disabled:checked, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop:disabled:checked, + button.destructive-action.osd + button:backdrop:disabled:active, + button.destructive-action.osd + button:backdrop:disabled:checked, + button.destructive-action.osd + button.flat:backdrop:disabled:active, + button.destructive-action.osd + button.flat:backdrop:disabled:checked { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(228, 54, 36, 0.35); + background-image: linear-gradient(to bottom, rgba(229, 61, 44, 0.35), rgba(214, 44, 26, 0.35)); } + popover.background.touch-selection button.destructive-action:backdrop:disabled:active > .label, popover.background.magnifier button.destructive-action:backdrop:disabled:active > .label, popover.background.touch-selection button.destructive-action:backdrop:disabled:checked > .label, popover.background.magnifier button.destructive-action:backdrop:disabled:checked > .label, popover.background.touch-selection button.destructive-action.flat:backdrop:disabled:active > .label, popover.background.magnifier button.destructive-action.flat:backdrop:disabled:active > .label, popover.background.touch-selection button.destructive-action.flat:backdrop:disabled:checked > .label, popover.background.magnifier button.destructive-action.flat:backdrop:disabled:checked > .label, popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled:active > .label, popover.background.magnifier button.destructive-action.osd popover.background.touch-selection button:backdrop:disabled:active > .label, popover.background.touch-selection button.destructive-action.osd popover.background.magnifier button:backdrop:disabled:active > .label, popover.background.magnifier button.destructive-action.osd button:backdrop:disabled:active > .label, popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled:checked > .label, popover.background.magnifier button.destructive-action.osd popover.background.touch-selection button:backdrop:disabled:checked > .label, popover.background.touch-selection button.destructive-action.osd popover.background.magnifier button:backdrop:disabled:checked > .label, popover.background.magnifier button.destructive-action.osd button:backdrop:disabled:checked > .label, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled:active > .label, popover.background.magnifier button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:disabled:active > .label, popover.background.touch-selection button.destructive-action.osd popover.background.magnifier button.flat:backdrop:disabled:active > .label, popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled:active > .label, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled:checked > .label, popover.background.magnifier button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:disabled:checked > .label, popover.background.touch-selection button.destructive-action.osd popover.background.magnifier button.flat:backdrop:disabled:checked > .label, popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled:checked > .label, + button.destructive-action:backdrop:disabled:active > .label, + button.destructive-action:backdrop:disabled:checked > .label, + button.destructive-action.flat:backdrop:disabled:active > .label, + button.destructive-action.flat:backdrop:disabled:checked > .label, + button.destructive-action.osd popover.background.touch-selection button:backdrop:disabled:active > .label, + popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled:active > .label, + button.destructive-action.osd popover.background.magnifier button:backdrop:disabled:active > .label, + popover.background.magnifier button.destructive-action.osd button:backdrop:disabled:active > .label, + button.destructive-action.osd popover.background.touch-selection button:backdrop:disabled:checked > .label, + popover.background.touch-selection button.destructive-action.osd button:backdrop:disabled:checked > .label, + button.destructive-action.osd popover.background.magnifier button:backdrop:disabled:checked > .label, + popover.background.magnifier button.destructive-action.osd button:backdrop:disabled:checked > .label, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:disabled:active > .label, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled:active > .label, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop:disabled:active > .label, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled:active > .label, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:disabled:checked > .label, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled:checked > .label, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop:disabled:checked > .label, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled:checked > .label, popover.background.touch-selection button.destructive-action.osd + button:backdrop:disabled:active > .label, popover.background.magnifier button.destructive-action.osd + button:backdrop:disabled:active > .label, popover.background.touch-selection button.destructive-action.osd + button:backdrop:disabled:checked > .label, popover.background.magnifier button.destructive-action.osd + button:backdrop:disabled:checked > .label, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop:disabled:active > .label, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop:disabled:active > .label, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop:disabled:checked > .label, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop:disabled:checked > .label, + button.destructive-action.osd + button:backdrop:disabled:active > .label, + button.destructive-action.osd + button:backdrop:disabled:checked > .label, + button.destructive-action.osd + button.flat:backdrop:disabled:active > .label, + button.destructive-action.osd + button.flat:backdrop:disabled:checked > .label { + color: inherit; } + popover.background.touch-selection button.destructive-action.flat:backdrop, popover.background.magnifier button.destructive-action.flat:backdrop, popover.background.touch-selection button.destructive-action.flat:disabled, popover.background.magnifier button.destructive-action.flat:disabled, popover.background.touch-selection button.destructive-action.flat:backdrop:disabled, popover.background.magnifier button.destructive-action.flat:backdrop:disabled, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop, popover.background.magnifier button.destructive-action.osd button.flat:backdrop, popover.background.touch-selection button.destructive-action.osd button.flat:disabled, popover.background.magnifier button.destructive-action.osd button.flat:disabled, popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled, popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled, + button.destructive-action.flat:backdrop, + button.destructive-action.flat:disabled, + button.destructive-action.flat:backdrop:disabled, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop, + button.destructive-action.osd popover.background.touch-selection button.flat:disabled, + popover.background.touch-selection button.destructive-action.osd button.flat:disabled, + button.destructive-action.osd popover.background.magnifier button.flat:disabled, + popover.background.magnifier button.destructive-action.osd button.flat:disabled, + button.destructive-action.osd popover.background.touch-selection button.flat:backdrop:disabled, + popover.background.touch-selection button.destructive-action.osd button.flat:backdrop:disabled, + button.destructive-action.osd popover.background.magnifier button.flat:backdrop:disabled, + popover.background.magnifier button.destructive-action.osd button.flat:backdrop:disabled, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop, popover.background.touch-selection button.destructive-action.osd + button.flat:disabled, popover.background.magnifier button.destructive-action.osd + button.flat:disabled, popover.background.touch-selection button.destructive-action.osd + button.flat:backdrop:disabled, popover.background.magnifier button.destructive-action.osd + button.flat:backdrop:disabled, + button.destructive-action.osd + button.flat:backdrop, + button.destructive-action.osd + button.flat:disabled, + button.destructive-action.osd + button.flat:backdrop:disabled { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; + color: rgba(231, 76, 60, 0.8); } + popover.background.touch-selection button.destructive-action:disabled, popover.background.magnifier button.destructive-action:disabled, popover.background.touch-selection button.destructive-action.osd button:disabled, popover.background.magnifier button.destructive-action.osd button:disabled, + button.destructive-action:disabled, + button.destructive-action.osd popover.background.touch-selection button:disabled, + popover.background.touch-selection button.destructive-action.osd button:disabled, + button.destructive-action.osd popover.background.magnifier button:disabled, + popover.background.magnifier button.destructive-action.osd button:disabled, popover.background.touch-selection button.destructive-action.osd + button:disabled, popover.background.magnifier button.destructive-action.osd + button:disabled, + button.destructive-action.osd + button:disabled { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(86, 90, 94, 0.35); + background-image: linear-gradient(to bottom, #262b30, #24292e); } + popover.background.touch-selection button.destructive-action:disabled > .label, popover.background.magnifier button.destructive-action:disabled > .label, popover.background.touch-selection button.destructive-action.osd button:disabled > .label, popover.background.magnifier button.destructive-action.osd popover.background.touch-selection button:disabled > .label, popover.background.touch-selection button.destructive-action.osd popover.background.magnifier button:disabled > .label, popover.background.magnifier button.destructive-action.osd button:disabled > .label, + button.destructive-action:disabled > .label, + button.destructive-action.osd popover.background.touch-selection button:disabled > .label, + popover.background.touch-selection button.destructive-action.osd button:disabled > .label, + button.destructive-action.osd popover.background.magnifier button:disabled > .label, + popover.background.magnifier button.destructive-action.osd button:disabled > .label, popover.background.touch-selection button.destructive-action.osd + button:disabled > .label, popover.background.magnifier button.destructive-action.osd + button:disabled > .label, + button.destructive-action.osd + button:disabled > .label { + color: inherit; } + popover.background.touch-selection button.destructive-action:disabled:active, popover.background.magnifier button.destructive-action:disabled:active, popover.background.touch-selection button.destructive-action:disabled:checked, popover.background.magnifier button.destructive-action:disabled:checked, popover.background.touch-selection button.destructive-action.osd button:disabled:active, popover.background.magnifier button.destructive-action.osd button:disabled:active, popover.background.touch-selection button.destructive-action.osd button:disabled:checked, popover.background.magnifier button.destructive-action.osd button:disabled:checked, + button.destructive-action:disabled:active, + button.destructive-action:disabled:checked, + button.destructive-action.osd popover.background.touch-selection button:disabled:active, + popover.background.touch-selection button.destructive-action.osd button:disabled:active, + button.destructive-action.osd popover.background.magnifier button:disabled:active, + popover.background.magnifier button.destructive-action.osd button:disabled:active, + button.destructive-action.osd popover.background.touch-selection button:disabled:checked, + popover.background.touch-selection button.destructive-action.osd button:disabled:checked, + button.destructive-action.osd popover.background.magnifier button:disabled:checked, + popover.background.magnifier button.destructive-action.osd button:disabled:checked, popover.background.touch-selection button.destructive-action.osd + button:disabled:active, popover.background.magnifier button.destructive-action.osd + button:disabled:active, popover.background.touch-selection button.destructive-action.osd + button:disabled:checked, popover.background.magnifier button.destructive-action.osd + button:disabled:checked, + button.destructive-action.osd + button:disabled:active, + button.destructive-action.osd + button:disabled:checked { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(24, 171, 142, 0.35); + background-image: linear-gradient(to bottom, rgba(229, 61, 44, 0.35), rgba(214, 44, 26, 0.35)); } + popover.background.touch-selection button.destructive-action:disabled:active > .label, popover.background.magnifier button.destructive-action:disabled:active > .label, popover.background.touch-selection button.destructive-action:disabled:checked > .label, popover.background.magnifier button.destructive-action:disabled:checked > .label, popover.background.touch-selection button.destructive-action.osd button:disabled:active > .label, popover.background.magnifier button.destructive-action.osd popover.background.touch-selection button:disabled:active > .label, popover.background.touch-selection button.destructive-action.osd popover.background.magnifier button:disabled:active > .label, popover.background.magnifier button.destructive-action.osd button:disabled:active > .label, popover.background.touch-selection button.destructive-action.osd button:disabled:checked > .label, popover.background.magnifier button.destructive-action.osd popover.background.touch-selection button:disabled:checked > .label, popover.background.touch-selection button.destructive-action.osd popover.background.magnifier button:disabled:checked > .label, popover.background.magnifier button.destructive-action.osd button:disabled:checked > .label, + button.destructive-action:disabled:active > .label, + button.destructive-action:disabled:checked > .label, + button.destructive-action.osd popover.background.touch-selection button:disabled:active > .label, + popover.background.touch-selection button.destructive-action.osd button:disabled:active > .label, + button.destructive-action.osd popover.background.magnifier button:disabled:active > .label, + popover.background.magnifier button.destructive-action.osd button:disabled:active > .label, + button.destructive-action.osd popover.background.touch-selection button:disabled:checked > .label, + popover.background.touch-selection button.destructive-action.osd button:disabled:checked > .label, + button.destructive-action.osd popover.background.magnifier button:disabled:checked > .label, + popover.background.magnifier button.destructive-action.osd button:disabled:checked > .label, popover.background.touch-selection button.destructive-action.osd + button:disabled:active > .label, popover.background.magnifier button.destructive-action.osd + button:disabled:active > .label, popover.background.touch-selection button.destructive-action.osd + button:disabled:checked > .label, popover.background.magnifier button.destructive-action.osd + button:disabled:checked > .label, + button.destructive-action.osd + button:disabled:active > .label, + button.destructive-action.osd + button:disabled:checked > .label { + color: inherit; } +popover.background.touch-selection .stack-switcher > button > label, popover.background.magnifier .stack-switcher > button > label, .stack-switcher > +button > label { + padding-left: 6px; + padding-right: 6px; } +popover.background.touch-selection .stack-switcher > button > image, popover.background.magnifier .stack-switcher > button > image, .stack-switcher > +button > image { + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + padding-bottom: 3px; } +popover.background.touch-selection .stack-switcher > button.text-button, popover.background.magnifier .stack-switcher > button.text-button, .stack-switcher > +button.text-button { + padding: 6px; } +popover.background.touch-selection .stack-switcher > button.image-button, popover.background.magnifier .stack-switcher > button.image-button, .stack-switcher > +button.image-button { + padding: 3px 0px; } +popover.background.touch-selection .stack-switcher > button.needs-attention:active > label, popover.background.magnifier .stack-switcher > button.needs-attention:active > label, popover.background.touch-selection .stack-switcher > button.needs-attention:active > image, popover.background.magnifier .stack-switcher > button.needs-attention:active > image, popover.background.touch-selection .stack-switcher > button.needs-attention:checked > label, popover.background.magnifier .stack-switcher > button.needs-attention:checked > label, popover.background.touch-selection .stack-switcher > button.needs-attention:checked > image, popover.background.magnifier .stack-switcher > button.needs-attention:checked > image, .stack-switcher > +button.needs-attention:active > label, .stack-switcher > +button.needs-attention:active > image, .stack-switcher > +button.needs-attention:checked > label, .stack-switcher > +button.needs-attention:checked > image { + animation: none; + background-image: none; } +.inline-toolbar popover.background.touch-selection button, popover.background.touch-selection .inline-toolbar button, .inline-toolbar popover.background.magnifier button, popover.background.magnifier .inline-toolbar button, .inline-toolbar popover.background.touch-selection button:backdrop, popover.background.touch-selection .inline-toolbar button:backdrop, .inline-toolbar popover.background.magnifier button:backdrop, popover.background.magnifier .inline-toolbar button:backdrop, .inline-toolbar +button, .inline-toolbar +button:backdrop { + border-radius: 3px; + border-width: 1px; } +.primary-toolbar popover.background.touch-selection button, popover.background.touch-selection .primary-toolbar button, .primary-toolbar popover.background.magnifier button, popover.background.magnifier .primary-toolbar button, .primary-toolbar +button { + -gtk-icon-shadow: none; } + +/************** + * ComboBoxes * + **************/ +combobox arrow { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); + min-height: 16px; + min-width: 16px; } + +popover.background.touch-selection .stack-switcher > button.needs-attention > label, popover.background.magnifier .stack-switcher > button.needs-attention > label, popover.background.touch-selection .stack-switcher > button.needs-attention > image, popover.background.magnifier .stack-switcher > button.needs-attention > image, .stack-switcher > +button.needs-attention > label, .stack-switcher > +button.needs-attention > image, stacksidebar.sidebar row.needs-attention > .label { + animation: needs_attention 150ms ease-in; + background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(#FF5F57), to(transparent)), -gtk-gradient(radial, center center, 0, center center, 0.5, to(white), to(transparent)); + background-size: 6px 6px, 6px 6px; + background-repeat: no-repeat; + background-position: right 3px, right 4px; } + .stack-switcher > + button.needs-attention > label:backdrop, .stack-switcher > + button.needs-attention > image:backdrop, stacksidebar.sidebar row.needs-attention > .label:backdrop { + background-size: 6px 6px, 0 0; } + .stack-switcher > + button.needs-attention > label:dir(rtl), .stack-switcher > + button.needs-attention > image:dir(rtl), stacksidebar.sidebar row.needs-attention > .label:dir(rtl) { + background-position: left 3px, left 4px; } + +.linked > combobox > box > button.combo:dir(ltr), .linked > combobox > box > button.combo:dir(rtl), .inline-toolbar popover.background.touch-selection button, popover.background.touch-selection .inline-toolbar button, .inline-toolbar popover.background.magnifier button, popover.background.magnifier .inline-toolbar button, .inline-toolbar +button, .inline-toolbar +button:backdrop, popover.background.touch-selection .linked > button, popover.background.magnifier .linked > button, .linked > +button, .linked > +button:hover, .linked > +button:active, .linked > +button:checked, .linked > +button:backdrop { + border-radius: 3px; } + .linked > combobox > box > button.combo:dir(rtl), .inline-toolbar popover.background.touch-selection button:dir(rtl), popover.background.touch-selection .inline-toolbar button:dir(rtl), .inline-toolbar popover.background.magnifier button:dir(rtl), popover.background.magnifier .inline-toolbar button:dir(rtl), .inline-toolbar + button:dir(rtl), popover.background.touch-selection .linked > button:dir(rtl), popover.background.magnifier .linked > button:dir(rtl), .linked > + button:dir(rtl) { + border-radius: 3px; } + +.inline-toolbar popover.background.touch-selection button, popover.background.touch-selection .inline-toolbar button, .inline-toolbar popover.background.magnifier button, popover.background.magnifier .inline-toolbar button, .inline-toolbar +button, .inline-toolbar +button:backdrop, popover.background.touch-selection .linked > button, popover.background.magnifier .linked > button, .linked > +button, .linked > +button:hover, .linked > +button:active, .linked > +button:checked, .linked > +button:backdrop { + margin-left: 2px; + margin-right: 2px; } + .inline-toolbar popover.background.touch-selection button:first-child, popover.background.touch-selection .inline-toolbar button:first-child, .inline-toolbar popover.background.magnifier button:first-child, popover.background.magnifier .inline-toolbar button:first-child, .inline-toolbar + button:first-child, popover.background.touch-selection .linked > button:first-child, popover.background.magnifier .linked > button:first-child, .linked > + button:first-child, combobox.linked button:nth-child(2):dir(rtl), .linked:not(.vertical) > combobox:first-child > box > button.combo { + border-radius: 3px; + border-style: solid; } + .inline-toolbar popover.background.touch-selection button:last-child, popover.background.touch-selection .inline-toolbar button:last-child, .inline-toolbar popover.background.magnifier button:last-child, popover.background.magnifier .inline-toolbar button:last-child, .inline-toolbar + button:last-child, popover.background.touch-selection .linked > button:last-child, popover.background.magnifier .linked > button:last-child, .linked > + button:last-child, combobox.linked button:nth-child(2):dir(ltr), .linked:not(.vertical) > combobox:last-child > box > button.combo { + border-radius: 3px; } + .inline-toolbar popover.background.touch-selection button:only-child, popover.background.touch-selection .inline-toolbar button:only-child, .inline-toolbar popover.background.magnifier button:only-child, popover.background.magnifier .inline-toolbar button:only-child, .inline-toolbar + button:only-child, popover.background.touch-selection .linked > button:only-child, popover.background.magnifier .linked > button:only-child, .linked > + button:only-child, .linked:not(.vertical) > combobox:only-child > box > button.combo { + border-radius: 3px; + border-style: solid; } + +.linked.vertical > combobox > box > button.combo, popover.background.touch-selection .linked.vertical > button, popover.background.magnifier .linked.vertical > button, .linked.vertical > +button, .linked.vertical > +button:hover, .linked.vertical > +button:active, .linked.vertical > +button:checked, .linked.vertical > +button:backdrop { + border-style: solid; + border-radius: 3px; } + +popover.background.touch-selection .linked.vertical > button:first-child, popover.background.magnifier .linked.vertical > button:first-child, .linked.vertical > +button:first-child, .linked.vertical > combobox:first-child > box > button.combo { + border-radius: 3px; } +popover.background.touch-selection .linked.vertical > button:last-child, popover.background.magnifier .linked.vertical > button:last-child, .linked.vertical > +button:last-child, .linked.vertical > combobox:last-child > box > button.combo { + border-radius: 3px; + border-style: solid; } +popover.background.touch-selection .linked.vertical > button:only-child, popover.background.magnifier .linked.vertical > button:only-child, .linked.vertical > +button:only-child, .linked.vertical > combobox:only-child > box > button.combo { + border-radius: 3px; + border-style: solid; } + +.app-notification button.flat, +.app-notification.frame button.flat, .app-notification button.flat:hover, +.app-notification.frame button.flat:hover, .app-notification button.flat:active, +.app-notification.frame button.flat:active, .app-notification button.flat:backdrop, .app-notification button.flat:disabled, .app-notification button.flat:backdrop:disabled, +.app-notification.frame button.flat:backdrop, +.app-notification.frame button.flat:disabled, +.app-notification.frame button.flat:backdrop:disabled, calendar.button, calendar.button:hover, calendar.button:active, calendar.button:backdrop, +headerbar button.flat:disabled, button:link, +button:visited, button:link:hover, button:link:active, button:link:checked, +button:visited:hover, +button:visited:active, +button:visited:checked, modelbutton.flat, popover.background checkbutton, +popover.background radiobutton, +.menuitem.button.flat, modelbutton.flat:backdrop, popover.background checkbutton:backdrop, +popover.background radiobutton:backdrop, modelbutton.flat:backdrop:hover, popover.background checkbutton:backdrop:hover, +popover.background radiobutton:backdrop:hover, +.menuitem.button.flat:backdrop, +.menuitem.button.flat:backdrop:hover, scrollbar button:backdrop, button.sidebar-button { + border-color: transparent; + background-color: transparent; + background-image: none; + box-shadow: none; + text-shadow: none; + -gtk-icon-shadow: none; } + +/**************** + * Text Entries * + ****************/ +spinbutton:not(.vertical), +entry { + min-height: 30px; + padding-left: 8px; + padding-right: 8px; + border: 1px solid; + border-radius: 3px; + transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + color: white; + border-color: #5f6367; + background-color: #292f34; + box-shadow: none; } + spinbutton:not(.vertical) image.left, + entry image.left { + padding-left: 0; + padding-right: 6px; } + spinbutton:not(.vertical) image.right, + entry image.right { + padding-left: 6px; + padding-right: 0; } + spinbutton.flat:focus:not(.vertical), spinbutton.flat:not(.vertical), + entry.flat:focus, + entry.flat { + min-height: 0; + padding: 2px; + color: white; + border-color: #5f6367; + background-color: #292f34; + box-shadow: none; } + spinbutton:focus:not(.vertical), + entry:focus { + border-color: #FF5F57; } + spinbutton:disabled:not(.vertical), + entry:disabled { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(86, 90, 94, 0.35); + background-color: #252b2f; } + spinbutton:backdrop:not(.vertical), + entry:backdrop { + color: white; + border-color: #5f6367; + background-color: #292f34; } + spinbutton:backdrop:disabled:not(.vertical), + entry:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(86, 90, 94, 0.35); + background-color: #252b2f; } + spinbutton.error:not(.vertical), + entry.error { + color: #e74c3c; + border-color: #e74c3c; + background-color: rgba(231, 76, 60, 0.5); } + spinbutton.error:focus:not(.vertical), + entry.error:focus { + border-color: #e74c3c; + background-color: rgba(231, 76, 60, 0.5); } + spinbutton.error:selected:not(.vertical), spinbutton.error:selected:focus:not(.vertical), + entry.error:selected, + entry.error:selected:focus { + background-color: #e74c3c; } + spinbutton.error:backdrop:not(.vertical), + entry.error:backdrop { + color: #e74c3c; + border-color: #e74c3c; + background-color: rgba(231, 76, 60, 0.5); } + spinbutton.warning:not(.vertical), + entry.warning { + color: #e67e22; + border-color: #e67e22; + background-color: rgba(230, 126, 34, 0.5); } + spinbutton.warning:focus:not(.vertical), + entry.warning:focus { + border-color: #e67e22; + background-color: rgba(230, 126, 34, 0.5); } + spinbutton.warning:selected:not(.vertical), spinbutton.warning:selected:focus:not(.vertical), + entry.warning:selected, + entry.warning:selected:focus { + background-color: #e67e22; } + spinbutton.warning:backdrop:not(.vertical), + entry.warning:backdrop { + color: #e67e22; + border-color: #e67e22; + background-color: rgba(230, 126, 34, 0.5); } + spinbutton:not(.vertical) image, + entry image { + color: white; } + spinbutton:not(.vertical) image:hover, + entry image:hover { + color: #FF5F57; } + spinbutton:not(.vertical) image:active, + entry image:active { + color: #FF5F57; } + spinbutton:not(.vertical) image:backdrop, + entry image:backdrop { + color: white; } +spinbutton:not(.vertical) progress, +entry progress { + margin: 1px; + border-radius: 0; + border-width: 0 0 2px; + border-color: #FF5F57; + border-style: solid; + background-image: none; + background-color: transparent; + box-shadow: none; } + spinbutton:not(.vertical) progress:backdrop, + entry progress:backdrop { + background-color: transparent; + border-color: rgba(255, 95, 87, 0.5); } + +treeview acceleditor > label { + background-color: #FF5F57; } + +treeview entry.flat, treeview entry { + border-radius: 0; + background-image: none; + background-color: #292f34; } + treeview entry.flat:focus, treeview entry:focus { + border-color: #FF5F57; } + +/********************* + * App Notifications * + *********************/ +.app-notification, +.app-notification.frame { + padding: 10px; + border-top-width: 0px; + border-radius: 0px 0px 3px 3px; } + .app-notification:backdrop, + .app-notification.frame:backdrop { + background-image: none; } + .app-notification button, + .app-notification.frame button { + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); + text-shadow: none; + -gtk-icon-shadow: none; + color: white; + border-color: #5f6367; + background-image: linear-gradient(to bottom, #292f35, #282e32); } + .app-notification button.flat, + .app-notification.frame button.flat { + -gtk-icon-shadow: none; + text-shadow: none; } + .app-notification button.flat:hover, + .app-notification.frame button.flat:hover { + color: #FF5F57; } + .app-notification button.flat:active, + .app-notification.frame button.flat:active { + color: #FF5F57; } + .app-notification button:hover, + .app-notification.frame button:hover { + color: white; + border-color: #FF5F57; } + .app-notification button:active, .app-notification button:checked, .app-notification button:backdrop:active, .app-notification button:backdrop:checked, + .app-notification.frame button:active, + .app-notification.frame button:checked, + .app-notification.frame button:backdrop:active, + .app-notification.frame button:backdrop:checked { + color: white; + border-color: #FF5F57; + background-image: linear-gradient(to bottom, #FF5F57, #FF5F57); } + .app-notification button:disabled, .app-notification button:backdrop:disabled, + .app-notification.frame button:disabled, + .app-notification.frame button:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(86, 90, 94, 0.35); + background-image: linear-gradient(to bottom, #262b30, #24292e); } + .app-notification button:disabled > .label, .app-notification button:backdrop:disabled > .label, + .app-notification.frame button:disabled > .label, + .app-notification.frame button:backdrop:disabled > .label { + color: inherit; } + .app-notification button:backdrop, + .app-notification.frame button:backdrop { + color: white; + border-color: #5f6367; + background-image: linear-gradient(to bottom, #292f35, #282e32); } + .app-notification border, + .app-notification.frame border { + border: none; } + +/************ + * Calendar * + ***********/ +calendar { + color: white; + border: 1px solid #5f6367; + background-color: #292f34; } + calendar:selected { + background-color: #5f6367; } + calendar.header { + border: 1px solid #5f6367; + border-radius: 0; + color: white; } + calendar.header:backdrop { + color: white; + border-color: #5f6367; } + calendar.button { + color: white; } + calendar.button:hover { + color: #FF5F57; } + calendar.button:active { + color: #FF5F57; } + calendar.button:backdrop { + color: white; } + calendar:indeterminate, calendar.highlight { + color: rgba(255, 255, 255, 0.5); } + calendar:indeterminate:backdrop, calendar.highlight:backdrop { + color: rgba(255, 255, 255, 0.5); } + calendar:backdrop { + color: white; + border-color: #5f6367; + background-color: #292f34; } + +/************************* + * Check and Radio items * + *************************/ +checkbutton.text-button, radiobutton.text-button { + padding: 2px 0; + outline-offset: 0; } + checkbutton.text-button label:not(:only-child):first-child, radiobutton.text-button label:not(:only-child):first-child { + margin-left: 4px; } + checkbutton.text-button label:not(:only-child):last-child, radiobutton.text-button label:not(:only-child):last-child { + margin-right: 4px; } + +check { + margin: 0 4px; + min-height: 18px; + min-width: 18px; + animation: none; + background-color: #FFFFFF; + color: #292f34 +} + +radio { + margin: 0 4px; + min-height: 18px; + min-width: 18px; + animation: none; + background-color: transparent; +} + +/***************** + * Color Chooser * + *****************/ +:selected colorswatch { + box-shadow: none; } + :selected colorswatch.overlay, :selected colorswatch.overlay:hover { + border-color: white; } +colorswatch:selected { + box-shadow: none; } +colorswatch.top, colorswatch.bottom, colorswatch.left, colorswatch:first-child:not(.overlay):not(.top), colorswatch.right, colorswatch:last-child:not(.overlay):not(.bottom), colorswatch:only-child:not(.overlay), colorswatch.top > .overlay, colorswatch.bottom > .overlay, colorswatch:first-child:not(.top) > .overlay, colorswatch:last-child:not(.bottom) > .overlay, colorswatch:only-child > .overlay { + border-radius: 3px; } +colorswatch:hover, colorswatch:hover:selected { + background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0) 50%); + box-shadow: inset 0 1px rgba(255, 255, 255, 0.4); } + colorswatch:hover.color-dark, colorswatch:hover:selected.color-dark { + background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0) 50%); } +colorswatch:backdrop, colorswatch:backdrop:selected +colorswatch.color-dark:backdrop, colorswatch.color-dark:backdrop:selected { + background-image: none; + box-shadow: none; } +GtkColorEditor colorswatch { + border-radius: 3px; } + GtkColorEditor colorswatch:hover { + background-image: none; + box-shadow: none; } + GtkColorEditor colorswatch:backdrop { + box-shadow: none; } +colorswatch.color-dark { + color: white; + outline-color: rgba(0, 0, 0, 0.3); } + colorswatch.color-dark:backdrop { + color: rgba(255, 255, 255, 0.3); } +colorswatch.color-light { + color: black; + outline-color: rgba(255, 255, 255, 0.5); } + colorswatch.color-light:backdrop { + color: rgba(0, 0, 0, 0.3); } +colorswatch overlay, +colorswatch overlay:selected { + border: 1px solid #5f6367; } + colorswatch overlay:hover, + colorswatch overlay:selected:hover { + border-color: #FF5F57; } +colorswatch#add-color-button { + border-style: solid; + border-width: 1px; + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); + text-shadow: none; + -gtk-icon-shadow: none; + color: white; + border-color: #5f6367; + background-image: linear-gradient(to bottom, #292f35, #282e32); } + colorswatch#add-color-button:hover { + color: white; + border-color: #FF5F57; } + colorswatch#add-color-button:backdrop { + color: white; + border-color: #5f6367; + background-image: linear-gradient(to bottom, #292f35, #282e32); } + colorswatch#add-color-button overlay { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; } + +GtkColorButton.button { + padding: 5px; } + GtkColorButton.button GtkColorSwatch:first-child:last-child { + border-radius: 0; + box-shadow: none; } + GtkColorButton.button GtkColorSwatch:first-child:last-child:disabled, GtkColorButton.button GtkColorSwatch:first-child:last-child:backdrop { + box-shadow: none; } + +/*********** + * Dialogs * + ***********/ +messagedialog.background { + background-color: #292f34; } +messagedialog:backdrop { + background-color: #292f34; } +messagedialog .titlebar { + min-height: 32px; + background-color: transparent; + background-image: linear-gradient(to bottom, #31383e, #292f34); + box-shadow: none; } +messagedialog .dialog-action-area { + padding: 8px; } +messagedialog button { + margin: 2px; } + +filechooser .search-bar { + background-color: #292f34; + border-color: #292f34; + box-shadow: none; } + filechooser .search-bar:backdrop { + background-color: #292f34; + border-color: #292f34; + color: white; } +filechooser .dialog-action-box { + border-top: 1px solid #5f6367; } + filechooser .dialog-action-box:backdrop { + border-top-color: #5f6367; } +filechooser #pathbarbox { + background-color: #292f34; + border-bottom: 1px solid #5f6367; } + +/*************** + * Header bars * + ***************/ +headerbar { + transition: none; + padding: 0px 6px; + border-width: 0px 0px 1px 0px; + border-radius: 3px 3px 0px 0px; + border-style: solid; + border-color: #FF5F57; + color: white; + background-image: linear-gradient(to bottom, #31383e, #292f34); } + headerbar:backdrop { + border-color: transparent; + background-image: none; + background-color: #292f34; + color: #828282; + box-shadow: none; } + headerbar label { + font-weight: normal; } + headerbar label:backdrop { + color: #828282; } + headerbar .path-bar button { + color: white; + font-weight: normal; } + headerbar .path-bar button:backdrop { + color: #828282; } + headerbar button { + transition: none; + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; } + headerbar button.flat { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; } + headerbar button:hover { + color: white; + border-color: #FF5F57; } + headerbar button:hover:backdrop { + border-color: #292f34; } + headerbar button:active, + headerbar button:checked { + color: white; + border-color: #FF5F57; + background-image: linear-gradient(to bottom, #FF5F57, #FF5F57); } + headerbar button:active:hover, + headerbar button:checked:hover { + color: white; + border-color: #FF5F57; + background-image: linear-gradient(to bottom, #FF5F57, #FF5F57); } + headerbar button:active:backdrop, + headerbar button:checked:backdrop { + background-image: none; + background-color: #292f34; + border-color: #292f34; + color: #828282; } + headerbar button:backdrop { + border-color: transparent; + background-image: none; + background-color: #292f34; + color: #828282; } + headerbar button.flat:backdrop, + headerbar button.flat:backdrop:disabled, + headerbar button:disabled:backdrop { + background-image: none; + background-color: #292f34; + color: #828282; + border-color: transparent; } + headerbar button.flat:disabled { + color: rgba(232, 232, 232, 0.35); } + headerbar button:disabled { + background-color: transparent; + background-image: none; + border-color: transparent; + color: rgba(232, 232, 232, 0.35); } + headerbar button:disabled:active, + headerbar button:disabled:checked { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(24, 171, 142, 0.35); + background-image: linear-gradient(to bottom, rgba(255, 95, 87, 0.35), rgba(255, 95, 87, 0.35)); } + headerbar button:disabled:active > .label, + headerbar button:disabled:checked > .label { + color: inherit; } + headerbar .title { + font-weight: normal; + padding: 0px 12px; } + headerbar .title:backdrop { + color: #828282; } + headerbar .subtitle { + font-size: smaller; + padding: 0 12px; } + headerbar .subtitle:backdrop { + color: #828282; } + headerbar separator { + border-width: 0px; + background-color: transparent; + background-image: none; + border-color: transparent; } + headerbar.selection-mode .selection-menu { + padding: 4px 6px; } + headerbar.selection-mode .selection-menu GtkArrow { + -GtkArrow-arrow-scaling: 1; } + headerbar.selection-mode .selection-menu .arrow { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); + -gtk-icon-shadow: none; } + .tiled + headerbar, .maximized + headerbar { + border-radius: 0; } + +headerbar entry, +headerbar spinbutton, +headerbar separator, +headerbar button { + margin-top: 3px; + margin-bottom: 3px; } + +headerbar button.suggested-action, +headerbar.selection-mode.suggested-action { + background-image: none; + background-color: #FF5F57; } + headerbar button.suggested-action:hover, + headerbar.selection-mode.suggested-action:hover { + background-color: #FF5F57; + color: white; } + headerbar button.suggested-action:disabled, + headerbar.selection-mode.suggested-action:disabled { + background-color: transparent; + background-image: none; + color: rgba(232, 232, 232, 0.35); } + headerbar button.suggested-action:disabled:active, + headerbar.selection-mode.suggested-action:disabled:active, + headerbar button.suggested-action:disabled:checked, + headerbar.selection-mode.suggested-action:disabled:checked { + color: rgba(232, 232, 232, 0.35); + border-color: rgba(24, 171, 142, 0.35); + background-image: linear-gradient(to bottom, rgba(255, 95, 87, 0.35), rgba(255, 95, 87, 0.35)); } + headerbar button.suggested-action:disabled:active > .label, + headerbar.selection-mode.suggested-action:disabled:active > .label, + headerbar button.suggested-action:disabled:checked > .label, + headerbar.selection-mode.suggested-action:disabled:checked > .label { + color: inherit; } + headerbar button.suggested-action:backdrop, + headerbar.selection-mode.suggested-action:backdrop { + background-color: #292f34; + border-color: transparent; + color: #828282; } + headerbar button.suggested-action:backdrop:disabled, + headerbar.selection-mode.suggested-action:backdrop:disabled { + color: rgba(118, 118, 118, 0.35); } + +/************** + * GtkInfoBar * + **************/ +infobar { + border-style: none; + border-bottom: 1px solid #5f6367; + background-color: #292f34; + background-image: none; } + infobar:backdrop { + border-bottom: 1px solid #5f6367; } + +.info, +headerbar.selection-mode, +.question, +.warning, +.error { + background-color: #292f34; + background-image: none; + color: #e67e22; + text-shadow: none; } + .info:backdrop, + headerbar.selection-mode:backdrop, + .question:backdrop, + .warning:backdrop, + .error:backdrop { + background-color: #292f34; + color: #e67e22; } + .info button, + headerbar.selection-mode button, + .question button, + .warning button, + .error button { + box-shadow: none; + background-image: none; + background-color: rgba(230, 126, 34, 0.5); + border-color: rgba(230, 126, 34, 0.5); + color: white; } + .info button:hover, + headerbar.selection-mode button:hover, + .question button:hover, + .warning button:hover, + .error button:hover { + background-color: rgba(230, 126, 34, 0.25); + border-color: #e67e22; } + .info button:active, + headerbar.selection-mode button:active, .info button:checked, + headerbar.selection-mode button:checked, + .question button:active, + .question button:checked, + .warning button:active, + .warning button:checked, + .error button:active, + .error button:checked { + background-image: linear-gradient(to bottom, #e67f24, #e57a1b); + color: #292f34; + border-color: #e67e22; } + .info button:disabled, + headerbar.selection-mode button:disabled, + .question button:disabled, + .warning button:disabled, + .error button:disabled { + background-color: rgba(216, 114, 24, 0); + border-color: rgba(216, 114, 24, 0); + color: rgba(232, 232, 232, 0.35); } + .info button:backdrop, + headerbar.selection-mode button:backdrop, + .question button:backdrop, + .warning button:backdrop, + .error button:backdrop { + background-color: rgba(230, 126, 34, 0.5); + border-color: rgba(230, 126, 34, 0.5); + color: white; } + .info button:backdrop:active, + headerbar.selection-mode button:backdrop:active, .info button:backdrop:checked, + headerbar.selection-mode button:backdrop:checked, + .question button:backdrop:active, + .question button:backdrop:checked, + .warning button:backdrop:active, + .warning button:backdrop:checked, + .error button:backdrop:active, + .error button:backdrop:checked { + background-image: linear-gradient(to bottom, #e67f24, #e57a1b); + color: #292f34; + border-color: #e67e22; } + .info button:backdrop:disabled, + headerbar.selection-mode button:backdrop:disabled, + .question button:backdrop:disabled, + .warning button:backdrop:disabled, + .error button:backdrop:disabled { + background-color: rgba(216, 114, 24, 0); + border-color: rgba(216, 114, 24, 0); + color: rgba(232, 232, 232, 0.35); } + .info button:backdrop:disabled:active, + headerbar.selection-mode button:backdrop:disabled:active, .info button:backdrop:disabled:checked, + headerbar.selection-mode button:backdrop:disabled:checked, + .question button:backdrop:disabled:active, + .question button:backdrop:disabled:checked, + .warning button:backdrop:disabled:active, + .warning button:backdrop:disabled:checked, + .error button:backdrop:disabled:active, + .error button:backdrop:disabled:checked { + background-image: linear-gradient(to bottom, rgba(218, 115, 25, 0.35), rgba(209, 111, 24, 0.35)); + color: #252b2f; + border-color: rgba(216, 114, 24, 0.35); } + +/********* + * Links * + *********/ +button:link > label, +button:visited > label, +*:link, +button:link, +button:visited { + color: #4c6b8a; } + button:link > label:visited, + button:visited > label:visited, + *:link:visited, + button:visited { + color: #913d88; } + *:selected button:link > label:visited, + *:selected button:visited > label:visited, *:selected + *:link:visited, *:selected + button:visited:link, + *:selected button:visited { + color: #a3e4d7; } + button:link > label:hover, + button:visited > label:hover, + *:link:hover, + button:hover:link, + button:hover:visited { + color: #6185a8; } + *:selected button:link > label:hover, + *:selected button:visited > label:hover, *:selected + *:link:hover, *:selected + button:hover:link, + *:selected button:hover:visited { + color: #e8f8f5; } + button:link > label:active, + button:visited > label:active, + *:link:active, + button:active:link, + button:active:visited { + color: #4c6b8a; } + *:selected button:link > label:active, + *:selected button:visited > label:active, *:selected + *:link:active, *:selected + button:active:link, + *:selected button:active:visited { + color: #d1f2eb; } + button:link > label:backdrop, + button:visited > label:backdrop, button:link > label:backdrop:hover, + button:visited > label:backdrop:hover, button:link > label:backdrop:hover:selected, + button:visited > label:backdrop:hover:selected, + *:link:backdrop, + button:backdrop:link, + button:backdrop:visited, + *:link:backdrop:hover, + button:backdrop:hover:link, + button:backdrop:hover:visited, + *:link:backdrop:hover:selected, + headerbar.selection-mode .subtitle:backdrop:hover:link, + button:backdrop:hover:selected:link, + button:backdrop:hover:selected:visited { + color: rgba(255, 95, 87, 0.5); } + button:link > label:selected, + button:visited > label:selected, *:selected button:link > label, + *:selected button:visited > label, + *:link:selected, + headerbar.selection-mode .subtitle:link, + button:selected:link, + button:selected:visited, *:selected + *:link, *:selected + button:link, + *:selected button:visited { + color: #d1f2eb; } + +button:link, +button:visited { + text-shadow: none; } + button:link:hover, button:link:active, button:link:checked, + button:visited:hover, + button:visited:active, + button:visited:checked { + text-shadow: none; } + button:link > label, + button:visited > label { + text-decoration-line: underline; } + +/********* + * Lists * + *********/ +list { + background-color: #292f34; + color: white; + border-width: 0px; } + list:backdrop { + background-color: #292f34; + color: white; } + list row { + padding: 2px; } + +row { + transition: all 150ms cubic-bezier(0.25, 0.46, 0.45, 0.94); } + row:hover { + transition: none; } + row.activatable.has-open-popup, row.activatable:hover { + background-color: rgba(255, 95, 87, 0.5); } + row.activatable:active { + box-shadow: none; + background-color: #FF5F57; } + row.activatable:selected:active { + box-shadow: none; + background-color: #FF5F57; } + row.activatable:selected.has-open-popup, row.activatable:selected:hover { + color: white; + background-color: #FF5F57; } + row.activatable:selected:backdrop { + background-color: #FF5F57; } + +/********* + * Menus * + *********/ +menubar, +.menubar { + -GtkWidget-window-dragging: true; + padding: 0px; + box-shadow: none; + border-style: none; + background-color: #292f34; } + menubar:backdrop, + .menubar:backdrop { + background-color: #292f34; } + menubar > menuitem, + .menubar > menuitem { + min-height: 16px; + padding: 4px 6px; + border-style: solid; + border-width: 1px 0px; + border-color: #292f34; } + menubar > menuitem:hover, + .menubar > menuitem:hover { + background-color: #FF5F57; + color: white; } + menubar > menuitem:disabled, + .menubar > menuitem:disabled { + color: rgba(232, 232, 232, 0.35); + box-shadow: none; } + menubar > menuitem:disabled:backdrop, + .menubar > menuitem:disabled:backdrop { + background-color: #292f34; + color: rgba(232, 232, 232, 0.35); } + menubar > menuitem:backdrop, + .menubar > menuitem:backdrop { + background-color: #292f34; + border-color: #292f34; + color: white; } + +menu, +.menu { + padding: 0px; + background-color: #292f34; + border: 0px solid transparent; + box-shadow: inset 0px 0px 0px 1px #5f6367; + border-radius: 3px; } + .csd menu, .csd + .menu { + border: 0px solid; + border-radius: 3px; } + menu separator, + .menu separator { + color: #5f6367; + margin-top: 3px; + margin-bottom: 3px; } + menu menuitem, + .menu menuitem { + text-shadow: none; + min-height: 16px; + min-width: 40px; + padding: 4px 4px; } + menu menuitem:hover, + .menu menuitem:hover { + color: white; + background-color: #FF5F57; } + menu menuitem:disabled, + .menu menuitem:disabled { + color: rgba(232, 232, 232, 0.35); } + menu menuitem:disabled:backdrop, + .menu menuitem:disabled:backdrop { + color: rgba(232, 232, 232, 0.35); } + menu menuitem:backdrop, menu menuitem:backdrop:hover, + .menu menuitem:backdrop, + .menu menuitem:backdrop:hover { + color: white; + background-color: #292f34; } + menu menuitem arrow, + .menu menuitem arrow { + min-height: 16px; + min-width: 16px; } + menu menuitem arrow:dir(ltr), + .menu menuitem arrow:dir(ltr) { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); + margin-left: 10px; } + menu menuitem arrow:dir(rtl), + .menu menuitem arrow:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); + margin-right: 10px; } + menu > arrow, + .menu > arrow { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; + min-height: 16px; + min-width: 16px; + padding: 4px; + background-color: transparent; + border-radius: 0; } + menu > arrow.top, + .menu > arrow.top { + margin-top: -6px; + border: none; + -gtk-icon-source: -gtk-icontheme("pan-up-symbolic"); } + menu > arrow.bottom, + .menu > arrow.bottom { + margin-bottom: -6px; + border: none; + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + menu > arrow:hover, + .menu > arrow:hover { + color: #FF5F57; } + menu > arrow:active, + .menu > arrow:active { + color: #FF5F57; } + menu > arrow:backdrop, + .menu > arrow:backdrop { + background-color: #292f34; } + menu > arrow:disabled, + .menu > arrow:disabled { + color: transparent; + background-color: transparent; + border-color: transparent; } + +menuitem accelerator { + color: alpha(currentColor,0.55); } +menuitem check, +menuitem radio { + min-height: 18px; + min-width: 18px; } + menuitem check:dir(ltr), + menuitem radio:dir(ltr) { + margin-right: 6px; } + menuitem check:dir(rtl), + menuitem radio:dir(rtl) { + margin-left: 6px; } + +/*************** + * Popovers * + ***************/ +/* menu buttons */ +modelbutton.flat, popover.background checkbutton, +popover.background radiobutton, +.menuitem.button.flat { + min-height: 16px; + padding: 4px 8px; + color: white; } + modelbutton.flat:hover, popover.background checkbutton:hover, + popover.background radiobutton:hover, + .menuitem.button.flat:hover { + background-color: #FF5F57; + color: white; } + modelbutton.flat:selected, popover.background checkbutton:selected, + popover.background radiobutton:selected, + .menuitem.button.flat:selected { + background-color: #FF5F57; + color: white; } + modelbutton.flat:backdrop, popover.background checkbutton:backdrop, + popover.background radiobutton:backdrop, modelbutton.flat:backdrop:hover, popover.background checkbutton:backdrop:hover, + popover.background radiobutton:backdrop:hover, + .menuitem.button.flat:backdrop, + .menuitem.button.flat:backdrop:hover { + color: white; } + modelbutton.flat check:hover, popover.background checkbutton check:hover, + popover.background radiobutton check:hover, + modelbutton.flat radio:hover, popover.background checkbutton radio:hover, + popover.background radiobutton radio:hover, + modelbutton.flat check:checked:hover, popover.background checkbutton check:checked:hover, + popover.background radiobutton check:checked:hover, + modelbutton.flat radio:checked:hover, popover.background checkbutton radio:checked:hover, + popover.background radiobutton radio:checked:hover, + modelbutton.flat check:indeterminate:hover, popover.background checkbutton check:indeterminate:hover, + popover.background radiobutton check:indeterminate:hover, + modelbutton.flat radio:indeterminate:hover, popover.background checkbutton radio:indeterminate:hover, + popover.background radiobutton radio:indeterminate:hover, + modelbutton.flat check:last-child, popover.background checkbutton check:last-child, + popover.background radiobutton check:last-child, + modelbutton.flat radio:last-child, + popover.background checkbutton radio:last-child, + popover.background radiobutton radio:last-child, + .menuitem.button.flat check:last-child, + .menuitem.button.flat radio:last-child { + margin-right: 0px; } + modelbutton.flat check:first-child, popover.background checkbutton check:first-child, + popover.background radiobutton check:first-child, + modelbutton.flat radio:first-child, + popover.background checkbutton radio:first-child, + popover.background radiobutton radio:first-child, + .menuitem.button.flat check:first-child, + .menuitem.button.flat radio:first-child { + margin-left: 0px; } + +modelbutton.flat arrow, popover.background checkbutton arrow, +popover.background radiobutton arrow { + background: none; } + modelbutton.flat arrow:hover, popover.background checkbutton arrow:hover, + popover.background radiobutton arrow:hover { + background: none; } + modelbutton.flat arrow.left, popover.background checkbutton arrow.left, + popover.background radiobutton arrow.left { + -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); } + modelbutton.flat arrow.right, popover.background checkbutton arrow.right, + popover.background radiobutton arrow.right { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + +popover.background { + margin: -10px; + padding: 0px; + border: 1px solid #5f6367; + border-radius: 3px; + background-color: #292f34; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.9); } + popover.background:backdrop { + box-shadow: none; } + popover.background > list, + popover.background > .view, + popover.background > toolbar { + border-style: none; + background-color: transparent; } + .csd popover.background.touch-selection, .csd popover.background.magnifier, popover.background.touch-selection, popover.background.magnifier { + border: 1px solid #5f6367; } + popover.background separator { + margin: 3px; } + popover.background list separator { + margin: 0px; } + +GtkVolumeButton.button { + padding: 5px; } + +/******** + * Misc * + ********/ +/**************** +* Print dialog * +*****************/ +printdialog paper { + color: white; + border: 1px solid #5f6367; + background: white; + padding: 0; } + printdialog paper:backdrop { + color: white; + border-color: #5f6367; + background: white; } +printdialog .dialog-action-box { + margin: 12px; } + +/********** +* Frames * +**********/ +frame > border, +.frame { + box-shadow: none; + margin: 0; + padding: 0; + border-radius: 0; + border: 1px solid #5f6367; } + frame > border.flat, + .frame.flat { + border-style: none; } + frame > border:backdrop, + .frame:backdrop { + border-color: #5f6367; } + +actionbar > revealer > box { + padding: 6px; + border-top: 1px solid #5f6367; } + actionbar > revealer > box:backdrop { + border-color: #5f6367; } + +scrolledwindow viewport.frame { + border-style: none; } +scrolledwindow junction { + border-color: transparent; + background-color: transparent; + background-image: none; } + +separator { + background: #5f6367; + min-width: 1px; + min-height: 1px; } + +/************* +* Expanders * +*************/ +expander arrow { + min-width: 16px; + min-height: 16px; + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + expander arrow:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); } + expander arrow:hover { + color: white; } + expander arrow:checked { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + +/********* +* Paned * +*********/ +paned > separator { + min-width: 1px; + min-height: 1px; + -gtk-icon-source: none; + border-style: none; + background-color: transparent; + background-image: image(#5f6367); + background-size: 1px 1px; } + paned > separator:backdrop { + background-image: image(#5f6367); } + paned > separator.wide { + min-width: 5px; + min-height: 5px; + background-color: #292f34; + background-image: image(#5f6367), image(#5f6367); + background-size: 1px 1px, 1px 1px; } + paned > separator.wide:backdrop { + background-color: #292f34; + background-image: image(#5f6367), image(#5f6367); } +paned.horizontal > separator { + background-repeat: repeat-y; } + paned.horizontal > separator:dir(ltr) { + margin: 0 -8px 0 0; + padding: 0 8px 0 0; + background-position: left; } + paned.horizontal > separator:dir(rtl) { + margin: 0 0 0 -8px; + padding: 0 0 0 8px; + background-position: right; } + paned.horizontal > separator.wide { + margin: 0; + padding: 0; + background-repeat: repeat-y, repeat-y; + background-position: left, right; } +paned.vertical > separator { + margin: 0 0 -8px 0; + padding: 0 0 8px 0; + background-repeat: repeat-x; + background-position: top; } + paned.vertical > separator.wide { + margin: 0; + padding: 0; + background-repeat: repeat-x, repeat-x; + background-position: bottom, top; } + +/********************* +* Spinner Animation * +*********************/ +@keyframes spin { + to { + -gtk-icon-transform: rotate(1turn); } } +spinner { + background-image: none; + opacity: 0; + -gtk-icon-source: -gtk-icontheme("process-working-symbolic"); } + spinner:checked { + opacity: 1; + animation: spin 1s linear infinite; } + spinner:checked:disabled { + opacity: 0.5; } + +/***************** + * Notebooks and * + * Tabs * + *****************/ +/************* + * Notebooks * + *************/ +notebook.frame { + border: none; + padding: 0px; + box-shadow: inset 0px 0px 0px 1px #5f6367; } +notebook > header { + padding: 0px; + border: none; + background-color: #292f34; } + notebook > header.top { + box-shadow: inset 0 -1px #5f6367; } + notebook > header.top:backdrop { + box-shadow: inset 0 -1px #5f6367; } + notebook > header.bottom { + box-shadow: inset 0 1px #5f6367; } + notebook > header.bottom:backdrop { + box-shadow: inset 0 1px #5f6367; } + notebook > header.right { + box-shadow: inset 1px 0 #5f6367; } + notebook > header.right:backdrop { + box-shadow: inset 1px 0 #5f6367; } + notebook > header.left { + box-shadow: inset -1px 0 #5f6367; } + notebook > header.left:backdrop { + box-shadow: inset -1px 0 #5f6367; } + notebook > header:backdrop { + background-color: #292f34; } + notebook > header tabs { + margin: 0px; } + notebook > header.top > tabs > tab { + padding: 4px 6px; + border: 1px solid rgba(255, 255, 255, 0.2); + background-color: rgba(255, 255, 255, 0.2); + border-radius: 3px 3px 0px 0px; + border-bottom-color: transparent; } + notebook > header.top > tabs > tab:hover, notebook > header.top > tabs > tab.prelight-page { + background-color: rgba(255, 95, 87, 0.2); + border-color: rgba(255, 95, 87, 0.2); } + notebook > header.top > tabs > tab:checked { + border-color: #5f6367; + border-bottom-color: #292f34; + background-color: #292f34; } + notebook > header.top > tabs > tab:checked:backdrop { + border-color: #5f6367; + border-bottom-color: #292f34; + background-color: #292f34; } + notebook > header.bottom > tabs > tab { + padding: 4px 6px; + border: 1px solid rgba(255, 255, 255, 0.2); + background-color: rgba(255, 255, 255, 0.2); + border-radius: 0px 0px 3px 3px; + border-top-color: transparent; } + notebook > header.bottom > tabs > tab:hover, notebook > header.bottom > tabs > tab.prelight-page { + background-color: rgba(255, 95, 87, 0.2); + border-color: rgba(255, 95, 87, 0.2); } + notebook > header.bottom > tabs > tab:checked { + border-color: #5f6367; + border-top-color: #292f34; + background-color: #292f34; } + notebook > header.bottom > tabs > tab:checked:backdrop { + border-color: #5f6367; + border-top-color: #292f34; + background-color: #292f34; } + notebook > header.left > tabs > tab { + padding: 4px 6px; + border: 1px solid rgba(255, 255, 255, 0.2); + background-color: rgba(255, 255, 255, 0.2); + border-radius: 3px 0px 0px 3px; + border-right-color: transparent; } + notebook > header.left > tabs > tab:hover, notebook > header.left > tabs > tab.prelight-page { + background-color: rgba(255, 95, 87, 0.2); + border-color: rgba(255, 95, 87, 0.2); } + notebook > header.left > tabs > tab:checked { + border-color: #5f6367; + border-right-color: #292f34; + background-color: #292f34; } + notebook > header.left > tabs > tab:checked:backdrop { + border-color: #5f6367; + border-right-color: #292f34; + background-color: #292f34; } + notebook > header.right > tabs > tab { + padding: 4px 6px; + border: 1px solid rgba(255, 255, 255, 0.2); + background-color: rgba(255, 255, 255, 0.2); + border-radius: 0px 3px 3px 0px; + border-left-color: transparent; } + notebook > header.right > tabs > tab:hover, notebook > header.right > tabs > tab.prelight-page { + background-color: rgba(255, 95, 87, 0.2); + border-color: rgba(255, 95, 87, 0.2); } + notebook > header.right > tabs > tab:checked { + border-color: #5f6367; + border-left-color: #292f34; + background-color: #292f34; } + notebook > header.right > tabs > tab:checked:backdrop { + border-color: #5f6367; + border-left-color: #292f34; + background-color: #292f34; } + notebook > header.top > tabs > tab.reorderable-page { + border-width: 3px; + border-style: solid; + border-color: transparent; + background-color: #292f34; + background-clip: padding-box; + border-right-width: 1px; + border-right-color: #5f6367; + box-shadow: inset -3px 0px 0px 0px #292f34; } + notebook > header.top > tabs > tab.reorderable-page:hover, notebook > header.top > tabs > tab.reorderable-page.prelight-page { + box-shadow: inset 0px -3px 0px 0px rgba(255, 95, 87, 0.2), inset -3px 0px 0px 0px #292f34; } + notebook > header.top > tabs > tab.reorderable-page:checked { + box-shadow: inset 0px -3px 0px 0px #FF5F57, inset -3px 0px 0px 0px #292f34; } + notebook > header.top > tabs > tab.reorderable-page:checked:backdrop { + background-color: #292f34; + border-color: transparent; + border-right-color: #5f6367; + box-shadow: none; } + notebook > header.top > tabs > tab.reorderable-page:backdrop { + background-color: #292f34; + border-right-color: #5f6367; + box-shadow: none; } + notebook > header.bottom > tabs > tab.reorderable-page { + border-width: 3px; + border-style: solid; + border-color: transparent; + background-color: #292f34; + background-clip: padding-box; + border-right-width: 1px; + border-right-color: #5f6367; + box-shadow: inset -3px 0px 0px 0px #292f34; } + notebook > header.bottom > tabs > tab.reorderable-page:hover, notebook > header.bottom > tabs > tab.reorderable-page.prelight-page { + box-shadow: inset 0px -3px 0px 0px rgba(255, 95, 87, 0.2), inset -3px 0px 0px 0px #292f34; } + notebook > header.bottom > tabs > tab.reorderable-page:checked { + box-shadow: inset 0px -3px 0px 0px #FF5F57, inset -3px 0px 0px 0px #292f34; } + notebook > header.bottom > tabs > tab.reorderable-page:checked:backdrop { + background-color: #292f34; + border-color: transparent; + border-right-color: #5f6367; + box-shadow: none; } + notebook > header.bottom > tabs > tab.reorderable-page:backdrop { + background-color: #292f34; + border-right-color: #5f6367; + box-shadow: none; } + notebook > header.left > tabs > tab.reorderable-page { + border-width: 3px; + border-style: solid; + border-color: transparent; + background-color: #292f34; + background-clip: padding-box; + border-bottom-width: 1px; + border-bottom-color: #5f6367; + box-shadow: inset 0px -3px 0px 0px #292f34; } + notebook > header.left > tabs > tab.reorderable-page:hover, notebook > header.left > tabs > tab.reorderable-page.prelight-page { + box-shadow: inset 0px -3px 0px 0px rgba(255, 95, 87, 0.2), inset 0px -3px 0px 0px #292f34; } + notebook > header.left > tabs > tab.reorderable-page:checked { + box-shadow: inset 0px -3px 0px 0px #FF5F57, inset 0px -3px 0px 0px #292f34; } + notebook > header.left > tabs > tab.reorderable-page:checked:backdrop { + background-color: #292f34; + border-color: transparent; + border-bottom-color: #5f6367; + box-shadow: none; } + notebook > header.left > tabs > tab.reorderable-page:backdrop { + background-color: #292f34; + border-bottom-color: #5f6367; + box-shadow: none; } + notebook > header.right > tabs > tab.reorderable-page { + border-width: 3px; + border-style: solid; + border-color: transparent; + background-color: #292f34; + background-clip: padding-box; + border-bottom-width: 1px; + border-bottom-color: #5f6367; + box-shadow: inset 0px -3px 0px 0px #292f34; } + notebook > header.right > tabs > tab.reorderable-page:hover, notebook > header.right > tabs > tab.reorderable-page.prelight-page { + box-shadow: inset 0px -3px 0px 0px rgba(255, 95, 87, 0.2), inset 0px -3px 0px 0px #292f34; } + notebook > header.right > tabs > tab.reorderable-page:checked { + box-shadow: inset 0px -3px 0px 0px #FF5F57, inset 0px -3px 0px 0px #292f34; } + notebook > header.right > tabs > tab.reorderable-page:checked:backdrop { + background-color: #292f34; + border-color: transparent; + border-bottom-color: #5f6367; + box-shadow: none; } + notebook > header.right > tabs > tab.reorderable-page:backdrop { + background-color: #292f34; + border-bottom-color: #5f6367; + box-shadow: none; } + notebook > header.top > tabs > arrow { + border-top-style: none; } + notebook > header.bottom > tabs > arrow { + border-bottom-style: none; } + notebook > header.top > tabs > arrow, notebook > header.bottom > tabs > arrow { + margin-left: -5px; + margin-right: -5px; + padding-left: 4px; + padding-right: 4px; } + notebook > header.top > tabs > arrow.down, notebook > header.bottom > tabs > arrow.down { + -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); } + notebook > header.top > tabs > arrow.up, notebook > header.bottom > tabs > arrow.up { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + notebook > header.left > tabs > arrow { + border-left-style: none; } + notebook > header.right > tabs > arrow { + border-right-style: none; } + notebook > header.left > tabs > arrow, notebook > header.right > tabs > arrow { + margin-top: -5px; + margin-bottom: -5px; + padding-top: 4px; + padding-bottom: 4px; } + notebook > header.left > tabs > arrow.down, notebook > header.right > tabs > arrow.down { + -gtk-icon-source: -gtk-icontheme("pan-up-symbolic"); } + notebook > header.left > tabs > arrow.up, notebook > header.right > tabs > arrow.up { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + notebook > header > tabs > arrow { + min-height: 16px; + min-width: 16px; + border-radius: 0; } + notebook > header > tabs > arrow:hover:not(:active):not(:backdrop) { + background-clip: padding-box; + background-image: none; + background-color: rgba(255, 255, 255, 0.3); + border-color: transparent; + box-shadow: none; } + notebook > header > tabs > arrow:disabled { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; } + notebook > header button.flat { + padding: 0; + margin: 4px; + min-width: 12px; + min-height: 12px; + border: 0px solid; + border-radius: 50%; + color: #292f34; + background-color: #5f6367; + background-image: none; } + notebook > header button.flat:hover { + background-color: #e74c3c; } + notebook > header button.flat:active { + background-color: #e74c3c; } + notebook > header button.flat:backdrop { + background-color: #5f6367; + color: #292f34; } +notebook > stack:not(:only-child) { + background-color: transparent; + border-style: solid; + border-color: #5f6367; + border-width: 0px; } + +scrolledwindow overshoot.top { + background-image: -gtk-gradient(radial, center top, 0, center top, 0.5, to(#474a4c), to(rgba(71, 74, 76, 0))), -gtk-gradient(radial, center top, 0, center top, 0.6, from(rgba(255, 255, 255, 0.07)), to(rgba(255, 255, 255, 0))); + background-size: 100% 5%, 100% 100%; + background-repeat: no-repeat; + background-position: center top; + background-color: transparent; + border: none; + box-shadow: none; } + scrolledwindow overshoot.top:backdrop { + background-image: -gtk-gradient(radial, center top, 0, center top, 0.5, to(#5f6367), to(rgba(95, 99, 103, 0))); + background-size: 100% 5%; + background-repeat: no-repeat; + background-position: center top; + background-color: transparent; + border: none; + box-shadow: none; } +scrolledwindow overshoot.bottom { + background-image: -gtk-gradient(radial, center bottom, 0, center bottom, 0.5, to(#474a4c), to(rgba(71, 74, 76, 0))), -gtk-gradient(radial, center bottom, 0, center bottom, 0.6, from(rgba(255, 255, 255, 0.07)), to(rgba(255, 255, 255, 0))); + background-size: 100% 5%, 100% 100%; + background-repeat: no-repeat; + background-position: center bottom; + background-color: transparent; + border: none; + box-shadow: none; } + scrolledwindow overshoot.bottom:backdrop { + background-image: -gtk-gradient(radial, center bottom, 0, center bottom, 0.5, to(#5f6367), to(rgba(95, 99, 103, 0))); + background-size: 100% 5%; + background-repeat: no-repeat; + background-position: center bottom; + background-color: transparent; + border: none; + box-shadow: none; } +scrolledwindow overshoot.left { + background-image: -gtk-gradient(radial, left center, 0, left center, 0.5, to(#474a4c), to(rgba(71, 74, 76, 0))), -gtk-gradient(radial, left center, 0, left center, 0.6, from(rgba(255, 255, 255, 0.07)), to(rgba(255, 255, 255, 0))); + background-size: 5% 100%, 100% 100%; + background-repeat: no-repeat; + background-position: left center; + background-color: transparent; + border: none; + box-shadow: none; } + scrolledwindow overshoot.left:backdrop { + background-image: -gtk-gradient(radial, left center, 0, left center, 0.5, to(#5f6367), to(rgba(95, 99, 103, 0))); + background-size: 5% 100%; + background-repeat: no-repeat; + background-position: left center; + background-color: transparent; + border: none; + box-shadow: none; } +scrolledwindow overshoot.right { + background-image: -gtk-gradient(radial, right center, 0, right center, 0.5, to(#474a4c), to(rgba(71, 74, 76, 0))), -gtk-gradient(radial, right center, 0, right center, 0.6, from(rgba(255, 255, 255, 0.07)), to(rgba(255, 255, 255, 0))); + background-size: 5% 100%, 100% 100%; + background-repeat: no-repeat; + background-position: right center; + background-color: transparent; + border: none; + box-shadow: none; } + scrolledwindow overshoot.right:backdrop { + background-image: -gtk-gradient(radial, right center, 0, right center, 0.5, to(#5f6367), to(rgba(95, 99, 103, 0))); + background-size: 5% 100%; + background-repeat: no-repeat; + background-position: right center; + background-color: transparent; + border: none; + box-shadow: none; } +scrolledwindow undershoot { + background-image: none; + border: none; } + +/************ + * Pathbars * + ************/ +.path-bar { + background-color: #292f34; + border-bottom: 1px solid #5f6367; } + +.path-bar button { + border-color: rgba(255, 255, 255, 0); + background-color: transparent; + background-image: none; + box-shadow: none; + color: white; + text-shadow: none; + -gtk-icon-shadow: none; + padding: 4px 8px; + color: white; } + .path-bar button:hover { + border-color: #FF5F57; } + .path-bar button:active, .path-bar button:checked { + background-color: #5f6367; + font-weight: normal; } + .path-bar button.text-button, .path-bar button.image-button, .path-bar button { + padding-left: 4px; + padding-right: 4px; } + .path-bar button.text-button.image-button label { + padding-left: 0; + padding-right: 0; } + .path-bar button.text-button.image-button label:last-child, .path-bar button label:last-child { + padding-right: 8px; } + .path-bar button.text-button.image-button label:first-child, .path-bar button label:first-child { + padding-left: 8px; } + .path-bar button image { + padding-left: 4px; + padding-right: 4px; } + .path-bar button.slider-button { + padding-left: 0; + padding-right: 0; } + +/***************** + * Progress bars * + *****************/ +progressbar { + font-size: smaller; + color: rgba(255, 255, 255, 0.3); } + progressbar.horizontal trough, + progressbar.horizontal progress { + min-height: 6px; } + progressbar.vertical trough, + progressbar.vertical progress { + min-width: 6px; } + progressbar trough { + border: 0px solid transparent; + border-radius: 3px; + background-color: rgba(255, 255, 255, 0.3); } + progressbar:backdrop trough { + background-color: rgba(255, 255, 255, 0.3); } + progressbar progress { + background-color: #FF5F57; + border: 0px solid transparent; + border-radius: 3px; + box-shadow: none; } + progressbar:backdrop progress { + background-color: #FF5F57; } + progressbar.osd { + background-color: transparent; } + +treeview.view.progressbar { + border: 0px solid transparent; + border-radius: 3px; + background-color: #FF5F57; + color: white; + background-image: none; } + treeview.view.progressbar:selected:focus, treeview.view.progressbar:selected { + background-color: rgba(255, 255, 255, 0.25); } +treeview.view.trough { + background-color: #696d71; } + treeview.view.trough:selected:focus, treeview.view.trough:selected { + background-color: rgba(255, 255, 255, 0.3); } + +/************* + * Level Bar * + *************/ +levelbar block { + min-width: 32px; + min-height: 6px; } +levelbar.vertical block { + min-width: 6px; + min-height: 32px; } +levelbar trough { + border: 1px solid; + padding: 2px; + border-radius: 3px; + color: white; + border-color: #5f6367; + background-color: #292f34; + box-shadow: none; } + levelbar trough:backdrop { + color: white; + border-color: #5f6367; + background-color: #292f34; } +levelbar.horizontal.discrete block { + margin: 0 1px; } +levelbar.vertical.discrete block { + margin: 1px 0; } +levelbar block:not(.empty) { + border: 1px solid #FF5F57; + background-color: #FF5F57; + box-shadow: none; + border-radius: 1px; } + levelbar block:not(.empty):backdrop { + border-color: #FF5F57; + background-color: #FF5F57; } +levelbar block.low { + border-color: #e67e22; + background-color: #e67e22; } + levelbar block.low:backdrop { + background-color: #e67e22; + border-color: #e67e22; } +levelbar block.high { + border-color: #3498db; + background-color: #3498db; } + levelbar block.high:backdrop { + background-color: #3498db; + border-color: #3498db; } +levelbar block.full { + border-color: #3498db; + background-color: #3498db; } + levelbar block.full:backdrop { + background-color: #3498db; + border-color: #3498db; } +levelbar block.empty { + background-color: rgba(255, 255, 255, 0.3); + border-color: transparent; + box-shadow: none; } + levelbar block.empty:backdrop { + background-color: rgba(255, 255, 255, 0.3); } + +/************ + * GtkScale * + ************/ +scale.fine-tune.trough { + margin: 8px; + border-radius: 3px; } +scale slider { + min-width: 18px; + min-height: 18px; + background-color: #292f34; + border: 1px solid #5f6367; + border-radius: 50%; + box-shadow: none; + margin: -9px; } + scale slider:hover { + border-style: solid; + border-width: 2px; + border-color: #FF5F57; + border-radius: 50%; } + scale slider:hover:backdrop { + background-color: #292f34; + border-color: #FF5F57; } + scale slider:disabled { + border-style: solid; + border-radius: 50%; + background-color: #292f34; + border-color: rgba(86, 90, 94, 0.35); } + scale slider:disabled:backdrop { + background-color: #292f34; + border-color: rgba(86, 90, 94, 0.35); } + scale slider:active { + border: 2px solid #FF5F57; } + scale slider:active:backdrop { + background-color: #292f34; + border-color: #FF5F57; } + scale slider:backdrop { + background-color: #292f34; + border-color: #5f6367; } +scale trough { + min-width: 6px; + min-height: 6px; + margin: 9px; + border: 0px solid; + border-radius: 3px; + background-color: #696d71; + box-shadow: none; } + scale trough:disabled, scale trough.vertical:disabled { + border-color: rgba(95, 99, 103, 0.35); + background-color: rgba(95, 99, 103, 0.35); + box-shadow: none; } + scale trough:disabled:backdrop, scale trough.vertical:disabled:backdrop { + background-color: rgba(95, 99, 103, 0.35); + border-color: rgba(95, 99, 103, 0.35); } + scale trough:backdrop { + background-color: #696d71; + border-color: #696d71; } +scale highlight { + border: 0px solid; + border-radius: 3px; + background-color: #FF5F57; + border-color: #FF5F57; } + scale highlight.vertical { + background-color: #FF5F57; + border-color: #FF5F57; } + scale highlight:disabled { + background-color: rgba(24, 171, 142, 0.35); } + scale highlight:backdrop { + background-color: rgba(255, 95, 87, 0.5); + border-color: rgba(255, 95, 87, 0.5); } + scale highlight:backdrop:disabled { + background-color: rgba(24, 171, 142, 0.35); } + +/************** + * Scrollbars * + **************/ +scrollbar { + -GtkScrollbar-has-backward-stepper: true; + -GtkScrollbar-has-forward-stepper: true; + background-color: #292f34; + border-width: 3px 0px; + border-color: #292f34; + margin: 0px; } + scrollbar button { + min-width: 14px; + min-height: 14px; + margin: 0px; + padding: 0px 3px; + border: none; + border-radius: 0px; + background-image: none; + background-color: #292f34; + color: white; + box-shadow: none; } + scrollbar button:hover { + border: none; + background-image: none; + background-color: #292f34; + color: #FF5F57; } + scrollbar button:active, scrollbar button:active:hover { + border: none; + background-image: none; + background-color: #292f34; + color: #FF5F57; } + scrollbar button:disabled { + border: none; + background-color: #292f34; + background-image: none; + color: rgba(232, 232, 232, 0.35); } + scrollbar button:backdrop { + color: white; } + scrollbar button:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); } + scrollbar.dragging, scrollbar.hovering { + opacity: 0.9910; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) { + opacity: 0.999; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) { + -GtkScrollbar-has-backward-stepper: false; + -GtkScrollbar-has-forward-stepper: false; + background: none; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) slider { + min-width: 4px; + margin: 2px; + border: none; + border-radius: 2px; + background-color: #b4b6b8; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) slider:backdrop { + background-color: #b4b6b8; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering) trough { + min-width: 4px; + min-height: 4px; + border: none; + background: none; + box-shadow: none; } + scrollbar.overlay-indicator:not(.dragging):not(.hovering).horizontal slider { + min-height: 4px; } + scrollbar trough { + min-width: 16px; + min-height: 16px; + border: 0px solid transparent; + border-radius: 8px; + background-color: #696d71; + box-shadow: inset 0px 0px 0px 3px #292f34; } + scrollbar slider { + min-width: 10px; + min-height: 30px; + border: 2px solid transparent; + border-radius: 8px; + background-clip: padding-box; + background-color: #b4b6b8; } + scrollbar slider:hover { + background-color: #FF5F57; } + scrollbar slider:active { + background-color: #FF5F57; } + scrollbar slider:disabled { + background-color: rgba(163, 165, 168, 0.35); } + scrollbar slider:backdrop { + background-color: #b4b6b8; } + scrollbar slider:backdrop:disabled { + background-color: rgba(163, 165, 168, 0.35); } + scrollbar.horizontal slider { + min-width: 30px; + min-height: 10px; } + scrollbar.vertical button.down { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + scrollbar.vertical button.up { + -gtk-icon-source: -gtk-icontheme("pan-up-symbolic"); } + scrollbar.horizontal button.down { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + scrollbar.horizontal button.up { + -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); } + +/*********** + * Sidebar * + ***********/ +.sidebar { + border: none; + background-color: #292f34; } + .sidebar:backdrop { + background-color: #292f34; } + +placessidebar > viewport.frame { + border-style: none; } +placessidebar row { + min-height: 36px; + padding: 0px; } + placessidebar row > revealer { + padding: 0 14px; } + placessidebar row:selected { + color: white; } + placessidebar row:disabled { + color: rgba(232, 232, 232, 0.35); } + placessidebar row:backdrop { + color: white; } + placessidebar row:backdrop:selected { + color: #FF5F57; } + placessidebar row:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); } + placessidebar row image.sidebar-icon:dir(ltr) { + padding-right: 8px; } + placessidebar row image.sidebar-icon:dir(rtl) { + padding-left: 8px; } + placessidebar row label.sidebar-label:dir(ltr) { + padding-right: 2px; } + placessidebar row label.sidebar-label:dir(rtl) { + padding-left: 2px; } + button.sidebar-button { + min-height: 26px; + min-width: 26px; + margin-top: 3px; + margin-bottom: 3px; + padding: 0; } + placessidebar row:selected:active { + box-shadow: none; } + placessidebar row.sidebar-placeholder-row { + padding: 0 8px; + min-height: 2px; + background-image: none; + background-clip: content-box; } + placessidebar row.sidebar-new-bookmark-row { + color: #FF5F57; } + +placesview .server-list-button > image { + transition: 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + -gtk-icon-transform: rotate(0turn); } +placesview .server-list-button:checked > image { + transition: 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94); + -gtk-icon-transform: rotate(-0.5turn); } +placesview row.activatable:hover { + background-color: transparent; } +placesview > actionbar > revealer > box > label { + padding-left: 8px; + padding-right: 8px; } + +stacksidebar.sidebar row { + padding: 10px 4px; } + stacksidebar.sidebar row > label { + padding-left: 6px; + padding-right: 6px; } + stacksidebar.sidebar row.needs-attention > .label { + background-size: 6px 6px, 0 0; } + +/***************** + * GtkSpinButton * + *****************/ +spinbutton:not(.vertical) { + padding: 0; } + spinbutton:not(.vertical) entry { + min-width: 28px; + margin: 0; + background: none; + background-color: transparent; + border: none; + border-radius: 0; + box-shadow: none; } + spinbutton:not(.vertical) entry:backdrop:disabled { + background-color: transparent; } + spinbutton:not(.vertical) button { + min-height: 16px; + margin: 0; + padding-bottom: 0; + padding-top: 0; + color: white; + background-image: none; + background-color: transparent; + border-style: none; + box-shadow: none; } + spinbutton:not(.vertical) button:hover { + color: #FF5F57; } + spinbutton:not(.vertical) button:disabled { + color: rgba(232, 232, 232, 0.35); } + spinbutton:not(.vertical) button:active { + color: #FF5F57; + box-shadow: none; } + spinbutton:not(.vertical) button:backdrop { + color: white; + background-color: transparent; } + spinbutton:not(.vertical) button:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); + background-color: transparent; + border-style: none; } + spinbutton:not(.vertical) button:dir(ltr):last-child { + border-radius: 0 3px 3px 0; } + spinbutton:not(.vertical) button:dir(rtl):first-child { + border-radius: 3px 0 0 3px; } +spinbutton.vertical:disabled { + color: rgba(232, 232, 232, 0.35); } +spinbutton.vertical:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); } +spinbutton.vertical:drop(active) { + border-color: transparent; + box-shadow: none; } +spinbutton.vertical entry { + margin: 0px; + min-height: 26px; + min-width: 26px; + border-style: none solid none solid; + border-color: #5f6367; + padding: 0; + border-radius: 0; } + spinbutton.vertical entry:disabled { + color: rgba(232, 232, 232, 0.35); + background-color: #252b2f; + border-color: rgba(86, 90, 94, 0.35); } + spinbutton.vertical entry:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); + background-color: #252b2f; + border-color: rgba(86, 90, 94, 0.35); } +spinbutton.vertical button { + min-height: 26px; + min-width: 26px; + padding: 0; + box-shadow: none; + background-image: none; + background-color: #292f34; + color: white; + border-color: #5f6367; } + spinbutton.vertical button:hover { + color: #FF5F57; } + spinbutton.vertical button:active { + color: #FF5F57; } + spinbutton.vertical button:disabled { + color: rgba(232, 232, 232, 0.35); + background-color: #252b2f; + border-color: rgba(86, 90, 94, 0.35); } + spinbutton.vertical button:backdrop:disabled { + color: rgba(232, 232, 232, 0.35); + background-color: #252b2f; + border-color: rgba(86, 90, 94, 0.35); } +spinbutton.vertical button.up { + border-radius: 3px 3px 0 0; + border-style: solid solid none solid; } +spinbutton.vertical button.down { + border-radius: 0 0 3px 3px; + border-style: none solid solid solid; } +treeview spinbutton:not(.vertical) { + min-height: 0; + border-style: none; + border-radius: 0; } + treeview spinbutton:not(.vertical) entry { + min-height: 0; + padding: 1px 2px; } + +/********** + * Switch * + **********/ +switch { + margin: 2px; + font-weight: bold; + font-size: smaller; + min-width: 48px; + min-height: 24px; + border: 0px solid; + border-radius: 12px; + color: transparent; + background-color: rgba(255, 255, 255, 0.3); + text-shadow: none; } + switch:checked { + background-color: #FF5F57; } + switch:backdrop { + background-color: rgba(255, 255, 255, 0.3); + text-shadow: none; } + switch:backdrop:checked { + background-color: #FF5F57; } + switch slider { + min-width: 22px; + min-height: 22px; + border: 1px solid; + border-radius: 11px; + background-color: #292f34; + border-color: #5f6367; } + switch:hover slider { + border-color: #FF5F57; } + switch:disabled slider { + background-color: #252b2f; } + switch:backdrop slider { + background-color: #292f34; } + switch:backdrop:disabled slider { + background-color: #252b2f; } + +/************ + * Toolbars * + ************/ +toolbar, .inline-toolbar, searchbar, +.location-bar { + -GtkWidget-window-dragging: true; + padding: 4px; + background-color: #292f34; } + +toolbar { + padding: 4px 3px 3px 4px; } + toolbar:backdrop { + background-color: #292f34; + box-shadow: none; } + toolbar button { + margin: 2px; + padding: 3px; } + toolbar button.image-button, toolbar button.text-button.image-button { + padding: 3px; } + toolbar separator { + margin-left: 3px; + margin-right: 3px; } + toolbar entry { + margin: 3px; } + .osd toolbar { + background-color: transparent; } + toolbar.osd { + padding: 13px; + border: none; + border-radius: 3px; + background-color: #292f34; } + toolbar.osd:backdrop { + border-color: #5f6367; + background-color: #292f34; + box-shadow: none; } + toolbar.osd.left, toolbar.osd.right, toolbar.osd.top, toolbar.osd.bottom { + border-radius: 0; } + +.inline-toolbar { + border-width: 0px 0px 1px 0px; + padding: 3px; + border-radius: 0; } + +searchbar, +.location-bar { + border-width: 0px 0px 1px 0px; + padding: 3px; } + +.inline-toolbar, searchbar, +.location-bar { + border-style: solid; + border-color: #5f6367; + text-shadow: none; + background-color: #292f34; } + +/************ + * Tooltips * + ************/ +tooltip { + color: #f7f7f7; + padding: 4px; + /* not working */ + border-radius: 3px; + box-shadow: none; + text-shadow: none; } + tooltip.background { + background-color: #292f34; + background-clip: padding-box; } + tooltip.window-frame.csd { + background-color: transparent; + box-shadow: none; } + tooltip decoration { + background-color: transparent; } + +tooltip * { + padding: 0px; + background-color: transparent; + color: #f7f7f7; } + +/************** + * Tree Views * + **************/ +treeview.view { + -GtkTreeView-grid-line-width: 0; + -GtkTreeView-grid-line-pattern: ''; + -GtkTreeView-tree-line-width: 1; + -GtkTreeView-tree-line-pattern: ''; + -GtkTreeView-expander-size: 16; + border-left-color: #5f6367; + border-top-color: transparent; } + treeview.view:selected { + border-radius: 0; } + treeview.view:selected { + background-color: #FF5F57; + border-left-color: white; + border-top-color: white; } + treeview.view:backdrop:selected { + background-color: rgba(255, 95, 87, 0.5); + border-left-color: white; + border-top-color: white; } + treeview.view:disabled { + color: rgba(86, 90, 94, 0.35); } + treeview.view:disabled:selected { + color: rgba(232, 232, 232, 0.35); } + treeview.view:disabled:selected:backdrop { + color: rgba(232, 232, 232, 0.35); } + treeview.view:disabled:backdrop { + color: rgba(86, 90, 94, 0.35); } + treeview.view.seperator { + min-height: 2px; + color: #5f6367; } + treeview.view.separator:backdrop { + color: #5f6367; } + treeview.view:backdrop { + border-left-color: #5f6367; } + treeview.view:drop(active) { + border-style: solid none; + border-width: 1px; + border-color: #FF5F57; } + treeview.view.expander { + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); + color: white; } + treeview.view.expander:dir(rtl) { + -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); } + treeview.view.expander:hover { + color: #FF5F57; } + treeview.view.expander:selected { + color: white; } + treeview.view.expander:checked { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + treeview.view.expander:checked:selected { + color: white; } + treeview.view.expander:checked:backdrop { + color: #292f34; } + treeview.view.expander:backdrop { + color: #292f34; } + treeview.view header button { + color: white; + background-color: #292f34; + text-shadow: none; + box-shadow: none; } + treeview.view header button:hover { + color: white; + background-color: rgba(255, 95, 87, 0.5); + box-shadow: none; + transition: none; } + treeview.view header button:active { + color: white; + background-color: rgba(255, 95, 87, 0.5); + transition: none; } + treeview.view header button:last-child:backdrop, treeview.view header button:last-child { + border-right-style: none; } + treeview.view button.dnd:active, treeview.view button.dnd:selected, treeview.view button.dnd:hover, treeview.view button.dnd, + treeview.view header.button.dnd:active, + treeview.view header.button.dnd:selected, + treeview.view header.button.dnd:hover, + treeview.view header.button.dnd { + padding: 0 6px; + color: white; + background-image: none; + background-color: #FF5F57; + border-style: none; + border-radius: 0; + box-shadow: none; + text-shadow: none; + transition: none; } + +treeview.view header button, treeview.view header button:hover, treeview.view header button:active { + padding: 6px; + border-style: none solid solid none; + border-radius: 0; + background-image: none; + border-color: #5f6367; + text-shadow: none; } + treeview.view header button:disabled { + border-color: rgba(86, 90, 94, 0.35); + color: rgba(232, 232, 232, 0.35); + background-color: #252b2f; + background-image: none; } + treeview.view header button:backdrop { + border-color: #5f6367; + border-style: none solid solid none; + color: white; + background-image: none; + background-color: #292f34; } + treeview.view header button:backdrop:disabled { + border-color: rgba(86, 90, 94, 0.35); + background-image: none; + background-color: #252b2f; + color: rgba(232, 232, 232, 0.35); } + +/********************** + * Window Decorations * + *********************/ +decoration { + border-radius: 3px 3px 0 0; + border-width: 0px; + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.5); + /* this is used for the resize cursor area */ + margin: 10px; } + .maximized decoration, .fullscreen decoration, .tiled decoration { + border-radius: 0; } + .popup decoration { + border-radius: 3px; + box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.1); } + .ssd decoration { + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.1); } + .csd decoration { + border-radius: 3px; } + .csd decoration.popup { + box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.1); } + .csd decoration.tooltip { + box-shadow: none; } + .csd decoration.message-dialog { + box-shadow: 0 2px 6px 1px rgba(0, 0, 0, 0.5); } + .solid-csd decoration { + border-radius: 0; + margin: 0; + padding: 1px; + border: none; + background-color: #5f6367; + box-shadow: none; } + +headerbar.default-decoration button.titlebutton, +.titlebar.default-decoration button.titlebutton { + padding: 6px 1px; + min-height: 18px; + min-width: 18px; + margin: 0; } +headerbar button.titlebutton, +.titlebar button.titlebutton { + padding: 6px; } + headerbar button.titlebutton:hover, headerbar button.titlebutton:active, headerbar button.titlebutton:checked, headerbar button.titlebutton:backdrop, headerbar button.titlebutton:active:hover, + .titlebar button.titlebutton:hover, + .titlebar button.titlebutton:active, + .titlebar button.titlebutton:checked, + .titlebar button.titlebutton:backdrop, + .titlebar button.titlebutton:active:hover { + transition: none; } + headerbar button.titlebutton.close, + .titlebar button.titlebutton.close { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat + } + headerbar button.titlebutton.close:hover, + .titlebar button.titlebutton.close:hover { + border-color: transparent; + background-color: transparent; + } + headerbar button.titlebutton.close:active, + .titlebar button.titlebutton.close:active { + border-color: transparent; + background-color: transparent; + } + headerbar button.titlebutton.close:backdrop, + .titlebar button.titlebutton.close:backdrop { + border-color: transparent; + background-color: transparent; + } + headerbar button.titlebutton.maximize, + .titlebar button.titlebutton.maximize { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + } + headerbar button.titlebutton.maximize:hover, + .titlebar button.titlebutton.maximize:hover { + border-color: transparent; + background-color: transparent; + } + headerbar button.titlebutton.maximize:active, + .titlebar button.titlebutton.maximize:active { + border-color: transparent; + background-color: transparent; + } + headerbar button.titlebutton.maximize:backdrop, + .titlebar button.titlebutton.maximize:backdrop { + border-color: transparent; + background-color: transparent; + } + headerbar button.titlebutton.minimize, + .titlebar button.titlebutton.minimize { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + } + headerbar button.titlebutton.minimize:hover, + .titlebar button.titlebutton.minimize:hover { + border-color: transparent; + background-color: transparent; + } + headerbar button.titlebutton.minimize:active, + .titlebar button.titlebutton.minimize:active { + border-color: transparent; + background-color: transparent; + } + headerbar button.titlebutton.minimize:backdrop, + .titlebar button.titlebutton.minimize:backdrop { + border-color: transparent; + background-color: transparent; + } +.maximized headerbar button.titlebutton.maximize, .maximized +.titlebar button.titlebutton.maximize { + padding: 6px 1px; + color: transparent; + border-image: none; + box-shadow: none; + background-position: center; + background-repeat: no-repeat; + } +.maximized headerbar button.titlebutton.maximize:hover, .maximized +.titlebar button.titlebutton.maximize:hover { + border-color: transparent; + background-color: transparent; + } +.maximized headerbar button.titlebutton.maximize:active, .maximized +.titlebar button.titlebutton.maximize:active { + border-color: transparent; + background-color: transparent; + } +.maximized headerbar button.titlebutton.maximize:backdrop, .maximized +.titlebar button.titlebutton.maximize:backdrop { + border-color: transparent; + background-color: transparent; + } + +headerbar.selection-mode button.titlebutton, +.titlebar.selection-mode button.titlebutton { + text-shadow: none; } + headerbar.selection-mode button.titlebutton:backdrop, + .titlebar.selection-mode button.titlebutton:backdrop { + -gtk-icon-shadow: none; } + +/* + Original theme source: https://gitlab.manjaro.org/artwork/themes/breath-gtk + Changes to original: + - all refrences to assets have been removed + - green hex codes been changed to #FF5F57 +*/ + +/* + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +(This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.) + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS +*/ \ No newline at end of file diff --git a/Ryujinx/Ui/AboutWindow.cs b/Ryujinx/Ui/AboutWindow.cs new file mode 100644 index 000000000..6f31b9cde --- /dev/null +++ b/Ryujinx/Ui/AboutWindow.cs @@ -0,0 +1,116 @@ +using Gtk; +using GUI = Gtk.Builder.ObjectAttribute; +using System; +using System.Diagnostics; +using System.Reflection; +using System.Runtime.InteropServices; +using Utf8Json; +using Utf8Json.Resolvers; +using System.IO; + +namespace Ryujinx.UI +{ + public struct Info + { + public string InstallVersion; + public string InstallCommit; + public string InstallBranch; + } + + public class AboutWindow : Window + { + public static Info Information { get; private set; } + +#pragma warning disable 649 + [GUI] Window _aboutWin; + [GUI] Label _versionText; + [GUI] Image _ryujinxLogo; + [GUI] Image _patreonLogo; + [GUI] Image _gitHubLogo; + [GUI] Image _discordLogo; + [GUI] Image _twitterLogo; +#pragma warning restore 649 + + public AboutWindow() : this(new Builder("Ryujinx.Ui.AboutWindow.glade")) { } + + private AboutWindow(Builder builder) : base(builder.GetObject("_aboutWin").Handle) + { + builder.Autoconnect(this); + + _aboutWin.Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.RyujinxIcon.png"); + _ryujinxLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.RyujinxIcon.png", 100, 100); + _patreonLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.PatreonLogo.png", 30 , 30 ); + _gitHubLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.GitHubLogo.png" , 30 , 30 ); + _discordLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.DiscordLogo.png", 30 , 30 ); + _twitterLogo.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.TwitterLogo.png", 30 , 30 ); + + try + { + IJsonFormatterResolver resolver = CompositeResolver.Create(new[] { StandardResolver.AllowPrivateSnakeCase }); + + using (Stream stream = File.OpenRead(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "RyuFS", "Installer", "Config", "Config.json"))) + { + Information = JsonSerializer.Deserialize(stream, resolver); + } + + _versionText.Text = $"Version {Information.InstallVersion} - {Information.InstallBranch} ({Information.InstallCommit})"; + } + catch + { + _versionText.Text = "Unknown Version"; + } + } + + public void OpenUrl(string url) + { + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + Process.Start(new ProcessStartInfo("cmd", $"/c start {url}")); + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) + { + Process.Start("xdg-open", url); + } + else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) + { + Process.Start("open", url); + } + } + + //Events + private void RyujinxButton_Pressed(object obj, ButtonPressEventArgs args) + { + OpenUrl("https://ryujinx.org"); + } + + private void PatreonButton_Pressed(object obj, ButtonPressEventArgs args) + { + OpenUrl("https://www.patreon.com/ryujinx"); + } + + private void GitHubButton_Pressed(object obj, ButtonPressEventArgs args) + { + OpenUrl("https://github.com/Ryujinx/Ryujinx"); + } + + private void DiscordButton_Pressed(object obj, ButtonPressEventArgs args) + { + OpenUrl("https://discordapp.com/invite/N2FmfVc"); + } + + private void TwitterButton_Pressed(object obj, ButtonPressEventArgs args) + { + OpenUrl("https://twitter.com/RyujinxEmu"); + } + + private void ContributersButton_Pressed(object obj, ButtonPressEventArgs args) + { + OpenUrl("https://github.com/Ryujinx/Ryujinx/graphs/contributors?type=a"); + } + + private void CloseToggle_Activated(object obj, EventArgs args) + { + Destroy(); + } + } +} diff --git a/Ryujinx/Ui/AboutWindow.glade b/Ryujinx/Ui/AboutWindow.glade new file mode 100644 index 000000000..28a800720 --- /dev/null +++ b/Ryujinx/Ui/AboutWindow.glade @@ -0,0 +1,574 @@ + + + + + + False + False + True + center + 800 + 350 + dialog + + + + + + False + vertical + + + False + + + False + False + 0 + + + + + True + False + + + True + False + 10 + 15 + 10 + 15 + vertical + + + True + False + start + vertical + + + True + False + + + + True + True + 0 + + + + + True + False + center + vertical + + + True + False + Ryujinx + center + + + + + + False + True + 0 + + + + + True + False + (REE-YOU-JI-NX) + center + + + False + True + 1 + + + + + True + False + + + + True + False + Click to open the Ryujinx website in your default browser + www.ryujinx.org + center + + + + + + + + False + True + 5 + 2 + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + Version x.x.x (Commit Number) + center + + + False + True + 2 + 1 + + + + + True + False + Unlicenced + center + + + False + True + 5 + 2 + + + + + True + False + Ryujinx is not affiliated with Nintendo, +or any of its partners, in any way + center + + + + + + False + True + 5 + 3 + + + + + False + False + 0 + + + + + True + False + 25 + + + True + False + Click to open the Ryujinx Patreon page in your default browser + + + + True + False + vertical + + + + True + True + 0 + + + + + True + False + Patreon + + + False + True + 1 + + + + + + + True + True + 0 + + + + + True + False + Click to open the Ryujinx GitHub page in your default browser + + + + True + False + vertical + + + + True + True + 0 + + + + + True + False + GitHub + + + False + True + 1 + + + + + + + True + True + 1 + + + + + True + False + Click to open an invite to the Ryujinx Discord server in your default browser + + + + True + False + vertical + + + + True + True + 0 + + + + + True + False + Discord + + + False + True + 1 + + + + + + + True + True + 2 + + + + + True + False + Click to open the Ryujinx Twitter page in your default browser + + + + True + False + vertical + + + + True + True + 0 + + + + + True + False + Twitter + + + False + True + 1 + + + + + + + True + True + 3 + + + + + False + False + end + 2 + + + + + True + False + 0 + + + + + True + False + 10 + 10 + + + False + True + 1 + + + + + True + False + 15 + 10 + 40 + 15 + vertical + + + True + False + start + About + + + + + + False + True + 0 + + + + + True + False + start + 10 + Ryujinx is an emulator for the Nintendo Switch. +Please support us on Patreon. +Get all the latest news on our Twitter or Discord. +Developers interested in contributing can find out more on our Discord. + + + False + True + 5 + 1 + + + + + True + False + start + Created By: + + + + + + False + True + 5 + 2 + + + + + True + False + 10 + vertical + + + True + True + in + + + True + False + + + True + False + top + + + True + False + start + gdkchan +LDj3SNuD +Ac_K +Thog + 0 + + + True + True + 0 + + + + + True + False + start + »jD« +emmaus +Thealexbarney +Andy A (BaronKiko) + 0 + + + True + True + 1 + + + + + + + + + True + True + 0 + + + + + True + False + start + + + + True + False + end + 5 + All Contributors... + + + + + + + + False + False + 2 + + + + + True + True + 3 + + + + + True + True + 2 + + + + + True + True + 1 + + + + + + diff --git a/Ryujinx/Ui/ApplicationLibrary.cs b/Ryujinx/Ui/ApplicationLibrary.cs new file mode 100644 index 000000000..7e731f794 --- /dev/null +++ b/Ryujinx/Ui/ApplicationLibrary.cs @@ -0,0 +1,450 @@ +using LibHac; +using LibHac.Fs; +using LibHac.Fs.NcaUtils; +using Ryujinx.Common.Logging; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using SystemState = Ryujinx.HLE.HOS.SystemState; + +namespace Ryujinx.UI +{ + public class ApplicationLibrary + { + private static Keyset KeySet; + private static SystemState.TitleLanguage DesiredTitleLanguage; + + private const double SecondsPerMinute = 60.0; + private const double SecondsPerHour = SecondsPerMinute * 60; + private const double SecondsPerDay = SecondsPerHour * 24; + + public static byte[] RyujinxNspIcon { get; private set; } + public static byte[] RyujinxXciIcon { get; private set; } + public static byte[] RyujinxNcaIcon { get; private set; } + public static byte[] RyujinxNroIcon { get; private set; } + public static byte[] RyujinxNsoIcon { get; private set; } + + public static List ApplicationLibraryData { get; private set; } + + public struct ApplicationData + { + public byte[] Icon; + public string TitleName; + public string TitleId; + public string Developer; + public string Version; + public string TimePlayed; + public string LastPlayed; + public string FileExt; + public string FileSize; + public string Path; + } + + public static void Init(List AppDirs, Keyset keySet, SystemState.TitleLanguage desiredTitleLanguage) + { + KeySet = keySet; + DesiredTitleLanguage = desiredTitleLanguage; + + // Loads the default application Icons + RyujinxNspIcon = GetResourceBytes("Ryujinx.Ui.assets.ryujinxNSPIcon.png"); + RyujinxXciIcon = GetResourceBytes("Ryujinx.Ui.assets.ryujinxXCIIcon.png"); + RyujinxNcaIcon = GetResourceBytes("Ryujinx.Ui.assets.ryujinxNCAIcon.png"); + RyujinxNroIcon = GetResourceBytes("Ryujinx.Ui.assets.ryujinxNROIcon.png"); + RyujinxNsoIcon = GetResourceBytes("Ryujinx.Ui.assets.ryujinxNSOIcon.png"); + + // Builds the applications list with paths to found applications + List applications = new List(); + foreach (string appDir in AppDirs) + { + if (Directory.Exists(appDir) == false) + { + Logger.PrintWarning(LogClass.Application, $"The \"game_dirs\" section in \"Config.json\" contains an invalid directory: \"{appDir}\""); + + continue; + } + + DirectoryInfo AppDirInfo = new DirectoryInfo(appDir); + foreach (FileInfo App in AppDirInfo.GetFiles()) + { + if ((Path.GetExtension(App.ToString()) == ".xci") || + (Path.GetExtension(App.ToString()) == ".nca") || + (Path.GetExtension(App.ToString()) == ".nsp") || + (Path.GetExtension(App.ToString()) == ".pfs0") || + (Path.GetExtension(App.ToString()) == ".nro") || + (Path.GetExtension(App.ToString()) == ".nso")) + { + applications.Add(App.ToString()); + } + } + } + + // Loops through applications list, creating a struct for each application and then adding the struct to a list of structs + ApplicationLibraryData = new List(); + foreach (string applicationPath in applications) + { + double filesize = new FileInfo(applicationPath).Length * 0.000000000931; + string titleName = null; + string titleId = null; + string developer = null; + string version = null; + byte[] applicationIcon = null; + + using (FileStream file = new FileStream(applicationPath, FileMode.Open, FileAccess.Read)) + { + if ((Path.GetExtension(applicationPath) == ".nsp") || + (Path.GetExtension(applicationPath) == ".pfs0") || + (Path.GetExtension(applicationPath) == ".xci")) + { + try + { + IFileSystem controlFs = null; + + // Store the ControlFS in variable called controlFs + if (Path.GetExtension(applicationPath) == ".xci") + { + Xci xci = new Xci(KeySet, file.AsStorage()); + + controlFs = GetControlFs(xci.OpenPartition(XciPartitionType.Secure)); + } + else + { + controlFs = GetControlFs(new PartitionFileSystem(file.AsStorage())); + } + + // Creates NACP class from the NACP file + IFile controlNacp = controlFs.OpenFile("/control.nacp", OpenMode.Read); + Nacp controlData = new Nacp(controlNacp.AsStream()); + + // Get the title name, title ID, developer name and version number from the NACP + version = controlData.DisplayVersion; + + titleName = controlData.Descriptions[(int)DesiredTitleLanguage].Title; + + if (string.IsNullOrWhiteSpace(titleName)) + { + titleName = controlData.Descriptions.ToList().Find(x => !string.IsNullOrWhiteSpace(x.Title)).Title; + } + + titleId = controlData.PresenceGroupId.ToString("x16"); + + if (string.IsNullOrWhiteSpace(titleId)) + { + titleId = controlData.SaveDataOwnerId.ToString("x16"); + } + + if (string.IsNullOrWhiteSpace(titleId)) + { + titleId = (controlData.AddOnContentBaseId - 0x1000).ToString("x16"); + } + + developer = controlData.Descriptions[(int)DesiredTitleLanguage].Developer; + + if (string.IsNullOrWhiteSpace(developer)) + { + developer = controlData.Descriptions.ToList().Find(x => !string.IsNullOrWhiteSpace(x.Developer)).Developer; + } + + // Read the icon from the ControlFS and store it as a byte array + try + { + IFile icon = controlFs.OpenFile($"/icon_{DesiredTitleLanguage}.dat", OpenMode.Read); + using (MemoryStream stream = new MemoryStream()) + { + icon.AsStream().CopyTo(stream); + applicationIcon = stream.ToArray(); + } + } + catch (HorizonResultException) + { + IDirectory controlDir = controlFs.OpenDirectory("./", OpenDirectoryMode.All); + foreach (DirectoryEntry entry in controlDir.Read()) + { + if (entry.Name == "control.nacp") + { + continue; + } + + IFile icon = controlFs.OpenFile(entry.FullPath, OpenMode.Read); + using (MemoryStream stream = new MemoryStream()) + { + icon.AsStream().CopyTo(stream); + applicationIcon = stream.ToArray(); + } + + if (applicationIcon != null) + { + break; + } + } + + if (applicationIcon == null) + { + applicationIcon = NspOrXciIcon(applicationPath); + } + } + } + catch (MissingKeyException exception) + { + titleName = "Unknown"; + titleId = "Unknown"; + developer = "Unknown"; + version = "?"; + applicationIcon = NspOrXciIcon(applicationPath); + + Logger.PrintWarning(LogClass.Application, $"Your key set is missing a key with the name: {exception.Name}"); + } + catch (InvalidDataException) + { + titleName = "Unknown"; + titleId = "Unknown"; + developer = "Unknown"; + version = "?"; + applicationIcon = NspOrXciIcon(applicationPath); + + Logger.PrintWarning(LogClass.Application, $"The file is not an NCA file or the header key is incorrect. Errored File: {applicationPath}"); + } + catch (Exception exception) + { + Logger.PrintWarning(LogClass.Application, $"This warning usualy means that you have a DLC in one of you game directories\n{exception}"); + + continue; + } + } + else if (Path.GetExtension(applicationPath) == ".nro") + { + BinaryReader reader = new BinaryReader(file); + + byte[] Read(long Position, int Size) + { + file.Seek(Position, SeekOrigin.Begin); + + return reader.ReadBytes(Size); + } + + file.Seek(24, SeekOrigin.Begin); + int AssetOffset = reader.ReadInt32(); + + if (Encoding.ASCII.GetString(Read(AssetOffset, 4)) == "ASET") + { + byte[] IconSectionInfo = Read(AssetOffset + 8, 0x10); + + long iconOffset = BitConverter.ToInt64(IconSectionInfo, 0); + long iconSize = BitConverter.ToInt64(IconSectionInfo, 8); + + ulong nacpOffset = reader.ReadUInt64(); + ulong nacpSize = reader.ReadUInt64(); + + // Reads and stores game icon as byte array + applicationIcon = Read(AssetOffset + iconOffset, (int)iconSize); + + // Creates memory stream out of byte array which is the NACP + using (MemoryStream stream = new MemoryStream(Read(AssetOffset + (int)nacpOffset, (int)nacpSize))) + { + // Creates NACP class from the memory stream + Nacp controlData = new Nacp(stream); + + // Get the title name, title ID, developer name and version number from the NACP + version = controlData.DisplayVersion; + + titleName = controlData.Descriptions[(int)DesiredTitleLanguage].Title; + + if (string.IsNullOrWhiteSpace(titleName)) + { + titleName = controlData.Descriptions.ToList().Find(x => !string.IsNullOrWhiteSpace(x.Title)).Title; + } + + titleId = controlData.PresenceGroupId.ToString("x16"); + + if (string.IsNullOrWhiteSpace(titleId)) + { + titleId = controlData.SaveDataOwnerId.ToString("x16"); + } + + if (string.IsNullOrWhiteSpace(titleId)) + { + titleId = (controlData.AddOnContentBaseId - 0x1000).ToString("x16"); + } + + developer = controlData.Descriptions[(int)DesiredTitleLanguage].Developer; + + if (string.IsNullOrWhiteSpace(developer)) + { + developer = controlData.Descriptions.ToList().Find(x => !string.IsNullOrWhiteSpace(x.Developer)).Developer; + } + } + } + else + { + applicationIcon = RyujinxNroIcon; + titleName = "Application"; + titleId = "0000000000000000"; + developer = "Unknown"; + version = "?"; + } + } + // If its an NCA or NSO we just set defaults + else if ((Path.GetExtension(applicationPath) == ".nca") || (Path.GetExtension(applicationPath) == ".nso")) + { + if (Path.GetExtension(applicationPath) == ".nca") + { + applicationIcon = RyujinxNcaIcon; + } + else if (Path.GetExtension(applicationPath) == ".nso") + { + applicationIcon = RyujinxNsoIcon; + } + + string fileName = Path.GetFileName(applicationPath); + string fileExt = Path.GetExtension(applicationPath); + + StringBuilder titlename = new StringBuilder(); + titlename.Append(fileName); + titlename.Remove(fileName.Length - fileExt.Length, fileExt.Length); + + titleName = titlename.ToString(); + titleId = "0000000000000000"; + version = "?"; + developer = "Unknown"; + } + } + + string[] playedData = GetPlayedData(titleId, "00000000000000000000000000000001"); + + ApplicationData data = new ApplicationData() + { + Icon = applicationIcon, + TitleName = titleName, + TitleId = titleId, + Developer = developer, + Version = version, + TimePlayed = playedData[0], + LastPlayed = playedData[1], + FileExt = Path.GetExtension(applicationPath).ToUpper().Remove(0 ,1), + FileSize = (filesize < 1) ? (filesize * 1024).ToString("0.##") + "MB" : filesize.ToString("0.##") + "GB", + Path = applicationPath, + }; + + ApplicationLibraryData.Add(data); + } + } + + private static byte[] GetResourceBytes(string resourceName) + { + Stream resourceStream = Assembly.GetCallingAssembly().GetManifestResourceStream(resourceName); + byte[] resourceByteArray = new byte[resourceStream.Length]; + + resourceStream.Read(resourceByteArray); + + return resourceByteArray; + } + + private static IFileSystem GetControlFs(PartitionFileSystem Pfs) + { + Nca controlNca = null; + + // Add keys to keyset if needed + foreach (DirectoryEntry ticketEntry in Pfs.EnumerateEntries("*.tik")) + { + Ticket ticket = new Ticket(Pfs.OpenFile(ticketEntry.FullPath, OpenMode.Read).AsStream()); + + if (!KeySet.TitleKeys.ContainsKey(ticket.RightsId)) + { + KeySet.TitleKeys.Add(ticket.RightsId, ticket.GetTitleKey(KeySet)); + } + } + + // Find the Control NCA and store it in variable called controlNca + foreach (DirectoryEntry fileEntry in Pfs.EnumerateEntries("*.nca")) + { + Nca nca = new Nca(KeySet, Pfs.OpenFile(fileEntry.FullPath, OpenMode.Read).AsStorage()); + if (nca.Header.ContentType == ContentType.Control) + { + controlNca = nca; + } + } + + // Return the ControlFS + return controlNca.OpenFileSystem(NcaSectionType.Data, IntegrityCheckLevel.None); + } + + private static string[] GetPlayedData(string TitleId, string UserId) + { + try + { + string[] playedData = new string[2]; + string savePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "RyuFS", "nand", "user", "save", "0000000000000000", UserId, TitleId); + + if (File.Exists(Path.Combine(savePath, "TimePlayed.dat")) == false) + { + Directory.CreateDirectory(savePath); + using (FileStream file = File.OpenWrite(Path.Combine(savePath, "TimePlayed.dat"))) + { + file.Write(Encoding.ASCII.GetBytes("0")); + } + } + using (FileStream fs = File.OpenRead(Path.Combine(savePath, "TimePlayed.dat"))) + { + using (StreamReader sr = new StreamReader(fs)) + { + float timePlayed = float.Parse(sr.ReadLine()); + + if (timePlayed < SecondsPerMinute) + { + playedData[0] = $"{timePlayed}s"; + } + else if (timePlayed < SecondsPerHour) + { + playedData[0] = $"{Math.Round(timePlayed / SecondsPerMinute, 2, MidpointRounding.AwayFromZero)} mins"; + } + else if (timePlayed < SecondsPerDay) + { + playedData[0] = $"{Math.Round(timePlayed / SecondsPerHour , 2, MidpointRounding.AwayFromZero)} hrs"; + } + else + { + playedData[0] = $"{Math.Round(timePlayed / SecondsPerDay , 2, MidpointRounding.AwayFromZero)} days"; + } + } + } + + if (File.Exists(Path.Combine(savePath, "LastPlayed.dat")) == false) + { + Directory.CreateDirectory(savePath); + using (FileStream file = File.OpenWrite(Path.Combine(savePath, "LastPlayed.dat"))) + { + file.Write(Encoding.ASCII.GetBytes("Never")); + } + } + + using (FileStream fs = File.OpenRead(Path.Combine(savePath, "LastPlayed.dat"))) + { + using (StreamReader sr = new StreamReader(fs)) + { + playedData[1] = sr.ReadLine(); + } + } + + return playedData; + } + catch + { + return new string[] { "Unknown", "Unknown" }; + } + } + + private static byte[] NspOrXciIcon(string applicationPath) + { + if (Path.GetExtension(applicationPath) == ".xci") + { + return RyujinxXciIcon; + } + else + { + return RyujinxNspIcon; + } + } + } +} diff --git a/Ryujinx/Ui/GLScreen.cs b/Ryujinx/Ui/GLScreen.cs index a881959cf..7c3946300 100644 --- a/Ryujinx/Ui/GLScreen.cs +++ b/Ryujinx/Ui/GLScreen.cs @@ -10,7 +10,7 @@ using System.Threading; using Stopwatch = System.Diagnostics.Stopwatch; -namespace Ryujinx +namespace Ryujinx.UI { public class GlScreen : GameWindow { diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs new file mode 100644 index 000000000..132c90e6d --- /dev/null +++ b/Ryujinx/Ui/MainWindow.cs @@ -0,0 +1,601 @@ +using DiscordRPC; +using Gtk; +using GUI = Gtk.Builder.ObjectAttribute; +using Ryujinx.Audio; +using Ryujinx.Common.Logging; +using Ryujinx.Graphics.Gal; +using Ryujinx.Graphics.Gal.OpenGL; +using Ryujinx.Profiler; +using System; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading; + +namespace Ryujinx.UI +{ + public class MainWindow : Window + { + internal static HLE.Switch _device; + + private static IGalRenderer _renderer; + + private static IAalOutput _audioOut; + + private static Application _gtkApplication; + + private static ListStore _tableStore; + + private static bool _gameLoaded = false; + + private static string _userId = "00000000000000000000000000000001"; + + public static bool DiscordIntegrationEnabled { get; set; } + + public static DiscordRpcClient DiscordClient; + + public static RichPresence DiscordPresence; + +#pragma warning disable 649 + [GUI] Window _mainWin; + [GUI] CheckMenuItem _fullScreen; + [GUI] MenuItem _stopEmulation; + [GUI] CheckMenuItem _iconToggle; + [GUI] CheckMenuItem _titleToggle; + [GUI] CheckMenuItem _developerToggle; + [GUI] CheckMenuItem _versionToggle; + [GUI] CheckMenuItem _timePlayedToggle; + [GUI] CheckMenuItem _lastPlayedToggle; + [GUI] CheckMenuItem _fileExtToggle; + [GUI] CheckMenuItem _fileSizeToggle; + [GUI] CheckMenuItem _pathToggle; + [GUI] Box _box; + [GUI] TreeView _gameTable; + [GUI] GLArea _glScreen; +#pragma warning restore 649 + + public MainWindow(string[] args, Application gtkApplication) : this(new Builder("Ryujinx.Ui.MainWindow.glade"), args, gtkApplication) { } + + private MainWindow(Builder builder, string[] args, Application gtkApplication) : base(builder.GetObject("_mainWin").Handle) + { + _renderer = new OglRenderer(); + + _audioOut = InitializeAudioEngine(); + + _device = new HLE.Switch(_renderer, _audioOut); + + Configuration.Load(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + Configuration.InitialConfigure(_device); + + ApplicationLibrary.Init(SwitchSettings.SwitchConfig.GameDirs, _device.System.KeySet, _device.System.State.DesiredTitleLanguage); + + _gtkApplication = gtkApplication; + + ApplyTheme(); + + if (DiscordIntegrationEnabled) + { + DiscordClient = new DiscordRpcClient("568815339807309834"); + DiscordPresence = new RichPresence + { + Assets = new Assets + { + LargeImageKey = "ryujinx", + LargeImageText = "Ryujinx is an emulator for the Nintendo Switch" + }, + Details = "Main Menu", + State = "Idling", + Timestamps = new Timestamps(DateTime.UtcNow) + }; + + DiscordClient.Initialize(); + DiscordClient.SetPresence(DiscordPresence); + } + + builder.Autoconnect(this); + + DeleteEvent += Window_Close; + + _mainWin.Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.RyujinxIcon.png"); + _stopEmulation.Sensitive = false; + + if (SwitchSettings.SwitchConfig.GuiColumns[0]) { _iconToggle.Active = true; } + if (SwitchSettings.SwitchConfig.GuiColumns[1]) { _titleToggle.Active = true; } + if (SwitchSettings.SwitchConfig.GuiColumns[2]) { _developerToggle.Active = true; } + if (SwitchSettings.SwitchConfig.GuiColumns[3]) { _versionToggle.Active = true; } + if (SwitchSettings.SwitchConfig.GuiColumns[4]) { _timePlayedToggle.Active = true; } + if (SwitchSettings.SwitchConfig.GuiColumns[5]) { _lastPlayedToggle.Active = true; } + if (SwitchSettings.SwitchConfig.GuiColumns[6]) { _fileExtToggle.Active = true; } + if (SwitchSettings.SwitchConfig.GuiColumns[7]) { _fileSizeToggle.Active = true; } + if (SwitchSettings.SwitchConfig.GuiColumns[8]) { _pathToggle.Active = true; } + + if (args.Length == 1) + { + // Temporary code section start, remove this section when game is rendered to the GLArea in the GUI + _box.Remove(_glScreen); + + if (SwitchSettings.SwitchConfig.GuiColumns[0]) { _gameTable.AppendColumn("Icon", new CellRendererPixbuf(), "pixbuf", 0); } + if (SwitchSettings.SwitchConfig.GuiColumns[1]) { _gameTable.AppendColumn("Application", new CellRendererText(), "text", 1); } + if (SwitchSettings.SwitchConfig.GuiColumns[2]) { _gameTable.AppendColumn("Developer", new CellRendererText(), "text", 2); } + if (SwitchSettings.SwitchConfig.GuiColumns[3]) { _gameTable.AppendColumn("Version", new CellRendererText(), "text", 3); } + if (SwitchSettings.SwitchConfig.GuiColumns[4]) { _gameTable.AppendColumn("Time Played", new CellRendererText(), "text", 4); } + if (SwitchSettings.SwitchConfig.GuiColumns[5]) { _gameTable.AppendColumn("Last Played", new CellRendererText(), "text", 5); } + if (SwitchSettings.SwitchConfig.GuiColumns[6]) { _gameTable.AppendColumn("File Ext", new CellRendererText(), "text", 6); } + if (SwitchSettings.SwitchConfig.GuiColumns[7]) { _gameTable.AppendColumn("File Size", new CellRendererText(), "text", 7); } + if (SwitchSettings.SwitchConfig.GuiColumns[8]) { _gameTable.AppendColumn("Path", new CellRendererText(), "text", 8); } + + _tableStore = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string)); + _gameTable.Model = _tableStore; + + UpdateGameTable(); + // Temporary code section end + + LoadApplication(args[0]); + } + else + { + _box.Remove(_glScreen); + + if (SwitchSettings.SwitchConfig.GuiColumns[0]) { _gameTable.AppendColumn("Icon", new CellRendererPixbuf(), "pixbuf", 0); } + if (SwitchSettings.SwitchConfig.GuiColumns[1]) { _gameTable.AppendColumn("Application", new CellRendererText(), "text", 1); } + if (SwitchSettings.SwitchConfig.GuiColumns[2]) { _gameTable.AppendColumn("Developer", new CellRendererText(), "text", 2); } + if (SwitchSettings.SwitchConfig.GuiColumns[3]) { _gameTable.AppendColumn("Version", new CellRendererText(), "text", 3); } + if (SwitchSettings.SwitchConfig.GuiColumns[4]) { _gameTable.AppendColumn("Time Played", new CellRendererText(), "text", 4); } + if (SwitchSettings.SwitchConfig.GuiColumns[5]) { _gameTable.AppendColumn("Last Played", new CellRendererText(), "text", 5); } + if (SwitchSettings.SwitchConfig.GuiColumns[6]) { _gameTable.AppendColumn("File Ext", new CellRendererText(), "text", 6); } + if (SwitchSettings.SwitchConfig.GuiColumns[7]) { _gameTable.AppendColumn("File Size", new CellRendererText(), "text", 7); } + if (SwitchSettings.SwitchConfig.GuiColumns[8]) { _gameTable.AppendColumn("Path", new CellRendererText(), "text", 8); } + + _tableStore = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string)); + _gameTable.Model = _tableStore; + + UpdateGameTable(); + } + } + + public static void CreateErrorDialog(string errorMessage) + { + MessageDialog errorDialog = new MessageDialog(null, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, errorMessage) + { + Title = "Ryujinx - Error", + Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.RyujinxIcon.png"), + WindowPosition = WindowPosition.Center + }; + errorDialog.SetSizeRequest(100, 20); + errorDialog.Run(); + errorDialog.Destroy(); + } + + public static void UpdateGameTable() + { + _tableStore.Clear(); + ApplicationLibrary.Init(SwitchSettings.SwitchConfig.GameDirs, _device.System.KeySet, _device.System.State.DesiredTitleLanguage); + + foreach (ApplicationLibrary.ApplicationData AppData in ApplicationLibrary.ApplicationLibraryData) + { + _tableStore.AppendValues(new Gdk.Pixbuf(AppData.Icon, 75, 75), $"{AppData.TitleName}\n{AppData.TitleId.ToUpper()}", AppData.Developer, AppData.Version, AppData.TimePlayed, AppData.LastPlayed, AppData.FileExt, AppData.FileSize, AppData.Path); + } + } + + public static void ApplyTheme() + { + CssProvider cssProvider = new CssProvider(); + + if (SwitchSettings.SwitchConfig.EnableCustomTheme) + { + if (File.Exists(SwitchSettings.SwitchConfig.CustomThemePath) && (System.IO.Path.GetExtension(SwitchSettings.SwitchConfig.CustomThemePath) == ".css")) + { + cssProvider.LoadFromPath(SwitchSettings.SwitchConfig.CustomThemePath); + } + else + { + Logger.PrintWarning(LogClass.Application, $"The \"custom_theme_path\" section in \"Config.json\" contains an invalid path: \"{SwitchSettings.SwitchConfig.CustomThemePath}\""); + } + } + else + { + cssProvider.LoadFromPath(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Theme.css")); + } + + StyleContext.AddProviderForScreen(Gdk.Screen.Default, cssProvider, 800); + } + + private void LoadApplication(string path) + { + if (_gameLoaded) + { + CreateErrorDialog("A game has already been loaded. Please close the emulator and try again"); + } + else + { + if (Directory.Exists(path)) + { + string[] romFsFiles = Directory.GetFiles(path, "*.istorage"); + + if (romFsFiles.Length == 0) + { + romFsFiles = Directory.GetFiles(path, "*.romfs"); + } + + if (romFsFiles.Length > 0) + { + Logger.PrintInfo(LogClass.Application, "Loading as cart with RomFS."); + _device.LoadCart(path, romFsFiles[0]); + } + else + { + Logger.PrintInfo(LogClass.Application, "Loading as cart WITHOUT RomFS."); + _device.LoadCart(path); + } + } + + else if (File.Exists(path)) + { + switch (System.IO.Path.GetExtension(path).ToLowerInvariant()) + { + case ".xci": + Logger.PrintInfo(LogClass.Application, "Loading as XCI."); + _device.LoadXci(path); + break; + case ".nca": + Logger.PrintInfo(LogClass.Application, "Loading as NCA."); + _device.LoadNca(path); + break; + case ".nsp": + case ".pfs0": + Logger.PrintInfo(LogClass.Application, "Loading as NSP."); + _device.LoadNsp(path); + break; + default: + Logger.PrintInfo(LogClass.Application, "Loading as homebrew."); + try + { + _device.LoadProgram(path); + } + catch (ArgumentOutOfRangeException) + { + Logger.PrintError(LogClass.Application, $"The file which you have specified is unsupported by Ryujinx"); + } + break; + } + } + else + { + Logger.PrintWarning(LogClass.Application, "Please specify a valid XCI/NCA/NSP/PFS0/NRO file"); + End(); + } + + new Thread(new ThreadStart(CreateGameWindow)).Start(); + + _gameLoaded = true; + _stopEmulation.Sensitive = true; + + if (DiscordIntegrationEnabled) + { + if (File.ReadAllLines(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "RPsupported.dat")).Contains(_device.System.TitleID)) + { + DiscordPresence.Assets.LargeImageKey = _device.System.TitleID; + } + + string state = _device.System.TitleID; + + if (state == null) + { + state = "Ryujinx"; + } + else + { + state = state.ToUpper(); + } + + string details = "Idling"; + + if (_device.System.TitleName != null) + { + details = $"Playing {_device.System.TitleName}"; + } + + DiscordPresence.Details = details; + DiscordPresence.State = state; + DiscordPresence.Assets.LargeImageText = _device.System.TitleName; + DiscordPresence.Assets.SmallImageKey = "ryujinx"; + DiscordPresence.Assets.SmallImageText = "Ryujinx is an emulator for the Nintendo Switch"; + DiscordPresence.Timestamps = new Timestamps(DateTime.UtcNow); + + DiscordClient.SetPresence(DiscordPresence); + } + + try + { + string savePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "RyuFS", "nand", "user", "save", "0000000000000000", _userId, _device.System.TitleID); + + if (File.Exists(System.IO.Path.Combine(savePath, "TimePlayed.dat")) == false) + { + Directory.CreateDirectory(savePath); + using (FileStream stream = File.OpenWrite(System.IO.Path.Combine(savePath, "TimePlayed.dat"))) + { + stream.Write(Encoding.ASCII.GetBytes("0")); + } + } + + if (File.Exists(System.IO.Path.Combine(savePath, "LastPlayed.dat")) == false) + { + Directory.CreateDirectory(savePath); + using (FileStream stream = File.OpenWrite(System.IO.Path.Combine(savePath, "LastPlayed.dat"))) + { + stream.Write(Encoding.ASCII.GetBytes("Never")); + } + } + + using (FileStream stream = File.OpenWrite(System.IO.Path.Combine(savePath, "LastPlayed.dat"))) + { + using (StreamWriter writer = new StreamWriter(stream)) + { + writer.WriteLine(DateTime.UtcNow); + } + } + } + catch (ArgumentNullException) + { + Logger.PrintWarning(LogClass.Application, $"Could not access save path to retrieve time/last played data using: UserID: {_userId}, TitleID: {_device.System.TitleID}"); + } + } + } + + private static void CreateGameWindow() + { + Configuration.ConfigureHid(_device, SwitchSettings.SwitchConfig); + + using (GlScreen screen = new GlScreen(_device, _renderer)) + { + screen.MainLoop(); + + End(); + } + } + + private static void End() + { + if (_gameLoaded) + { + try + { + string savePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "RyuFS", "nand", "user", "save", "0000000000000000", _userId, _device.System.TitleID); + double currentPlayTime = 0; + + using (FileStream stream = File.OpenRead(System.IO.Path.Combine(savePath, "LastPlayed.dat"))) + { + using (StreamReader reader = new StreamReader(stream)) + { + DateTime startTime = DateTime.Parse(reader.ReadLine()); + + using (FileStream lastPlayedStream = File.OpenRead(System.IO.Path.Combine(savePath, "TimePlayed.dat"))) + { + using (StreamReader lastPlayedReader = new StreamReader(lastPlayedStream)) + { + currentPlayTime = double.Parse(lastPlayedReader.ReadLine()); + } + } + + using (FileStream timePlayedStream = File.OpenWrite(System.IO.Path.Combine(savePath, "TimePlayed.dat"))) + { + using (StreamWriter timePlayedWriter = new StreamWriter(timePlayedStream)) + { + timePlayedWriter.WriteLine(currentPlayTime + Math.Round(DateTime.UtcNow.Subtract(startTime).TotalSeconds, MidpointRounding.AwayFromZero)); + } + } + } + } + } + catch (ArgumentNullException) + { + Logger.PrintWarning(LogClass.Application, $"Could not access save path to retrieve time/last played data using: UserID: {_userId}, TitleID: {_device.System.TitleID}"); + } + } + + Profile.FinishProfiling(); + _device.Dispose(); + _audioOut.Dispose(); + DiscordClient.Dispose(); + Logger.Shutdown(); + Environment.Exit(0); + } + + /// + /// Picks an audio output renderer supported on this machine + /// + /// An supported by this machine + private static IAalOutput InitializeAudioEngine() + { + if (SoundIoAudioOut.IsSupported) + { + return new SoundIoAudioOut(); + } + else if (OpenALAudioOut.IsSupported) + { + return new OpenALAudioOut(); + } + else + { + return new DummyAudioOut(); + } + } + + //Events + private void Row_Activated(object o, RowActivatedArgs args) + { + _tableStore.GetIter(out TreeIter treeIter, new TreePath(args.Path.ToString())); + string path = (string)_tableStore.GetValue(treeIter, 8); + + LoadApplication(path); + } + + private void Load_Application_File(object o, EventArgs args) + { + FileChooserDialog fileChooser = new FileChooserDialog("Choose the file to open", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "Open", ResponseType.Accept); + + fileChooser.Filter = new FileFilter(); + fileChooser.Filter.AddPattern("*.nsp" ); + fileChooser.Filter.AddPattern("*.pfs0"); + fileChooser.Filter.AddPattern("*.xci" ); + fileChooser.Filter.AddPattern("*.nca" ); + fileChooser.Filter.AddPattern("*.nro" ); + fileChooser.Filter.AddPattern("*.nso" ); + + if (fileChooser.Run() == (int)ResponseType.Accept) + { + LoadApplication(fileChooser.Filename); + } + + fileChooser.Destroy(); + } + + private void Load_Application_Folder(object o, EventArgs args) + { + FileChooserDialog fileChooser = new FileChooserDialog("Choose the folder to open", this, FileChooserAction.SelectFolder, "Cancel", ResponseType.Cancel, "Open", ResponseType.Accept); + + if (fileChooser.Run() == (int)ResponseType.Accept) + { + LoadApplication(fileChooser.Filename); + } + + fileChooser.Destroy(); + } + + private void Open_Ryu_Folder(object o, EventArgs args) + { + Process.Start(new ProcessStartInfo() + { + FileName = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "RyuFs"), + UseShellExecute = true, + Verb = "open" + }); + } + + private void Exit_Pressed(object o, EventArgs args) + { + End(); + } + + private void Window_Close(object o, DeleteEventArgs args) + { + End(); + } + + private void StopEmulation_Pressed(object o, EventArgs args) + { + // TODO: Write logic to kill running game + } + + private void FullScreen_Toggled(object o, EventArgs args) + { + if (_fullScreen.Active) + { + Fullscreen(); + } + else + { + Unfullscreen(); + } + } + + private void Settings_Pressed(object o, EventArgs args) + { + SwitchSettings SettingsWin = new SwitchSettings(_device); + + _gtkApplication.Register(GLib.Cancellable.Current); + _gtkApplication.AddWindow(SettingsWin); + + SettingsWin.Show(); + } + + private void Update_Pressed(object o, EventArgs args) + { + string ryuUpdater = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "RyuFS", "RyuUpdater.exe"); + + try + { + Process.Start(new ProcessStartInfo(ryuUpdater, "/U") { UseShellExecute = true }); + } + catch(System.ComponentModel.Win32Exception) + { + CreateErrorDialog("Update canceled by user or updater was not found"); + } + } + + private void About_Pressed(object o, EventArgs args) + { + AboutWindow AboutWin = new AboutWindow(); + + _gtkApplication.Register(GLib.Cancellable.Current); + _gtkApplication.AddWindow(AboutWin); + + AboutWin.Show(); + } + + private void Icon_Toggled(object o, EventArgs args) + { + SwitchSettings.SwitchConfig.GuiColumns[0] = _iconToggle.Active; + + Configuration.SaveConfig(SwitchSettings.SwitchConfig, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + } + + private void Title_Toggled(object o, EventArgs args) + { + SwitchSettings.SwitchConfig.GuiColumns[1] = _titleToggle.Active; + + Configuration.SaveConfig(SwitchSettings.SwitchConfig, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + } + + private void Developer_Toggled(object o, EventArgs args) + { + SwitchSettings.SwitchConfig.GuiColumns[2] = _developerToggle.Active; + + Configuration.SaveConfig(SwitchSettings.SwitchConfig, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + } + + private void Version_Toggled(object o, EventArgs args) + { + SwitchSettings.SwitchConfig.GuiColumns[3] = _versionToggle.Active; + + Configuration.SaveConfig(SwitchSettings.SwitchConfig, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + } + + private void TimePlayed_Toggled(object o, EventArgs args) + { + SwitchSettings.SwitchConfig.GuiColumns[4] = _timePlayedToggle.Active; + + Configuration.SaveConfig(SwitchSettings.SwitchConfig, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + } + + private void LastPlayed_Toggled(object o, EventArgs args) + { + SwitchSettings.SwitchConfig.GuiColumns[5] = _lastPlayedToggle.Active; + + Configuration.SaveConfig(SwitchSettings.SwitchConfig, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + } + + private void FileExt_Toggled(object o, EventArgs args) + { + SwitchSettings.SwitchConfig.GuiColumns[6] = _fileExtToggle.Active; + + Configuration.SaveConfig(SwitchSettings.SwitchConfig, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + } + + private void FileSize_Toggled(object o, EventArgs args) + { + SwitchSettings.SwitchConfig.GuiColumns[7] = _fileSizeToggle.Active; + + Configuration.SaveConfig(SwitchSettings.SwitchConfig, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + } + + private void Path_Toggled(object o, EventArgs args) + { + SwitchSettings.SwitchConfig.GuiColumns[8] = _pathToggle.Active; + + Configuration.SaveConfig(SwitchSettings.SwitchConfig, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + } + } +} diff --git a/Ryujinx/Ui/MainWindow.glade b/Ryujinx/Ui/MainWindow.glade new file mode 100644 index 000000000..e12a7b1bb --- /dev/null +++ b/Ryujinx/Ui/MainWindow.glade @@ -0,0 +1,347 @@ + + + + + + False + Ryujinx + center + 1280 + 750 + + + + + + True + False + vertical + + + True + False + + + True + False + File + True + + + True + False + + + True + False + Open a file chooser to chose a switch compatible file to load + Load Application from File + True + + + + + + True + False + Open a file chooser to chose a switch compatible, unpacked application to load + Load Unpacked Game + True + + + + + + True + False + + + + + True + False + Open Ryujinx filesystem folder + Open Ryujinx Folder + True + + + + + + True + False + + + + + True + False + Exit Ryujinx + Exit + True + + + + + + + + + + True + False + Options + True + + + True + False + + + True + False + Fullscreens the window + Fullscreen + True + + + + + + True + False + Stop emualtion of the current game and return to game selection + Stop Emulation + True + + + + + + True + False + + + + + True + False + Select which GUI columns to enable (restart Ryujinx for these changes to take effect) + Enable GUI Columns + True + + + True + False + + + True + False + Enable or Disable Icon Column in the game list + Enable Icon Column + True + + + + + + True + False + Enable or Disable Title Name/ID Column in the game list + Enable Title Name/ID Column + True + + + + + + True + False + Enable or Disable Developer Column in the game list + Enable Developer Column + True + + + + + + True + False + Enable or Disable Version Column in the game list + Enable Version Column + True + + + + + + True + False + Enable or Disable Time Played Column in the game list + Enable Time Played Column + True + + + + + + True + False + Enable or Disable Last Played Column in the game list + Enable Last Played Column + True + + + + + + True + False + Enable or Disable file extension column in the game list + Enable File Ext Column + True + + + + + + True + False + Enable or Disable File Size Column in the game list + Enable File Size Column + True + + + + + + True + False + Enable or Disable Path Column in the game list + Enable Path Column + True + + + + + + + + + + True + False + + + + + True + False + Open settings window + Settings + True + + + + + + + + + + True + False + Tools + True + + + + + True + False + Help + True + + + True + False + + + True + False + Check for updates to Ryujinx (requires Ryujinx Installer) + Check for Updates + True + + + + + + True + False + + + + + True + False + Open about window + About + True + + + + + + + + + + False + True + 0 + + + + + True + True + in + + + True + True + False + True + True + + + + + + + + + True + True + 1 + + + + + 1280 + 720 + True + True + False + + + True + True + 2 + + + + + + diff --git a/Ryujinx/Ui/NpadKeyboard.cs b/Ryujinx/Ui/NpadKeyboard.cs index 79d6330c6..ac739c086 100644 --- a/Ryujinx/Ui/NpadKeyboard.cs +++ b/Ryujinx/Ui/NpadKeyboard.cs @@ -45,12 +45,12 @@ namespace Ryujinx.UI.Input /// /// Left JoyCon Keyboard Bindings /// - public NpadKeyboardLeft LeftJoycon { get; private set; } + public NpadKeyboardLeft LeftJoycon { get; set; } /// /// Right JoyCon Keyboard Bindings /// - public NpadKeyboardRight RightJoycon { get; private set; } + public NpadKeyboardRight RightJoycon { get; set; } /// /// Hotkey Keyboard Bindings diff --git a/Ryujinx/Ui/SwitchSettings.cs b/Ryujinx/Ui/SwitchSettings.cs new file mode 100644 index 000000000..8f42fcbf9 --- /dev/null +++ b/Ryujinx/Ui/SwitchSettings.cs @@ -0,0 +1,424 @@ +using Gtk; +using GUI = Gtk.Builder.ObjectAttribute; +using Ryujinx.HLE.HOS.SystemState; +using Ryujinx.HLE.Input; +using Ryujinx.UI.Input; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; + +namespace Ryujinx.UI +{ + public class SwitchSettings : Window + { + internal static Configuration SwitchConfig { get; set; } + + internal HLE.Switch Device { get; set; } + + private static ListStore _gameDirsBoxStore; + + private static bool _listeningForKeypress; + +#pragma warning disable 649 + [GUI] Window _settingsWin; + [GUI] CheckButton _errorLogToggle; + [GUI] CheckButton _warningLogToggle; + [GUI] CheckButton _infoLogToggle; + [GUI] CheckButton _stubLogToggle; + [GUI] CheckButton _debugLogToggle; + [GUI] CheckButton _fileLogToggle; + [GUI] CheckButton _guestLogToggle; + [GUI] CheckButton _fsAccessLogToggle; + [GUI] Adjustment _fsLogSpinAdjustment; + [GUI] CheckButton _dockedModeToggle; + [GUI] CheckButton _discordToggle; + [GUI] CheckButton _vSyncToggle; + [GUI] CheckButton _multiSchedToggle; + [GUI] CheckButton _fsicToggle; + [GUI] CheckButton _legacyJitToggle; + [GUI] CheckButton _ignoreToggle; + [GUI] CheckButton _directKeyboardAccess; + [GUI] ComboBoxText _systemLanguageSelect; + [GUI] CheckButton _custThemeToggle; + [GUI] Entry _custThemePath; + [GUI] ToggleButton _browseThemePath; + [GUI] Label _custThemePathLabel; + [GUI] TreeView _gameDirsBox; + [GUI] Entry _addGameDirBox; + [GUI] ToggleButton _addDir; + [GUI] ToggleButton _browseDir; + [GUI] ToggleButton _removeDir; + [GUI] Entry _logPath; + [GUI] Entry _graphicsShadersDumpPath; + [GUI] Image _controllerImage; + + [GUI] ComboBoxText _controller1Type; + [GUI] ToggleButton _lStickUp1; + [GUI] ToggleButton _lStickDown1; + [GUI] ToggleButton _lStickLeft1; + [GUI] ToggleButton _lStickRight1; + [GUI] ToggleButton _lStickButton1; + [GUI] ToggleButton _dpadUp1; + [GUI] ToggleButton _dpadDown1; + [GUI] ToggleButton _dpadLeft1; + [GUI] ToggleButton _dpadRight1; + [GUI] ToggleButton _minus1; + [GUI] ToggleButton _l1; + [GUI] ToggleButton _zL1; + [GUI] ToggleButton _rStickUp1; + [GUI] ToggleButton _rStickDown1; + [GUI] ToggleButton _rStickLeft1; + [GUI] ToggleButton _rStickRight1; + [GUI] ToggleButton _rStickButton1; + [GUI] ToggleButton _a1; + [GUI] ToggleButton _b1; + [GUI] ToggleButton _x1; + [GUI] ToggleButton _y1; + [GUI] ToggleButton _plus1; + [GUI] ToggleButton _r1; + [GUI] ToggleButton _zR1; +#pragma warning restore 649 + + public static void ConfigureSettings(Configuration Instance) { SwitchConfig = Instance; } + + public SwitchSettings(HLE.Switch device) : this(new Builder("Ryujinx.Ui.SwitchSettings.glade"), device) { } + + private SwitchSettings(Builder builder, HLE.Switch device) : base(builder.GetObject("_settingsWin").Handle) + { + Device = device; + + builder.Autoconnect(this); + + _settingsWin.Icon = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.RyujinxIcon.png"); + _controllerImage.Pixbuf = new Gdk.Pixbuf(Assembly.GetExecutingAssembly(), "Ryujinx.Ui.assets.JoyCon.png", 500, 500); + + //Bind Events + _lStickUp1.Clicked += (o, args) => Button_Pressed(o, args, _lStickUp1); + _lStickDown1.Clicked += (o, args) => Button_Pressed(o, args, _lStickDown1); + _lStickLeft1.Clicked += (o, args) => Button_Pressed(o, args, _lStickLeft1); + _lStickRight1.Clicked += (o, args) => Button_Pressed(o, args, _lStickRight1); + _lStickButton1.Clicked += (o, args) => Button_Pressed(o, args, _lStickButton1); + _dpadUp1.Clicked += (o, args) => Button_Pressed(o, args, _dpadUp1); + _dpadDown1.Clicked += (o, args) => Button_Pressed(o, args, _dpadDown1); + _dpadLeft1.Clicked += (o, args) => Button_Pressed(o, args, _dpadLeft1); + _dpadRight1.Clicked += (o, args) => Button_Pressed(o, args, _dpadRight1); + _minus1.Clicked += (o, args) => Button_Pressed(o, args, _minus1); + _l1.Clicked += (o, args) => Button_Pressed(o, args, _l1); + _zL1.Clicked += (o, args) => Button_Pressed(o, args, _zL1); + _rStickUp1.Clicked += (o, args) => Button_Pressed(o, args, _rStickUp1); + _rStickDown1.Clicked += (o, args) => Button_Pressed(o, args, _rStickDown1); + _rStickLeft1.Clicked += (o, args) => Button_Pressed(o, args, _rStickLeft1); + _rStickRight1.Clicked += (o, args) => Button_Pressed(o, args, _rStickRight1); + _rStickButton1.Clicked += (o, args) => Button_Pressed(o, args, _rStickButton1); + _a1.Clicked += (o, args) => Button_Pressed(o, args, _a1); + _b1.Clicked += (o, args) => Button_Pressed(o, args, _b1); + _x1.Clicked += (o, args) => Button_Pressed(o, args, _x1); + _y1.Clicked += (o, args) => Button_Pressed(o, args, _y1); + _plus1.Clicked += (o, args) => Button_Pressed(o, args, _plus1); + _r1.Clicked += (o, args) => Button_Pressed(o, args, _r1); + _zR1.Clicked += (o, args) => Button_Pressed(o, args, _zR1); + + //Setup Currents + if (SwitchConfig.EnableFileLog) { _fileLogToggle.Click(); } + if (SwitchConfig.LoggingEnableError) { _errorLogToggle.Click(); } + if (SwitchConfig.LoggingEnableWarn) { _warningLogToggle.Click(); } + if (SwitchConfig.LoggingEnableInfo) { _infoLogToggle.Click(); } + if (SwitchConfig.LoggingEnableStub) { _stubLogToggle.Click(); } + if (SwitchConfig.LoggingEnableDebug) { _debugLogToggle.Click(); } + if (SwitchConfig.LoggingEnableGuest) { _guestLogToggle.Click(); } + if (SwitchConfig.LoggingEnableFsAccessLog) { _fsAccessLogToggle.Click(); } + if (SwitchConfig.DockedMode) { _dockedModeToggle.Click(); } + if (SwitchConfig.EnableDiscordIntegration) { _discordToggle.Click(); } + if (SwitchConfig.EnableVsync) { _vSyncToggle.Click(); } + if (SwitchConfig.EnableMulticoreScheduling) { _multiSchedToggle.Click(); } + if (SwitchConfig.EnableFsIntegrityChecks) { _fsicToggle.Click(); } + if (SwitchConfig.EnableLegacyJit) { _legacyJitToggle.Click(); } + if (SwitchConfig.IgnoreMissingServices) { _ignoreToggle.Click(); } + if (SwitchConfig.EnableKeyboard) { _directKeyboardAccess.Click(); } + if (SwitchConfig.EnableCustomTheme) { _custThemeToggle.Click(); } + + _systemLanguageSelect.SetActiveId(SwitchConfig.SystemLanguage.ToString()); + _controller1Type .SetActiveId(SwitchConfig.ControllerType.ToString()); + + _lStickUp1.Label = SwitchConfig.KeyboardControls.LeftJoycon.StickUp.ToString(); + _lStickDown1.Label = SwitchConfig.KeyboardControls.LeftJoycon.StickDown.ToString(); + _lStickLeft1.Label = SwitchConfig.KeyboardControls.LeftJoycon.StickLeft.ToString(); + _lStickRight1.Label = SwitchConfig.KeyboardControls.LeftJoycon.StickRight.ToString(); + _lStickButton1.Label = SwitchConfig.KeyboardControls.LeftJoycon.StickButton.ToString(); + _dpadUp1.Label = SwitchConfig.KeyboardControls.LeftJoycon.DPadUp.ToString(); + _dpadDown1.Label = SwitchConfig.KeyboardControls.LeftJoycon.DPadDown.ToString(); + _dpadLeft1.Label = SwitchConfig.KeyboardControls.LeftJoycon.DPadLeft.ToString(); + _dpadRight1.Label = SwitchConfig.KeyboardControls.LeftJoycon.DPadRight.ToString(); + _minus1.Label = SwitchConfig.KeyboardControls.LeftJoycon.ButtonMinus.ToString(); + _l1.Label = SwitchConfig.KeyboardControls.LeftJoycon.ButtonL.ToString(); + _zL1.Label = SwitchConfig.KeyboardControls.LeftJoycon.ButtonZl.ToString(); + _rStickUp1.Label = SwitchConfig.KeyboardControls.RightJoycon.StickUp.ToString(); + _rStickDown1.Label = SwitchConfig.KeyboardControls.RightJoycon.StickDown.ToString(); + _rStickLeft1.Label = SwitchConfig.KeyboardControls.RightJoycon.StickLeft.ToString(); + _rStickRight1.Label = SwitchConfig.KeyboardControls.RightJoycon.StickRight.ToString(); + _rStickButton1.Label = SwitchConfig.KeyboardControls.RightJoycon.StickButton.ToString(); + _a1.Label = SwitchConfig.KeyboardControls.RightJoycon.ButtonA.ToString(); + _b1.Label = SwitchConfig.KeyboardControls.RightJoycon.ButtonB.ToString(); + _x1.Label = SwitchConfig.KeyboardControls.RightJoycon.ButtonX.ToString(); + _y1.Label = SwitchConfig.KeyboardControls.RightJoycon.ButtonY.ToString(); + _plus1.Label = SwitchConfig.KeyboardControls.RightJoycon.ButtonPlus.ToString(); + _r1.Label = SwitchConfig.KeyboardControls.RightJoycon.ButtonR.ToString(); + _zR1.Label = SwitchConfig.KeyboardControls.RightJoycon.ButtonZr.ToString(); + + _custThemePath.Buffer.Text = SwitchConfig.CustomThemePath; + _graphicsShadersDumpPath.Buffer.Text = SwitchConfig.GraphicsShadersDumpPath; + _fsLogSpinAdjustment.Value = SwitchConfig.FsGlobalAccessLogMode; + + _gameDirsBox.AppendColumn("", new CellRendererText(), "text", 0); + _gameDirsBoxStore = new ListStore(typeof(string)); + _gameDirsBox.Model = _gameDirsBoxStore; + foreach (string gameDir in SwitchConfig.GameDirs) + { + _gameDirsBoxStore.AppendValues(gameDir); + } + + if (_custThemeToggle.Active == false) + { + _custThemePath.Sensitive = false; + _custThemePathLabel.Sensitive = false; + _browseThemePath.Sensitive = false; + } + + _logPath.Buffer.Text = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Ryujinx.log"); + + _listeningForKeypress = false; + } + + //Events + private void Button_Pressed(object obj, EventArgs args, ToggleButton Button) + { + if (_listeningForKeypress == false) + { + KeyPressEvent += On_KeyPress; + + _listeningForKeypress = true; + + void On_KeyPress(object Obj, KeyPressEventArgs KeyPressed) + { + string key = KeyPressed.Event.Key.ToString(); + string capKey = key.First().ToString().ToUpper() + key.Substring(1); + + if (Enum.IsDefined(typeof(OpenTK.Input.Key), capKey)) + { + Button.Label = capKey; + } + else if (GdkToOpenTKInput.ContainsKey(key)) + { + Button.Label = GdkToOpenTKInput[key]; + } + else + { + Button.Label = "Space"; + } + + Button.SetStateFlags(0, true); + + KeyPressEvent -= On_KeyPress; + + _listeningForKeypress = false; + } + } + else + { + Button.SetStateFlags(0, true); + } + } + + private void AddDir_Pressed(object obj, EventArgs args) + { + if (Directory.Exists(_addGameDirBox.Buffer.Text)) + { + _gameDirsBoxStore.AppendValues(_addGameDirBox.Buffer.Text); + } + + _addDir.SetStateFlags(0, true); + } + + private void BrowseDir_Pressed(object obj, EventArgs args) + { + FileChooserDialog fileChooser = new FileChooserDialog("Choose the game directory to add to the list", this, FileChooserAction.SelectFolder, "Cancel", ResponseType.Cancel, "Add", ResponseType.Accept); + + if (fileChooser.Run() == (int)ResponseType.Accept) + { + _gameDirsBoxStore.AppendValues(fileChooser.Filename); + } + + fileChooser.Destroy(); + + _browseDir.SetStateFlags(0, true); + } + + private void RemoveDir_Pressed(object obj, EventArgs args) + { + TreeSelection selection = _gameDirsBox.Selection; + + selection.GetSelected(out TreeIter treeIter); + _gameDirsBoxStore.Remove(ref treeIter); + + _removeDir.SetStateFlags(0, true); + } + + private void CustThemeToggle_Activated(object obj, EventArgs args) + { + _custThemePath.Sensitive = _custThemeToggle.Active; + _custThemePathLabel.Sensitive = _custThemeToggle.Active; + _browseThemePath.Sensitive = _custThemeToggle.Active; + } + + private void BrowseThemeDir_Pressed(object obj, EventArgs args) + { + FileChooserDialog fileChooser = new FileChooserDialog("Choose the theme to load", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "Select", ResponseType.Accept); + + fileChooser.Filter = new FileFilter(); + fileChooser.Filter.AddPattern("*.css"); + + if (fileChooser.Run() == (int)ResponseType.Accept) + { + _custThemePath.Buffer.Text = fileChooser.Filename; + } + + fileChooser.Destroy(); + + _browseThemePath.SetStateFlags(0, true); + } + + private void SaveToggle_Activated(object obj, EventArgs args) + { + List gameDirs = new List(); + + _gameDirsBoxStore.GetIterFirst(out TreeIter treeIter); + for (int i = 0; i < _gameDirsBoxStore.IterNChildren(); i++) + { + _gameDirsBoxStore.GetValue(treeIter, i); + + gameDirs.Add((string)_gameDirsBoxStore.GetValue(treeIter, 0)); + + _gameDirsBoxStore.IterNext(ref treeIter); + } + + SwitchConfig.LoggingEnableError = _errorLogToggle.Active; + SwitchConfig.LoggingEnableWarn = _warningLogToggle.Active; + SwitchConfig.LoggingEnableInfo = _infoLogToggle.Active; + SwitchConfig.LoggingEnableStub = _stubLogToggle.Active; + SwitchConfig.LoggingEnableDebug = _debugLogToggle.Active; + SwitchConfig.LoggingEnableGuest = _guestLogToggle.Active; + SwitchConfig.LoggingEnableFsAccessLog = _fsAccessLogToggle.Active; + SwitchConfig.EnableFileLog = _fileLogToggle.Active; + SwitchConfig.DockedMode = _dockedModeToggle.Active; + SwitchConfig.EnableDiscordIntegration = _discordToggle.Active; + SwitchConfig.EnableVsync = _vSyncToggle.Active; + SwitchConfig.EnableMulticoreScheduling = _multiSchedToggle.Active; + SwitchConfig.EnableFsIntegrityChecks = _fsicToggle.Active; + SwitchConfig.EnableLegacyJit = _legacyJitToggle.Active; + SwitchConfig.IgnoreMissingServices = _ignoreToggle.Active; + SwitchConfig.EnableKeyboard = _directKeyboardAccess.Active; + SwitchConfig.EnableCustomTheme = _custThemeToggle.Active; + + SwitchConfig.KeyboardControls.LeftJoycon = new NpadKeyboardLeft() + { + StickUp = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _lStickUp1.Label), + StickDown = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _lStickDown1.Label), + StickLeft = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _lStickLeft1.Label), + StickRight = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _lStickRight1.Label), + StickButton = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _lStickButton1.Label), + DPadUp = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _dpadUp1.Label), + DPadDown = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _dpadDown1.Label), + DPadLeft = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _dpadLeft1.Label), + DPadRight = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _dpadRight1.Label), + ButtonMinus = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _minus1.Label), + ButtonL = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _l1.Label), + ButtonZl = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _zL1.Label), + }; + + SwitchConfig.KeyboardControls.RightJoycon = new NpadKeyboardRight() + { + StickUp = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _rStickUp1.Label), + StickDown = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _rStickDown1.Label), + StickLeft = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _rStickLeft1.Label), + StickRight = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _rStickRight1.Label), + StickButton = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _rStickButton1.Label), + ButtonA = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _a1.Label), + ButtonB = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _b1.Label), + ButtonX = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _x1.Label), + ButtonY = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _y1.Label), + ButtonPlus = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _plus1.Label), + ButtonR = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _r1.Label), + ButtonZr = (OpenTK.Input.Key)Enum.Parse(typeof(OpenTK.Input.Key), _zR1.Label), + }; + + SwitchConfig.SystemLanguage = (SystemLanguage)Enum.Parse(typeof(SystemLanguage), _systemLanguageSelect.ActiveId); + SwitchConfig.ControllerType = (ControllerStatus)Enum.Parse(typeof(ControllerStatus), _controller1Type.ActiveId); + SwitchConfig.CustomThemePath = _custThemePath.Buffer.Text; + SwitchConfig.GraphicsShadersDumpPath = _graphicsShadersDumpPath.Buffer.Text; + SwitchConfig.GameDirs = gameDirs; + SwitchConfig.FsGlobalAccessLogMode = (int)_fsLogSpinAdjustment.Value; + + Configuration.SaveConfig(SwitchConfig, System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json")); + Configuration.Configure(Device, SwitchConfig); + + MainWindow.ApplyTheme(); + MainWindow.UpdateGameTable(); + + Destroy(); + } + + private void CloseToggle_Activated(object obj, EventArgs args) + { + Destroy(); + } + + public readonly Dictionary GdkToOpenTKInput = new Dictionary() + { + { "Key_0", "Number0" }, + { "Key_1", "Number1" }, + { "Key_2", "Number2" }, + { "Key_3", "Number3" }, + { "Key_4", "Number4" }, + { "Key_5", "Number5" }, + { "Key_6", "Number6" }, + { "Key_7", "Number7" }, + { "Key_8", "Number8" }, + { "Key_9", "Number9" }, + { "equal", "Plus" }, + { "uparrow", "Up" }, + { "downarrow", "Down" }, + { "leftarrow", "Left" }, + { "rightarrow", "Right" }, + { "Control_L", "ControlLeft" }, + { "Control_R", "ControlRight" }, + { "Shift_L", "ShiftLeft" }, + { "Shift_R", "ShiftRight" }, + { "Alt_L", "AltLeft" }, + { "Alt_R", "AltRight" }, + { "Page_Up", "PageUp" }, + { "Page_Down", "PageDown" }, + { "KP_Enter", "KeypadEnter" }, + { "KP_Up", "Up" }, + { "KP_Down", "Down" }, + { "KP_Left", "Left" }, + { "KP_Right", "Right" }, + { "KP_Divide", "KeypadDivide" }, + { "KP_Multiply", "KeypadMultiply" }, + { "KP_Subtract", "KeypadSubtract" }, + { "KP_Add", "KeypadAdd" }, + { "KP_Decimal", "KeypadDecimal" }, + { "KP_0", "Keypad0" }, + { "KP_1", "Keypad1" }, + { "KP_2", "Keypad2" }, + { "KP_3", "Keypad3" }, + { "KP_4", "Keypad4" }, + { "KP_5", "Keypad5" }, + { "KP_6", "Keypad6" }, + { "KP_7", "Keypad7" }, + { "KP_8", "Keypad8" }, + { "KP_9", "Keypad9" }, + }; + } +} diff --git a/Ryujinx/Ui/SwitchSettings.glade b/Ryujinx/Ui/SwitchSettings.glade new file mode 100644 index 000000000..30a689a88 --- /dev/null +++ b/Ryujinx/Ui/SwitchSettings.glade @@ -0,0 +1,1989 @@ + + + + + + 3 + 1 + 10 + + + False + Ryujinx - Settings + True + center + 910 + 790 + dialog + + + + + + False + vertical + 2 + + + False + 5 + 3 + 3 + end + + + Save + True + True + True + + + + False + True + 0 + + + + + Close + True + True + True + + + + False + True + 5 + 1 + + + + + False + False + 0 + + + + + True + True + in + + + True + False + + + True + True + + + True + False + 5 + 10 + 5 + vertical + + + True + False + 5 + 5 + vertical + + + True + False + start + 5 + General + + + + + + False + True + 0 + + + + + True + False + vertical + + + True + False + + + True + False + Change System Language + end + System Language: + + + False + True + 0 + + + + + True + False + Change System Language + + American English + British English + Canadian French + Chinese + Dutch + French + German + Italian + Japanese + Korean + Latin American Spanish + Portuguese + Russian + Simplified Chinese + Spanish + Taiwanese + Traditional Chinese + + + + False + True + 1 + + + + + False + True + 0 + + + + + Enable Discord Integration + True + True + False + Enables or disables Discord Rich Presense + start + True + + + False + True + 5 + 1 + + + + + True + True + 1 + + + + + False + True + 5 + 1 + + + + + True + False + 5 + 5 + + + False + True + 5 + 2 + + + + + True + False + 5 + 5 + vertical + + + True + False + start + 5 + Game Directories + + + + + + False + True + 0 + + + + + True + False + 10 + 10 + vertical + + + True + True + 10 + in + + + True + True + False + False + + + + + + + + + True + True + 0 + + + + + True + False + + + True + True + Enter a game directroy to add to the list + + + True + True + 0 + + + + + Add + 80 + True + True + True + Add a game directory to the list + 5 + + + + False + True + 1 + + + + + Browse... + 80 + True + True + True + Browse for a game directory + 5 + + + + False + True + 2 + + + + + Remove + 80 + True + True + True + Remove selected game directory + 5 + + + + False + True + 3 + + + + + False + True + 1 + + + + + True + True + 1 + + + + + True + True + 5 + 4 + + + + + True + False + 5 + 5 + + + False + True + 5 + 5 + + + + + True + False + 5 + 5 + vertical + + + True + False + start + 5 + Themes + + + + + + False + True + 0 + + + + + True + False + 10 + 10 + vertical + + + Use Custom Theme + True + True + False + Enable or disable custom themes in the GUI + start + True + + + + False + True + 5 + 1 + + + + + True + False + + + True + False + Path to custom GUI theme + Custom Theme Path: + + + False + True + 5 + 0 + + + + + True + True + Path to custom GUI theme + center + + + True + True + 1 + + + + + Browse... + 80 + True + True + True + Browse for a custom GUI theme + 5 + + + + False + True + 2 + + + + + False + True + 10 + 2 + + + + + False + True + 1 + + + + + False + True + 5 + 6 + + + + + + + True + False + General + + + False + + + + + True + False + vertical + + + True + False + 5 + 10 + + + Enable Docked Mode + True + True + False + Enable or disable Docked Mode + True + + + False + True + 10 + 0 + + + + + Direct Keyboard Access + True + True + False + Enable or disable "direct keyboard access (HID) support" (Provides games access to your keyboard as a text entry device) + True + + + False + False + 10 + 1 + + + + + False + True + 5 + 0 + + + + + True + True + + + True + False + 5 + 5 + 5 + 5 + + + True + False + vertical + + + True + False + + + True + False + The primary controller's type + center + 10 + 10 + 5 + 5 + Controller Type: + + + False + True + 0 + + + + + True + False + The primary controller's type + 5 + 0 + + Handheld + Pro Controller + Paired Joycons + Left Joycon + Right Joycon + + + + True + True + 1 + + + + + True + True + 10 + 0 + + + + + True + False + 2 + 5 + + + True + False + LStick Up + + + 0 + 0 + + + + + True + False + LStick Down + + + 0 + 1 + + + + + True + False + LStick Left + + + 0 + 2 + + + + + True + False + LStick Right + + + 0 + 3 + + + + + True + False + LStick Button + + + 0 + 4 + + + + + True + False + Dpad Up + + + 0 + 5 + + + + + True + False + Dpad Down + + + 0 + 6 + + + + + True + False + Dpad Left + + + 0 + 7 + + + + + True + False + Dpad Right + + + 0 + 8 + + + + + True + False + - + + + 0 + 9 + + + + + True + False + L + + + 0 + 10 + + + + + True + False + ZL + + + 0 + 11 + + + + + True + False + ZR + + + 2 + 11 + + + + + True + False + R + + + 2 + 10 + + + + + True + False + + + + + 2 + 9 + + + + + True + False + Y + + + 2 + 8 + + + + + True + False + X + + + 2 + 7 + + + + + True + False + B + + + 2 + 6 + + + + + True + False + A + + + 2 + 5 + + + + + True + False + RStick Button + + + 2 + 4 + + + + + True + False + RStick Right + + + 2 + 3 + + + + + True + False + RStick Left + + + 2 + 2 + + + + + True + False + RStick Down + + + 2 + 1 + + + + + True + False + RStick Up + + + 2 + 0 + + + + + + True + True + True + + + 1 + 0 + + + + + + True + True + True + + + 1 + 1 + + + + + + True + True + True + + + 1 + 2 + + + + + + True + True + True + + + 1 + 3 + + + + + + True + True + True + + + 1 + 4 + + + + + + True + True + True + + + 1 + 5 + + + + + + True + True + True + + + 1 + 6 + + + + + + True + True + True + + + 1 + 7 + + + + + + True + True + True + + + 1 + 8 + + + + + + True + True + True + + + 1 + 9 + + + + + + True + True + True + + + 1 + 10 + + + + + + True + True + True + + + 1 + 11 + + + + + + True + True + True + + + 3 + 0 + + + + + + True + True + True + + + 3 + 1 + + + + + + True + True + True + + + 3 + 2 + + + + + + True + True + True + + + 3 + 3 + + + + + + True + True + True + + + 3 + 4 + + + + + + True + True + True + + + 3 + 5 + + + + + + True + True + True + + + 3 + 6 + + + + + + True + True + True + + + 3 + 7 + + + + + + True + True + True + + + 3 + 8 + + + + + + True + True + True + + + 3 + 9 + + + + + + True + True + True + + + 3 + 10 + + + + + + True + True + True + + + 3 + 11 + + + + + False + True + 10 + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + 1 + + + + + + + True + False + Controller 1 + + + False + + + + + True + False + Multiple controllers are not yet supported + + + 1 + True + + + + + True + False + Controller 2 + + + 1 + False + + + + + True + False + Multiple controllers are not yet supported + + + 2 + + + + + True + False + Controller 3 + + + 2 + False + + + + + True + False + Multiple controllers are not yet supported + + + 3 + + + + + True + False + Controller 4 + + + 3 + False + + + + + True + False + Multiple controllers are not yet supported + + + 4 + + + + + True + False + Controller 5 + + + 4 + False + + + + + True + False + Multiple controllers are not yet supported + + + 5 + + + + + True + False + Controller 6 + + + 5 + False + + + + + True + False + Multiple controllers are not yet supported + + + 6 + + + + + True + False + Controller 7 + + + 6 + False + + + + + True + False + Multiple controllers are not yet supported + + + 7 + + + + + True + False + Controller 8 + + + 7 + False + + + + + False + True + 2 + + + + + 1 + + + + + True + False + Input + + + 1 + False + + + + + True + False + 5 + 10 + 5 + vertical + + + True + False + start + 5 + 5 + vertical + + + True + False + start + 5 + 5 + Core + + + + + + False + True + 0 + + + + + True + False + 10 + 10 + vertical + + + Enable VSync + True + True + False + Enables or disables Vertical Sync + start + 5 + 5 + True + + + False + True + 0 + + + + + Enable Multicore Scheduling + True + True + False + Enables or disables multi-core scheduling of threads + start + 5 + 5 + True + + + False + True + 1 + + + + + Use old ChocolArm64 ARM emulator + True + True + False + Uses old ChocolArm64 ARM emulator rather then the new ARMeilleure + start + 5 + 5 + True + + + False + True + 2 + + + + + Enable FS Integrity Checks + True + True + False + Enables integrity checks on Game content files + start + 5 + 5 + True + + + False + True + 3 + + + + + True + False + + + True + False + Graphics Shaders Dump Path + Graphics Shaders Dump Path: + + + False + True + 5 + 0 + + + + + True + True + Graphics Shaders Dump Path + center + False + + + True + True + 1 + + + + + False + True + 5 + 4 + + + + + True + True + 1 + + + + + False + True + 5 + 0 + + + + + True + False + 5 + 5 + + + False + True + 5 + 1 + + + + + True + False + 5 + 5 + vertical + + + True + False + start + 5 + Logging + + + + + + False + True + 0 + + + + + True + False + 10 + 10 + vertical + + + Enable Logging to File + True + True + False + Enables or disables logging to a file on disk + start + 5 + 5 + True + + + False + True + 0 + + + + + True + False + 5 + 10 + + + True + False + Location of the log file + Log File Location: + + + False + True + 5 + 0 + + + + + True + True + Location of the log file + center + False + False + + + True + True + 1 + + + + + False + True + 5 + 1 + + + + + Enable Debug Logs + True + True + False + Enables printing debug log messages + start + 5 + 5 + True + + + False + True + 2 + + + + + Enable Stub Logs + True + True + False + Enables printing stub log messages + start + 5 + 5 + True + + + False + True + 3 + + + + + Enable Info Logs + True + True + False + Enables printing info log messages + start + 5 + 5 + True + + + False + True + 4 + + + + + Enable Warning Logs + True + True + False + Enables printing warning log messages + start + 5 + 5 + True + + + False + True + 5 + + + + + Enable Error Logs + True + True + False + Enables printing error log messages + start + 5 + 5 + True + + + False + True + 6 + + + + + Enable Guest Logs + True + True + False + Enables printing guest log messages + start + 5 + 5 + True + + + False + True + 7 + + + + + Enable Fs Access Logs + True + True + False + Enables printing fs access log messages + start + 5 + 5 + True + + + False + True + 8 + + + + + True + False + + + True + False + Enables FS access log output to the console. Possible modes are 0-3 + Fs Global Access Log Mode: + + + False + True + 5 + 0 + + + + + True + True + Enables FS access log output to the console. Possible modes are 0-3 + _fsLogSpinAdjustment + + + True + True + 1 + + + + + False + True + 5 + 9 + + + + + True + True + 1 + + + + + False + True + 5 + 2 + + + + + True + False + 5 + 5 + + + False + True + 5 + 3 + + + + + True + False + 5 + 5 + vertical + + + True + False + + + True + False + start + 5 + Hacks + + + + + + False + True + 0 + + + + + True + False + start + 5 + - These may cause instability + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + 10 + 10 + vertical + + + Ignore Missing Services + True + True + False + Enable or disable ignoring missing services + start + 5 + 5 + True + + + False + True + 0 + + + + + True + True + 2 + + + + + False + True + 5 + 4 + + + + + 2 + + + + + True + False + end + System + + + 2 + False + + + + + + + + + True + True + 1 + + + + + + diff --git a/Ryujinx/Ui/assets/DiscordLogo.png b/Ryujinx/Ui/assets/DiscordLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..85c46fd8d3309470db37473778e1452102dd31fa GIT binary patch literal 5216 zcmeAS@N?(olHy`uVBq!ia0y~yV7LUr9Bd2>4E8hUIWaIWa29w(7Bet#3xhBt!>lxV%QuQiw3m8Da#=fE;F*!T6L?J0PJu}Z%>HY5gN(z}N zwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRu#Dgxv3?I3Kh9IdBs*0wn|`g zt@4VkK*IV;3ScEA*|tiKAPW^Dd;=7m^NUgyO!drklMPLb6wEF449yHIjZAbDj0_CT z^$pDR4UKgT46O{ztc)!cpg_q^!KNrB%__*n4Qf|WN}8=wMoCG5mA-y?dAVM>v0i>r zy1t>MrKP@sk-m|UZc$2_ZgFK^Nn(X=Ua>OF1ees};pz%Xi*mr0rzGpA=A`DP=9Lud8|oRt z)fQyrm*f{`Wl30>RP;pAKRa$;g zZeoe8Qf6*qda8awUb>P3JP@s%^K zoy`m_&CGO-^bEny_4T##%quQQ%u7!7bg@;c$Su&z%uKN|Ni#4{Nj6Nco zvCvI2G)vS?PBJk`G&M6dOir37LbE(Ik3nEsT^6f5&I1LM?`BxBt)b2CejE;C(A z;}lEXBy;n`6eH8bv}7}Ln127F%=FB>#2m8C0cA^2%CYjuEH23}s)S~o;M77WD<@L{ zoLH<9lR=rlRw)@2`>82PP~l80AwZlDAjXzwq~_sG7Z7E|`DrEPiAAZ7>8W`o1X7(o zE~ghKmf?3eaZv|x5jKaTq*917QXCEq(&UW9y!6x*TP1xZkXQ6UJ>EaktG3V{wkD<5s zNU?o*zIXZm`!&LMN}Ad@v(z-^KHwI1P-jqEFqgrK@g>U+;R)7^|I`kYH+}!7xU^-0 zh2I~qO;4Yf^DP$<@>HqQi7rzK3>648|L=8|VUdi1hYOp8iV`!A&_qVI&JzsHE-4L; zN=6411SNkY1a@?k=sAa~Go=07@A{lcGu^a7m7&Aq=2nC5*+M=|B|4$D%pX|wEG|#U zU6}YuF@i~h@sG&F)UL7)S1JCN6Kl>JvllS7wZGA2{39^&_cninlMZJTe#*TN;}K}x z&hlaH*@gELnx0fIv}Q=3tF3Hxrd;snwJ!~hES{n11&Xsu*LA$GP;FSR6qNrv^?mab z=Pw)ymv#y*%A3aEx4m`cb;qEqnhoj(E?4Beb2ulvvNgp_`1;(1KcQnqd|JVB$!AV? zZx*o56ArYWyYki2(uL33%T`4lm@6*$HI(;(i;LER{q1Gj8BeKfGHJBVGD^Os{F8ef z|6FdBuE&czLTcYk)ayB|%ylxS+Vu6rKLy{5pC9UYw9@5C^8KnM#)mg`B+d9Wo6Tx7 z&!uz_$8xjA5hD+<_|KHUj?@Xu+EN9N8g11$qT&&De5MQM86B>TuO_OwJr&>;N*9EL zZ^DEQ9z4NMne>kdyBKFi9n$^ryZUXqxQF@HV%7)C|NpyR@Hy81fT+tE1CP6*3|>1f z=(wir{K>HY!~yjs(LHZpZ!2T0zZG_1>w1Q8QOmBAm!=owA6V?_$h@)T_F?@n?=$(I zxP$8(xzDTkZ7y5IsKf9_Xrk+7=Ic#g&5vD9_I%DHvE-T-gZ%}Wd6IY7EZl#6coTHE z_0{opaal*#bJs9#H=eiZ^L^z#4Tz5o8lD%wt2CHC(&)B0vE z<2U*7yw|WF09}_9ur?ZJNoW@YuncaCFc%ARkF78*)mFubaE|q>(sn=?a+{@VfCF}nBztXb`;{In^ol|wT#A2^d^%CVh zH-lH*UhU`l#Kq;^pz>` z+^AY2zf#)3$^N^2%8z3rOS;HfVy;i(Ro?AgO*QM`QcqKNz z;a_=NXvy!|`P&y3{F(bD^-&s&=`@9p8}#UH`O$%?|{vbJPkpZ}@iVm5t_c1=YFfvu}MAPk(*ntij~u2^A6MGTm2r zH%v;NaOw*0f@^i}>rWUwG3yS{RjOZ_)39r1B=?@VmdjhLpR8GI&QZVYwAQt{5Jrt) zd8XB~*M3z^mA27)z3Jh>2d=i?N@ILy+<4-r?Ay2|Z`Q-?+_<8rp2GfJD|b(y+Sw`W zlGjnUVnN+a@f~tIZ+!k>c_(E5=L5M~3^s>#S$10}P$4j3+@pa~DRgcmq-E%k3n|l50&)Hm$KS@0` zc%Pu>80EGuKP~3o^1k!)qfC9hxr%0N0ISu_uxTvb{d`~BEbSLJIV$DVEtR9|t~ zhtF}9(3Q+uzp%2(P4_2W5##+R)|R?;(gJpqqYARm?`_aoeV$d9=TwBJ>3pZDEAE|> zSfczRJM4aM*Y1~*mZ^vCE%XY>Pq$=wIp5{$y#>Fe>+?(No>y;Om$-^?PI=y$kJC6` zzf);f2-Vd3y7yAJOnu%amJerFSTZmO?sVIJ_}u3s^7jAZ5ACu}oM82#-C? zWr6LcohK~$_=9;LtnScRbGvwfR^eaw(~2IRKMiVKcK2>)D^ON)blP%lS@Dj0o3cKB z5IW$=@5I7m;n6(b)x%}id4}X8_ve?jUEjSty`a6o^iECn#pf#D=Li4dDL;LlCog&J z!?q9NwNho@ihY;d=(Eaq<`MeZwruvi)t}9dI9tE!Ra~!N^hIInN@)ic9(xa$y$2N5 z2AUhcG%2-ia|u2FN1<`*sSRr~B$jL!D-c$VQ_FLIzw%W`s66AJ+?wyTsS#l&JeQ>G zMQWJM@82oD?&(?dWO>HEw%J0JOy;bbC0FP&&T3GsI-lgp?Yn)=>29_;q9J!XznpfPdw!J_e`LP= zidQ~&jZ9|O|4&}AKlX0r^|V^Ul5+TKfC5`!2ivw?yZ{rv83S2*FELCcAHmRJ7CQdU$4b;X;$S4 z^IQ9G8sFWob$|1&0MUiFi*-tE&+q%N;{V;PY<4|Yw4>7Jk0)b<2VNz&8c&?eB=S?y~*PdMAD2 zGIz1fEw?9R@0tI6-KY4=x=;Tf|DV(J__<0v!w=Cyc9X_v@hrK;`@|%cu&LfTzWjBB z=r7(UoFAW`wYw%XaXtIX*PrHWjws!B;JmV_27^uZo!d2ehI0fM^OE=VgwEVmEg^q# zy}-;9mL3h(cPazQ583lZPQ35&Oz}0x6Rj`j-2P^$-|0&e+O#gDi2u?l$(Z*dDH`E- zJ7PX$M>5{cY{*V{^)6&bv-KU_HK*TC-pG>qlxuzCtSFHer#Y+2U0H;882IXNMRQ*; zZoBC%pOfRrbjNKo*A?gKho$yEv{mRoJXO-_jlh?$-xj&|XgFwF_TQ3S)F#ao=NlNh zy)vkOU30`QJ*Bm24PW;bGMfLr5xGN+_4vd04q7`Ney;zs|Le0q`LFUG?CH9_CgWc0 zm2b}jgm-+eDqUDEwKepifd^;EzttYMx;}X2>}Qy>_?+Xfgo|AhXC}!=hfmza=xlWC zAe&M#mbNfujWJ~1VUDYMPbo^NOy0TQl_krh(}FjQ*IfOVPNsI><<+Js+J`q~RH!lR zJE;4?#%h{ll+-lW!zRoHU4nVs(;R=LMu_oV78hLU`h?{`?WbQRw_zb)IS=nS<$HIkQqiv0)At>(YT4a!n|&_-TPL9gzobjl%%0b}a{6-*hJQTm^P9Kx^@d*j;$6>G(B-qOe}Vks5Bk?Q-6~FV z?3HD^ueSWH@{i{eYtEN&J*a-MYejgM8GqDmyJ?KKg<>`oFUbwr+OT_?!P^*3-h-X* zOTT&5_}#r9U$rth0=L|pC3TzG9Qu`q4e2M%DT}Riq6U}~3oNdf7|KM)LqAg#_ zo8(mvo?Z7>_MctbD!+q=_pRyhs66vosaZ>4EM(y%j)kL<$B*s?ssVxexS$k&BMg5b`N)x ztq||5i>=Y$JWTRxXD;oq6-r(BxHbCTO@}R)5-aAkm$_(b+V49j*SV?q$OnsRl|{bU zhaY!Glp1+VQQg1iOt{OgYey6UuO;#Jf0pTVOFaLHY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBXRu#Dg zxv3?I3Kh9IdBs*0wn|`gt@4VkK*IV;3ScEA*|tg$M@9GsC^+XAr7D=}nd&AR7#S*< zTk08_nphed>L?f)7#iyv8t5BY>KYnanV4G{nkhhmlAVH0QA(Oskc%7CuA-DQTcwPW zk^(Dz{qpj1y>er{{GxPyLrY6beFGzXBO~3Slr-Jq%Dj@q3f;V7Wta&rsl~}fnFS@8 z`FRQ;6BCp2OG|8(l%U2|bol2!OE0x2x;^|f-zPcF?(%`5SAu~n+bEznEJOtErt zaWZr=a5T0sb9OZ}bTxK#G&OQ{H8wUiaxrvrHZg1beR=xSu?XlUx>Y-nI&=4fGQVB(?#)tiFF=SGeuh9-_q z&X$&rhFJCL+bP)SgQ6BGs$oJwE^Z(uI8}mDsGR~L>8IwU*eVq%+1q_`S#^Sefyd6% z#WAGf)|*(~2~$HQ>mnlp#J44APY}7j^eewhVW5Bq???8mV9#(CFGKFRv(#8~jk4#M z%nsaiX34TGZp_6i+!l#AuXUV|>Zx(TL6C#>)Q>=en3!*;zS-5hzx(ssyT3p8{hs^% z_s;J&#^(>{O)uW}+3vfw{rk%E)m0@WB@%$dRhn+Gz-G4_({HLj z{=dbL-{3pf{iM9)ywtq3b?N`CU$(uRc)A`oeXf>!qy5=Ar)`!VnZ9VfVY=~rE%8SGB)bE9ww$TqJ8!UGuc^JQOW^gPmX~Fc zi%MttJBjgQI>N+wNS-_T z-`>wc!_M#dAzQ3wS@-b>N6h&cmDtU$i8(28$7*ajW4}~9)6!n2KS#?mL0>t+*~gM5nFb%(YS6FG zwlz1ParP4Ljrr^N_>9*prk}SgX*_;<$$`F|yDVJJ$^GmyU|lyobMIW;cIG2(y_#ur zV|osJ2v|F9>ulGG2ID6(pI(0aWLV|r*>+J9BI`6}%+I9GA ze(#y1jHlgSx0=)uB-8I?ieO?RS&6y9W2UK9NE=KZsuIlFHt zXe7+fpCQ%kpH_E!f??c;kC7#X7K=Vv7MB2XL)B^{Z-2W6j^Li;b?evdy zDcw?^nIY;xF#=Hdy6DLmn)M_kRG2Jrrt4@J_<^|6-xhH3B@>}n3wWzRo zqGxG4XXc9X-D~809+XBtT=J*ypfOJu_ny=hbNV=r_;P2jy7ynAW?j|AQ`c2i2eB1i ze(lW7zU;h&^XhwbEXN!-EDUQu!Vnev*8PDc7k}ZDs|$st?(K@+%VjgMWRHh>M69); z%fd64U3WJz-CuEKMdO*eu-nRJ5-UQ!`L?pS-D)|n723D-Y-HGdWwQ%b>n>?XJrk*5 zdpWOWcE;Dxt&XYBCTRvgPrzETSDF>a=)L%kCp;Q8VsXZk~FUZ3(-}mR2{mo%|`i+b+Jk z#d>4f5xp61`vP(@m6q%@{ma&`y!T53e`Mk2N1+>g*?x5_n;ZKjVrka~#ecS|Q~mBZ zA7$mOI2f`0z~d=eKTVICv?u#)@XlG%SoqGcLjR?V^T8>#Tdx}G7eqNK?+_?nCB@NW zu|$?jG)Hy!(-)%ANB9$^jxX%K)@5IJ>(w(!?_u<%&-%?YHC>)-sVXUt9dE?vvu z+;jicQ)%`sEY~_FzsmgjiMQ9cy-pxP+1oFE_4NFV7SZq5PUVNDe*M&&)$6pCW!uip zNlC^(7MTjU$xqTd9+&&-uj}D$iA&uMYA(%xoUnR!I*;1if~O&^k0w2HSv@=bissba z`}^m_WP?SS=EF8OSb2dqt5?IzDDi0M9L*DN@T zDL+h0=G`gIu>DOl9IDpcJu6T#`O#tjjlV>Xh<2ssH!Wsyc7UnfopAy>1%?w@=u+MOnJ4Gj~gYN^H`t z589&IhZI+5ubp@IL*=EtfA`$f{m^}?_n_pQtks$7tB$J8ig+j{VZTK)tgZ9f->~a` ze>zHy8|8J$0yZ$^7awymL64Usr~&GnbhCzguZW#evD+gfE>uBxNQr_ak?ajpt(L zb=88YOU|4qOFztdX8$jZEs<%t8WJ~|HdOZNZisWOV>a~pGi6fgACZ%;_MU#r?k(eJ zpUXM(*3(^6n8WY)dF{muBi^g8>~PSW$H9DmX)Bl+QBq3j**OVJOy_J(Wx>DD#e z_Rwm6;3aRzJN(CAaI@e4ROMI3Y7L@R;bC)HBIX{V!Wg zSn4-9Ct=@x!TOl#t9gG)g&&N0zj;yEGu3rQZHDE>>W0}fZu6SwOk1=gvrhNfqkTG2 zskQ%{!fzjBerzr)^v>NW>~l`_naP^xO>)Wsh~Z^P0Y~<9g0!vPR%t@5&wi!HqJ}ae4AbUAW67ew}se zzPs`ZtNig3OE|v2dAQBziI<(F!(o9l<`WL>_FcQ)qVZA5cVV?Hhf|tdkM2A8Qu0=L zS4D%{^)ov|ZNj#n{IqOh6YHJ-t%vq%y>GZ8seUKYBW67l^Y`Gw@_YXdgtE(spI);2 zSd>us^*oJDh1$vn8FP%jAKYqv{WSYtt~o-_+wX6GCi1H8G{?KgNBfR9KatsWX!?T* z{YHW-_M0#*KBl_zr{hJX)S!e1riJ#uj=t%cKVMmW)8hptcZ-jl{jOV7HqEH{$@h+Q zp6@a}6ZOy9D;d1mHiM&Pv&F(a3p+|5{!zM?_57LUdzWXM&#=#QKl%Qbal66qop$D3 zmeVWiII{2Otm!>CtGx04bG>B?L(i1j$*-At)7ZVT^o;GNooqkvR({&et7KNUJw-#I$RqQZZgeH~w4|HR06Gljw*AD^^LTvym@>~Z0z{`7k3a>m$G zd+ZjiGZanSzQ;Z1owfA5>7@mF3Fc2LKb4E?DVaYDG-{l?xLj#gh_6oBQ-LRE1h&0f z_Unt9t;*%!r&zdTjv61{cDYH1yIGDa`plmu|A~gH-5d_OatiOzVk%6$?VuQ<=J!{3 zLgB^!6NgiEyZ7FaK6&4;FL~vc$#V})+kC=dO7;Xp3t@}bzakp+dGF+{KT%aYe@(mK z>z0z^H+HO0ecolmBJ^eX2W6|Q)Jx*mW@oFk+)Uw$wh@@LO81N9N3Ud!%6^5H!He?W zInKPUV-~vLW%JD&QGY~U-Y+XF;q2m`9h(sp!`tY2>}s)6k-D1b>!WFBmvLY7THCPM z@J2|*m8@`qjyPHGb)Q{41tc1dzqWeD`>DM9-M62Ud{$g}BkWc*#r*{5iM)-o$|R2o z_M=@7jFFngm43|r7GGf`NX!cs_lRV$#mMK2cOLH?G7YEw9 zT#aAE(~o6^Z;GZK|Np&=<@_ttvmxDEQg>{5TQG&q>}9tZD+~LQ^EcBzN331= zV$(_GOg`{yG)AB~%Z>vw-JmOHmXeL*%bP0l+XkK5)&iP literal 0 HcmV?d00001 diff --git a/Ryujinx/Ui/assets/JoyCon.png b/Ryujinx/Ui/assets/JoyCon.png new file mode 100644 index 0000000000000000000000000000000000000000..ec8a8f993cccadfd1ca5c4cbac1b8d990835cc3e GIT binary patch literal 288310 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Ð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%0AqepE83{QK^a`xZjsbT(b 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�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

gJsPSqDH-l4Skh57Rrzg41N7bMRP4tnrzY3RBO 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 e&Jk~va^61G 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 HDWM4f*^?la literal 0 HcmV?d00001 diff --git a/Ryujinx/Ui/assets/PatreonLogo.png b/Ryujinx/Ui/assets/PatreonLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..5b35572af67dfc92193dcdc02e24752ed2ee4dd8 GIT binary patch literal 5899 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 TLJ!k9&~UYc-mj#PnPRIH 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 literal 0 HcmV?d00001 diff --git a/Ryujinx/Ui/assets/ryujinxNROIcon.png b/Ryujinx/Ui/assets/ryujinxNROIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..bc6b65bf4f1d10352f0fde2cd44a260bc5b40b83 GIT binary patch literal 13902 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 U1KVc0fcA%Zy85}Sb4q9e08T~%^#A|> literal 0 HcmV?d00001 diff --git a/Ryujinx/Ui/assets/ryujinxNSPIcon.png b/Ryujinx/Ui/assets/ryujinxNSPIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..d01dc4822915a4c8271be32a8f1ce0903c30b511 GIT binary patch literal 13198 zcmeAS@N?(olHy`uVBq!ia0y~yU}OMc4mJh`hM1xiX$%YuoCO|{#S9GG!XV7ZFl&wk z0|VQ_%#etZ2wxwokg&dz0$52&wylyQ$U=n(-v9;Y{GwC^Q#~`?WJ41p1#?S1Lo)+QBNH73BLhQo zeFJlSLt|Y7Ln{L_D`QIqC{VIfuqjGOvkG!?gW6S;l4h%vQBqQ1rLSLJUanVete0Pu zu5V~*X{m2uq;F)TTa=QfTU?n}l31aeSF8*(!6mggxhS)sBr`ux0c2ugQhsTPt&$Sd z*oxc&xUqS~&|pf=&(*I;EYLU9GXQxB;@8{)Utj!6b93RUi%VR~O7N>L4yi0i)elN7 z&Mz%WPIWCy%_~ucxvC%|za+mnBOiy`;L<2AOi6}YSWsG&0}h^)Wc}2f)ZEm(l45;B zJwvej3ap%qQWHz^i$e1Ab6^n_0JBlS*%=fu777~SnRzMs<;9vHM?v+Zx+IpQ+A0|t z7+UHYnCTiCh8P%I8CY1ET4);>Ss55Wl=`NYB&H;mBw|x+WN2k-f}%J-B{Qv(7^S|x zR-SpqC5d^-sh%#jN)@>UdYPFiR>r1A25Ck~hPp;6Y391d$tFg+mPRRQy5>e{X$BTX z28k)jiC}m6`dYcxdFf~opHBL=6)lD@vNz}D8 zF-z4=OH4{kF)}eSOEs`mQb5@2oS&0lz$qm6l(Wn^nb<;)D0f1P zEzd~J!yEY!WySevCFO}lsgCKXc_qZ8FMV9@FHS7O?|P%uBnz|TR14iSV+(WL)HD+_ z-9+OQGhK6oq~v5%lN58q)I^x?Y2|uo;3j7z=B1~m*edBOk?$Yk(lR8NvH1rjcR`eq z92?mEqYo-OAxTXiJr#oGkjhy*1skwXkc%6L39b@A)q|Y^qTWf(OR-fdQnI(({w7h9 zfk9`or;B4q#hkZyE9V4X{rmsp^_@4jtfj z$_-`7Zv9p2=<2m_>5k~Em)E`a$BVAyTFdIPR(eH(_KmRI(6Y3K$Qh=u_dfrAeD0Bx zI%jxN)MlQ1{fiR%$iq6PU!_M*3(sC#vTT3GM7@va-2`r|-+FJ|)_(^~&X((*zLgLe zmilKiTSBDRhojHeukF8@KEL)_^U?QK>AScmczLb-81-6O_w=pE&JJ^%Vz2f& zFB+_ zUYb0I4?HYbFlARn_FpLjgS$_yME2@|%=cOu`mms)rna{B(d_tJ-xe*`T>5DHi4y;X`P%)v=Kt9kp>x+&BvL0%*nsD;%G$5_x~CWY)V-Wq z!?2|w+eGTGo3k_X!GwTSf0UF>Y7HCj8va;pBEH-kWK!%Q>sy=F?EJ`QZ~4S)J~}IU(^*qApQ~cawe8Dy+swVH&E%k2 zx+yhsdaIM7(!`EAf0UGu{$AOTpS{-q74Q7ZJ^T&JCe~bcTO62fAv4X-e&WU{K^AlU zcn%k2u3bNo!Gm#W$h_3Z_=%I_zp$OnVtk&l_VcCKd3`B=JRH`3Ww~t9pJTUYyS_1x z@;}{4?-nhIaaT6|-BiJ#vD7VcTB+6sv%9HQGkW+L9<)U0Of!|O_ggN!*0i^`cW>Q` zqM8$Hu1Os>DA;|s^Y!Dsf49o|)ZF1JU=m_zKfY0y|qc_PM&!)JO8__>z8WJI;&t~dDiu1Kt4x9;?1H@$4#Zb-gwQduuk7B z^VX%BCt3wAyG~!8cu#=gFP|#Ito1@yW*>>q&bR-mxYC*Du)&2W^=p|YzFfch$K_pC z=k~Xg&S3sgc=`(IlfP z{jK}L1ut{^HI9DsXi3nR^7FNkM(bgN50ZRbvTSin`M&Bu@XS3Jr2m+C!Rh;drnzcJ zEj5x!+mmX2nw1zVS$+a!@O^Ue|lf6Z?y@6P_=m%C6h?aQQ1-$H%!_w&yX;`->h zZoX-pe&s}u`O?QPq`#W^(Jb}EC7vq=9*(KAPODUHUl6oIck;w(txwCA@3y$R=sXL9 z$=5%NpGt=;>DxA2_oJa?t?&FSriR$+%LOlV>y}=)sF7A{YbCT%`f1^`V;^=DvM`;z z?K*!cqwjTn)^B39dJKHsi3z4A38rR`<{LB~>efGI{!U`bT`J-|ZFW zVSZY$WcLv#88OZVi^B(2t!7=`t@!4}Wh&(3YFZc$}$(N|}@;Nq_I zV#di0?DC7A><-_ydwyhe`usn&Tf8(jb+b53j&NmdJgsN_;v|2=;TN|~t``Z@XyI$0 zEVo>SZ_4f7qMb|Z9hda7Ff2HnDC6oXQu{f2?v2RX+t0N%q(1!c+wj+ScJF4R14f3~ zd;+U28;W)p{`joI;u7V-z!0X=RQ)30&+>V?PJqqoSyaL+xzx3{N0zq+im`bR;`U-k#D z>=jUh;J>-`HvL{(==ggG;(`R2~-^uz^=1(SYjJ2bDZx4$5Eu~yXL(;tgZpD(`cEjQ=sINA{!vcQ)+ zeSyT&uiND0*NddZ%7(@M6+geybcWi-Ra$E@c+vwE`S#0e%N$#??pW8c0KV4E77aza zZ_5?uOS}l^hzK=pyWMImaG=YjBQ*5(*)@-pc;>Hv`zb{J01sQ?uVTYbpZOQ=yxMv` z;d5=3<7U0j%nIB)etk_oplf`y>hAZ86FE*jbvmA8(cSf7ew9|+@z1Unl3XS&+jEt_ zoUc!M@;tf1#^Teb6ShB7*8Hk+`v1>-M%t%TpQRTb8iZN+91P#zRb;WE{=MymS${sC zQ{9s*z44USZm}!Z*v-Y9ng4YP7ykHrCI3zbU;A6(Z9n}txG&!E>-+KQW0Ea)KU*S7 zP1}w)i}Fpb{&aGOmv`okO{}Z;$)!p>nNy)OZ=rMNo4f8G@B0gX{CzUFlFiLeuXncD!e&S7DUbS1dCts|vT^S_QvT(lNzP5Docngx z8dV2R-W2|I@5Zq>t@=wpE8P1JX63lJFMbixvyfZN=-K(zl3x#X_r!g5|NZTemfQN6 zqdUGzTRd9WesB}V)c2_u=9U|losH_NtG4}j*-v>_d3@3Qrc}Yz>y~}_^;&Xs74PEz zUxa>6KDYeGr}qYBZ%_C9_?lnvqvq|ku%xL|E8P1Zt_Y7${&Fhx%kFnoXJ$#2Y@Ryn zaky2R?FWVAe_w^%WcW=MS?EGWd zSNE8gDR{Zi&G3t9yb4hp=U-aAKJCq}aEaY%y7!db1!q`IT^#q9JNe%ab+$9}e7CHU zlI^|4Z@_crRaQ(hyWy)=af?qkpZ3)KV~zRyEAi_0Q}LhPi3u@iE=t~bl zh|sOEd5j(mOWIOz%4<#M_PM<8*!zz%VWz>+VqqE?_O-RP)$it?{`S&*Q}VO3Z}$Dx zJ2bzR&EdhO(-H>BY`f)ZCcK)e&orU<%|@1Gwc@K6UbK^Rax5`9wcz&q0}sD5Z}|W5 z_{y6b7?qFPtt_?Z>2rB|ddghQc%7{8;wJo-OAl<>;H0?w&O?JRm8Pa6*_r3K+9&Bj%>c7DI~VLN}pG3!WH1;&CGTio20BEFXH zVCPl(enhzQ-R|7-yV3c=zkUca z>```mVEs!Y>)zcH|5UvhcF(f;an9PXS&?V|e8tbtROhY#^W0v2(|)CoZ|8Ha`v1XZ z;@jJd7LTU$PpJPE>GJ)Z>sDjd@a*2hZ0EeDUY!le(7@Z2x|k74=!m zHLQ9*Z*kF0qnO4=X3xu0j4RFgrUq%OXXk02qc7{7^S@5&-?#8j=WK*!yD$DYm?p!@ zS~m4p!T!Q6$Fg#caJ6lC^{V5V`2#r%hU*UwGPrzyd)OwRSNO*73(YN$&Ngc=n^^p( zP$aHI&{BO4gTvkE{J^hwief5vN}7Jq_;HXugPR{8bNX4f<-(g6F8o`R#hvci zFe^Mh`G0*KYP4VgCd6 z|3p6dS?d=5pSSzDz^~u-1-virt6%?O9V5ih?qE6hMZt_+=J#3J8_VBBNZqTS|Ev6- z>iaXBS44g{Vh>x(^yc*=iFWhc8<8PrW=#Lblg9J3XmL@IQ0U`~O3A6Gr#(FJvGH=J zae&X$O{r7r-e(p0+gV;b&A;LQcJGz-uXX1%IvktJ(`G+?Mdrre>#R>yKQ*0l+jqZo z-jf5Tre4{<_nzGU3u0>x|I{to{e8plZ?`4)zUu#0T9@!Ye_q1<_4U20w;Wmb>-6?| z?Mo~cET`V8MTH&P_dG0MbD8YKx3@L_|8!b)eXa7Bo6FzSzDWGGcgLhzrr8&!wHC=e z+r`*+XyW|-#VaHZzh^(~blgX2ciG36=K4z$AG=kvEKFT!Be$lFt?b_ubcpA1UA8D~uV6M3dYQl3H5J$r-Bp5)_?>>u-R>Cf!xJ6iBn-r?kx zl@>L2ca+^Ge4o16@Xx;~HIB2cUj6erJ3jgM8OhFE)o`D~k{XWDx8%Ox@A*_^xUrr4 zIII0XiKkh~bq<#uWYRM=&mD5AmOZjff-8N2#mD^zd)e05T65j9`?l(Z znFSBt%nzu#xATZr)cVhB4kwnFoSMMO{Xwo&gkkIYyf8X&iqJ$~=9N6z^5Sd$EQyq`o9Z)- zc&6O$P2INf*2JKMtQhCEn!=7Yw%^g~GoK{Q$unE&CCPTmVAmht7dn~?>n^L6-7j=c zy8XbixIq5mqwQwA%@L`htk38BpS+^Y(DCNh$>-rQj!!4=-+cN(k>Q7JkrMx6N(^QM zhT9o6vK&ynv{7PS;Np)mmXj{n|8KngRN?!S|0+>&dG)KUdY1L=x)Q?DJ12%=Titsv zDYINAg%5LA^89_Ozp?3?$NqISJEmUljJ)r0_*ide?$PP7Y&T5#rew`hUHNud`{4x@ zpQbDmU(fmP@%skbB^F_Unc*9!I=L%#eq{Z&^mM}Y`bn;ucaFM-{QLJ^CPV7(i}?jo zKcCN=eC3P5;lMl1?1m*57aegv{p_B9#do<=;(wcd@xErPUJ&wM(zwIqtc*zf1O|%` zuZKJ=9JPN857z$^z8~l=d~;`W+xL4%AAYY7H1!L04v4lWu4&o+KIQn?%WoHMI?y0# ztTD%CW`wKj^xsl4cKTb_|8LC*zVGz%`?|CnkB(Y!ad*7aRE~;sTeC^%e8)td>K}rC ze5YTRx>r4Y*45RTHt%EHY(MKXzOQMI$mN~5DyzuL2|G4ab)3#ji)+PgfnS}4LWc{%sR`WYO{|;-SF9*xd{U+1Z^}uiZMID`C;ir8&FY z{%N;3^8-n{rUOr>-!>MS-M99@ziruf`se-mOS66!&9T$}n!i6+{R0)SAYjig1Mg@9CUsVmynU-N@YPChwjyW*vD z+u_9dC2bQoMW&s4dWfrCbN2t>Gq19;;^Ms5?9tg+vEtLuf{e58tpClvv2SlhztyZ= z;c;87|IS)gRXM%ic6`dp(j_`=55GP-asK&%?(>gzG!K6GxuW8gW>Hu7irSy4Wq(u5&N(!^5_WGij>mmAzlZuAZKM^lr_8{%aPWK6k#m zd-{3s{>vuX0hf1F8uvAcy>}K1p82o(xv-j#27jy5-@^|LmSt}HE$r*1sdGBXU*pKf zi5&YKg_nHx{g6><3Ce2|{dKKh)bUE2e_H>)yzy>ILD_`)(_G&iU~JQmbUL}^yH4c>P-@88brfhxQ zc3BJGhbx*L&+M}LeaazEuWyb_wdaOgQ3k#;m6a>z%-ME&xk#8rPhN({oI7rgjA^yD zCReLuSbu8dTYEQMz2>Bnv_5>o>~3ZK^_NfY|JvTUknYdc+( zTAUVsvaSBc^X5w9C6_D)-#MzPA@<*8rarHodSFZD+xItu8&{gT<>eLCJ6(D&5~Z>I zHXpYKU;DD(y#4Ht9>19Fcg`$Q?9{^pkx^OvC0QH4%`MvfwrGpQ-{moRyDJ6ieJ&Ty zv5PONoaLrrHG8V->}9dO`B_FXTWWl{mt3e}SsY}+%{`f2W$V|9wQntj&whKoZmWE? zGG~L@xBe1~n;#cP8)Rp{C_mhr8y8kA^5pjYhL!u~JSo^>dvEVz@9OsIdgxq}W63n&D5AQEs(Leq5|J+Fo9h-G}{xE?WKzFLNO|!2}D1R1N;nsKLL*-l5ja*zD zc{eAmxV9`LJ=|7Isa1tx)@GfaIWki&d!9Y5AH2D2?cSEK&-34R>HnXa)GJ@(uw{+T z%S$r^?)owmpt-~Z^O_`v_iUU!OCzs>&P`09RT`vv#;4|MdLwtn3l=2T+L+3;?ONZWPqx3AX+ z?@h~H?VZY3ueZ*TSvZ@ACAC;eY^i+&{OeDmC21QCz6C1oKiOKyUt?3 zQ@tyrR(Dy@-lRmgi962}NNC&dKd+~B={b|b@gxa3{(A@A7jB)#Akcnvx$Ydf{Q0pi zOU|=8tXahLK6AO@qo>mq#k`}W<2%*`<(dDTrl(qTTs9zR(z{1XV&-!<{P+~dU@juxE->U|P~0?wr9mLlhsmKsM~zXzMQk#IfKs<71INUp zG*Y(l%>RqVYbWQkE8DYZ?P|XEEq%4|{DVLK&AqA5?7@q}8Itv)4%>Ig_QWs?+;vQ@ z-)8k$vgiGM>vfDE9c$1WZnRH0;LDua-`@mz*a|IVBBr@!W@_5a*S~vI=&lEoLhH8t z`{!O=U41d?ae+mLi_(+l&y6cTr4$tx?|wRC{oZd<(c5wyHIJT{sJ!#TA#Urx5o=Ae zudR8wa{0VRll|=ypP!rSviPD4gNTTTLBatBKg*{g`@U^mU-)X}@<$<ZMEtv-5rU z^ZC3m4_o2Rn78lJXQ|2cw=Z;VfAsygq+N}Ls;a8R+)o?dXnyirexdYw?D1Kq*-^Ri z`)Vw;!`J!z{Al;{iLlcXU%8Y)mq8dd~n?TJ0vu8W9jQK zvz!|T9v$rl8F_iRfBLO0nJi3=W%A!I&;K`tm0PUjWfk?<~$)zqirb`9x^n zpQrleKP_FZd&oO*UA=N;%g)-Xt3qu)9ud~GzvnJrJEi1PbL}NL9}SVDPft$z%(3{m zK)pVCTkh>+y4&v@s{ebvzI4a^g&eI;d%oYRzEl7I@0^lLo;8o9?>{)qZ*Q~YxzJo? z#tBY*?ThdJPCGZ}*RM~%wkC4VmrLFnOD_er{rvoVd!>=6xOnl;r_+ny z?R*{-6x5VA>-4{u%ja*(yK8lAUF_+9e}4=Aj<5UqG}da}>8D92CMa6W^;?scZKkm_ zBPT~if=7sljkDEht=#IZ&tAv>xAM3DYjXeBwe7n~VlEnTHspnbgt*k!+Fr~MX}G#N zy!gEBcZ2kEbL8|-tIw}FWc&Tj<*eVV;xPv{pSSD2|31I;{>$a_&rJ=F^UTfF)!*}h z>HEEE{nXUdn39XGu~y$cJUo1JOQ!J8pFh{Wvo3hR5E>eK<@)u_m7mk%Dju?it&8#0 z5%a#4f2>DxPU*GCFYoW~_dYJhuI}5AXOePaLfF+Wm7kw&%)GozPXF|yqus)eBIc>5 zMB=JmE;aN2_w3W>&oj+(rQYxRt@r=e_5BiNIT6$Q)=tUVel0j6;>3xG%9ihTJl^rB zOFLp?66<-p-#U5Qtuyz3`cyPcC-TzL$6bA%3?+*vD!Uimul=r?+wHd4XTIIuyL^Y= z1%!tmUlqD~(zae%>uIT{rvz!Ng*6&_yEZXz;+wC{^_F8A&emXtA@A~Vv z8;we?wu;A{SQEK<(ze{&+j_&}YfXJsU(Hrw*cG_v)ZZ72`?qE7){ETKGCi(prTeLk zrLV7r-9BgadX1drw}(HDneV%}O7p`x>-S4mn$%8aap0FQPUHFf{Jj4yu}+sA&t_$7 z=%?YFTO$ywoguJuYYpMTi^FqSXkJ# zwDUEqw&v7luQl}De7nDThm9ORGdrKpt+bPu-fOBdUTBu9d?M)9BQbHy+mFZP(_da% zdbjFM;9|F}x3=Zo-IZsXrX|sKF}GNw#g}OT`_yUEjLP5L3A_D%=ks}axmi+&(3h}+vox0y|*UnpDx+7Qk8K68#6m!%FRuwYt{JA&M;Jd zD%|$ySdZl4$Nl#AvVO0N-M!=6t!zotED>%ood=uG+r6Ilxcut2+}jl|7Pe2?CMqtz zT`E|Sub;(Xmd^}>g`r#RMYsyD$Cj7gHeBvE_ta#6yPMB?4z7*fZj^mZ=UA`w@g<&< ze|%kEfA`^)NAEs8Y?m)OXZbuJFmU3Qzt#7D$F1JSQ&^$GaOuTCcKMV;Eu5aW<7z%0 z&D(2Yk$cM|Y)!<)yl5+-&JAU6qxSv(``)m9byHa^=d0?)X1VN4v#~uZD&fKA&4&bVSg- z$h9Ngxh>B zKWUTBdvWb_iClmCOyl%VACJp#PB|%b&f;-TS^Arq%T5aW+Z=pxadG9Zm&e~AF^KHD+72ofcPtJS4=QH2?z2D__m%q>Z{$&5}ce{T+n%v&?_~ye)s-?SBcb-}A|9_Ue}<%P;%e&jsOLY4f7PyyhDUA0J!tJAe0EvvaoJ z?}RP9IxX>V+sDQ7e>wV(J6p))mF`cC_ z(lmklTQY?=r=Ndz(Ourxd#0b=&y=wBac5n{V~_m$`daw*_Wb+j-q(G%PCGN>;=|%6 z&z~2+-FiLk%P;1eUb7e^(=IM@6%i9t%dLL1@p#nQ7ndh@b$8D+&yQQ}cj)Qq>E*9J zE)3}KP`M=QD%|eLq;OcK^2tP-4+ognZaY8Ec6RLUvZV`Mwi%zd*?g71FX!&Ase7xx zFI(xNB&xz-bYV;8h}Qm8wq?nV z6FEW*l5d*0^)gHoS1eqpXlSr(`Sq{aKdae}9z7cSua{wBqzZ%49cF%;13x}Kp1jTW z|DVq~(c60V?Aary-F|J>^!Pf<%-a_hI!oHsRP;}ETr!Wvq3v^pO|G8uwt|OFarJ+{ zHvf~zh_R5#`?}g8w)Fem^3NCDD`uCaMtv?%%#trXA~JPc%PYLx%ujj zAA7662Sr9!UN~O+<6*na=QGAvu3Ra2*eYIhh*SN;3FZC`>F4M1_3zBPYo+El=fvFd zdpBS0ySX`iyLG0=7da!59n(Mj{tMDJr{EChm220Sa=)M2e&y4qhwSn-2YSu#foc~C z`#Kx-c@;{B+jy1D&Bae|TCrlq1Nr|y*x&E}Zzo^>r*QWEm*sCZ9xu9`yM5`i*3K=H z7+$!#^~sz(Gt+qYmZX5_$@vHN&H8XFd;P~-+3QPJ@*I~b=F#8#MTnJ^HMVNb37<GUrfq{@$ryUtc#)IWeL6 z-StgrO2v#u(^(w2j)t!>>?X_?HtWPckNacyMq| z(J4*O-@pFWiRs6kahI<>^5^GgN%Opz>3vh@&p-e5di;4%;kTn8ad}h9rza;njTn7q z8nsTEG)Yf3{0q<2SNSVKtiN6fKJC0P;D3QdPv)$*^8&myeJ-awKR0(y;W5cIvAegm zduPRKuV1r9MXDFnay1SA7r@%=n3bI^{JuSN)|01COD&B2v(Ns1zyEx6{@$bU|9^#- zy}RR?nyTuzT=?{+f}Jr_rc5!&x}tH;>a~uV-yDz3%*^Sh!-IpJot>HUw(q_^|Bt`j zPnFGSXBTbRvL$$W@YZWCN`i+T7W|xNTg_JXqrqg7U4uxF*Vh~Ecb|WL`1$9qKNd?x z)aRB2ZC}47I3PgbFU#Hr6GmufW#gHAri{5Yug~mrS`w9R-yD0_{Ol4oSdS&OM%ZEd zj?%Pv#h|sD=O0}6ZgyS}GmU#PwCX;cnfZ=s$*l9w7q42?W&h_Pf6L*-E!SS^O?q*Z zi<|rAo=W4NKYzZ|^V5Px+o1AhSGUry4n^lSgPI=&t5&bR96M#oWHoAb z?IND(b1W+TwAT1H*F>+_pFG>{*dO);b=anTG-bH^=-SNMR*$9YYS^OR&3}oA7?iGL ziGyZqkk;L!FT`rq7`9x~SZctt`24?(E>#ksHCwfx!k7K>VK}0>^h1Tsj+k{N;;vr= zTU%R?ByB7aUmX2qB|}H}RU0|}qeqVh2@AC69_bKdVPb4Ls4y*c>23?n=^vRJcbzie z(K)STZ!h0}+}S|FCr5nIW*I(qS6A05)23azal^wxW*Wl_-A9TKKL6Cv(K+(6#EYTB zFZ#f`VG?WbqX>MRsFdh}>#RKuJGs1DCGOo4 zJiSTC{Ibc#sNkR=r?@z|-rnAbX{wAD+C3P)7(OhJSbyEy)05Ln(`jKq5QEH`%!Ej> zwnTyMqa8<+GS+gkFgfDpGZAmry;_X7%A51z%c*3yNZyfl#pz^#nMWR zBS&xlxR^2J(W9hKpFeZ5H3xmQH<7gG+iT9^U~!lAMeifUfS8z`-yA)9 zv|{f)7mg$8JGSP$cUKZrn#kem>iXpQbMWT4>h8&yY~Pi~B-!=335H zr;N4HS6QOk98`o9W%$%4AW9`yS7IjUDz4^n7Pqmk(xlS zoABJ)kEX&;X4{+2y1K?}*=`-#m%Qm$??3uKf&asi$U-;sWE4+&f zt)_g8U+o*ZDxTT!=f(aj8F9iV&Yqq6`j4j2{#i-0(zd)bp8XNDP|+&bjPbwvbf#eS zdmqL5+JC?4+HQN+7Qg55_u+!jYnD{T*Y_4r;;^w}Q_8FrgaZCW!wd+q$! zyrJ3?Wgn^62M1^E40rH0{1b?D>b%UiF7XRiIPrKoUe?a`C}!}qZ(i@erDPPo=j?rxf~?6wubh^K)b2WcHFU2b1H-9?&0DYOo5k;N z>UbwMUr$!vHFMT8uccQaZ_Ga#w|qMrg9G!2(zRc6KQ3MMNVe_l;RV}6PrCft`sd7% z_HW0MHXd2Ba@oSG+Zp2z|I_*AC223TL0BwnZTyv}^ILUZ2Q9dI%3O$Pk@l=|8}oSi zjgj$Jik4oHJ+S{$?6t#J#hDo1*dH<9dhK!J?4*r1emZzYPft?eajBklT_)OZ`n9O= zh-qKbA1E#jId=Zj>oxm?7z*DrhBGj({aPP2t(2>v=~|UU0Lv2wJ_jov7wxEQ))@|q xukG^6-pl-Bc538%t)=$@y+Xfj-M8#N|HPRodSbzAH9$LNJYD@<);T3K0RW1$myrMf literal 0 HcmV?d00001 diff --git a/Ryujinx/Ui/assets/ryujinxXCIIcon.png b/Ryujinx/Ui/assets/ryujinxXCIIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..08f783a80d0016cce0ce46a0c5b32d3f55df3a51 GIT binary patch literal 13093 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

Vs>UJr&P9op-5D6P}}a6-8sgc&vz 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 literal 0 HcmV?d00001 diff --git a/Ryujinx/_schema.json b/Ryujinx/_schema.json index c1a64c674..b9546a84b 100644 --- a/Ryujinx/_schema.json +++ b/Ryujinx/_schema.json @@ -494,6 +494,38 @@ false ] }, + "game_dirs": { + "$id": "#/properties/game_dirs", + "type": "string list", + "title": "List of Game Directories", + "description": "A list of directories containing games to be used to load games into the games list", + "default": [] + }, + "gui_columns": { + "$id": "#/properties/gui_columns", + "type": "bool list", + "title": "Used to toggle columns in the GUI", + "description": "Used to toggle columns in the GUI", + "default": [ true, true, true, true, true, true, true, true, true ] + }, + "enable_custom_theme": { + "$id": "#/properties/enable_custom_theme", + "type": "boolean", + "title": "Enable custom themes in the GUI", + "description": "Enable or disable custom themes in the GUI", + "default": false, + "examples": [ + true, + false + ] + }, + "custom_theme_path": { + "$id": "#/properties/custom_theme_path", + "type": "string", + "title": "Path to custom GUI theme", + "description": "Path to custom GUI theme", + "default": "" + }, "controller_type": { "$id": "#/properties/controller_type", "type": "string",