diff --git a/VERSION b/VERSION index 476ede4..4de2f12 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.13 \ No newline at end of file +preview \ No newline at end of file diff --git a/scoop/wtq-2.0.13.json b/scoop/wtq-2.0.13.json new file mode 100644 index 0000000..29c7e3b --- /dev/null +++ b/scoop/wtq-2.0.13.json @@ -0,0 +1,20 @@ +{ + "version": "2.0.13", + "description": "Turn any app into a Quake-style toggleable app.", + "homepage": "https://github.com/flyingpie/windows-terminal-quake", + "bin": "wtq.exe", + "shortcuts": [ + [ + "wtq.exe", + "WTQ - Windows Terminal Quake" + ] + ], + "persist": "wtq.jsonc", + "checkver": "github", + "architecture": { + "64bit": { + "url": "https://github.com/flyingpie/windows-terminal-quake/releases/download/v2.0.13/win-x64_self-contained.zip", + "hash": "964795921fde6729a811d434433def15f81862b31276eca50c7d0e56d9523c39" + } + } +} \ No newline at end of file diff --git a/scoop/wtq-latest.json b/scoop/wtq-latest.json index ffb755f..29c7e3b 100644 --- a/scoop/wtq-latest.json +++ b/scoop/wtq-latest.json @@ -1,5 +1,5 @@ { - "version": "2.0.12", + "version": "2.0.13", "description": "Turn any app into a Quake-style toggleable app.", "homepage": "https://github.com/flyingpie/windows-terminal-quake", "bin": "wtq.exe", @@ -13,8 +13,8 @@ "checkver": "github", "architecture": { "64bit": { - "url": "https://github.com/flyingpie/windows-terminal-quake/releases/download/v2.0.12/win-x64_self-contained.zip", - "hash": "e92289895aca5edfbdf95edba96016fee77cb57c2bd2e81970e68cdee7b3a3ac" + "url": "https://github.com/flyingpie/windows-terminal-quake/releases/download/v2.0.13/win-x64_self-contained.zip", + "hash": "964795921fde6729a811d434433def15f81862b31276eca50c7d0e56d9523c39" } } } \ No newline at end of file diff --git a/scoop/wtq-nightly.json b/scoop/wtq-nightly.json index ffb755f..29c7e3b 100644 --- a/scoop/wtq-nightly.json +++ b/scoop/wtq-nightly.json @@ -1,5 +1,5 @@ { - "version": "2.0.12", + "version": "2.0.13", "description": "Turn any app into a Quake-style toggleable app.", "homepage": "https://github.com/flyingpie/windows-terminal-quake", "bin": "wtq.exe", @@ -13,8 +13,8 @@ "checkver": "github", "architecture": { "64bit": { - "url": "https://github.com/flyingpie/windows-terminal-quake/releases/download/v2.0.12/win-x64_self-contained.zip", - "hash": "e92289895aca5edfbdf95edba96016fee77cb57c2bd2e81970e68cdee7b3a3ac" + "url": "https://github.com/flyingpie/windows-terminal-quake/releases/download/v2.0.13/win-x64_self-contained.zip", + "hash": "964795921fde6729a811d434433def15f81862b31276eca50c7d0e56d9523c39" } } } \ No newline at end of file diff --git a/src/01-Build/NukeBuild/Build.cs b/src/01-Build/NukeBuild/Build.cs index 6021d19..efbe44a 100644 --- a/src/01-Build/NukeBuild/Build.cs +++ b/src/01-Build/NukeBuild/Build.cs @@ -319,7 +319,7 @@ public sealed class Build : NukeBuild var sha256 = Convert.ToHexString(await SHA256.HashDataAsync(File.OpenRead(PathToWin64SelfContainedZip))).ToLowerInvariant(); var manifest = tpl - .Replace("$GH_RELEASE_VERSION$", $"v{SemVerVersion}", StringComparison.OrdinalIgnoreCase) + .Replace("$GH_RELEASE_VERSION$", SemVerVersion, StringComparison.OrdinalIgnoreCase) .Replace("$PACKAGE_VERSION$", SemVerVersion, StringComparison.OrdinalIgnoreCase) .Replace("$SELF_CONTAINED_SHA256$", sha256, StringComparison.OrdinalIgnoreCase); @@ -356,7 +356,7 @@ public sealed class Build : NukeBuild var target = manifestRoot / fn; var manifest = tpl - .Replace("$GH_RELEASE_VERSION$", $"v{SemVerVersion}", StringComparison.OrdinalIgnoreCase) + .Replace("$GH_RELEASE_VERSION$", SemVerVersion, StringComparison.OrdinalIgnoreCase) .Replace("$PACKAGE_VERSION$", SemVerVersion, StringComparison.OrdinalIgnoreCase) .Replace("$RELEASE_DATE$", DateTimeOffset.UtcNow.ToString("yyyy-MM-dd"), StringComparison.OrdinalIgnoreCase) .Replace("$SELF_CONTAINED_SHA256$", sha256, StringComparison.OrdinalIgnoreCase); diff --git a/src/10-Core/Wtq/Configuration/Keys.cs b/src/10-Core/Wtq/Configuration/Keys.cs index 369b7a1..130ae1f 100644 --- a/src/10-Core/Wtq/Configuration/Keys.cs +++ b/src/10-Core/Wtq/Configuration/Keys.cs @@ -1,86 +1,87 @@ namespace Wtq.Configuration; [SuppressMessage("Design", "CA1069:Enums values should not be duplicated", Justification = "MvdO: Some overlap for convenience.")] +[Flags] public enum Keys { /// /// The bitmask to extract a key code from a key value. /// - KeyCode = 0xFFFF, + KeyCode = 0x0000FFFF, /// /// The bitmask to extract modifiers from a key value. /// - Modifiers = -65536, + Modifiers = unchecked((int)0xFFFF0000), /// /// No key pressed. /// - None = 0, + None = 0x00, /// /// The left mouse button. /// - LButton = 1, + LButton = 0x01, /// /// The right mouse button. /// - RButton = 2, + RButton = 0x02, /// /// The CANCEL key. /// - Cancel = 3, + Cancel = 0x03, /// /// The middle mouse button (three-button mouse). /// - MButton = 4, + MButton = 0x04, /// /// The first x mouse button (five-button mouse). /// - XButton1 = 5, + XButton1 = 0x05, /// /// The second x mouse button (five-button mouse). /// - XButton2 = 6, + XButton2 = 0x06, /// /// The BACKSPACE key. /// [Display(Description = "Backspace")] - Back = 8, + Back = 0x08, /// /// The TAB key. /// [Display(Description = "Tab")] - Tab = 9, + Tab = 0x09, /// /// The LINEFEED key. /// - LineFeed = 0xA, + LineFeed = 0x0A, /// /// The CLEAR key. /// - Clear = 0xC, + Clear = 0x0C, /// /// The RETURN key. /// [Display(Description = "Return (enter)")] - Return = 0xD, + Return = 0x0D, /// /// The ENTER key. /// [Display(Description = "Return (enter)")] - Enter = 0xD, + Enter = Return, /// /// The SHIFT key. @@ -102,35 +103,110 @@ public enum Keys /// Pause = 0x13, + /// + /// The CAPS LOCK key. + /// + Capital = 0x14, + /// /// The CAPS LOCK key. /// [Display(Description = "Caps lock")] CapsLock = 0x14, + /// + /// The IME Kana mode key. + /// + KanaMode = 0x15, + + /// + /// The IME Hanguel mode key. + /// + HanguelMode = 0x15, + + /// + /// The IME Hangul mode key. + /// + HangulMode = 0x15, + + /// + /// The IME Junja mode key. + /// + JunjaMode = 0x17, + + /// + /// The IME Final mode key. + /// + FinalMode = 0x18, + + /// + /// The IME Hanja mode key. + /// + HanjaMode = 0x19, + + /// + /// The IME Kanji mode key. + /// + KanjiMode = 0x19, + /// /// The ESC key. /// [Display(Description = "Escape")] Escape = 0x1B, + /// + /// The IME Convert key. + /// + IMEConvert = 0x1C, + + /// + /// The IME NonConvert key. + /// + IMENonconvert = 0x1D, + + /// + /// The IME Accept key. + /// + IMEAccept = 0x1E, + + /// + /// The IME Accept key. + /// + IMEAceept = IMEAccept, + + /// + /// The IME Mode change request. + /// + IMEModeChange = 0x1F, + /// /// The SPACEBAR key. /// [Display(Description = "Space bar")] Space = 0x20, + /// + /// The PAGE UP key. + /// + Prior = 0x21, + /// /// The PAGE UP key. /// [Display(Description = "Page up")] - PageUp = 0x21, + PageUp = Prior, + + /// + /// The PAGE DOWN key. + /// + Next = 0x22, /// /// The PAGE DOWN key. /// [Display(Description = "Page down")] - PageDown = 0x22, + PageDown = Next, /// /// The END key. @@ -183,11 +259,16 @@ public enum Keys /// Execute = 0x2B, + /// + /// The PRINT SCREEN key. + /// + Snapshot = 0x2C, + /// /// The PRINT SCREEN key. /// [Display(Description = "Print screen")] - PrintScreen = 0x2C, + PrintScreen = Snapshot, /// /// The INS key. @@ -715,159 +796,241 @@ public enum Keys RMenu = 0xA5, /// - /// The browser back key (Windows 2000 or later). + /// The browser back key. /// BrowserBack = 0xA6, /// - /// The browser forward key (Windows 2000 or later). + /// The browser forward key. /// BrowserForward = 0xA7, /// - /// The browser refresh key (Windows 2000 or later). + /// The browser refresh key. /// BrowserRefresh = 0xA8, /// - /// The browser stop key (Windows 2000 or later). + /// The browser stop key. /// BrowserStop = 0xA9, /// - /// The browser search key (Windows 2000 or later). + /// The browser search key. /// BrowserSearch = 0xAA, /// - /// The browser favorites key (Windows 2000 or later). + /// The browser favorites key. /// BrowserFavorites = 0xAB, /// - /// The browser home key (Windows 2000 or later). + /// The browser home key. /// BrowserHome = 0xAC, /// - /// The volume mute key (Windows 2000 or later). + /// The volume mute key. /// VolumeMute = 0xAD, /// - /// The volume down key (Windows 2000 or later). + /// The volume down key. /// VolumeDown = 0xAE, /// - /// The volume up key (Windows 2000 or later). + /// The volume up key. /// VolumeUp = 0xAF, /// - /// The media next track key (Windows 2000 or later). + /// The media next track key. /// MediaNextTrack = 0xB0, /// - /// The media previous track key (Windows 2000 or later). + /// The media previous track key. /// MediaPreviousTrack = 0xB1, /// - /// The media Stop key (Windows 2000 or later). + /// The media stop key. /// MediaStop = 0xB2, /// - /// The media play pause key (Windows 2000 or later). + /// The media play pause key. /// MediaPlayPause = 0xB3, /// - /// The launch mail key (Windows 2000 or later). + /// The launch mail key. /// LaunchMail = 0xB4, /// - /// The OEM Semicolon key on a US standard keyboard (Windows 2000 or later). + /// The select media key. + /// + SelectMedia = 0xB5, + + /// + /// The Launch Application1 key. + /// + LaunchApplication1 = 0xB6, + + /// + /// The Launch Application2 key. + /// + LaunchApplication2 = 0xB7, + + /// + /// The OEM Semicolon key. /// [Display(Description = "; (semicolon)")] OemSemicolon = 0xBA, /// - /// The OEM plus key on any country/region keyboard (Windows 2000 or later). + /// The OEM 1 key. /// [Display(Description = "+ (plus)")] + Oem1 = OemSemicolon, + + /// + /// The OEM plus key. + /// Oemplus = 0xBB, /// - /// The OEM comma key on any country/region keyboard (Windows 2000 or later). + /// The OEM comma key. /// [Display(Description = ", (comma)")] Oemcomma = 0xBC, /// - /// The OEM minus key on any country/region keyboard (Windows 2000 or later). + /// The OEM Minus key. /// [Display(Description = "- (minus)")] OemMinus = 0xBD, /// - /// The OEM period key on any country/region keyboard (Windows 2000 or later). + /// The OEM Period key. /// [Display(Description = ". (period)")] OemPeriod = 0xBE, /// - /// The OEM question mark key on a US standard keyboard (Windows 2000 or later). + /// The OEM question key. /// [Display(Description = "? (question mark)")] OemQuestion = 0xBF, /// - /// The OEM tilde key on a US standard keyboard (Windows 2000 or later). + /// The OEM 2 key. + /// + Oem2 = OemQuestion, + + /// + /// The OEM 3 key. + /// + Oem3 = 0xC0, + + /// + /// The OEM tilde key. /// [Display(Description = "~ (tilde)")] - Oemtilde = 0xC0, + Oemtilde = Oem3, /// - /// The OEM open bracket key on a US standard keyboard (Windows 2000 or later). + /// The OEM open brackets key. /// [Display(Description = "[ (open bracket)")] OemOpenBrackets = 0xDB, /// - /// The OEM pipe key on a US standard keyboard (Windows 2000 or later). + /// The OEM 4 key. + /// + Oem4 = OemOpenBrackets, + + /// + /// The OEM Pipe key. /// [Display(Description = "| (pipe)")] OemPipe = 0xDC, /// - /// The OEM close bracket key on a US standard keyboard (Windows 2000 or later). + /// The OEM 5 key. + /// + Oem5 = OemPipe, + + /// + /// The OEM close brackets key. /// [Display(Description = "] (close bracket)")] OemCloseBrackets = 0xDD, /// - /// The OEM singled/double quote key on a US standard keyboard (Windows 2000 or later). + /// The OEM 6 key. + /// + Oem6 = OemCloseBrackets, + + /// + /// The OEM 7 key. + /// + Oem7 = 0xDE, + + /// + /// The OEM Quotes key. /// [Display(Description = "\" (double quote)")] - OemQuotes = 0xDE, + OemQuotes = Oem7, /// - /// The OEM 8 key. + /// The OEM8 key. /// Oem8 = 0xDF, /// - /// The OEM angle bracket or backslash key on the RT 102 key keyboard (Windows 2000. + /// The OEM 102 key. /// + Oem102 = 0xE2, + /// - /// or later). + /// The OEM Backslash key. /// [Display(Description = "\\ (backslash)")] - OemBackslash = 0xE2, + OemBackslash = Oem102, + + /// + /// The PROCESS KEY key. + /// + ProcessKey = 0xE5, + + /// + /// The Packet KEY key. + /// + Packet = 0xE7, + + /// + /// The ATTN key. + /// + Attn = 0xF6, + + /// + /// The CRSEL key. + /// + Crsel = 0xF7, + + /// + /// The EXSEL key. + /// + Exsel = 0xF8, + + /// + /// The ERASE EOF key. + /// + EraseEof = 0xF9, /// /// The PLAY key. @@ -879,8 +1042,33 @@ public enum Keys /// Zoom = 0xFB, + /// + /// A constant reserved for future use. + /// + NoName = 0xFC, + + /// + /// The PA1 key. + /// + Pa1 = 0xFD, + /// /// The CLEAR key. /// OemClear = 0xFE, + + /// + /// The SHIFT modifier key. + /// + Shift = 0x00010000, + + /// + /// The CTRL modifier key. + /// + Control = 0x00020000, + + /// + /// The ALT modifier key. + /// + Alt = 0x00040000, } \ No newline at end of file diff --git a/src/10-Core/Wtq/WtqPaths.cs b/src/10-Core/Wtq/WtqPaths.cs index 5dc9fda..6879cdd 100644 --- a/src/10-Core/Wtq/WtqPaths.cs +++ b/src/10-Core/Wtq/WtqPaths.cs @@ -79,8 +79,19 @@ public static class WtqPaths /// public static string GetWtqAppDir() { - return _pathToAppDir ??= Path.GetDirectoryName(Environment.ProcessPath) - ?? throw new WtqException($"Could not get path to app directory."); + if (_pathToAppDir == null) + { + _pathToAppDir = Path.GetDirectoryName(typeof(WtqPaths).Assembly.Location); + + Console.WriteLine($"GetWtqAppDir() => {_pathToAppDir}"); + + if (string.IsNullOrWhiteSpace(_pathToAppDir)) + { + throw new WtqException("Could not get path to app directory."); + } + } + + return _pathToAppDir; } /// diff --git a/src/20-Services/Wtq.Services.UI/Shared/MainLayout.razor b/src/20-Services/Wtq.Services.UI/Shared/MainLayout.razor index 89228c0..a23bd7d 100644 --- a/src/20-Services/Wtq.Services.UI/Shared/MainLayout.razor +++ b/src/20-Services/Wtq.Services.UI/Shared/MainLayout.razor @@ -1,5 +1,9 @@ @inherits LayoutComponentBase +
+ The GUI is a work-in-progress, mind the gaps! And feel free to send feedback on the project page :) +
+ diff --git a/winget/2.0.13/flyingpie.windows-terminal-quake.installer.yaml b/winget/2.0.13/flyingpie.windows-terminal-quake.installer.yaml new file mode 100644 index 0000000..7fb3ecd --- /dev/null +++ b/winget/2.0.13/flyingpie.windows-terminal-quake.installer.yaml @@ -0,0 +1,16 @@ +PackageIdentifier: flyingpie.windows-terminal-quake +PackageVersion: 2.0.13 +InstallerType: zip +NestedInstallerType: portable +NestedInstallerFiles: +- RelativeFilePath: wtq.exe + PortableCommandAlias: wtq +Commands: +- wtq +ReleaseDate: 2025-02-07 +Installers: +- Architecture: x64 + InstallerUrl: https://github.com/flyingpie/windows-terminal-quake/releases/download/v2.0.13/win-x64_self-contained.zip + InstallerSha256: 964795921fde6729a811d434433def15f81862b31276eca50c7d0e56d9523c39 +ManifestType: installer +ManifestVersion: 1.5.0 diff --git a/winget/2.0.13/flyingpie.windows-terminal-quake.locale.en-US.yaml b/winget/2.0.13/flyingpie.windows-terminal-quake.locale.en-US.yaml new file mode 100644 index 0000000..b825fcc --- /dev/null +++ b/winget/2.0.13/flyingpie.windows-terminal-quake.locale.en-US.yaml @@ -0,0 +1,13 @@ +PackageIdentifier: flyingpie.windows-terminal-quake +PackageVersion: 2.0.13 +PackageLocale: en-US +Publisher: Flyingpie +PublisherUrl: http://flyingpie.nl/ +PackageName: windows-terminal-quake +PackageUrl: https://github.com/flyingpie/windows-terminal-quake +License: MIT +LicenseUrl: https://github.com/flyingpie/windows-terminal-quake/blob/master/LICENSE +ShortDescription: Turn any app into a Quake-style toggleable app. +Moniker: windows-terminal-quake +ManifestType: defaultLocale +ManifestVersion: 1.5.0 diff --git a/winget/2.0.13/flyingpie.windows-terminal-quake.yaml b/winget/2.0.13/flyingpie.windows-terminal-quake.yaml new file mode 100644 index 0000000..c19da09 --- /dev/null +++ b/winget/2.0.13/flyingpie.windows-terminal-quake.yaml @@ -0,0 +1,5 @@ +PackageIdentifier: flyingpie.windows-terminal-quake +PackageVersion: 2.0.13 +DefaultLocale: en-US +ManifestType: version +ManifestVersion: 1.5.0