Ibycus Keyboard Layout

Ibycus Keyboard Layout is (as far as i understand) an implementation of Ibycus TeX package, which has a fairly complete set of the symbols needed for manuscripts, papyri and inscriptions. It provides LibreOffice / OpenOffice users an easy way to write in Ancient Greek (and monotonic Greek) without having to install any other S/W or keyboard driver. Its input is a close relative of BetaCode, substituting slashes with apostrophes for acute and grave accents.

Ibycus is based on post-positive accentuation, which makes it much closer to Unicode than some of the other legacy Greek encodings which used pre-positive accentuation.

Post-positive accentuation means that one would always type the letter first and then any diacritics to get the desired code-point, as seen in the following table.

"a" typed "α" displayed
")" typed "α" turns to ""
"=" typed "" turns to ""
"|" typed "" turns to ""
Typing the latter "" using Ibycus Keyboard Layout

Diacritics must be typed in a certain order, as seen in the implementation table below. Diacritics are grouped in three groups depending on the order they must be typed. So, one would type an "order 1 diacritic", followed by an "order 2 diacritic" and an "order 3 diacritic" to get the desired letter. Failing to obey this order would lead to getting different letters than the ones intended.

Using the Layout ^

AncientGreek adds an icon in the Main Toolbar which can be used to activate the Layout per document and a keyboard shortcut can be used to toggle Greek Input on and off. Finally, a suitable font is used to display Ancient Greek text (through the use of character styles).

Ibycus Keyboard Layout , as most of AncientGreek Macros is meant to be used on Writer's text input mode only. So, if you try to activate it on the Print Preview window or on the HTML source code editor, for example, a warning message will appear:

Warning message on Manjaro Linux

The "I" icon ^

The "I" icon ("I" for Ibycus) which resides on LibreOffice / OpenOffice "Main Toolbar" will change its picture to indicate the layout's state, as follows:

Icon Layout
ib_red_16.png ON ON Working
ib_black_16.png ON OFF Working
ib_16.png OFF OFF Working

The "I" icon vissibility must never be manually tampered with. Should one fail to comply with this restriction, one may render "Ibycus Keyboard Layout" unusable.

Special key combinations^

When Greek input is active, it accepts the following special key combinations:

Key combination Action
Windows / Linux Mac OS X
Ctrl-7 ⌘7 Opens the help page.
Ctrl-8 ⌘8 Opens the Character Insertion dialog.
Ctrl-9 ⌘9 Opens the layout's image in the OS's default application.

Ibycus for Antioch users^

Ibycus Keyboard Layout has always had an Antioch compatibility mode, which was found to not be 100% complete.

These incompatibilities have been addressed with help provided by Dr. Ralph Hancock, one of the authors of the Antioch extension for Microsoft Word.

In order to enable the "Antioch compatibility mode", one would just go to the Ibycus Keyboard Layout Configuration (menu "AncientGreek / AncientGreek Configuration", tab "Ibycus") and check the "Antioch Style Keys" option.

More info can be found at the relevant page, section: 6. Using Antioch Style Keys.

Using styles and fonts^

Starting with v. 1.4-rc1, AncientGreek uses character styles to provide a way to customize the way Ancient Greek text appears on the document. Furthermore, v. 1.5-beta4 provides the way to disable the use of fonts and style altogether.

AncientGreek uses two special character styles:

  1. AncientGreek: Normal text
  2. This character style is used by Ibycus Keyboard Layout when it's inactive (it's the "inactive style"). Its settings are identical to the default OpenOffice/LibreOffice settings, so that text written in your native language is the same no matter if you use the Layout or not.
  1. AncientGreek: Ἀρχαία ἑλληνικά
  2. This character style is used by Ibycus Keyboard Layout when it's active (it's the "active style"). Its settings are identical to the default OpenOffice/LibreOffice settings, with two exceptions: its Font and its Language.
  3. Setting the Font (its value is an AncientGreek parameter) permits you to use a suitable font for displaying Ancient Greek text. Setting the Language to Ancient Greek, enables you to use AncientGreek spell check and hyphenation features.

Both of these character styles are available for customization at the side bar, but I would recommend not to manually change their settings. The "inactive" character's style properties can be changed by changing your default settings, while the "active" character's style properties can be changed using "Ibycus Keyboard Layout Configuration". If you fail to do so, you may experience font size inconsistencies or other text formatting problems.

How it works^

