This repository has been archived by the owner on Dec 23, 2018. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Great work on this virtual desktop enhancer. This allows me to use Windows 10's built in virtual desktops like I would have used VirtuaWin on Windows 7. I've made a few fixes and improvements you may want to pull. I've done them as separate commits, but a single pull request. I'm not sure what Github etiquette is so let me know if it would be better for me to create separate pull requests for each feature somehow, so you could decide to take them or not on an individual basis.
The first 2 commits fix some bugs where keys to switch to specific desktops did not work. The first fixes an issue where the key to switch to desktop 10 didn't work because it was looking for the property to be called Desktop0 instead of Desktop10 in the settings. The more serious issue was that because you used the last character of the hotkey as the number of the desktop to switch to, you couldn't really change the key mappings. If you mapped to a letter key it would not work. And if for example I wanted to 6 desktops (1-6) but I wanted to use Win+Ctrl+1 through Win+Ctrl+5 for 1-5 but Win+Ctrl+0 for desktop 6, it wouldn't work because even if Desktop6=0 (and Desktop10 was blank) Win+Ctrl+0 would still take me to desktop 10. So instead, I now keep a map of hotkeys to which desktop they are supposed to switch to. I also updated it so that if you want to create shortcuts past 10 you can (but only up to the number of desktops that exist when you start the program).
The 3rd commit makes it so that if DefaultDesktop=0 then it won't switch desktops when you first start the program (I've seen others request this change also).
I wanted to be able to use different modifiers for next/previous from jump to desktop number X (for example, Win+1, Win+2, etc for jump to 1, 2, etc but Win+Ctrl+Left and Win+Ctrl+Right for previous/next is how I had it in VirtuaWin). So the 4th commit separates the modifiers for those two types of actions.
I thought it might be easier to change icon sets with settings instead of having to overwrite the files, so that's what commit 5 does. It does 2 things (which could be split into 2 separate commits if you want). It adds and IconDir setting for which directory to look in for icons. And it also adds an [Icons] section if you want to override the .ico filename for a desktop. This second one isn't really that necessary, but it would allow me to do something like setting desktop 6 to use 10.ico to match my key config. Since you can just point IconDir at a different folder now, I unzipped the icon sets and just put them in subfolders so I can just set IconDir=icons/white-monitors-by-rob3110/.
The last commit adds the ability to limit the number of desktops that are cycled through. This was to mimic a somewhat obscure feature of VirtuaWin where you could tell it there were only 5 desktops (for example), but you could set hotkeys to jump to higher numbered desktops that would then effectively be secret because they weren't shown in the window list or cycled by the next/previous keys. It's less hidden here because they'll still be shown in the desktop manager (Win+Tab), but I still thought there might be a use case for wanting to be able to limit the cycling to a fixed number of virtual desktops even if you create additional ones sometimes.