Skip to content

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.

Notifications You must be signed in to change notification settings

RSpeets/AccentPress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

AccentPress

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.

Features

  • 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

Supported Characters

Vowels

  • 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)

Consonants

  • 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)

How to Use

  1. Start the Application: Run AccentPress.exe - it will appear in your system tray
  2. 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
  3. Uppercase Characters: Hold Shift + letter key for uppercase accented variants
  4. Exit: Right-click the system tray icon and select "Exit"

System Requirements

  • Windows 10 or later
  • .NET 8.0 Runtime (Windows Desktop)

Building from Source

Prerequisites

  • .NET 8.0 SDK
  • Visual Studio 2022 or Visual Studio Code

Build Instructions

  1. Clone the repository:

    git clone https://github.com/RSpeets/AccentPress.git
    cd AccentPress
  2. Build the project:

    dotnet build
  3. Run the application:

    dotnet run --project AccentPress/AccentPress.csproj

Creating a Release Build

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/

Architecture

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

Customization

To add more characters or modify existing mappings, edit the InternationalCharacterMappings.cs file:

  • _lowercaseCharacterMappings: Contains lowercase character variants
  • _uppercaseCharacterMappings: Contains uppercase character variants

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • 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

Troubleshooting

The application doesn't start

  • Ensure you have .NET 8.0 Runtime installed
  • Run as Administrator if you encounter permission issues

Characters don't appear when typed

  • 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

Popup doesn't appear

  • 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

Support

If you encounter any issues or have feature requests, please open an issue on GitHub.

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages