A Windows system tray application that allows you to easily type accented characters by holding down letter keys. Perfect for typing in multiple languages without switching keyboard layouts.
- Long Press Detection: Hold any letter key for 300ms to see available accented characters
- Uppercase Support: Hold Shift + letter to access uppercase accented characters
- System Tray Integration: Runs quietly in the background with a system tray icon
- Global Hotkeys: Works in any application - no need to switch input methods
- Extensive Character Support: Includes characters for multiple European languages
- A/a: À, Á, Â, Ã, Ä, Å, Æ, Ā, Ă, Ą (and uppercase variants)
- E/e: È, É, Ê, Ë, Ē, Ĕ, Ė, Ę, Ě (and uppercase variants)
- I/i: Ì, Í, Î, Ï, Ĩ, Ī, Ĭ, Į, İ (and uppercase variants)
- O/o: Ò, Ó, Ô, Õ, Ö, Ø, Ō, Ŏ, Ő, Œ (and uppercase variants)
- U/u: Ù, Ú, Û, Ü, Ũ, Ū, Ŭ, Ů, Ű, Ų (and uppercase variants)
- Y/y: Ý, Ÿ, Ŷ (and uppercase variants)
- C/c: Ç, Ć, Ĉ, Ċ, Č (and uppercase variants)
- N/n: Ñ, Ń, Ņ, Ň, Ŋ (and uppercase variants)
- S/s: Ş, Ś, Ŝ, Š, Ș, ß (and uppercase variants including ẞ)
- Z/z: Ź, Ż, Ž (and uppercase variants)
- T/t: Ţ, Ť, Ŧ, Ț (and uppercase variants)
- R/r: Ŕ, Ŗ, Ř (and uppercase variants)
- L/l: Ĺ, Ļ, Ľ, Ŀ, Ł (and uppercase variants)
- D/d: Đ, Ď, Ḏ (and uppercase variants)
- G/g: Ğ, Ġ, Ģ, Ĝ (and uppercase variants)
- H/h: Ĥ, Ħ (and uppercase variants)
- W/w: Ŵ (and uppercase variants)
- Start the Application: Run AccentPress.exe - it will appear in your system tray
- Type Accented Characters:
- Hold any supported letter key for 300ms
- A popup will appear with available accented characters
- Use arrow keys or number keys (1-9) to select a character
- Press Enter to insert the selected character
- Press Escape to cancel
- Uppercase Characters: Hold Shift + letter key for uppercase accented variants
- Exit: Right-click the system tray icon and select "Exit"
- Windows 10 or later
- .NET 8.0 Runtime (Windows Desktop)
- .NET 8.0 SDK
- Visual Studio 2022 or Visual Studio Code
-
Clone the repository:
git clone https://github.com/RSpeets/AccentPress.git cd AccentPress
-
Build the project:
dotnet build
-
Run the application:
dotnet run --project AccentPress/AccentPress.csproj
dotnet publish -c Release -r win-x64 --self-contained false
The executable will be created in AccentPress/bin/Release/net8.0-windows/win-x64/publish/
The application consists of several key components:
- GlobalKeyboardHook: Low-level Windows keyboard hook for detecting key presses
- LongPressDetector: Manages timing and detection of long key presses
- InternationalCharacterMappings: Contains all character mappings for different keys
- SimpleCharacterPopup: UI for displaying and selecting accented characters
- TextInjector: Handles inserting selected characters into the active application
- LongPressService: Coordinates all components and manages the system tray
To add more characters or modify existing mappings, edit the InternationalCharacterMappings.cs
file:
_lowercaseCharacterMappings
: Contains lowercase character variants_uppercaseCharacterMappings
: Contains uppercase character variants
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the need for easy multilingual typing on Windows
- Character mappings based on common European language requirements
- Built with .NET 8.0 and Windows Forms
- Ensure you have .NET 8.0 Runtime installed
- Run as Administrator if you encounter permission issues
- Make sure the application is running (check system tray)
- Try adjusting the long press timeout in
LongPressDetector.cs
- Verify the target application accepts Unicode input
- Check if the key you're pressing has character mappings defined
- Ensure you're holding the key for at least 300ms
- Try running the application as Administrator
If you encounter any issues or have feature requests, please open an issue on GitHub.