Skip to content

Charu3 SE Wiki (English)

Itagaki Fumihiko edited this page Jan 13, 2024 · 69 revisions

Charu3 SE - Specification and Usage

🔶Overview

Charu3 SE is a text input support tool for Windows. You can invoke the "Data Tree View", select canned text previously registered there, and paste it into the active window. The data to be registered in the Data Tree can be structured hierarchically using folders.

There are also a number of other features.

🔶Supported OS

Microsoft Windows Vista and later

🔷Installation Instructions

Ready-made binary releases are in https://github.com/itagagaki/charu3-SE/releases

Extract the zip file to a location of your choice. There is no installer. System repositories are not used.

🔷Run

Run Charu3.exe at the extracted location.

NOTE: Older versions (from 3.8.0 to 3.8.2) had a bug in the initialization of settings that may have resulted in incorrect settings. If you have run these versions before, please follow the procedure below to reset the settings once. Sorry for the inconvenience.

How to reset settings

To reset to the default settings, start Charu3 while holding down the Shift key and select "Yes" in the dialog box that appears.

🔷Specifying a Data File

When you run Charu3 SE for the first time, a dialog box will appear asking you to create a data file or open an existing data file. Please create a new data file in a folder of your choice or specify an existing data file in Charu3 format.

Once the data file has been successfully set, the dialog will not appear again. The data file can be switched in the menu.

🔷The Menu

To open the menu, right-click on the notification area icon image

🔷Basic Usage

The user can register the canned text that he/she often enters as data. This data is in the form of a tree-structured list that can be selected or edited in the "Data Tree View" window. The Data Tree View window can be popped up with any hotkey. (Or, by default, it can be opened by left-clicking on the notification area icon.) Which hotkey to be used can be set in the "General" tab of the "Settings" menu. The initial setting is Alt+X.

Left-click in the data tree view to display the context menu. New data or folders can be added using the [New].

Selecting an item in the data tree view and typing Eneter or double-clicking the item will paste the data (text) of that item into the currently active window. This is done by placing the text into the system clipboard once and letting Charu3 SE automatically type the keys to paste (typically Ctrl+V).

Some applications may keys other than Ctrl+V for pasting. (For example, Ctrl+Y for Emacs). Therefore, you can also configure copy and paste keys according to the caption (title) of the active window. Please add the configuration to "Configuration in specific windows" in the "Key Event Settings" tab of the "Configuration" menu.

The Data Tree View window closes when:

  • The item is decided
  • The ESC key is pressed
  • The Data Tree View window loses focus due to the focus being moved to another window, etc.

👆Operations in the Data Tree View

Mouse Operations

  • You can perform common operations -- click to select or rename items, expand/collapse folders, drag and drop items, move with the wheel, etc.
  • Right-clicking brings up a menu.
  • Double-clicking a data item puts the data into the clipboard, pastes it, and closes the window.
  • Double-clicking a data item while holding down the Shift key puts the data into the clipboard and closes the window without pasting.

Keyboard Operations

Key Function
ESC Close the window
Alt Menu
Enter (if the selected item is data) put the data into the clipboard, paste it, and close the window; (if the selected item is a folder) expand it; (if the name of the item is being entered) complete the entry
Shift+Enter Put the data into the clipboard (if the selected item is data) and close the window without pasting; otherwise, the same as Enter
or Shift+Space Move to previous item
or Space Move to next item
Shift+ Move to previous folder (or any item if there is none)
Shift+ Move to next folder (or any item if there is none)
(if the selected item is in a collapsed folder) expand it; (if the selected item is in an expanded folder) move to a child item
Collapse if the selected item is an expanded folder, otherwise move to parent item (if any)
Shift+ Collapse all ancestors of the selected item
Ctrl+Shift+ Collapse all
Home End PgUp PgDn Move
Delete Delete selected item
Tab or Ctrl+Space Select multiple item
Ctrl+F Open Find dialog
F1 Move the mouse pointer over the selected item -- useful for displaying tooltips
F2 Rename selected item
F3 Find next
Shift+F3 Find previous

✨Various Features

One-Time Data

There are two types of data: Permanent Data and One-time Data.

One-time data is data that is automatically deleted from the data tree when it is read from the data tree for pasting. Data that is automatically added to the data tree in Storage Mode is one-time data.

Clicking on the icon of the one-time data item in the data tree view changes it to permanent data.

History Folders

There are two types of folders: Normal Folders and History Folders.

To create a normal folder, select [New] → [Folder] from the Data Tree View menu. If you select a folder and choose [Edit] from the menu, you can toggle between a normal folder and a history folder in the Edit dialog.

