Repository: PowerToys
Issue: Quick Accent Tool Customization Improvement
Labels: Idea-Enhancement,Needs-Triage,Product-Quick Accent

### Description of the new feature / enhancement


## Main Proposition Summary

The _Quick Accent_ tool should be more customizable. So that users have the ability to map any key on their keyboard (not including the numpad or the F-row and other modifier keys) to any alternate characters or groups of characters.

## More Information On Features

- Each supported key should be able to be mapped to a list of any number of strings, each containing one or more characters. So, in addition to the current ability of _Quick Accent_, where each key is only mapped to strings that are one-character long they can now be mapped to strings that are more than one character long.
- Only keys that usually are used for typing (the base letter keys, the punctuation keys and the number row) should be supported for mapping. The user should also be able to map character alternates to their shifted/capital alternatives separately from their normal forms.
- In the _PowerToys Settings_ app the user should be able to set up the mapping for all of the keys on their keyboard through some GUI interface or maybe also through a `.json` file (or other data structure storage file).
- The user should also be able to change the `Activation Key` to a larger range of alternate keys, such as the up arrow, the down arrow, the right alt key, or any other keys that make sense to map as the `Activation Key`.
- If the ability to edit the key mappings in a `.json` file or other similar file is added then there should also be documentation on how to do so and the file's directory.
- The tool should be renamed from _Quick Accent_ to something more applicable, such as _Quick Keys_ or _Short Keys_. Since now it will be used for more than just accents.

### Scenario when this would be used?

## Custom Mapping Use:

For example, I sometimes write in Old English yet _Quick Accent_ does not support the letter variations that I need to do so using _PowerToys_. Here are the letter variations that I would need:  
  
###    Capital-Lowercase Groups:  
- `G`: `Ȝ`
- `g`: `ȝ`
- `D`: `Ð`
- `d`: `ð`
- `T`: `Ꞇ`
- `t`: `ꞇ`
- `W`: `Ƿ`
- `w`: `ƿ`
  
###    Single Case Groups:  
- `r`: `ꞃ`
- `f`: `ꝼ`
- `t`: `ꝥ`
- `d`: `ꝺ`
- `s`: `ſ`
  
There are a few that are supported already:  
  
###    Capital-Lowercase Groups:  
- `A`: `Æ`
- `a`: `æ`
- `A`: `Ā`
- `a`: `ā`
- `O`: `Œ`
- `o`: `œ`
- `O`: `Ō`
- `o`: `ō`
- `E`: `Ē`
- `e`: `ē`
- `T`: `Þ`
- `t`: `þ`
  
###    Single Case Groups:  
- `i`: `ı`
- `y`: `ẏ`
  
However, I would want `Œ` and `œ` to be mapped to `E` and `e` instead of `O` and `o`. I'm sure that there are many other situations where people would benefit from being able to map their own letters to keys, for more obscure languages/dialects or even just for fun/personal use.

## Custom Activation Key Use:

Recently I have played games where both the arrow keys, and some of the letter keys have been used. It usually takes me a few minutes before I realize that _Quick Accent_ is disturbing my gameplay, and once I do I quit _PowerToys_. It would be more convenient if I could just map the `Activation Key` to say, AltGr (usually the right Alt key), which is rarely used for anything other than the normal Alt key (usually the left Alt key).

## More Than One Character Long Mappings:

This can be useful if say, you need to frequently insert the `y͆` character. Yet, because this character is actually a combination of the `y` character and the combining accent `͆` character and doesn't have a single character representation then you wouldn't be able to map it in as easy a away as allowing multi characters in the mapping. 

This could also be used so that you don't have to type out common words, such as `the`, `and` or `this` or even longer words such as `because`. Allowing the user to type them in just two keystrokes. This feature could also be used on the number-row so that you might map the words for numbers to their respective keys. For example, you could map `one` to the `1` key, `two` to the `2` key, and so on. Or you could do it like `first` to the `1` key, `second` to the `2` key, and so on.

A user might also use this feature for their name, other peoples' names, gamer-tags, or passwords. Which you should add a warning against doing, even though it might be helpful.

This feature can be used for a large range of things.

### Supporting information

_No response_