Whenever Ibycus Keyboard Layout is activated, AncientGreek preforms the following checks:

  1. Styles existence check
  2. AncientGreek checks whether the "active" and "inactive" character styles exit, and creates them if they are not there.
  1. Font existence check
  2. AncientGreek checks whether the font defined for the "active" character style is already installed or not, and if it's not, it prompts the user to proceed with its installation, or to set a different font altogether. This is part of "Ibycus Keyboard Layout Configuration".
  3. AncientGreek originally sets Alexey Kryukov's "Old Standard TT" as default font for the "active" character style. Furthermore, it includes the font (actually the font family consisting of three files) in its installation, so that it can be installed and used.
  4. Changing the font can be done at any time from the AncientGreek main window, entry "Ibycus Keyboard Layout", using the "Font Definition" option.

When everything is in order (both the styles and the font are ok), AncientGreek sets the style of any character typed to Ibycus Keyboard Layout "active" character style, effectively changing the font of the character and permitting you to start typing in Ancient Greek.

When the Layout is deactivated, AncientGreek sets the style of any character typed to Ibycus Keyboard Layout "inactive" character style, effectively resetting the font of the character to its default value; that is to your default font, as set in OpenOffice/LibreOffice (Options... / LibreOffice Writer / Basic Fonts (Western) for LibreOffice or Options... / OpenOffice Writer / Basic Fonts (Western) for OpenOffice), or the relevant template settings (in case the document was created based on a template).

Escaping characters^

Escaping characters is the only part of Ibycus Encoding that is actually using pre-positive accentuation (the modifier key is typed before the character it will modify).

Ibycus Keyboard Layout uses the Backslash ("\") character to denote that an escaped character will follow. In this way, typing "" will produce "ϖ".

An AncientGreek specific addition uses the Tilde ("~") character to denote that the existing character on the right of the cursor has to be escaped. For example, typing Tilde ("~") character after the "" in the word "ἀπό" (e.g. "ἀ~πό"), will convert "π" to "ϖ", resulting in "ἀϖό".

In case such a conversion is not possible, the Tilde ("~") character will be inserted.

Single quote - apostrophe and parenthesis^

Inserting a single quote - apostrophe or a parenthesis right after a letter is not always easy because of the special function of the relevant keys: "'", "`", ")", (". The problem is more obvious when typing after a wovel.

Consider the following situation trying to type δι’ :

Typed Displayed Typed Displayed
di δι di δι
' δί
(not intened)
  (SPACE) δι 
    ' δι 
    ' δι 
  deleting   δι’
(not practical)

Also trying to type τα) :

Typed Displayed Typed Displayed
ta τα τα τα
) τἀ
(not intened)
  (SPACE) τα 
    ) τα )
  deleting   τα)
(not practical)

In order to address this problem, this implementation of "Ibycus Keyboard Layout" accepts escaping as shown in the following table:

Escaped char Displayed char

(open single quote)

(close single quote - apostrophe)
\( (
\) )

In this way, δι’ and τα) would be typed as follows:

Typed Displayed Typed Displayed
di δι ta τα
\ δι\ \ τα\
' δι’ ) τα)

Preserving medial sigma^

When typing a medial sigma before a space or a punctuation mark, the layout changes it to a final sigma. As prof. Pierre A. MacKay has pointed out, this is not always desirable; there needs to be a way of forcing a medial sigma before a space or a punctuation mark.

The original "Ibycus Keyboard Layout" implementation used the sequence "s|" to achieve this, and this is what this implementation uses too.

Typing σ. would be done as follows:

Typed Displayed
s σ
| σ
(Nothing displayed)
. σ.

As one can see, typing "|" (Iota Subscript for Ibycus) results in displaying nothing (the key could be considered as a "dead key").

Typing breve, macron and overline ^

Since v. 1.4-rc1 it is possible to type the breve, macron and overline characters, using the following keys:

Character Key
Breve (˘) \u *
Metrical breve (⏑) \u+
Macron (¯) \-
Overline (‾) \_

* This is a standard "Ibycus Keyboard Layout" key, existing in previous releases.

There's nothing more to say about the overline character, other thatn it gets easier to manually type Nomina Sacra Expressions. But there's a lot to say about the breve and macron characters.

Combining breve and macron ^

As I am sure you already know, α, ι and υ can either have a breve or a macro sign over them (can either be "μακρά" or "βραχέα"), depending on several rules. The Unicode Standard provides special characters for these and AncientGreek now provides a way to type them.