The history folder automatically saves text that is copied to the clipboard. By default, up to two of the most recently copied items are saved, and earlier items are automatically deleted. This number can be set in the optional property Count=<Number> for each folder.

Stock Mode

In stock mode, text copied to the clipboard is automatically added to the Charu3 data tree as one-time data, and when a paste operation is performed, the text is extracted from the tree one by one in order for pasting.

The order in which data is retrieved can be selected from the [Stock Mode] tab in the [Settings] menu by selecting "First-In First-Out (FIFO)" or "Last-In First-Out (LIFO)".

Optional Properties

Optional properties that can be set for data and folders are in the form property-name=value and include the following

All data and folders
property-name value Description
Macro format-name Specifies the name of the DLL that performs replacements in data formats other than Charu3
BeforeKey key-descriptor Keys to press before pasting; e.g.: BeforKey=tab;5
AfterKey key-descriptor Keys to press after pasting; e.g.: BeforKey=enter;5
HotKey hotkey-descriptor Set a hotkey to open the Data Tree View and select this item
DirectCopyKey hotkey-descriptor Set a hotkey to copy the selected text to this item
All folders
property-name value Description
Move yes or no yes moves selected and pasted data to the top of the folder. The default is no.
History folders
property-name value Description
Count Positive integer Maximum number of data to store
ArchiveUnit Positive integer Unit of measure for archiving stored data
ClearRec yes or no If set to yes, previous history data will not be loaded when starting Charu3. The default is no.
Lock yes or no If yes, data is permanent data; if no, data is temporary data. The default is yes.
Number yes or no Whether to number data names. The default is yes.
TitleLen Positive integer Length of the name of the data to be stored. Default is 32 (bytes).
DuplicationCheck yes or no If yes, the same data as last time will not be imported. The default is yes.

Snippets

Above the text box in the Edit data dialog, there is a snippet list (① in the figure). Selecting a snippet name from this list will insert the snippet data at the cursor position of the text box.

Using ②, you can select a file and insert its path name at the cursor position of the text box.

edite

The list of snippets can be customized by editing _locale\en\snippets.json (if your Windows display language is not Japanese) in the Charu3.exe folder.

Replacements (macro)

The following replacements are applied to text between <charuMACRO> and </charuMACRO> in the data. <charuMACRO> and </charuMACRO> will not be inserted.

Note: Although it looks like XML at a glance, it cannot be nested.

String to be replaced Result
$Y replaced by the current 4-digit year
$Y replaced by the current 2-digit year
$M replaced by the current 2-digit month
$MM replaced by the current month (3-letter abbreviated English Jan, Feb, Mar, ...)
$D replaced by the current 2-digit day of the month
$ddd replaced by the current day of the week in English (Sunday, Monday, Tuesday, ...)
$dd replaced by the current English day of the week (3-letter abbreviation Sun, Mon, Tue, ...)
$d replaced by the current day of the week in Japanese (日, 月, 火, ...)
$H replaced by the 2-digit hour (24-hour notation) of the current time
$h replaced by the 2-digit hour (12-hour notation) of the current time
$m replaced by the 2-digit minute of the current time
$s replaced by the 2-digit second of the current time
$AMPM replaced by AM or PM of the current time
$ampm replaced by 午前 or 午後 (Japanese) of the current time
$SEL replaced by the selected text in the active window
$CLIP replaced by the clipboard contents
$SHELL<command-line> runs command-line, replaced by empty
$RELATE<pathname-of-a-file> opens the file with the associated program, replaced by empty
$PLUG-IN<DLL,string> calls DLL with string as a parameter and replaced with the string returned by the DLL

Plugins

Data compatibility plugins

Create a subfolder rw_plugin in the Charu3.exe folder and put the data compatibility plugin in it, it will be detected automatically.

However, I have not confirmed the functionality of the previous plugins. Also, I found bugs in the sample sources for the old Charu3 plugin. Therefore, we do not consider older plugins to be completely safe to use, as they may contain bugs.

General plugins

We have noticed that old plugins do not work properly with the Charu3 SE. So, I tried to rebuild those plugins again in the current development environment and found that they could not be built due to missing source code. I have tried to contact the original author, but have not received a response yet.

Searching

You can start a data search from the data tree view menu or by pressing Ctrl+F.

In addition to this normal search, you can select an item by typing its name. For example, in the data tree view, typing p will take you to an item whose name begins with the letter "p". Then quickly typing i will take you to an item whose name begins with "pi". In this way, typing the name of an item will take you to that item. This feature can be adjusted in the [Data Tree View] tab of the [Settings] menu.

Customizing Data Tree View Style

You can customize the style of the data tree view by going to [Settings] → [Style].

