14
votes

I run an AWS Workspace in full screen view, and I have my various windows and applications spread across two large monitors in Extended Desktop mode. Works just fine. But how do I toggle over to my local desktop? Alt-Tab merely cycles between open windows in the WS desktop.

I know I can press the AWS WS hotkey Ctrl-Alt-Enter to quickly exit full-screen view and put me in a window. But even still, Alt-Tab merely cycles between open windows in the WS window and not among the local open windows. How do I jump out of that window by keyboard?

And, even worse, when I go back to full screen view, all my open windows have been re-arranged to fit in the window view. Full screen apps are still full screen-ish, but locked in at the restored window size. I have to click the restore button twice - once to restore down from the pseudo-full screen, and again to go back to true full screen. I'd rather toggle out while remaining in full-screen. Can it be done?

So, is there a hotkey? Or anything I can program in VB, JS or AHK to do that? I also note that the WS window does not respond to the normal Windows hotkeys (like Alt-Space for the control bar, Win+Arrow to snap/maximize windows, etc.) so I'm just looking how to get started.

TIA

10
I have found a kludge. On a Win 8.1 box, with a progman add-on (forcing a Win 7-style taskbar) on dual monitors (with taskbar shown on both) I have found the local taskbar un-autohides on the secondary monitor (when I move my mouse to it), allowing access to local running program windows and the start key. This puts the local window above the AWS desktops.PGilm
If you can provide additional details from AutoHotkey's Window Spy for the window title of the AWS Workspace, it should be possible to come up with something using WinActivate.David Metcalfe

10 Answers

12
votes

I found a way to switch.
Running Windows 10
Open a new Desktop (WinKey + Ctrl + D)
Start Amazon Workspace there - in Full screen mode
To switch back to local desktop, open "About" pop up in AWS
Now, click on WinKey + Tab .. this allows you to select different Desktops.
Switch to your Original Desktop
To switch back to AWS simply press WinKey + Tab again and select Desktop running AWS

4
votes

I have a found an solution to this, not quite a hotkey but it does allow you to leave AWS fullscreen temporarily and have the window arrangement stay the same when you return. -bring mouse to the top of the screen so that the Amazon WorkSpaces menu bar appears. -click on Amazon WorkSpaces>About Amazon WorkSpaces. This will bring up the About Amazon WorkSpaces menu -click on either "Download Latest Client" or "Terms and Conditions" and this should bring you back to your local machine, though it will open an AWS website. -To return to AWS, simply click the client icon on your local system tray, though you will want to close the About Amazon WorkSpaces window first since if left open, it will not work the next time.

2
votes

Try this solution:

  1. Enable Automatically hide the taskbar in desktop mode.
  2. Disable Lock the Taskbar
  3. Enable Amazon WorkSpaces FullScreen.
  4. Now, when you point the mouse to the bottom of the screen, the TaskBar Local Desktop will appear.
1
votes

Adding to Manfred Just's answer(which I found to be useful), You can do the following:

  • Running Windows 10
  • Open a new Desktop (WinKey + Ctrl + D)
  • Start Amazon Workspace there - in Full-screen mode
  • Use 4 fingers in the trackpad to switch between desktops (This works even if the focus is on the AWS Workspace)

Although this trick uses a trackpad, it still is better than clicking on the about button to get the window focus.

1
votes

Three- and four-finger touchpad gestures are processed by the host rather than guest machine. E.g. three fingers left or right works like the host's Alt+Tab. (Win 10 on a notebook)

0
votes

An alternative solution altogether is to use RDP client instead of the workspaces client. In my opinion this works much better anyways.

However, the administrator of the AWS account must enable RDP through the firewall.

https://aws.amazon.com/premiumsupport/knowledge-center/connect-workspace-rdp/

0
votes

I have dealt with the same issue and it is very annoying. I'd use RDP in a heartbeat if I could but instead I wrote this script in AutoHotKey (AHK). I have found that AWS Workspaces captures the keyboard but could still get the mouse position so to minimize AWS in fullscreen or any program you simply swipe left on the top of the screen with your mouse and the program will minimize to the taskbar

Simply copy and paste the code below into a text editor, save as Slide Minimize.ahk, run and enjoy.

; Slide Minimize
; A handy tool for minimizing windows with a swipe mouse gesture
; Written By Travis Steichen

#NoEnv
SendMode Input 
SetWorkingDir %A_ScriptDir%
SetBatchLines -1
ListLines Off

CoordMode, Mouse, Screen

; Settings
global TopSlideArea := 16
global SlideDistance := 750
global SlideTime := 250

global TickRate := 10

global HelpMsg = ""
global State := "Waiting"
global CurrentSlideDistance := 0
global SlideLastX := 0

Menu, Tray, NoStandard
menu, tray, icon, C:\Windows\System32\SHELL32.dll,35
menu, Adjust Slide Minimize Sensitivity, add, Slide Activation Distance, GUI_SlideActivationDistance
menu, Adjust Slide Minimize Sensitivity, add, Slide Activation Time, GUI_SlideActivationTime
menu, Adjust Slide Minimize Sensitivity, add, Slide Activation Area, GUI_SlideActivationArea
menu, tray, add, Adjust Slide Minimize Sensitivity, :Adjust Slide Minimize Sensitivity
menu, tray, add ; Create a separator line.
menu, tray, add, About, HelpAbout
menu, tray, add, Reload Program, TrayReloadProgram
menu, tray, add, Exit, TrayExitProgram