When a "Iota Subscript (|)" character is typed after a breve (˘⏑) or a macron (¯) character, then:

  1. If the previous character is an α, ι or υ (and Α, Ι or Υ), the corresponding character will be inserted (ᾰ, Ᾰ, ῐ, Ῐ, ῠ, Ῠ, ᾱ, Ᾱ, ῑ, Ῑ, ῡ or Ῡ).
  2. In any other case, a combining (also called zero length) breve or macron will be inserted, regardless if the combination is valid or not. For example, you can have a η̆, η̄, ο̄, ω̄, ω̆ and even γ̄, κ̆ and Ρ̆. It's up to the user to make sure the combination is valid.

Let's see an example: the table on the left shows the way to insert iota with breve and the table on the right shows the way to insert eta with macron.

Typed Displayed Typed Displayed
i ι h η
\ ι\ \ η\
u ι⏑ - η¯
|     (U+1FD0) | η̄    (U+03B7 U+0304 )
Inserting a precomposed breve Inserting a combining macron

As you can see, in the first case the result is a single character (the character is an already existing Unicode code-point). In the second case, we actually end up with two characters (displayed as one), since the combination does not correspond to a Unicode code-point.

In any case, the sequence is the same: you type a "backslash", a "u" (for breve) or a "dash" (for macron) and then a "vertical bar".

Correction function ^

It has been suggested to me to implement a "correction function" for "Ibycus Keyboard Layout", the way Ralph Hancock's Antioch "correction function" works. So here it is:

This function makes it possible to easily correct typing mistakes relevant to the accentuation and breathing marks of ancient Greek. This is how it works:

The input (the accent or breathing mark typed) is compared to the character that's to the left of the current cursor position (the previous character), and

  1. If the previous character already contains the "input", it will be removed.
  2. If the previous character already contains:
  1. A breathing mark and "input" is a breathing mark, the character's breathing mark will be changed to "input".
  2. An accentuation mark and "input" is an accentuation mark, the character's accentuation mark will be changed to "input".
  3. A punctuation mark and "input" is a punctuation mark, the character's punctuation mark will be changed to "input".
  1. If the previous character does not contain the "input", the character's breathing, accentuation and punctuation marks will be replacded by the "input".

This may be a bit confusing, so here are some examples (you may have to zoom in to see them):

