Safeguarding end user links in settings (#4226)

* first adjustment to wiki move

* Image Resizer and deleting imgs for FZ

* updating stuff to aka links

* updating app to leverage aka links

* moving files to wiki

* KBM adjustment

* updating

* getting PT Run moved over

* Shortcut guide and fixing launcher's readme text

* Update README.md

* img for shortcut guide moved to wiki

* updated setting img to be aka link as well
This commit is contained in:
Clint Rutkas 2020-06-11 10:16:39 -07:00 committed by GitHub
parent 792ce53992
commit 67c8d80190
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
51 changed files with 52 additions and 478 deletions

View file

@ -14,31 +14,16 @@ Microsoft PowerToys is a set of utilities for power users to tune and streamline
### FancyZones
[<img align="left" src="./doc/images/overview/FancyZones_small.png" />](/src/modules/fancyzones/) [FancyZones](/src/modules/fancyzones/) is a window manager that makes it easy to create complex window layouts and quickly position windows into those layouts.
[<img align="left" src="./doc/images/overview/FancyZones_small.png" />](https://aka.ms/PowerToysOverview_FancyZones) [FancyZones](https://aka.ms/PowerToysOverview_FancyZones) is a window manager that makes it easy to create complex window layouts and quickly position windows into those layouts.
<br>
<br>
<br>
<br>
<br>
### Shortcut Guide
### File Explorer Add-ons (Preview Panes)
[<img align="left" src="./doc/images/overview/Shortcut guide_small.png" />](/src/modules/shortcut_guide) [Windows key shortcut guide](/src/modules/shortcut_guide) appears when a user holds the Windows key down for more than one second and shows the available shortcuts for the current state of the desktop.
<br>
<br>
<br>
<br>
<br>
### PowerRename
[<img align="left" src="./doc/images/overview/PowerRename_small.PNG" />](/src/modules/powerrename) [PowerRename](/src/modules/powerrename) is a Windows Shell Extension for advanced bulk renaming using search and replace or regular expressions. PowerRename allows simple search and replace or more advanced regular expression matching. While you type in the search and replace input fields, the preview area will show what the items will be renamed to. PowerRename then calls into the Windows Explorer file operations engine to perform the rename. This has the benefit of allowing the rename operation to be undone after PowerRename exits. This code is based on [Chris Davis's SmartRename](https://github.com/chrdavis/SmartRename).
<br>
<br>
### File Explorer (Preview Panes)
[<img align="left" src="./doc/images/overview/PowerPreview_small.PNG" />](/src/modules/previewpane) [File Explorer](/src/modules/previewpane) add-ons right now are just limited to Preview Pane additions for File Explorer. Preview Pane is an existing feature in the File Explorer. To enable it, you just click the View tab in the ribbon and then click "Preview Pane".
[<img align="left" src="./doc/images/overview/PowerPreview_small.PNG" />](https://aka.ms/PowerToysOverview_FileExplorerAddOns) [File Explorer](https://aka.ms/PowerToysOverview_FileExplorerAddOns) add-ons right now are just limited to Preview Pane additions for File Explorer. Preview Pane is an existing feature in the File Explorer. To enable it, you just click the View tab in the ribbon and then click "Preview Pane".
PowerToys will now enable two types of files to be previewed: Markdown (.md) & SVG (.svg)
<br>
@ -46,7 +31,7 @@ PowerToys will now enable two types of files to be previewed: Markdown (.md) & S
### Image Resizer
[<img align="left" src="./doc/images/overview/ImageResizer_small.png" />](/src/modules/imageresizer) [Image Resizer](/src/modules/imageresizer) is a Windows Shell Extension for quickly resizing images. With a simple right click from File Explorer, resize one or many images instantly. This code is based on [Brice Lambson's Image Resizer](https://github.com/bricelam/ImageResizer).
[<img align="left" src="./doc/images/overview/ImageResizer_small.png" />](https://aka.ms/PowerToysOverview_ImageResizer) [Image Resizer](https://aka.ms/PowerToysOverview_ImageResizer) is a Windows Shell Extension for quickly resizing images. With a simple right click from File Explorer, resize one or many images instantly. This code is based on [Brice Lambson's Image Resizer](https://github.com/bricelam/ImageResizer).
<br>
<br>
<br>
@ -54,16 +39,29 @@ PowerToys will now enable two types of files to be previewed: Markdown (.md) & S
### Keyboard Manager
[<img align="left" src="./doc/images/overview/KBM_small.png" />](src/modules/keyboardmanager/) [Keyboard Manager](src/modules/keyboardmanager/) allows you to customize the keyboard to be more productive by remapping keys and creating your own keyboard shortcuts. This PowerToy requires Windows 10 1903 (build 18362) or later.
[<img align="left" src="./doc/images/overview/KBM_small.png" />](https://aka.ms/PowerToysOverview_KeyboardManager) [Keyboard Manager](https://aka.ms/PowerToysOverview_KeyboardManager) allows you to customize the keyboard to be more productive by remapping keys and creating your own keyboard shortcuts. This PowerToy requires Windows 10 1903 (build 18362) or later.
<br>
<br>
<br>
<br>
### PowerRename
[<img align="left" src="./doc/images/overview/PowerRename_small.PNG" />](https://aka.ms/PowerToysOverview_PowerRename) [PowerRename](https://aka.ms/PowerToysOverview_PowerRename) is a Windows Shell Extension for advanced bulk renaming using search and replace or regular expressions. PowerRename allows simple search and replace or more advanced regular expression matching. While you type in the search and replace input fields, the preview area will show what the items will be renamed to. PowerRename then calls into the Windows Explorer file operations engine to perform the rename. This has the benefit of allowing the rename operation to be undone after PowerRename exits. This code is based on [Chris Davis's SmartRename](https://github.com/chrdavis/SmartRename).
<br>
### PowerToys Run
[<img align="left" src="./doc/images/overview/PowerLauncher_small.png" />](src/modules/launcher/) [PowerToys Run](src/modules/launcher/) is a new toy in PowerToys that can help you search and launch your app instantly with a simple alt-space and start typing! It is open source and modular for additional plugins. Window Walker is now inside too! This PowerToy requires Windows 10 1903 (build 18362) or later.
[<img align="left" src="./doc/images/overview/PowerLauncher_small.png" />](https://aka.ms/PowerToysOverview_PowerToysRun) [PowerToys Run](https://aka.ms/PowerToysOverview_PowerToysRun) is a new toy in PowerToys that can help you search and launch your app instantly with a simple alt-space and start typing! It is open source and modular for additional plugins. Window Walker is now inside too! This PowerToy requires Windows 10 1903 (build 18362) or later.
<br>
<br>
<br>
<br>
### Shortcut Guide
[<img align="left" src="./doc/images/overview/Shortcut guide_small.png" />](https://aka.ms/PowerToysOverview_ShortcutGuide) [Windows key shortcut guide](https://aka.ms/PowerToysOverview_ShortcutGuide) appears when a user holds the Windows key down for more than one second and shows the available shortcuts for the current state of the desktop.
<br>
<br>
<br>
<br>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 762 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 641 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

View file

@ -276,9 +276,9 @@
Style="{StaticResource SettingsGroupTitleStyle}"
Margin="{StaticResource XSmallBottomMargin}"/>
<Image MaxWidth="240" Source="https://user-images.githubusercontent.com/9866362/77859136-f04ae880-7207-11ea-8a7f-4295342fe319.gif" />
<Image MaxWidth="240" Source="https://aka.ms/powerToysFancyZoneSettingImage" />
<HyperlinkButton NavigateUri="https://github.com/microsoft/PowerToys/blob/master/src/modules/fancyzones/README.md">
<HyperlinkButton NavigateUri="https://aka.ms/PowerToysOverview_FancyZones">
<TextBlock x:Uid="Module_overview" />
</HyperlinkButton>

View file

@ -280,7 +280,7 @@
Style="{StaticResource SettingsGroupTitleStyle}"
Margin="{StaticResource XSmallBottomMargin}"/>
<HyperlinkButton NavigateUri="https://github.com/microsoft/PowerToys/blob/master/src/modules/imageresizer/README.md">
<HyperlinkButton NavigateUri="https://aka.ms/PowerToysOverview_ImageResizer">
<TextBlock x:Uid="Module_overview" />
</HyperlinkButton>

View file

@ -228,7 +228,7 @@
Style="{StaticResource SettingsGroupTitleStyle}"
Margin="{StaticResource XSmallBottomMargin}"/>
<HyperlinkButton NavigateUri="https://github.com/microsoft/PowerToys/tree/master/src/modules/keyboardmanager">
<HyperlinkButton NavigateUri="https://aka.ms/PowerToysOverview_KeyboardManager">
<TextBlock x:Uid="Module_overview" />
</HyperlinkButton>

View file

@ -147,7 +147,7 @@
Style="{StaticResource SettingsGroupTitleStyle}"
Margin="{StaticResource XSmallBottomMargin}"/>
<HyperlinkButton NavigateUri="https://github.com/microsoft/PowerToys/tree/master/src/modules/launcher">
<HyperlinkButton NavigateUri="https://aka.ms/PowerToysOverview_PowerToysRun">
<TextBlock x:Uid="Module_overview" />
</HyperlinkButton>

View file

@ -65,7 +65,7 @@
Style="{StaticResource SettingsGroupTitleStyle}"
Margin="{StaticResource XSmallBottomMargin}"/>
<HyperlinkButton NavigateUri="https://github.com/microsoft/PowerToys/tree/master/src/modules/previewpane">
<HyperlinkButton NavigateUri="https://aka.ms/PowerToysOverview_FileExplorerAddOns">
<TextBlock x:Uid="Module_overview" />
</HyperlinkButton>

View file

@ -106,7 +106,7 @@
Style="{StaticResource SettingsGroupTitleStyle}"
Margin="{StaticResource XSmallBottomMargin}"/>
<HyperlinkButton NavigateUri="https://github.com/microsoft/PowerToys/tree/master/src/modules/powerrename">
<HyperlinkButton NavigateUri="https://aka.ms/PowerToysOverview_PowerRename">
<TextBlock x:Uid="Module_overview" />
</HyperlinkButton>

View file

@ -108,9 +108,9 @@
Style="{StaticResource SettingsGroupTitleStyle}"
Margin="{StaticResource XSmallBottomMargin}"/>
<Image MaxWidth="240" Source="https://raw.githubusercontent.com/microsoft/PowerToys/dev/build-features/doc/images/shortcut_guide/usage.png" />
<Image MaxWidth="240" Source="https://aka.ms/powerToysShortcutGuideSettingImage" />
<HyperlinkButton NavigateUri="https://github.com/microsoft/PowerToys/blob/master/src/modules/shortcut_guide/README.md">
<HyperlinkButton NavigateUri="https://aka.ms/PowerToysOverview_ShortcutGuide">
<TextBlock x:Uid="Module_overview"/>
</HyperlinkButton>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View file

@ -1,64 +1,3 @@
# Overview
FancyZones is a window manager that is designed to make it easy to arrange and snap windows into efficient layouts for your workflow and also to restore these layouts quickly. FancyZones allows the user to define a set of window locations for a desktop that are drag targets for windows. When the user drags a window into a zone, the window is resized and repositioned to fill that zone.
![FancyZones](FancyZones.png)
To get started with FancyZones, you need to enable the utility in PowerToys settings and then invoke the FancyZones editor UI.
There is a button in settings to invoke the editor, or you can press <code>Win+&grave;</code> (note that this shortcut can be changed in the settings dialog) to launch it.
If you have multiple monitors, to edit the zone settings on each monitor, move the mouse to the desired monitor and then press <code>Win+&grave;</code> to launch the editor UI for that monitor, or move the PowerToys settings window to the desired monitor and then launch the editor UI using the `Edit zones` button.
When first launched, the UI presents a list of zone layouts that can be quickly adjusted by how many windows are on the monitor. Choosing a layout shows a preview of that layout on the monitor. Pressing the save and close button sets that layout to the monitor.
![FancyZones Picker](Picker.png)
The editor also supports creating and saving custom layouts. This functionality is in the `Custom` tab in the editor UI.
There are two ways to create custom zone layouts, window layout and table layout. These can also be thought of as additive and subtractive models.
The additive window layout model starts with a blank layout and supports adding zones that can be dragged and resized similar to windows.
![FancyZones Window Editor Mode](WindowEditor.png)
The subtractive table layout model starts with a table layout and allows zones to be created by splitting and merging zones and then resizing the gutter between zones.
To merge two zone, press and hold the left mouse button and drag the mouse until a second zone is selected, then release the button and a popup menu will show up.
![FancyZones Table Editor Mode](TableEditor.png)
The backlog for the utility can be found [here](https://github.com/Microsoft/PowerToys/tree/master/doc/planning/FancyZonesBacklog.md) and the source code is [here](https://github.com/Microsoft/PowerToys/tree/master/src/modules/fancyzones).
# Snapping a window to two zones (EXPERIMENTAL)
If two zones are adjacent, a window can be snapped to the sum of their area (rounded to the minimum rectangle that contains both). When the mouse cursor in near the common edge of two zones, both zones are activated simultaneously, allowing to drop the window on both.
**NOTE:** when snapping a window to two zones, restoring the window when the app is restarted is not supported yet.
![Two Zones Activation](TwoZonesActivation.png)
# Shortcut Keys
| Shortcut | Action |
| ----------- | ----------- |
| Win + ` | Launches editor (this shortcut is editable in the settings dialog) |
| Win+Left/Right Arrow | Move focused window between zones (only if `Override Windows Snap hotkeys` setting is turned on, in that case only the `Win+Left Arrow` and `Win+Right Arrow` are overridden, while the `Win+Up Arrow` and `Win+Down Arrow` keep working as usual) |
FancyZones doesn't override the Windows 10 `Win+Shift+Arrow` to quickly move a window to an adjacent monitor.
# Settings
| Setting | Description |
| --------- | ------------- |
| Configure the zone editor hotkey | To change the default hotkey, click on the textbox (it's not necessary to select or delete the text) and then press on the keyboard the desired key combination |
| Enable zones while dragging with the shift key | Toggles between auto-snap mode with the shift key disabling snapping during a drag and manual snap mode where pressing the shift key during a drag enables snapping |
| Override Windows Snap hotkeys (Win+Arrow) to move between zones | When this option is on and FancyZones is running, it overrides two Windows Snap keys: `Win+Left Arrow` and `Win+Right Arrow` |
| Keep windows in their zones when the screen resolution changes | After a screen resolution change, if this setting is enabled, FancyZones will resize and reposition windows into the zones they were previously in |
| Keep windows in their zones when the active FancyZones layout changes | When this option is on, FancyZones will resize and position windows into the new zone layout by maintaining the previous zone number location of each window |
| Keep windows in their zones when the active virtual desktop changes | If an application is pinned to all virtual desktops, this setting will keep that window in the same zone on all desktops |
| Move newly created windows to the last known zone | Automatically move a newly opened window into the last zone location that application was in |
| Follow mouse cursor instead of focus when launching editor in a multi-monitor environment | When this option is on, the editor hotkey will launch the editor on the monitor where the mouse cursor is, when this option is off, the editor hotkey will launch the editor on monitor where the current active window is |
| Show zones on all monitors while dragging a window | By default FancyZones shows only the zones available on the current monitor, this feature may have performance impact when turned on |
| Show zones on all monitors while dragging a window | When the zones are activated, the dragged window is made transparent to improve the zones visibility |
| Zone highlight color (Default #008CFF) | The color that a zone becomes when it is the active drop target during a window drag |
| Zone Inactive color (Default #F5FCFF) | The color that zones become when they are not an active drop during a window drag |
| Zone border color (Default #FFFFFF) | The color of the border of active and inactive zones |
| Zone opacity (%) (Default 50%) | The percentage of opacity of active and inactive zones |
| Exclude applications from snapping to zones | Add the applications name, or part of the name, one per line (e.g., adding `Notepad` will match both `Notepad.exe` and `Notepad++.exe`, to match only `Notepad.exe` add the `.exe` extension) |
![FancyZones Settings UI](FancyZonesSettings1.png)
![FancyZones Settings UI](FancyZonesSettings2.png)
# This file has been moved
[FancyZone Overview](https://aka.ms/PowerToysOverview_FancyZones)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 937 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

View file

@ -66,7 +66,7 @@ IFACEMETHODIMP_(bool) FancyZonesSettings::GetConfig(_Out_ PWSTR buffer, _Out_ in
// Pass a string literal or a resource id to Settings::set_description().
settings.set_description(IDS_SETTING_DESCRIPTION);
settings.set_icon_key(L"pt-fancy-zones");
settings.set_overview_link(L"https://github.com/microsoft/PowerToys/blob/master/src/modules/fancyzones/README.md");
settings.set_overview_link(L"https://aka.ms/PowerToysOverview_FancyZones");
settings.set_video_link(L"https://youtu.be/rTtGzZYAXgY");
// Add a custom action property. When using this settings type, the "PowertoyModuleIface::call_custom_action()"

View file

@ -546,7 +546,7 @@ namespace FancyZonesUnitTests
PowerToysSettings::Settings ptSettings(HINSTANCE{}, m_moduleName);
ptSettings.set_description(IDS_SETTING_DESCRIPTION);
ptSettings.set_icon_key(L"pt-fancy-zones");
ptSettings.set_overview_link(L"https://github.com/microsoft/PowerToys/blob/master/src/modules/fancyzones/README.md");
ptSettings.set_overview_link(L"https://aka.ms/PowerToysOverview_FancyZones");
ptSettings.set_video_link(L"https://youtu.be/rTtGzZYAXgY");
ptSettings.add_custom_action(
@ -609,7 +609,7 @@ namespace FancyZonesUnitTests
m_ptSettings = new PowerToysSettings::Settings(hInst, m_moduleName);
m_ptSettings->set_description(IDS_SETTING_DESCRIPTION);
m_ptSettings->set_icon_key(L"pt-fancy-zones");
m_ptSettings->set_overview_link(L"https://github.com/microsoft/PowerToys/blob/master/src/modules/fancyzones/README.md");
m_ptSettings->set_overview_link(L"https://aka.ms/PowerToysOverview_FancyZones");
m_ptSettings->set_video_link(L"https://youtu.be/rTtGzZYAXgY");
m_ptSettings->add_custom_action(

View file

@ -1,29 +1,3 @@
# Image Resizer
> A Windows Shell Extension for bulk image resizing
# This file has been moved
[**Overview**](#overview) ·
[**Settings**](#settings)
## Overview
Image Resizer is a windows shell extension for bulk image resizing. After installing PowerToys, right-click on one or more selected image files in File Explorer, and then select _Resize pictures_ from the menu.
![Image Resizer Demo](../../../doc/images/imageresizer/resizeNormal.gif)
Image Resizer also allows you to resize images by dragging and dropping your selected files with the right mouse button. This allows you to save your resized pictures in another folder.
![Image Resizer Drag And Drop Demo](../../../doc/images/imageresizer/resizeDragAndDrop.gif)
## Settings
![Image Resizer Settings](../../../doc/images/imageresizer/resizeSettings.gif)
Image Resizer allows the user to configure the following settings:
### Sizes
The user can add new preset sizes. Each size can be configured as Fill, Fit or Stretch. The dimension to be used for resizing can also be configured as Centimeters, Inches, Percent and Pixels.
### Encoding
The user can change the fallback encoder (the one it uses when it can't save as the original format) and modify PNG, JPEG and TIFF settings.
### File
The user can modify the format of the file name of the resized image. They can also choose to retain the original _last modified_ date on the resized image.
[Image Resizer Overview](https://aka.ms/PowerToysOverview_ImageResizer)

View file

@ -70,7 +70,7 @@ public:
// Create a Settings object.
PowerToysSettings::Settings settings(hinstance, get_name());
settings.set_description(GET_RESOURCE_STRING(IDS_SETTINGS_DESCRIPTION));
settings.set_overview_link(L"https://github.com/microsoft/PowerToys/blob/master/src/modules/imageresizer/README.md");
settings.set_overview_link(L"https://aka.ms/PowerToysOverview_ImageResizer");
settings.set_icon_key(L"pt-image-resizer");
settings.add_header_szLarge(L"imageresizer_settingsheader", GET_RESOURCE_STRING(IDS_SETTINGS_HEADER_DESCRIPTION), GET_RESOURCE_STRING(IDS_SETTINGS_HEADER));
return settings.serialize_to_buffer(buffer, buffer_size);

View file

@ -1,93 +1,3 @@
# Keyboard Manager
# This file has been moved
The Keyboard Manager (KBM) is a keyboard remapper that allows a user to redefine keys on their keyboard (ex. swapping the letter <kbd>A</kbd> and <kbd>D</kbd>) as well as shortcuts (<kbd>Ctrl</kbd>+<kbd>C</kbd> to <kbd>![alt text][winlogo]</kbd>+<kbd>C</kbd>). You can use these remappings as long as KBM is enabled and PowerToys is running in the background. Below is an example of using keys and shortcuts that were remapped:
![alt text][example]
# 1. Get Started  
## 1.1 General Settings
To create mappings with Keyboard Manager, you have the option of launching either the Remap Keyboard UI by clicking the <kbd>Remap a Key</kbd> button or Remap Shortcuts UI by clicking the <kbd>Remap a shortcut</kbd> button.
## 1.2 Remap Keys
To remap a key to another key, click the <kbd>Remap a Key</kbd> button to launch the Remap Keyboard UI. When first launched, you are met with no predefined mappings and must click the <kbd>+</kbd> button to add a new remap. From there, select the key whose output you want to ***change*** as the “Key” and then keys new output as the “Mapped To”. For example, if you want to press <kbd>A</kbd> and have <kbd>B</kbd> appear, Key <kbd>A</kbd> would be your “Key” and Key <kbd>B</kbd> would be your “Mapped To" key. If you want to swap keys, add another remapping with Key <kbd>B</kbd> as your "Key" and Key <kbd>A</kbd> as your "Mapped To".
![alt text][remapkey]
## 1.3 Remap Shortcuts (Global-only)
Currently you are only able to remap global level shortcuts (they apply to your whole OS), but **app-specific shortcuts are coming soon!**
To change how you invoke a particular shortcut, click the <kbd>Remap a shortcut</kbd> button to
launch the Remap Shortcuts UI. When first launched, you are met with no predefined mappings and must click the <kbd>+</kbd> button to add a new remap. The "Shortcut" is the shortcut you want to change and the "Mapped To" is the shortcut you want to change it
to. Ex. If you want <kbd>Ctrl</kbd>+<kbd>C</kbd> to paste, <kbd>Ctrl</kbd>+<kbd>C</kbd> is the "Shortcut" and <kbd>Ctrl</kbd>+<kbd>V</kbd> is the "Mapped To". Here are a few rules to shortcuts as you get started:
- Shortcuts must begin with a modifier key (<kbd>Ctrl</kbd>, <kbd>Shift</kbd>, <kbd>Alt</kbd>, <kbd>![alt text][winlogo]</kbd>)
- Shortcuts must end with an action key (all non-modifier keys)
- Shortcuts cannot be longer than 3 keys
![alt text][remapshort]
### 1.4 Keys that cannot be remapped:
- <kbd>![alt text][winlogo]</kbd>+<kbd>L</kbd> (Locking your computer) and <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+ <kbd>Del</kbd> cannot be remapped as they are reserved by the Windows OS.
- The <kbd>Fn</kbd> key itself cannot be remapped (in most cases) but the F1-24 can be mapped.
## 1.5 Selecting the keys: Drop down + Type Key / Type Shortcut feature
To select a key in the remap or shortcut UI, you can use either the <kbd>Type Key</kbd> button or the drop downs. Once you click the <kbd>Type Key / Shortcut</kbd> button a dialogue will pop up. From here, type the key/shortcut using your keyboard. Once youre satisfied with the output, hold <kbd>Enter</kbd> to continue. If youd like to leave the dialogue, hold the <kbd>Esc</kbd> button. For the drop downs, you can search with the key name and additional drop downs will appear as you progress. However, you can not use the type-key feature while on the drop down.
![alt text][dropdowntypekey]
## 1.6 Orphaning Keys
Orphaning a key means that you mapped it to another key and no longer have anything mapped to it. (Ex. If I map A -> B, I no longer have a key on my keyboard that results in A) To fix this, create another remap with that key as the New Key. We have created a warning to ensure you don't do this by accident.
![alt text][orphaned]
## 2. Frequently Asked Questions
- **Question**: *I remapped the wrong keys, and I want to stop it quickly. How can I do that?*
- You can simply disable KBM from the settings or you can close PowerToys. For the remappings to work PowerToys must be running in the background and KBM must be enabled.
- **Question**: *Can I use Keyboard Manager at my log-in screen?*
- No, Keyboard Manager is only available when PowerToys is running and doesnt work on any password screen, including Run As Admin.
- **Question**: *Do I have to turn off my computer for the remapping to take effect?*
- No, as of now, all you need to do is press apply.
- **Question**: *Can I remap a shortcut to a single key?*
- No, we hope to support this soon.
- **Question**: *Where are the Mac/Linux profiles?*
- This is the beta release; we will have these features in our V1
- **Question**: *Why cant I remap a shortcut for a specific app?*
- This is the beta release; we will have these features in our V1
- **Question**: *Will this work on video games?*
- It depends on how the game accesses your keys. Certain keyboard APIs do not work with Keyboard Manager.
- **Question**: *Does this work if I change my input language? How?*
- Yes it will. Right now if you remap <kbd>A</kbd> to <kbd>B</kbd> on English (US) keyboard and then the switch language to French, then typing <kbd>A</kbd> on the French keyboard (i.e. <kbd>Q</kbd> on the English US physical keyboard) would result in <kbd>B</kbd>, this is consistent with how Windows handles multilingual input.
## 3. Trouble shooting if remappings are not working:
- *Could be one of the following issues:*
- **Run As Admin:** Remappings will not work on an app / window if that window is running as an admin (elevated) and PowerToys itself is not running as admin. Try running PowerToys as an administrator.
- **Not Intercepting Keys:** KBM intercepts keyboard hooks to remap your keys. Some apps that also do this can interfere with Keyboard Manager, to fix this go to the Settings and Disable then Re-Enable Keyboard manager.
## 4. Known Issues
- [Caps light indicator not toggling correctly](https://github.com/microsoft/PowerToys/issues/1692)
- [Remaps not working for FancyZones and Shortcut Guide](https://github.com/microsoft/PowerToys/issues/3079)
For a list of all known issues/suggestions, check it out
[here](https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+label%3A%22Product-Keyboard+Shortcut+Manager%22).
[example]: ../../../doc/images/keyboardmanager/example.gif "Example"
[remapkey]: ../../../doc/images/keyboardmanager/remapkeyboard_both.gif "Remap a Key"
[remapshort]: ../../../doc/images/keyboardmanager/remapshort_both.gif "Remap a Shortcut"
[dropdowntypekey]: ../../../doc/images/keyboardmanager/dropdownstypekey.gif "Drop-downs and Type Features"
[orphaned]: ../../../doc/images/keyboardmanager/orphanedkey.gif "Orphaned key warning"
[winlogo]: ../../../doc/images/keyboardmanager/winkey.png
[Keyboard Manager Overview](https://aka.ms/PowerToysOverview_KeyboardManager)

View file

@ -177,7 +177,7 @@ public:
// Create a Settings object.
PowerToysSettings::Settings settings(hinstance, get_name());
settings.set_description(IDS_SETTINGS_DESCRIPTION);
settings.set_overview_link(L"https://github.com/microsoft/PowerToys/blob/master/src/modules/keyboardmanager/README.md");
settings.set_overview_link(L"https://aka.ms/PowerToysOverview_KeyboardManager");
return settings.serialize_to_buffer(buffer, buffer_size);
}

View file

@ -92,7 +92,7 @@ public:
// Create a Settings object.
PowerToysSettings::Settings settings(hinstance, get_name());
settings.set_description(GET_RESOURCE_STRING(IDS_LAUNCHER_SETTINGS_DESC));
settings.set_overview_link(L"https://github.com/microsoft/PowerToys/blob/master/src/modules/launcher/README.md");
settings.set_overview_link(L"https://aka.ms/PowerToysOverview_PowerToysRun");
return settings.serialize_to_buffer(buffer, buffer_size);
}

View file

@ -1,75 +1,3 @@
# PowerToys Run
PowerToys Run is a quick launcher for power users that has additional
capabilities without sacrificing performance. It is open source and
modular for additional plugins. Press Alt+Space and start typing!
# This file has been moved
![](../../../doc/images/Launcher/QuickStart.gif)
# 1\. Get Started
## 1\.1 Requirements
- Windows 10 version 1903 or higher
## 1\.2 Features
Search for applications, folders, or files
![](../../../doc/images/Launcher/Features.gif)
Search for running processes (previously
[WindowWalker](https://github.com/betsegaw/windowwalker/))
![](../../../doc/images/Launcher/FeaturesWindowWalker.gif)
Clickable buttons with keyboard shortcuts
![](../../../doc/images/Launcher/FeaturesButtons.gif)
Invoke Shell Plugin using "\> "
![](../../../doc/images/Launcher/FeaturesShell.gif)
Do a simple calculation using calculator
![](../../../doc/images/Launcher/FeaturesCalculator.gif)
## 1\.3 Settings
| **Settings** | **Action** |
| --------------- | ------------------------------------------------------------------------------- |
| Maximum number of results | Maximum number of results shown without scrolling on PowerToys Run |
| Open PowerToys Run shortcut | The keyboard shortcut to open/hide PowerToys Run |
## 1\.4 Keyboard Shortcuts
| **Shortcuts** | **Action** |
| ------------------ | ---------------------------------------------------------------------------------|
| Alt+Space | Open or hide PowerToys Run |
| Esc | Hide PowerToys Run |
| Ctrl+Shift+Enter | (Only applicable to applications) Open the selected application as administrator |
| Ctrl+Shift+E | (Only applicable to applications and files) Open containing folder in File Explorer |
| Ctrl+C | (Only applicable to folders and files) Copy path location |
| Tab | Navigate through the search result and context menu buttons |
# 2\. Known Issues
- [Shudder on monitor change in a multi-monitor setup](https://github.com/microsoft/PowerToys/issues/3018)
- [On first start, clicking away doesn't hide launcher](https://github.com/microsoft/PowerToys/issues/2973)
- [Navigating through Tab doesn't have a clear UI indication if context buttons or search result is selected](https://github.com/microsoft/PowerToys/issues/2559)
- ['\>' entered at the beginning disappears when you choose an option through keyboard navigation](https://github.com/microsoft/PowerToys/issues/2576)
- [There is a misalignment in the shadow text](https://github.com/microsoft/PowerToys/issues/2494)
- [Reducing number of shown results doesn't resize search result properly](https://github.com/microsoft/PowerToys/issues/2456)
- [Context menu buttons sometimes are not showing when hovered with mouse](https://github.com/microsoft/PowerToys/issues/2420)
- [Scroll on the first result, not the whole search result box](https://github.com/microsoft/PowerToys/issues/2306)
For a list of all known issues/suggestions, check it out
[here](https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+label%3AProduct-Launcher).
# 3\. Attribution
[Wox](https://github.com/Wox-launcher/Wox/)
[Beta Tadele's Window Walker](https://github.com/betsegaw/windowwalker)
[PowerToys Run Overview](https://aka.ms/PowerToysOverview_PowerToysRun)

View file

@ -1,91 +1,3 @@
# PowerRename
Have you ever needed to modify the file names of a large number of files but didn't want to rename all of the files the same name? Wanted to do a simple search/replace on a portion of various file names? Wanted to perform a regular expression rename on multiple items?
PowerRename is a Windows Shell Context Menu Extension for advanced bulk renaming using simple search and replace or more powerful regular expression matching. While you type in the search and replace input fields, the preview area will show what the items will be renamed to. You can toggle specific items to include or exclude from the operation in the preview area. Other checkbox options allow more control of scope of the rename operation. PowerRename then calls into the Windows Explorer file operations engine to perform the rename. This has the benefit of allowing the rename operation to be undone after PowerRename exits. PowerRename was designed to cover the majority of bulk rename scenarios while still striving for simplicity for the average user.
## Demo
In the below demonstration, I am replacing all of the instances of "Pampalona" with "Pamplona" from all the image file names in the folder. Since all the files are uniquely named, this would have taken a long time to complete manually one-by-one. With PowerRename this takes seconds. Notice that I can undo the rename if I want to from the Windows Explorer context menu.
![PowerRename Demo](/src/modules/powerrename/images/PowerRenameDemo.gif)
## Input
### Search for
The text or regular expression to match in the item name
### Replace with
The text to replace the instance(s) in the item name matched by the Search text
## Options
### Use Regular Expressions
If checked, the Search field will be interpreted as a regular expression. The Replace field can also contain regex variables (see examples below). If not checked, the Search field will be used as a text to be replaced with the text in the Replace field.
### Case Sensitive
If checked, the text specified in the Search field will only match text in the items if the text is the same case. By default we match case insensitive.
### Match All Occurrences
If checked, all matches of the text in Search field will be replaced with the Replace text. Otherwise, only the first instance of the Search for text in the item will be replaced (left to right).
### Exclude Files
Files will not be included in the operation.
### Exclude Folders
Folders will not be included in the operation.
### Exclude Subfolder Items
Items within folders will not be included in the operation. By default, all subfolder items are included.
### Enumerate Items
Appends a numeric suffix to file names that were modified in the operation.
Ex: foo.jpg -> foo (1).jpg
### Item Name Only
Only the file name portion (not the file extension) is modified by the operation.
Ex: txt.txt -> NewName.txt
### Item Extension Only
Only the file extension portion (not the file name) is modified by the operation.
Ex: txt.txt -> txt.NewExtension
## Regular Expressions
For most use cases, a simple search and replace is sufficient. Other users will need more control over. That is where Regular Expressions come in. Regular Expressions define a search pattern for text. Regular expressions can be used to search, edit and manipulate text. The pattern defined by the regular expression may match one or several times or not at all for a given string. PowerRename uses the ECMAScript grammar, which is common amongst modern programming languages.
To enable regular expressions, check the "Use Regular Expressions" checkbox.
**Note:** You will likely want to check "Match All Occurrences" while using regular expressions.
### Examples
Simple matching examples:
| Search for | Description |
| -------------- | ------------- |
| .* | Match all the text in the name |
| ^foo | Match text that begins with "foo" |
| bar$ | Match text that ends with "bar" |
| ^foo.\*bar$ | Match text that begins with "foo" and ends with "bar" |
| .+?(?=bar) | Match everything up to "bar" |
| foo[\s\S]\*bar | Match everything between "foo" and "bar" |
Matching and variable examples:
**Note:** For using the variables, you do need "Match All Occurrences" enabled
| Search for | Replace With | Description |
| ---------- | ------------- |--------------------------------------------|
| (.\*).png | foo\_$1.png | Prepends "foo\_" to the existing file name |
| (.\*).png | $1\_foo.png | Appends "\_foo" to the existing file name |
| (.\*) | $1.txt | Appends ".txt" extension to existing file name |
| (^\w+\.$)\|(^\w+$) | $2.txt | Appends ".txt" extension to existing file name only if it does not have an extension |
### External Help
There are great examples/cheat sheets available online to help you
[Regex tutorial — A quick cheatsheet by examples](https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285)
[ECMAScript Regular Expressions Tutorial](https://o7planning.org/en/12219/ecmascript-regular-expressions-tutorial)
# This file has been moved
[PowerRename Overview](https://aka.ms/PowerToysOverview_PowerRename)

View file

@ -94,7 +94,7 @@
IDS_POWERRENAME "Po&werRename"
IDS_POWERRENAME_APP_NAME "PowerRename"
IDS_SETTINGS_DESCRIPTION L"A Windows Shell extension for more advanced bulk renaming using search and replace or regular expressions."
IDS_OVERVIEW_LINK L"https://github.com/microsoft/PowerToys/tree/master/src/modules/powerrename"
IDS_OVERVIEW_LINK L"https://aka.ms/PowerToysOverview_PowerRename"
IDS_RESTORE_SEARCH L"Restore search, replace and flags values on launch from previous run."
IDS_ENABLE_AUTO L"Enable autocomplete and autosuggest of recently used inputs for search and replace values."
IDS_MAX_ITEMS L"Maximum number of items to show in recently used list for autocomplete dropdown."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 KiB

View file

@ -498,7 +498,7 @@ void CPowerRenameUI::_OnAbout()
SHELLEXECUTEINFO info = { 0 };
info.cbSize = sizeof(SHELLEXECUTEINFO);
info.lpVerb = L"open";
info.lpFile = L"https://github.com/microsoft/PowerToys/tree/master/src/modules/powerrename";
info.lpFile = L"https://aka.ms/PowerToysOverview_PowerRename";
info.nShow = SW_SHOWDEFAULT;
ShellExecuteEx(&info);

View file

@ -1,22 +1,8 @@
# File Explorer
File Explorer add-ons, right now are just limited to Preview Pane additions for File Explorer.
## End user facing:
## Preview Pane
Preview Pane is an existing feature in the File Explorer which shows a lightweight, rich, read-only preview of the file's contents in the view's reading pane. To enable it, you just click the View tab in the ribbon and then click `Preview Pane`. Below is an example of Markdown and Svg files previews in File Explorer with PowerToys.
![PowerToys Preview Pane Demo](../../../doc/images/preview_pane/demo.gif)
> Adding Custom Preview Handlers to Windows File Explorer Preview Pane.
[**Overview**](#overview) ·
[**Developing**](#Developing) ·
[**Installation**](#Installation) ·
## Overview
Preview handlers are called when an item is selected to show a lightweight, rich, read-only preview of the file's contents in the view's reading pane. This is done without launching the file's associated application. Please follow this [documentation](https://docs.microsoft.com/en-us/archive/msdn-magazine/2007/january/windows-vista-and-office-writing-your-own-preview-handlers) to start developing a preview handler, when done, continue with this documentation to learn how to integrate a preview handler into PowerToys.
[Please visit our overview](https://aka.ms/PowerToysOverview_FileExplorerAddOns)
## Developing
@ -81,7 +67,6 @@ namespace XYZPreviewHandler
}
```
#### Integrate the Preview Handler into PowerToys Settings:
Navigate to the [powerpreview](../previewpane/powerpreview/powerpreview.h) project and edit the `powerpreview.h` file. Add the following Settings Object instance to `m_previewHandlers` settings objects array in the constructor initialization:
@ -138,55 +123,6 @@ To add a new Previewer update the `Product.wxs` file in `PowerToysSetup` similar
</Component>
```
### MSIX
Warning: There are known issues([Issue - 1446](https://github.com/microsoft/PowerToys/issues/1446), [Issue - 1545](https://github.com/microsoft/PowerToys/issues/1545)) with MSIX Installation of Preview Handlers and it's not fully supported.
To add a new Previewer with MSIX update the `appxmanifest.xml` file to add file type association for preview handler and add `SurrogateServer` element with class registration. MSIX currently doesn't support .Net Assembly activation with `SurrogateServer` the logic used is shim the activation by using native dll. `dllmain.cpp` in `powerpreview` project expose the `DLLGetClassObject` method which is used to activate .net Assembly by using `CoGetClassObject`.
Changes required in `appxmanifest.xml`:
```xml
<!-- File Type Association for new Preview Handler -->
<!-- More details: https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-desktop2-desktoppreviewhandler -->
<uap:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="xyzpreviewhandler" desktop2:AllowSilentDefaultTakeOver="true">
<uap:SupportedFileTypes>
<uap:FileType>.xyz</uap:FileType>
</uap:SupportedFileTypes>
<desktop2:DesktopPreviewHandler Clsid="74619BDA-A66B-451D-864C-A7726F5FE650"/>
</uap3:FileTypeAssociation>
</uap:Extension>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:SurrogateServer DisplayName="Preview Handler" AppId="E39A92FE-D89A-417B-9B9D-F0B6BD564B36" SystemSurrogate="PreviewHost">
<com:Class Id="Shim-Activator-Clsid-Guid" Path="modules\powerpreview.dll" ThreadingModel="Both"/>
</com:SurrogateServer>
</com:ComServer>
</com:Extension>
```
Update the `PackagingLayout.xml` to include dll's required by the new Preview Handler.
```xml
<File DestinationPath="modules\XYZPreviewHandler.dll" SourcePath="..\..\x64\Release\modules\XYZPreviewHandler.dll"/>
<File DestinationPath="modules\XYZDependency.dll" SourcePath="..\..\x64\Release\modules\XYZDependency.dll"/>
```
Add the actual Clsid of the new preview handler in `CLSID.h` in `powerpreview` project and class registration registry changes in `registry.dat` similar to existing preview handler. To update the `registry.dat` mount the registry hive on a empty key in registry by using `reggedit.exe` and add registry key for class registration for the new preview handler similar to MSI class registration and existing preview handlers. And export the updated `registry.dat` hive also export the `registry.reg` file for making the contents in `registry.dat` visible in source code.
```cpp
// CLSID used in manifest file for Preview Handler.
const CLSID CLSID_SHIMActivateXYZPreviewHandler = { valid - guid };
// Actual Clsid Guid.
const CLSID CLSID_XYZPreviewHandler = { valid - guid };
// Pairs of NativeClsid vs ManagedClsid used for preview handlers.
const std::vector<std::pair<CLSID, CLSID>> NativeToManagedClsid({
{ CLSID_SHIMActivateXYZPreviewHandler, CLSID_XYZPreviewHandler }
});
```
## Managing Preview Handlers
After successful integration, your preview handler should appear in the PowerToys settings UI under the `File Explorer Preview` Tab. In here you should be able to enable and disable your preview handler.

View file

@ -51,7 +51,7 @@ bool PowerPreviewModule::get_config(_Out_ wchar_t* buffer, _Out_ int* buffer_siz
// General Settings.
settings.set_description(GET_RESOURCE_STRING(IDS_GENERAL_DESCRIPTION));
settings.set_icon_key(GET_RESOURCE_STRING(IDS_ICON_KEY_NAME));
settings.set_overview_link(L"https://github.com/microsoft/PowerToys/blob/master/src/modules/previewpane/README.md");
settings.set_overview_link(L"https://aka.ms/PowerToysOverview_FileExplorerAddOns");
// Preview Pane: Settings Group Header.
settings.add_header_szLarge(

View file

@ -1,26 +1,3 @@
# Windows Key Shortcut Guide
# This file has been moved
# Introduction
The Windows Key Shortcut Guide shows common keyboard shortcuts that use the Windows key.
# Usage
Press and hold the keyboard Windows key for about 1 second, an overlay appears showing keyboard shortcuts that use the Windows Key:
- Shortcuts for changing the position of the active window.
- Common Windows shortcuts.
- Taskbar shortcuts.
Releasing the Windows key will make the overlay disappear. If the shortcut guide was visible for less than a second, the start menu will appear after the shortcut guide is dismissed.
![Image of the Overlay](/doc/images/shortcut_guide/usage.png)
Windows key keyboard shortcuts can be used while the guide is being shown and the result of those shortcuts (active window moved, arrow shortcut behavior changes, etc) will be displayed in the guide.
# Options
These configurations can be edited from the PowerToys Settings screen:
- "How long to press the Windows key before showing the Shortcut Guide (ms)" - How many milliseconds to press the Windows key before the Shortcut Guide is shown.
- "Opacity of the Shortcut Guide's overlay background (%)" - Changing this setting controls the opacity of the Shortcut Guide's overlay background, occluding the work environment beneath the Shortcut Guide to different degrees.
![Image of the Options](/doc/images/shortcut_guide/settings.png)
# Backlog
The backlog for the utility can be found [here](https://github.com/Microsoft/PowerToys/tree/master/doc/planning/ShortcutGuideBacklog.md) and the source code is [here](https://github.com/Microsoft/PowerToys/tree/master/src/modules/shortcut_guide).
[Windows Key Shortcut Guide Overview](https://aka.ms/PowerToysOverview_ShortcutGuide)

View file

@ -51,7 +51,7 @@ bool OverlayWindow::get_config(wchar_t* buffer, int* buffer_size)
PowerToysSettings::Settings settings(hinstance, get_name());
settings.set_description(GET_RESOURCE_STRING(IDS_SETTINGS_DESCRIPTION));
settings.set_overview_link(L"https://github.com/microsoft/PowerToys/blob/master/src/modules/shortcut_guide/README.md");
settings.set_overview_link(L"https://aka.ms/PowerToysOverview_ShortcutGuide");
settings.set_icon_key(L"pt-shortcut-guide");
settings.add_int_spinner(