The [Read Style Settings File] button in the dialog allows you to load a json file like the one below. Each value you load will be reflected in the dialog.

{
	"backgroundColor": "#ffffee",
	"borderColor": "#ff9900",
	"fontName": "Arial",
	"fontSize": 90,
	"iconFile": "itemIcon.bmp",
	"textColor": "#663300"
}
Data Tree Item Icon

In [Settings] → [Styles], you can specify a BMP image file with 22 18x18 pixels icons side by side, 18 pixels high and 396 pixels wide for 'Icon Set File'. The icons represent the following data or folders from left to right.

  • Normal folder (closed)
  • Normal folder (open)
  • History folder (closed)
  • History folder (open)
  • One-time data (closed)
  • One-time data (open)
  • General data (closed)
  • General data (open)
  • Data containing date and time (closed)
  • Data containing date and time (open)
  • Data to run application (closed)
  • Data to run application (open)
  • Data to open a file with the default program (closed)
  • Data to open a file with the default program (open)
  • Data containing text in selection (closed)
  • Data containing text in selection (open)
  • Data containing text in clipboard (closed)
  • Data containing text in clipboard (open)
  • Data containing plug-in call (closed)
  • Data containing plug-in call (open)
  • Data that performs keystrokes (closed)
  • Data that performs keystrokes (open)

Green (#00FF00) pixels are treated as transparent.

💡Tips and Tricks

Location of User Settings File

Normal mode (AppData mode)

The location of the user settings save file settings.json and the state save file state.json is the folder %AppData%\Charu3. In Windows 10 %AppData% is usually C:\Users\(user name)\AppData\Roaming. Normally AppData is a hidden folder, so to view it in Explorer, select the Show hidden files option in the View tab of Explorer.

Portable mode

If you place a plain file named FORCE_INTO_PORTABLE_MODE (empty or otherwise) in the folder of the Charu3.exe to be executed and run it, it will be in portable mode, and the user settings save file and the status save file will be read and written to the folder with the Charu3.exe instead of %AppData%\Charu3 folder.

Run automatically at Windows startup

Press the Windows logo key + R key, type shell:startup and select OK. This will open the Startup folder. Paste the Charu3.exe shortcut there.

Entering Tabs in the Edit Dialog

You can enter tabs using the Ctrl + Tab keys.

The Edit dialog is too narrow

You can drag the border of the dialog to enlarge the data editing column.

"Location to Pop-up" setting in the [Data Tree View] tab under [Settings]

Selecting "By the Caret" causes the data tree view to appear by the caret (text entry cursor) in the active window. Unfortunately, this does not work as expected in all applications. For applications that do not report the caret position, the data tree view will appear in the upper left corner of the window.

"Delay" settings in the [Key Event] tab under [Settings]

There are options to set the delay time for copying and pasting. The smaller these values are, the faster and more comfortable the pasting will be. However, if they are too short, pasting may not work properly. The default value is 50 milliseconds, but this just follows the original Charu3, and we do not know if this time is appropriate for your system. Please try to set it to a range where the pasting can be performed normally.

Restrict grabbing from the clipboard

When Charu detects new text on the clipboard, it will store (stock) it or put it in the history folder. Add the filename or full pathname of the program you want to ignore to the [Stealth Programs] list in the [Advanced] tab of the [Settings] menu. For example, you might want to register a password manager application.

Settings for Emacs

The default setting for Emacs window titles is (multiple-frames "%b" ("" invocation-name "@" system-name)), but I have changed it to

;; frame title
(setq frame-title-format '(multiple-frames ("%b - Emacs@" system-name) ("Emacs@" system-name)))

This will ensure that Emacs@ is included in the window caption for both single and multiple frames.

Then, if you add a key setting for windows whose "window name contains Emacs@" in the "Configuration in specific windows" of the "Key Event Settings" tab in the "Settings" menu of Charu3, you should be able to use Charu3 with Emacs as well.

You may want to set Ctrl+Y as the key to use for pasting. (unless you have changed your Emacs key bindings)

As for the key to use for copying, we have to think a bit. The first thing that comes to mind is Alt+W (kill-ring-save), but this command gives an error if there is no selection (no mark set).

As for the key to use for copying, we have to think a bit. The first thing that comes to mind is Alt+W (kill-ring-save), but this command gives an error if there is no selection (no mark set). So I created my own copy function for Charu3 and assigned it to Ctrl+Alt+X as follows.

;; copy region for charu
(global-set-key (kbd "C-M-x") '(lambda ()
				 (interactive)
				 (if (use-region-p)
				     (let ((str (filter-buffer-substring (region-beginning) (region-end)))) (kill-new str))
				   (kill-new ""))))

This is perfect for Emacs support👍