Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shortcuts for numbered virtual desktops #19

Open
joaomsa opened this issue May 8, 2019 · 28 comments
Open

Shortcuts for numbered virtual desktops #19

joaomsa opened this issue May 8, 2019 · 28 comments
Labels
Idea-New PowerToy Suggestion for a PowerToy Product-Virtual Desktop Refers to the idea of an Improved Virtual Desktop power toys

Comments

@joaomsa
Copy link

joaomsa commented May 8, 2019

Desktops are already numbered, would be useful to have some sort of indicator of the current desktop number in the taskbar and to add a shortcut to jump between desktops, something like WinKey + Ctrl + 1..9 to go to desktop 1... all the way to 9

@StrScr
Copy link

StrScr commented May 8, 2019

This is something that Virtual Desktop Enhancer can do. I had mentioned the software previously in issue #16.

You can jump to a directly to a desktop with the keyboard shortcuts Ctrl + Win + 1-9 and the program displays the current desktop as a badge as a taskbar icon.
image

@jaimecbernardo jaimecbernardo added the Idea-New PowerToy Suggestion for a PowerToy label May 9, 2019
@crutkas crutkas added the Product-Virtual Desktop Refers to the idea of an Improved Virtual Desktop power toys label Dec 4, 2019
SeraphimaZykova added a commit to SeraphimaZykova/PowerToys that referenced this issue Feb 6, 2020
* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests
stefansjfw added a commit that referenced this issue Feb 10, 2020
* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <[email protected]>
Co-authored-by: Seraphima <[email protected]>
udit3333 pushed a commit to udit3333/PowerToys that referenced this issue Feb 19, 2020
…oft#1194)

* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (microsoft#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (microsoft#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (microsoft#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <[email protected]>
Co-authored-by: Seraphima <[email protected]>
udit3333 pushed a commit to udit3333/PowerToys that referenced this issue Feb 19, 2020
…oft#1194)

* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (microsoft#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (microsoft#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (microsoft#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <[email protected]>
Co-authored-by: Seraphima <[email protected]>
udit3333 pushed a commit to udit3333/PowerToys that referenced this issue Feb 20, 2020
…oft#1194)

* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (microsoft#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (microsoft#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (microsoft#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <[email protected]>
Co-authored-by: Seraphima <[email protected]>
udit3333 pushed a commit to udit3333/PowerToys that referenced this issue Feb 20, 2020
…oft#1194)

* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (microsoft#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (microsoft#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (microsoft#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <[email protected]>
Co-authored-by: Seraphima <[email protected]>
udit3333 pushed a commit to udit3333/PowerToys that referenced this issue Feb 20, 2020
…oft#1194)

* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (microsoft#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (microsoft#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (microsoft#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <[email protected]>
Co-authored-by: Seraphima <[email protected]>
udit3333 pushed a commit to udit3333/PowerToys that referenced this issue Feb 20, 2020
…oft#1194)

* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (microsoft#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (microsoft#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (microsoft#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <[email protected]>
Co-authored-by: Seraphima <[email protected]>
udit3333 pushed a commit that referenced this issue Feb 20, 2020
* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <[email protected]>
Co-authored-by: Seraphima <[email protected]>
arjunbalgovind referenced this issue in arjunbalgovind/PowerToys Mar 3, 2020
* added the helper functions

* localized dllmain powerrename

* localized powerRenameExt

* localized the settings file

* built the proj

* Modified resourceIDs for strings in the table

* added common as a reference project

* Removed get_res_string_wchar and used the get_resource_string() function instead which returns a wstring typecast into wchar*

* Added new lines to the end of the file

* Removed string resources from the settings.cpp file

* rebuilt project PowerRename

* moved app name to constructor to init only once

* updated formatting of common.cpp

* reverting formatting of files

* Removed some IDs from resource file. Changed SHIFT to Shift

* Localizing C# Project of FancyZones (FancyZonesEditor) (microsoft#199) (microsoft#1122)

* removed hardcoded strings from CanvasEditorWindow.xaml

* removed hardcoded strings from GridEditorWindow.xaml

* loc

* Localized MainWindow

* reverting MainWindow.xaml as it is not rendering the window as expected

* Changed the resource settings from internal to public

* the culture is set based on the culture of the system UI set in the system settings

* Removed the french resource files used for testing

* Localized canvasWindow and mainwindow

* Removed setting the UI culture explicitly as it would be implicitly set to the culture of system UI

* Removed redundant header file

* Localize the Shortcut guide PowerToy (microsoft#199) (microsoft#1126)

* Localized shortcut_guide.cpp

* localized overlay_window.cpp

* formatting changes

* Localize overlay window

* removed the README link from the set of localized resources

* Typo: changed upper to lower

* Localize C++ Projects of FancyZones (microsoft#1130)

* localized dllmain.cpp  of fancyzones project

* localized FancyZones.cpp

* format fancyzones.rc file

* Moved SuperFancyZones back to being a string instead of having it in the resource file as it is the window class name

* reverted changes for window name

* Formatted fancyzones rc file

* Align zone dimensions from layout preview with those from grid editor (microsoft#1115)

* MSIX: add a dedicated .rc for UWPUI which joins both UI and DLL .rc's (microsoft#1139)

* Runner: fix restarting with same elevation (microsoft#1133)

* MSIX: reinstall script uses bundle instead of .msi to be able to reinstall in all cases

* Changes for microsoft#1140 and microsoft#569 (microsoft#1152)

* Settings: initialize COM security to allow communication between elevated Settings and WebView

* Common: implement on_scope_exit helper and typed_storage

* Telemetry: add WebView init failure errors

* MSIX build instructions adjustmnet (microsoft#1170)

* MSIX: update identity name and publisher (microsoft#1176)

* MSIX: hide the "Run at Startup" option if running as packaged

* Runner: fix startup task state setting for MSIX (microsoft#1181)

* Import the source code for Window Walker (microsoft#1177)

Import the codebase for Window Walker 

- Not loaded into the module list 
- Not added it to the installer list.

* Adding KeyManager spec (microsoft#1112)

* Adding KeyManager spec

* adding req changes

* req changes

* changed wording

* md edits

* edit md

* Update doc/specs/KeyboardManager.md

Co-Authored-By: Jeroen van Warmerdam <[email protected]>

* further edits

* Update KeyboardManager.md

* Update KeyboardManager.md

Co-authored-by: Jeroen van Warmerdam <[email protected]>

* Update README.md (microsoft#1198)

* Fancyzones: unify window filtering (microsoft#1184)

Makes FancyZone use the same code for filtering windows when windows are
being dragged and when moved by WinKey + arrows.

* MSIX: fix uninstallation from msix_reinstall and split the scripts (microsoft#1183)

* MSIX: implement initial version of notifications library (microsoft#1178)

* FancyZones: allow windows with invisible or zero-sized owner to be zonable (microsoft#1216)

* FancyZones: filter out WM_POPUP windows if they dont have maximize/minimize button or a sizable frame (microsoft#1212)

This filters out TaskView and Win32 menus.

* FancyZones: if window is not interesting, allow Windows snap (microsoft#1186)

Do not swallow WinKey+Arrow events for non-interesting windows. This makes apps that are in the "excluded apps" list behave as if "Override windows snap keys" is disabled - they will react to the Windows default snap.

* Common: remove hwnd_data_cache (microsoft#1223)

The cache was introduced to improve performance by not querying the
OS for the window process path every time we need to check if the window
is interesting to FancyZones. Since then other changes were made to the
the way we check the windows. Right now, the IsInterestingWindow function is
called when:

  1) WinKey + arrows are used
  2) window is started to be dragged
  3) window is created

1) and 2) are initiated by the user, happen only once per interaction so
their performance impact can be dismissed. The 3) happens all the time
but for the most part the check for WS_CHILD or
GetAncestor(window, GA_ROOT) == window will filter those out. In the
end, only top-level windows will be queried for their path.

Removing the cache improves code readability and will make code
maintenance easier.

* MSIX: keep PowerRename local COM server in memory (microsoft#1222)

* ShortcutGuide, FancyZones: split window filtering (microsoft#1225)

Splits the code use to filter windows for FancyZones and the
"active window" for the ShortcutGuide. The FancyZones logic is preserved
and merged into a single function. We keep it in common.h, as it might
be also used in other PowerToys, like maximized to new desktop. We do
however change the return type to be more descriptive. It also returns
a separate flag for if the window has a visible owner. This can be used
to implement the approved apps list.

For the ShortcutGuide, the logic is relaxed to include more windows. One
example are Explorer properties windows. Those are (and should) filtered
by the FancyZones, but should appear in the window preview in the SCG.

The new return type also includes information if the window will react
to the default Windows Snap. This is not ideal though. Currently, SCG
can only disable the entire "Windows Controls" group. OTOH windows like
"Save As..." dialogs can be snapped to corners etc., but cannot be
minimized nor maximized. Until SCG can separately disable those buttons
we will display the buttons in the enabled state only if the window
supports all settings. In the future, we should integrate FancyZones
snap override here too.

* Update MSIX Readme with sideloading steps (microsoft#1237)

* Small English grammer issue "in the desktop" -> "on the desktop" (microsoft#1238)

Small English grammer issue "in the desktop" -> "on the desktop"

* sln: fix project dependency order (microsoft#1249)

* Migrate FancyZones data persisting from Registry to JSON file (microsoft#1194)

* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (microsoft#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <[email protected]>
Co-authored-by: Seraphima <[email protected]>

* Fix crash when saving any module settings while module being disabled (microsoft#1259)

* Unit-tests fixes (microsoft#1265)

* fixed typecast warnings
* removed unneded tests

* Persist app zone history in real time (microsoft#1257)

* save settings every time changes are performed
* settings are not saved on app exit

* Set the rename button to the default button on the dialog. Prior to this change, users would setup the rename inputs and hit return only to discover the cancel button had the key focus and all work would be lost. (microsoft#1271)

* Add design change request for improvements in virtual desktops handling (microsoft#1270)

* Add telemetry event for general settings (microsoft#1269)

* telemetry for general settings

* Update FancyZones telemetry event for settings changed (microsoft#1268)

* Update FancyZones-DCR.md (microsoft#1280)

* removing done specs to wiki (microsoft#1276)

* Added PowerLauncher spec and images (microsoft#1109)

* Added PowerLauncher spec and images

* Fixed images path

* Addressed review comments

* Fixed images

* Addressed review comments, and added link to keyboard shortcut manager PowerToy

* Added Ueli in comparison table

* Added keyboard input element

* Added suggestions from community

* Moved default shell and terminal settings

* Addressed feedback

* Added community suggestion

* Modified spec based on feedback

* Modified spec based on suggestions

* Added keyboard shortcuts to context menu options

* Add telemetry event for PowerRename settings  (microsoft#1279)

* moved MAX_INPUT_STRING_LEN constant
* added settings changed event log

* MSIX: add missing dependencies for the FancyZonesEditor (microsoft#1298)

* moving stuff to wiki (microsoft#1302)

* Thread safety for FanncyZonesData (microsoft#1281)

* FancyZones: make FancyZonesData thread-safe

* fixup: format affected sources

* fixup: clang-format case-style and format FancyZones.cpp

* fixup! add missing lock

* PowerRename: bring the rename dialog to foreground

* MSIX: do not kill explorer.exe, since it's only necessary for the MSI version

* Add telemetry event for FZ editor (microsoft#1294)

* trace zones settings changes

* Introduce handling of new/old work areas (microsoft#1296)

* Introduce handling of new/old work areas (defined by virtual desktop id and monitor)

* Save data to JSON storage only once after we register all deleted virtual desktops

* Update saving mechanism

* Remove resolution from unique identifier

* Update comments related to new unique identifier

* Don't handle NULL GUID as it is default one

* Revert "Remove resolution from unique identifier"

This reverts commit 5a36651.

* Revert "Update comments related to new unique identifier"

This reverts commit 8e89802.

* removed MigrateDeviceInfoFromRegistry

Co-authored-by: Seraphima Zykova <[email protected]>

* MSIX: prompt and uninstall MSI PT version (microsoft#1248)

* v1 spec (microsoft#1275)

* v1 spec, from here we'll create a roadmap much like Terminal.  (https://github.com/microsoft/terminal/blob/master/doc/terminal-v1-roadmap.md)

* adding in more issue xref links

* add in UX migration time

* Update v1.0.md

* Update v1.0.md

* Update v1.0.md

* Update v1.0.md

* moving to https://github.com/microsoft/PowerToys/wiki/Version-1.0-Strategy (microsoft#1315)

* "Always run as administrator" and "Restart as ..." only for administrator account (microsoft#1318)

* Setup: sign PowerRenameExt.dll (microsoft#1313)

* runner: fix Restart as... option

* settings: fix general settings hanging on save for a non-admin user

* settings: remove Restart as a user button in an elevated context (microsoft#1328)

* settings: add a clarifying label if running as elevated (microsoft#1330)

* Adding in HitTester App

* bug fix

* Runner check for MSI and MSIX (microsoft#1345)

* Add startup check for the MSI version of PT

* Alert if another instance of PowerToys is already running

* MSIX is "Experimental" (microsoft#1348)

* tools: add tool to debug FancyZones zonable windows (microsoft#1355)

Uses FancyZones logic to test if window is zonable or not. Displays
window styles and results for various tests if the window should be
zonable or not.

* [CDPx] update SDK, restore telemetry, build MSIX (microsoft#1358)

* Removed FancyZones unit-test  (microsoft#1360)

* Swallow shift keyboard event when dragging window (microsoft#1362)

* [CDPx] update nuget feed (microsoft#1364)

* Revert "Swallow shift keyboard event when dragging window (microsoft#1362)" (microsoft#1363)

This reverts commit 2f9b753.

* [CDPx] remove nuget.config and update restore script (microsoft#1370)

* [CDPx] fix for makeappx, update SDK for MSI (microsoft#1373)

* common: always use 0 for build number and make get_product_version return "vX.X.X"

* runner: periodically check if there's a new version available on github and offer a visit

* Now updater is comparing versions instead of comparing thier strings

* notifications: add support for unpackaged apps and protocol activation

* increment version to 0.15 🎉

* Change Windows Store to Microsoft Store in README (microsoft#1369)

The Windows Store was renamed to the Microsoft Store back in 2017, best to keep things up-to-date to avoid potential confusion.

* Update BinSkim exclude list (microsoft#1377)

* Fix typo in powerrenamer README (microsoft#1378)

* wix: add missing libs for FZ editor

* Secure acces from multiple threads to JSONHelpers (add missing lock) (microsoft#1375)

* adding preview tag for desktop and start menu (microsoft#1384)

* [CDPx] sign MSIX package and bundle (microsoft#1389)

* [CDPx] remove 'signing_options' for package (microsoft#1390)

A global signing option is already defined.

* [CDPx] use explicit filenames for the MSIX assets (microsoft#1393)

Approved

* [CDPx] move build script out of .pipeline (microsoft#1394)

* Update pipeline.user.windows.yml (microsoft#1398)

* wix: add (Preview) for MSI product name

* [CDPx] archive symbols to Symbol Server (microsoft#1407)

* build break, seeing if this was root case

* Skip cloning device information from parent virtual desktop if it is deleted. (microsoft#1415)

* Update README.md (microsoft#1412)

* Changed default enable setting

* 0.15 update to readme to master (microsoft#1408)

* Getting ready for v0.15 update for readme.

* getting ready for 0.15

* spelling tweak

* filled in update section

* fixed spelling mistakes

* updating to what POR is

* Update README.md

* Update README.md

* adding back in MSI

* getting readme ready for 0.15

* tweaks

* adding oss to oss links

* fixing links

* tweaking file names

* Update README.md

* Update README.md

* Update README.md

fixing typo

* Update README.md

* Sanity check for imported settings that may have invalid data. (microsoft#1426)

* Fix migrating never applied custom zonesets (microsoft#1427)

Co-authored-by: Alekhya  <[email protected]>
Co-authored-by: vldmr11080 <[email protected]>
Co-authored-by: Andrey Nekrasov <[email protected]>
Co-authored-by: Bartosz Sosnowski <[email protected]>
Co-authored-by: Clint Rutkas <[email protected]>
Co-authored-by: Enrico Giordani <[email protected]>
Co-authored-by: Betsegaw Tadele <[email protected]>
Co-authored-by: sakariya <[email protected]>
Co-authored-by: Jeroen van Warmerdam <[email protected]>
Co-authored-by: Scott Hanselman <[email protected]>
Co-authored-by: stefansjfw <[email protected]>
Co-authored-by: Seraphima Zykova <[email protected]>
Co-authored-by: Chris Davis <[email protected]>
Co-authored-by: Jessica Yuwono <[email protected]>
Co-authored-by: Yevhenii Holovachov <[email protected]>
Co-authored-by: PrzemyslawTusinski <[email protected]>
Co-authored-by: TorchGM <[email protected]>
@crutkas crutkas added this to the Suggested Ideas milestone Apr 10, 2020
ryanbodrug-microsoft pushed a commit to ryanbodrug-microsoft/PowerToys that referenced this issue Apr 14, 2020
ryanbodrug-microsoft pushed a commit to ryanbodrug-microsoft/PowerToys that referenced this issue Apr 14, 2020
Remove plugins from source tree and convert anyCPU config to x64
@crutkas
Copy link
Member

crutkas commented May 14, 2020

if we could do per-monitor virtual desktops, would this be helpful? Doesn't the context you're currently in provide that information?

@edwardchanjw
Copy link

@crutkas for my comment on #107.
Different virtual desktop for monitor + API for show window to specific virtual monitor. (We have this feature in Win+Tab, show this window/app on all desktop) . Could open a lot of use case.
Thanks

@LinqLover
Copy link

Just in case anyone is searching for a cheap workaround, this can be reached using AutoHotKey: https://github.com/LinqLover/windows-desktop-switcher/blob/master/user_config.ahk

@xgdgsc
Copy link

xgdgsc commented Dec 1, 2022

I' d like to search for workspace name in Powertoys Run to switch to when I have more than 10 workspaces. Currently search for window name works, though workspace names are less likely to change.

@widavies
Copy link

widavies commented Dec 10, 2022

I made WinJump to do this:
https://github.com/widavies/WinJump

@dalianzhu
Copy link

I made a tool to handle this for the meantime, it's very early stages and could use some improvement, but it works well in testing so far: https://github.com/widavies/WinJump

Would love feedback from you all.

great tool

@CSaratakij
Copy link

I made mine as well.
https://github.com/CSaratakij/StaticWorkspace
.
The problem is, Windows team responsible for Virtual Desktop feature didn't want to expose the hidden COM interface necessary to make this happen to the public. (undocumented by design)
.
See how shockingly lacks the api is here
.
They don't want any program (except theirs) to control virtual desktop at all.
Their claim is "User should be the one informing these decision" 😒
.
They see people demands this feature for ages, yet decide to not doing something about it anyway.
This made me believe there is something more to it. (office politics?)
.
I doubt power toys team didn't have enough power to made Virtual Desktop team consider this feature.
(That clearly useful and in demands for power user and developer)
.
For a future proof alternative, checks out pure win32 api based like Workspacer or hacks mine stuff.
.
Hidden COM interface likely to break sooner or later.

@Kingjames52-bot
Copy link

This is a great tool for formatting file's looking forward too see this repository grow!

@Chris24main
Copy link

Really just a ping to add support for this, but as someone who uses four defined virtual desktops to manage a complex workflow - I need to stress the weakness with the current methods within Windows for moving to the next desktop.

Say I have an arrangement of windows (for what it's worth using fancy zones) in desktop 3 that are suited to a particular task and am currently in desktop 1 - clearly I am able to move right twice - however, windows will move to desktop 2, configure and display all open windows, then move to desktop 3, configure and display all open windows. It's very slow, and sometimes seems to flip back to 2 before returning to 3 - being able to move directly to 3 is a significant time saver. Calling up the desktop tasks view can sometimes be even slower depending on the number of open windows....

Thanks.

@tadly
Copy link

tadly commented Oct 4, 2023

Because of how bad the Windows Multi Workspace Implementation is when it comes to working efficiently, I decided to go back to good 'ol faitful virtuawin
It's what I used back at Windows XP times, hasn't changed much (if at all) and still just works.

Sadly, on Windows 11, you can no longer bind Win + num (maybe because I lack admin at work).
This didn't work with the mentioned Autohotkey scripts either.

Now I'm stuck with alt + shift + num for changing desktop and win + shift + num for moving windows to other desktops.
VirtuaWin also has a MouseWheel click action for window title bars which allows for additional functionality like Move to Desktop, Always on top, Always Show, Add Window Rules etc. (though most can be configured to shortcuts)

@dgm
Copy link

dgm commented Dec 6, 2023

Wow. my ticket 30114 is a dup of ticket number ... 19. 1) no wonder I couldn't find the original. 2) that's a long time for this to still not be solved. :(

@NicoVogel
Copy link

I made a tool to handle this for the meantime, it's very early stages and could use some improvement, but it works well in testing so far: https://github.com/widavies/WinJump

Would love feedback from you all.

Thank you for providing a solution until this is integrated into PowerToys.

@widavies
Copy link

widavies commented Jan 4, 2024

I made a tool to handle this for the meantime, it's very early stages and could use some improvement, but it works well in testing so far: https://github.com/widavies/WinJump
Would love feedback from you all.

Thank you for providing a solution until this is integrated into PowerToys.

Thanks! Glad that it's useful.

Hopefully Microsoft sends me a big check for WinJump to merge it into Power Toys.... Alas it's not really anything complicated, just calling their internal API. Would be very nice for Microsoft to at least expose a public API for virtual desktop management so we could at least develop some more stable tools for it.

@Chris24main
Copy link

I made a tool to handle this for the meantime, it's very early stages and could use some improvement, but it works well in testing so far: https://github.com/widavies/WinJump
Would love feedback from you all.

Thank you for providing a solution until this is integrated into PowerToys.

I had been using 'VirtualSpace' but this seems to have broken with Win 23H2 - so I've tried WinJump - have to say it's pretty efficient at doing this one task, and exactly what I was looking for. Thank you.

Only question is - can you have the 'move-to' shortcut tied to a non-numeric key ? ie, I have 4 desktops, so I tie them to the four home row keys and use a 'meh' modifier to complete the shortcut for those 4 desktops, can I do something similar with 'move-to' ?

@widavies
Copy link

widavies commented Jan 18, 2024

@Chris24main

I made a tool to handle this for the meantime, it's very early stages and could use some improvement, but it works well in testing so far: https://github.com/widavies/WinJump
Would love feedback from you all.

Thank you for providing a solution until this is integrated into PowerToys.

I had been using 'VirtualSpace' but this seems to have broken with Win 23H2 - so I've tried WinJump - have to say it's pretty efficient at doing this one task, and exactly what I was looking for. Thank you.

Only question is - can you have the 'move-to' shortcut tied to a non-numeric key ? ie, I have 4 desktops, so I tie them to the four home row keys and use a 'meh' modifier to complete the shortcut for those 4 desktops, can I do something similar with 'move-to' ?

I just added this! Try out 2.0.10: https://github.com/widavies/WinJump/releases/tag/2.0.10

Here's a link to an example config file: https://github.com/widavies/WinJump/tree/1-4-improvements#example

@Chris24main
Copy link

Hi @widavies - very much appreciate the update, but where I ran 1.4, set up the shortcuts to jump, and it worked immediately, I couldn't get 2.0 to work at all.
I exited from 1.4 - just ran 2.0 from the downloads folder.. noticed that the icon in the system tray is more readable, nice, then opened up the config - that looked familiar (think it's simply a text file written to the root user directory, so picked up regardless of the location of the exe file) - but what seemed to be happening was that the shortcuts were being entered as text in whatever app was in focus - like my shortcut to desktop 2 is 'ctrl-alt-shift-e' and that was generating É as text in the URL bar of the browser... though I have a suspicion that this may have something to do with my board which seems to leave one of the modifier keys locked .. however, on exiting, and running winjump 1.4 from the startup folder - it ran fine again...

@widavies
Copy link

Hi @widavies - very much appreciate the update, but where I ran 1.4, set up the shortcuts to jump, and it worked immediately, I couldn't get 2.0 to work at all. I exited from 1.4 - just ran 2.0 from the downloads folder.. noticed that the icon in the system tray is more readable, nice, then opened up the config - that looked familiar (think it's simply a text file written to the root user directory, so picked up regardless of the location of the exe file) - but what seemed to be happening was that the shortcuts were being entered as text in whatever app was in focus - like my shortcut to desktop 2 is 'ctrl-alt-shift-e' and that was generating É as text in the URL bar of the browser... though I have a suspicion that this may have something to do with my board which seems to leave one of the modifier keys locked .. however, on exiting, and running winjump 1.4 from the startup folder - it ran fine again...

@Chris24main Try replacing your config file with the example, saving it, and reloading WinJump: https://github.com/widavies/WinJump#example

@Chris24main
Copy link

Sorry - not trying to be difficult - did exactly that - same deal, 2.0 did nothing (with example file copied in but my shortcut specified in the shortcut line for desktop 1) - swapped everything back - works fine.

@Chris24main
Copy link

Hi @widavies - I think I did exactly that and had exactly the same experience.
One additional piece of information that may help.. with the 'move-to' function left as default, ie
"move-window-to-desktop": {
"Shortcut": "alt+ctrl"
},

I was finding that when I held down alt+ctrl and pressed anything else, nothing was happening or even registering as a key press - I confirmed this in qmk configurator test, and even raised a ticket with my keyboard manufacturer until I realised that WinJump might be capturing that and waiting for something. Ie - shortcuts in apps that used alt+ctrl+1 for setting style one in OneNote for example - just didn't work ...
When I changed the 'move-to' function to
"move-window-to-desktop": {
"Shortcut": "alt+shift"
},

Would it be possible to structure the config so that you have a specific shortcut for each desktop with the move-to function as well as the Jump-to ?

For me, I have 4 desktops - I will always have 4 because I structure it based on the 4 home row keys - (equivalent to J,K,L,;) so I want to press alt-shift-ctrl + home row key to jump (because I have a key mapped to 'meh' or 'alt-shift-ctrl') and alt-ctrl plus home row key to move (which seems counter productive but works for me) but no other key involving ctrl-alt.

Below is my config - this works perfectly for Jump to but with no functioning move to...
Config is,

{
"move-window-to-desktop": {
"Shortcut": "alt+shift"
},
"toggle-groups": [],
"jump-to": [
{
"shortcut": "alt+shift+ctrl+n",
"desktop": 1
},
{
"shortcut": "alt+shift+ctrl+e",
"desktop": 2
},
{
"shortcut": "alt+shift+ctrl+o",
"desktop": 3
},
{
"shortcut": "alt+shift+ctrl+i",
"desktop": 4
},
],
"jump-current-goes-to-last": false,
"change-desktops-with-scroll": false
}

@tadly
Copy link

tadly commented Jan 24, 2024

Don't want to sound rude but could you guys keep this on topic and discuss problems for a different project in a seperate issue?

@Chris24main
Copy link

Absolutely - apologies for hijacking...

@lnieswan
Copy link

I have loved working with WinJump. As of today after I received the latest Windows Update this success story seems over. Windows Defender Smart Screen is blocking it.

@widavies
Copy link

I have loved working with WinJump. As of today after I received the latest Windows Update this success story seems over. Windows Defender Smart Screen is blocking it.

@lnieswan can you open up an issue on WinJump for this https://github.com/widavies/WinJump/issues ? You should be able to allow WinJump through smart screen if it blocks it

@XLTechie
Copy link

XLTechie commented Sep 4, 2024

Wow, issue 19! People have wanted this for so long!
And yet, here we all are, screaming into the void, with no ears to hear.

crutkas added a commit that referenced this issue Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Idea-New PowerToy Suggestion for a PowerToy Product-Virtual Desktop Refers to the idea of an Improved Virtual Desktop power toys
Projects
None yet
Development

No branches or pull requests