Created
February 15, 2020 17:41
-
-
Save andrewgodwin/89920ee02501ab12d09b02500897066c to your computer and use it in GitHub Desktop.
AutoHotkey script for making Windows Terminal appear/disappear with a single keypress
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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() | |
} | |
} |
Run "wt.exe"
just simple one line which is enough to call Windows Terminal.
I've been using the script for a while, and made a few modifications in my forked gist to make it work on multiple workspaces / virtual desktops.
#NoTrayIcon
#SingleInstance Force
;
; This scripts toggles between states raised and hidden of a Windows Terminal,
; or opens a new one if not opened, using `Super + T` or `Super + Enter`
;
; Supports multiple workspaces or virtual desktops.
;
#T::
#Enter::
ToggleTerminal()
ToggleTerminal() {
matcher := "ahk_class CASCADIA_HOSTING_WINDOW_CLASS"
DetectHiddenWindows, On
if WinExist(matcher) {
if !WinActive(matcher) {
; Hide it first to alow raising it later on a different workspace
HideTerminal()
ShowTerminal()
} else if WinExist(matcher) {
HideTerminal()
}
} else {
OpenNewTerminal()
}
}
OpenNewTerminal() {
Run C:\Users\%A_UserName%\AppData\Local\Microsoft\WindowsApps\wt.exe
Sleep, 1000
ShowTerminal()
}
ShowTerminal() {
WinShow ahk_class CASCADIA_HOSTING_WINDOW_CLASS
WinActivate ahk_class CASCADIA_HOSTING_WINDOW_CLASS
}
HideTerminal() {
WinHide ahk_class CASCADIA_HOSTING_WINDOW_CLASS
}
Hi there! i'm using the same script but wt.exe is not opening at all. not even if i open it from the file explorer. Anyone with this issue?
If i open the terminal app from it's shortcut it opens without any problem
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hey a couple modifications to make it work using env variables. Nice script! I slightly changed the Height and Width to make it more straight forward. Is there any way to get the current monitor where the active window is in? Right now it only shows on my first monitor.