SettingsLoad()

HelpMsg =
(
Slide Minimize
Version 1.0.0

Written By Travis Steichen
Email: [email protected]

=== Instructions ===
Just move your mouse to the top of the screen and swipe somewhat fast and the window in focus will minimize
)

SetTimer, Tick, %TickRate%

#Z::

MsgBox, Ok...

return

;===============================================================================================================================================
;========    END    OF    AUTO    EXECUTE    ===================================================================================================
;===============================================================================================================================================
return


;===============================================================================================================================================
~^#F24::
; This does nothing other than prevent the script from existing as soon as it is started
return
;===============================================================================================================================================

SettingsLoad()
{
    if ( FileExist("Settings.ini") != "" )
    {
        iniSection := "Gestures"
        IniRead, TopSlideArea, Settings.ini, %iniSection%, TopSlideArea
        IniRead, SlideDistance, Settings.ini, %iniSection%, SlideDistance
        IniRead, SlideTime, Settings.ini, %iniSection%, SlideTime
    }
    else
    {
        SettingsSave()
    }

}

SettingsSave()
{
    iniSection := "Gestures"
    IniWrite, %TopSlideArea%, Settings.ini, %iniSection%, TopSlideArea
    IniWrite, %SlideDistance%, Settings.ini, %iniSection%, SlideDistance
    IniWrite, %SlideTime%, Settings.ini, %iniSection%, SlideTime
}

GUI_SlideActivationDistance:

msgCaption     := "Set Slide Activation Distance"
msgText        := "Slide Activation Distance is how many pixels the mouse must move left to minimize the current window in focus"
InputBox, SlideDistance, %msgCaption%, %msgText%,,,,,,,,%SlideDistance%
SettingsSave()

return

GUI_SlideActivationTime:

msgCaption     := "Set Slide Activation Time"
msgText        := "Slide Activation Time is how much time measured in milliseconds the mouse has to swipe left to minimize the current window in focus"
InputBox, SlideTime, %msgCaption%, %msgText%,,,,,,,,%SlideTime%
SettingsSave()

return

GUI_SlideActivationArea:

msgCaption     := "Set Slide Activation Area"
msgText        := "Slide Activation Area is how many pixels high from the top of the screen the mouse has to swipe left in minimize the current window in focus"
InputBox, TopSlideArea, %msgCaption%, %msgText%,,,,,,,,%TopSlideArea%
SettingsSave()

return

TrayExitProgram:

ExitApp

return

TrayReloadProgram:

Reload

return

HelpAbout:

HelpAbout()

return

Tick()
{
    MouseGetPos, mouseX, mouseY

    if ( mouseY < TopSlideArea )
    {
        if ( State == "Waiting" )
        {
            State := "Waiting For Slide"
            SetTimer, ResetSlide, %SlideTime%
            SlideLastX := mouseX
        }
        else if ( State == "Waiting For Slide" )
        {
            SlideDifference := SlideLastX - mouseX
            SlideLastX := mouseX

            if ( SlideDifference >= 0 )
            {    
                CurrentSlideDistance += SlideDifference

                if ( CurrentSlideDistance > SlideDistance )
                {
                    WinMinimize, A
                    ResetSlide()
                }
            }
            else
                ResetSlide()
        }
    }
    else if ( State != "Waiting" )
    {
        if ( State != "Reset" )
            ResetSlide()
        else
            State := "Waiting"
    }
}

ResetSlide()
{
    State := "Reset"
    CurrentSlideDistance := 0
    SetTimer, ResetSlide, OFF
}

HelpAbout()
{
    MsgBox, 64, Slide Minimize, %HelpMsg%
}

This is not a perfect solution but it fits my needs. Issues can occur with multiple monitors as Workspaces treats treats each monitor as a window in the task bar so when you slide minimize Workspaces in full screen you minimize the Workspaces window on that monitor. You can get around this by clicking the other screens and swipe minimize those. Also another issue is sometimes Workspaces forgets which monitor each workspace window is on which can cause more than one workspace window to appear on the same monitor which the only solution then is to switch Workspaces to full screen and back again.

Hope this is helpful

0
votes

If you have an NVidia graphics card in your machine, set up the nView Desktop Manager, and enable multiple desktops. Load the nView toolbar, and set it so that it is always on top. In the toolbar, there are icons for the different desktops you have set up, and you just click on the desktop you want to switch to.

0
votes

My solution: When in AWS Workspace, click Ctrl-Alt-Del to pop to the lock/restart/etc screen, click Task Manager: Your primary workstation task bar will appear at the bottom when the Task Manager window opens. Select any app/window from there and you've effectively brought the local desktop item forward, leaving the other AWS screens still showing.

-2
votes

I used AutoHotKey to map ScrollLock (NumLock works too) to get out of WorkSpaces. Change "Notepad" below to any other app that you have running on your host. The script will switch out of WorkSpaces to Notepad and then to the next app on the stack.

;Switch out of Amazon WorkSpaces to last window in tab stack

ScrollLock::
IfWinActive, Amazon WorkSpaces
{
    WinActivate Notepad
    Send, {ALT DOWN}{TAB}
    Sleep, 100
    Send, {TAB}
    Send, {ALT UP}
}
return