Skip to content

Instantly share code, notes, and snippets.

@andrewgodwin
Created February 15, 2020 17:41
Show Gist options
  • Save andrewgodwin/89920ee02501ab12d09b02500897066c to your computer and use it in GitHub Desktop.
Save andrewgodwin/89920ee02501ab12d09b02500897066c to your computer and use it in GitHub Desktop.

Revisions

  1. andrewgodwin created this gist Feb 15, 2020.
    50 changes: 50 additions & 0 deletions QuakeTerminal.ahk
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,50 @@
    #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
    ; #Warn ; Enable warnings to assist with detecting common errors.
    SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.

    F12::ToggleTerminal()

    ShowAndPositionTerminal()
    {
    WinShow ahk_class CASCADIA_HOSTING_WINDOW_CLASS
    WinActivate ahk_class CASCADIA_HOSTING_WINDOW_CLASS

    SysGet, WorkArea, MonitorWorkArea
    TerminalWidth := A_ScreenWidth * 0.9
    if (A_ScreenWidth / A_ScreenHeight) > 1.5 {
    TerminalWidth := A_ScreenWidth * 0.6
    }
    WinMove, ahk_class CASCADIA_HOSTING_WINDOW_CLASS,, (A_ScreenWidth - TerminalWidth) / 2, WorkAreaTop - 2, TerminalWidth, A_ScreenHeight * 0.5,
    }

    ToggleTerminal()
    {
    WinMatcher := "ahk_class CASCADIA_HOSTING_WINDOW_CLASS"

    DetectHiddenWindows, On

    if WinExist(WinMatcher)
    ; Window Exists
    {
    DetectHiddenWindows, Off

    ; Check if its hidden
    if !WinExist(WinMatcher) || !WinActive(WinMatcher)
    {
    ShowAndPositionTerminal()
    }
    else if WinExist(WinMatcher)
    {
    ; Script sees it without detecting hidden windows, so..
    WinHide ahk_class CASCADIA_HOSTING_WINDOW_CLASS
    Send !{Esc}
    }
    }
    else
    {
    Run "c:\Users\Andrew\AppData\Local\Microsoft\WindowsApps\wt.exe"
    Sleep, 1000
    ShowAndPositionTerminal()
    }
    }