Previous Char. Key Pressed Result
ά ' α
ά `
ΐ ¨ ί
¨ ϊ

Due to the complexity of the "correction function" and the length of the substitution table, there may still be errors in the implementation (characters missing or incorrectly substituted). Please do report back to me any such discrepancy you may find.

Undo and Redo Actions ^

Undoing and redoing changes is a vital part of typing. Both of these actions already work with LibreOffice/OpenOffice, but as far as "Ibycus Keyboard Layout" is concerned, retaining a selection after executing the redo or undo action is very annoying, since one has to eliminate this selection (probably by pressing the right arrow key), in order to keep typing.

AncientGreek tries to solve this issue by installing its own way of performing the said actions, by intercepting undo and redo shorcuts (Ctrl-Z and Ctrl-Y on Windows and Linux and ⌘Z and ⌘Y on Mac OS) and eliminating the selection after performing the action.

This behavior is only enabled when "Ibycus Keyboard Layout" is active; otherwise undoing and redoing will operate as originally designed.

Layout Activation ^

Ibycus Keyboard Layout can be activated by:

Ibycus Keyboard Layout activation on Manjaro Linux (MATE)

Known Issues ^

  1. LibreOffice / OpenOffice widgets cannot use the Layout. Since v. 1.4-beta5 the AncientGreek Search and Replace Dialog can be used as an alternative to the built-in "Search" and "Search and Replace" dialogs.
  2. Under certain circumstances (such as canceling a "Document Close" action or displaying the "Page Preview") the Layout gets disabled. One must use the shortcut or click on the ib_16.png on the "Main Toolbar", or use the "Ibycus Keyboard Layout" entry on "AncientGreek Menu", or use "AncientGreek Main Window" to enable it again.

Styles synchronization^

When editing a document which was previously created using Ibycus Keyboard Layout styles, chances are that the layout's styles font settings at that time are different to the ones currently used.

This means that Ibycus Keyboard Layout will use the styles (and fonts) saved in the document, which may create confusion as to what fonts are currently used and why.

AncientGreek will detest this situation, when the layout is activated (going from ib_16.png to ib_red_16.png), and display the font synchronization dialog (shown bellow) to inform and help the user to resolve these inconsistencies.

Font synchronization dialog on Manjaro Linux

The following options are available:

  1. Keep document styles and never ask me again
    When this option is selected, Ibycus styles' fonts will remain as they are, and AncientGreek will never ask you again about fonts inconsistencies on this document. This is done by creating (and setting) a custom document property. The property (and its value) is shown in the following image.

Document custom properties

  1. If you want to revert this action, you just have to delete this custom property, or change its value to "No" or "False" (depending on your implementation), from "File / Properties".

In some cases, this property does not show up in the properties dialog. The safest way to display it is to go to "File / Properties", right after you open the document.

  1. Update styles
    This option, when selected, will just update Ibycus document's styles.
  2. If the document is based on a user creted template file, AncientGreek will ask if this template file should also be cleaned.

Asking confirmation to clean template 'MyTemplate.ott'

  1. Cleaning a template file means that both Ibycus styles will be removed from it, so that when a new document based on this template is created, there will be no styles inconsistencies. In the image above, the current document is based on the template file called 'MyTemplate.ott', so AncientGreek asks to clean it.
  1. Reset and update styles
    This option, when selected, will first reset Ibycus document's styles and then update their font. This means that, any customization done on any of the Ibycus styles will be removed. For example, if you have set "AncientGreek: Ἀρχαία ἑλληνικά" to be bold or underlined, after selecting this option, it will no longer be so.
  2. If cleaning the template file is possible, the user will be asked to do so as well.
  1. I want to look into it and be asked again later
    When this option is selected, AncientGreek will take no action on the styles, but will display an information dialog, reporting the fonts situation for the document. This dialog is shown bellow.

Document's styles font info

  1. In this example, both Ibycus Keyboard Layout styles already existing in the document, are set to use the "Linux Libertine G" font, but Ibycus Keyboard Layout settings are set to use "Libertinus Serif" and "AncientGreek" fonts for its "Latin" and "Ancient Greek" style, respectively.
  2. The "font synchronization" dialog will be displayed again the next time Ibycus Keyboard Layout gets activated (going from ib_16.png to ib_red_16.png).
  3. By the way, an easy way to deactivate Ibycus Keyboard Layout, is to try to close a modified document, and click "Cancel" or press "Escape," when asked to save it.

Layout Implementation^

If you are using the "Modern Greek Ibycus Keyboard Layout Variant", please visit this page.

AncientGreek fully implements the Ibycus Keyboard Layout and extends it as follows:

ASCII character (Lowercase) ASCII character (Uppercase) Greek
ASCII character (Lowercase) ASCII character (Uppercase)
Alpha a A Nu n N
Beta b B Xi c C
Gamma g G Omicron o O
Delta d D Pi p P
Epsilon e E Rho r R
Zeta z Z Sigma s S J
Eta h H Tau t T
Theta q Q Upsilon u U
Iota i I Phi f F
Kappa k K Chi x X
Lambda l L Psi y Y
Mu m M Omega w W
Digamma v V Stigma v+ V+
Lunate sigma c+ C+ Koppa (archaic) k+ K+
Sampi s+ S+      
Question mark   ? Ano teleia ;  
Key Unicode name Order Key Unicode name Order
( Left Parenthesis Rough breathing (DASIA) 1 ' Single quote Acute (OXIA) 2
) Right Parenthesis Smooth Breathing (PSILI) 1 ` Grave Grave (VARIA) 2
+ Plus General modifier (DIERESIS, etc) 1 = Equals Perispomeni (PERISPOMENI) 2
| Bar Iota Subscript (YPOGEGRAMMENI) 3 ! Exclamation (COMBINING DOT BELOW) 3
Other Symbols
Key Unicode name Key Unicode name
` Grave Grave accent (VARIA) ' Single Quote Acute accent (OXIA)
`` Open single quote '' Close single quote / apostrophe
``` Open double quote ''' Close double quote
. Period Period - Dash Hyphen
.. Two Dot Leader -- En Dash
... Ellipsis --- Em Dash
< Left Angle Bracket > Right Angle Bracket
<< Left Single Guillemet >> Right Single Guillemet
<<< Left Guillemet >>> Right Guillemet
Escaped Symbols
Key Unicode name Key Unicode name
\v Lower Greek Numerical Sign \V Upper Greek Numerical Sign
\u Breve \= Macron
\[ Open Floor Bracket \] Close Floor Bracket
Escaped Symbols by AncientGreek
Key Unicode name Key Unicode name
\c Dagger \C Cross of Jerusalem
\cc Double Dagger \CC Cross of Lorraine
\ccc Orthodox Cross \! Exclamation
\( Left Parenthesis (after a vowel) \) Right Parenthesis (after a vowel)
Open single quote (after a vowel) \'
Close single quote (after a vowel)
\X Chi-Ro j
Final Sigma
\b Greek symbol beta
(curled beta)
\+ Plus sign
\e Lunate epsilon \ee Reversed lunate epsilon
\h Archaic letter heta \H Archaic capital letter heta
\k Greek symbol kappa \K Greek capital symbol kappa. (This is actually greek capital kai symbol used as greek capital kappa symbol in AncientGreek)
\m Greek letter san \M Greek capital letter san
\q Greek symbol theta \Q Greek capital symbol theta
\j Greek letter yot \S
Greek capital letter yot
\U Greek upsilon with hook symbol \r Greek symbol rho
\UU Greek upsilon with acute
and hook symbol
\f Greek symbol phi
\UUU Greek upsilon with diaeresis
and hook symbol
\p Greek symbol pi
\z Greek letter sho \Z Greek capital letter sho
\j| Greek reversed lunate sigma (editorial) symbol \J| Greek capital reversed lunate sigma (editorial) symbol
Extra Letters by AncientGreek *
k++ Greek letter koppa K++ Greek capital letter koppa
s++ Greek archaic letter sampi S++ Greek archaic capital letter sampi
v++ Greek archaic letter pamphylian digamma V++ Greek archaic capital letter pamphylian digamma
s|| Greek small dotted lunate sigma (editorial) symbol S|| Greek capital dotted lunate (editorial) sigma symbol
s||| Greek small reversed dotted lunate sigma (editorial) symbol S||| Greek capital reversed dotted lunate (editorial) sigma symbol
r| Greek rho with stroke symbol r|| Reference Mark
l| Section sign h+ Greek letter h **

* These symbols are AncientGreek specific. They do not exist in the original Ibycus Keyboard Layout.

** PUA code point, may not render correctly (depends on the font used), may not correctly haphynate.

Layout Image^

Since "a picture is worth a thousand words", here is an image of the layout. It is not supposed to teach one how to use the layout, but it can be used as a guide, a reminder of specific input.

AncientGreek Ibycus Keyboard Layout Implementation.gif

When the layout is active, one can open the image by typing Ctrl-9 (⌘9 on Mac OS).

It should be noted that the image depicts the key configuration of the original layout, before any key customization is done.

Character Insertion dialog^

Ibycus Keyboard Layout is really handy, but it poses a certain difficulty to remember all the key combinations that would produce characters which are "out of the ordinary".

The Character Insertion dialog (shown bellow) comes to help in this respect.

The Character Insertion dialog on Windows 8.1

The dialog can be activated by pressing "Ctrl-8" on Windows and Linux or "⌘8" on Mac OS, given that the layout is active.

The available characters are divided in several groups, so that the dialog size remains within reasonable limits.

Characters encoded in a Unicode PUA are denoted with an asterisk , referring to a warning message that this character may not render correctly.

Clicking on a character button closes the dialog and inserts the corresponding character to the document.

About PUAs (Private User Areas)^

Unicode PUAs (Private User Areas) are ranges of code points that, by definition, will not be assigned characters by the Unicode Consortium. The code points in these areas cannot be considered as standardized characters in Unicode itself.

Many people and institutions have created character collections for the PUA. Some of these private use agreements are published, so other PUA implementers can aim for unused or less used code points to prevent overlaps. Several characters and scripts previously encoded in private use agreements have actually been fully encoded in Unicode, necessitating mappings from the PUA to other Unicode code points.

Some of the more well-known and broadly implemented PUA agreements are maintained by the ConScript Unicode Registry (CSUR), the Medieval Unicode Font Initiative (MUFI), SIL International (formerly known as the Summer Institute of Linguistics) and TITUS (German "Thesaurus Indogermanischer Text- und Sprachmaterialien").

In practice, the correct rendering of a PUA character depends entirely on the font set for this character. If the font implements this character, it will render correctly. If it's not, the program will try to find a suitable substitute (as it always does in this case), but the possibility of failure to do so increases due to the character's definition (within a PUA, that is).



If a table is truncated, then you can see all its content by scrolling it to the right and back.