Caretilde is a Windows utility which makes it possible to easily copy strings, which may defined by the user, to clipboard from the system tray. It is programmed in pure C and directly uses the Win32 API, which means that it is very lightweight both in terms of executable size and run-time memory footprint. While it has been programmed and tested only on Windows 11, it will probably work fine on older versions as well.
Upon launching the program, an icon
is created in the system tray, through which the program's functions are accessed. Upon
clicking the icon, the following happens:
- Right click. A popup menu appears (see the screenshots above) with a list of currently configured strings, which can be copied to clipboard by clicking them. In addition, there is a shortcut to the preferred strings file, the option to reload the strings from said strings file (or other locations – see below) and to exit the program.
- Left click. Copies the first string (i.e. the top-most one in the menu) to the clipboard directly.
The name Caretilde is derived from the two characters that the program offers to copy by default, if no other strings are configured by the user – the caret (^) and the tilde (~). These characters are notable for being quite difficult to type on the Czech keyboard layout; so, in order to makes them more easily accessible for myself and perhaps others, I decided to create this utility.
When the program starts up (or a reload is manually triggered from the menu), it looks for strings in the following locations and in the following order:
- Per-user file:
%APPDATA%\Caretilde\stringlist.txt(opened by the "Edit strings file..." menu option) - Per-user registry:
HKEY_CURRENT_USER\SOFTWARE\Caretilde\StringList - Global file:
%PROGRAMDATA%\Caretilde\stringlist.txt - Global registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Caretilde\StringList - Default, hardcoded strings: the caret (^) and the tilde (~)
The stringlist.txt file shall be a regular plain-text UTF-8-encoded file, containing
one string per line (i.e. one line in the file = one menu item). Leading and trailing
whitespace is ignored, just as empty lines.
The StringList registry key shall be of type REG_MULTI_SZ. Whitespace is handled the
same way as with files.
The program loads and then provides strings from the first location which exists and is not empty (if it contains only whitespace, it is ignored as well).
The first option of obtaining an .exe file of Caretilde is to compile it from source.
This repository contains a Visual Studio 2022 solution which you may open and use to
build the program.
The second option, which is way more convenient, is to download a pre-compiled executable
from this repository's Releases page. Both a 32-bit and a 64-bit .exe file is
provided there.
Simply run the built or downloaded executable, and an icon should appear in the system tray – no installation is required. The program does not require any external dependencies; it only uses standard Windows libraries.
It may also be useful to do the following:
- Run Caretilde on startup. To make Caretilde run when your computer starts or when
you log in, simply place the
.exefile (or a shortcut to it) to the%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\directory. - Put the tray icon on the taskbar. To make the system tray icon always visible directly on the taskbar (i.e. not in the overflow menu, which is the case by default) for easier access, go to Settings > Personalization > Taskbar > Other system tray icons, find the Caretilde executable in the list and enable it.
This project is licensed under the 3-clause BSD license – see the LICENSE file.
Programmed by Vít Labuda.

