Git Product home page Git Product logo

extra-keyboards-for-chrome-os's Introduction

Extra Keyboards for Chrome OS

A collection of extra keyboard layouts and input methods for Chrome OS.

Installation

GitHub

  1. Open a new tab and go to chrome://extensions.
  2. Toggle "Developer mode" on (it is in the top right corner of the extensions page).
  3. Click "Load unpacked extensions...".
  4. Pick the directory containing the manifest for the extension you want to enable and click "Open".
  5. Go to chrome://settings/languages.
  6. Add the relevant language, e.g. French for the bepo keyboard layout.
  7. Select the relevant keyboard layout and input method.
  8. Optionally, remove any keyboard layouts or input methods that are no longer required.

Chrome Web Store

Several of the extensions are available on the Chrome Web Store.

For development

  1. Go to chrome://extensions.
  2. Click on "Load unpacked extensions...".
  3. Pick the directory containing the manifest for the extension you want to enable.

How to Use

After enabling multiple keyboard layouts an icon will appear in the system tray with an abbreviation for the language of the currently enabled layout. If your default layout is the standard US keyboard with the English layout, the text will read "US". Any other layout also using the English language will read "EN". This can lead to confusion if there are multiple layouts enabled for the same language.

Once you have loaded and enabled the extension you can select a specific layout or cycle through the available layouts in a few ways.

Selecting

  • Click the time on the menu bar.
  • Click the button labeled "Keyboard" and select the desired layout.

Cycling

  1. Press Ctrl+Shift+Space to cycle through the enabled keyboard layouts.
  2. Press Ctrl+Space to toggle between the most recently used keyboard layouts.

Known Limitations

  • These extensions are not allowed on the login/lock screen.
  • These extensions are not allowed on password fields.

Contributing

If you would like to create a new layout or modify an existing one, please see the Contributing documentation.

extra-keyboards-for-chrome-os's People

Contributors

bcmills avatar bderrly avatar beaufortfrancois avatar colmbuckley avatar damz avatar derat avatar dhopfm avatar ferdnyc avatar gromgull avatar hickford avatar irvdel avatar ivant avatar jpalmer avatar keisari-kumkvatti avatar kenjibaheux avatar lapingvino avatar lehmannro avatar leoazul avatar matusmarcin avatar nagornyi avatar tdierks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

extra-keyboards-for-chrome-os's Issues

Custom keyboard layouts

I would like to add a keyboard layout not listed in the options.

Like a custom keyboard layout specifically.

Status

None of these extensions work anymore for me can anyone give word if they have any success with a dvorak-intl or compose key on ChromeOS

Nepali keyboard

Hello,

I wanted to create a modified version of existing Chrome OS keyboard for Nepali language to make it consistent with the one available in Windows. Many Keystrokes of the Chrome keyboard are different with the one available in Windows so, people familiar with the Windows input are not able to use the Chrome keyboard efficiently.

I would be grateful if I could get guidelines or tips to get stared. Thanks a lot.

Thanks a lot!

ComposeKey extension can cause stuck keys

For reference: crbug.com/840155

There's an issue when using Linux for Chromebooks when the ComposeKey extension is enabled. Linux for Chromebooks (also called Crostini) runs Linux applications on Chromebooks inside a VM/container. We use the wayland compositing server in Chrome and receive input events from it. There's been reports from users that sometimes when they went into a Linux application that there would be keys repeating themselves, even though they weren't being pressed.

We did some more debugging of this, and then found a correlation to the ComposeKeys input method. It is required to be enabled in order for the bug to be reproduced; and given it's handling of keyboard events...this makes a lot of sense that it's the cause. It's doing something where it ends up leaving keys in a pressed state sometimes, even though they are no longer being pressed. This doesn't manifest as a problem in Chrome or other apps AFAICT, and even within Linux only manifests itself with some X11 apps.

To reproduce the issue, do the following:

  1. Setup Linux (Beta) on a Chromebook (it's in Settings)
  2. Download VSCode or Sublime (these are 2 apps that can reproduce the issue pretty well) and install that into the Linux environment.
  3. Run VSCode or Sublime and alt+tab back and forth (or switch focus with the mouse) and do various keyboard operations and sooner or later when you switch into the Linux app you will see a repeating key occurring. It's repeating because the list of pressed keys being maintained by the Chrome compositor has a stuck key in it.

can characters be added to ComposeKey?

can Ƀ (unicode is U+0243) be added? It's used by some as a symbol for bitcoin. the ƀ which is sometimes used for 'bits', a smaller denomination is /b, but there doesn't seem to be any way to enter Ƀ.

Request to add Ŭ and ŭ

Currently Esperanto users are making do with makeshift solutions for entering the Esperanto-specific characters Ĉĉ Ĥĥ Ĵĵ Ŝŝ Ŭŭ.

As it so happens, the ComposeKey extension includes Ĉĉ Ĥĥ Ĵĵ Ŝŝ already.

The only one missing is Ŭŭ.

If Ŭŭ were also added, then this same extension would work nicely for Esperanto too, simplifying life for everybody.

Security

Please could you explain how the extension/manifest file work from the security point of view? How can I assure that the extension is not capturing keystrokes? Thanks!

Why the need for US English to be selected as well?

Hello,

I'm about to fork composekey for my own use (to mimic actual Xorg sequences, maybe add a few I'd like, and to add availability for my Canadian French layout in addition to US English). Before I do so, I'd like to understand if a current limitation is insurmountable, to make sure I do things in the best way possible.

Right now, we must leave US English enabled, and additionally enable ComposeKey as keyboards, and somehow ComposeKey will do its work when selected (Alt-Shift) but not when US English is selected. I can't quite figure out how that works. I looked at the manifest and code and also couldn't see where the label "EN*" was defined.

This also means that if I duplicate this process for say 3 languages, now I'd have to cycle through 6 layouts in everyday use instead of the 3. (Ctrl-Space would help after each was used once in a session I assume, though.)

So I'm wondering, is keeping US English enabled absolutely necessary or could there be a way to stand alone? Would standing alone involve only duplicating US English's "typing" keys or also (not sure how) all of ChromeOS' keyboard shortcuts?

Thank you for your time.

adapt lushootseed keyboard for Hawaiian

Aloha pumehana kākou. I'm trying to assist our Hawaiian immersion students and others by creating a Hawaiian keyboard for Chrome. I've previously worked with Apple and Microsoft to create Hawaiian keyboards that are included in their respective OS'.

I've spent a few days digging through this site (thanks so much to you all), and have a basic understanding of how these work. What I can't seem to figure out is how to structure the lut variable section properly. Basically all we need is to have a modifier key so that we can add a macron to each vowel (both upper and lower case), and generate a single, curly quote when that modifier key and the apostrophe is generated (this is our glottal stop). It seems the most logical modifier would be right-alt as it generates diacritics in the Intl keyboard, and this is also how we did it on the Windows Hawaiian keyboard.

Any kōkua (help) is greatly appreciated and will benefit many! Once completed, if any of you know how it might be possible to have a Hawaiian keyboard added to the Chrome OS we would be incredibly grateful! Mahalo!
Keola

More documentation / UK keyboard with swapped "/@

Hello,

Would it be possible to post a link to documentation?

I'd like to create a UK keyboard that has " and @ swapped. (There are basically two typed of UK keyboards, and they differ in a handful of keys, including " and @).

Using this approach, it would also seem possible to 'intercept' certain control/alt key combinations. Perhaps even search key combinations - but hard for me to figure out without documentation.

Is it possible to remap the 'top row' as well? Of course they can be turned into function keys, but then for some functions keys you would still want brightness up/down, so I wonder whether they have a keycode - thanks!

Compose Key not working in Crostini applications

compose-key is working for me in Chrome Apps, in the Crostini Terminal, but not in any of my windowed Linux apps.

I saw that compose-key is now available for UK keyboards. Yay. This is wonderful, because of course my workaround of using the Text Blaze Chrome extension (which is really good by the way), doesn't work for any Crostini keyboard entry.

So I installed the compose-key Google plugin, set it up for UK keyboard, saw it working in Terminal, thought everything was right with the world, only to find that it does nothing in half a dozen Linux apps I've tried.

In an ideal world, both the compose-key and Text Blaze extensions would just work across all apps.
So I'm still stuck in the UX hell that is side-by-side-preview markdown editing for now I guess.

Google Chrome | 77.0.3865.105 (Official Build) (64-bit)
Platform | 12371.75.3 (Official Build) stable-channel eve

Missing ≤ and ≥ "LESS/GREATER-THAN OR EQUAL TO" (U+2264/2265)

These frequently-used characters are surprisingly missing.
Quoting /usr/share/X11/locale/en_US.UTF-8/Compose from my Linux machine:

<Multi_key> <less> <equal>      : "≤" U2264 # LESS-THAN OR EQUAL TO
<Multi_key> <greater> <equal>   : "≥" U2265 # GREATER-THAN OR EQUAL TO

`^SM` produces `ŜM` not service mark

acer c720 chromebook
chromeos 38.0.2125.108
ComposeKey 1.1

^SM produces ŜM not service mark

"^S": "\u015c", // LATIN CAPITAL LETTER S WITH CIRCUMFLEX
"^SM": "\u2120", // SERVICE MARK

Compose key not working on ASUS C202S

I am using an ASUS C202S with an English (US) keyboard. I have installed the ComposeKey extension, restarted my computer, and selected the EN* keyboard. However, I cannot type characters with the Right Alt key. Other keyboards, such as the Pinyin input method, work.

The keyboard is installed, enabled, and selected.

Has this been observed before by other users? I would appreciate any help with this!

composekey bugs

acer c720 chromebook
chrome 38.0.2125.108
ComposeKey 1.1

"^SM" makes ŜM rather than
"^SM": "\u2120", // SERVICE MARK
Why not simply "SM"?

Both of these...
The leading space makes a nobreakspace followed by the second character.
" .": "\u2008", // PUNCTUATION SPACE
" ,": "\u00b8", // cedilla # CEDILLA

Question:
Why is trade mark more complicated than simply "TM"?
"^TM": "\u2122", // TRADE MARK SIGN

Workman layout support

It would be really great to have Workman layout support available (homepage, repository). There're probably not too many of us using it but the layout configurations are available for different platforms already so it shouldn't be much work to add it.

Ellipsis character?

pressing compose+.+. makes a centered dot (·) instead of the expected ellipsis (…).

ComposeKey not working (Chrome OS 70)

I was previously having another issue reported elsewhere where the component characters were being output as well as the composed character; with the latest update (Version 70.0.3538.41 (Official Build) beta (64-bit)), ComposeKey outputs nothing at all.

kurdish keyboard support?

Can I add support for the Sorani Kurdish English-based keyboard to Composekey?
I looked up the keyboard code for Kurdish & tried adding the Kurdish layout to the manifest file, refreshed the extension, & looked for it in the list of layouts but couldn't find it.
Did I get something wrong or is there something else I'm missing?
{
"name": "Compose Key (Sorani Kurdish)",
"type": "ime",
"id": "compose_key_ku",
"description": "Adds Compose key functionality to the Sorani Kurdish keyboard.",
"language": "ku-Arab-iQ",
"layouts": ["ku"]
}

Using with more layouts

How easy would it be to expand this to work on other layouts, specifically Dvorak?

I'd be willing to give it a go, but haven't created any Chrome extensions before. My apologies if this is not the right place to ask.

Add support for Lushootseed input

I received an email and a pull request (#41) from @dsienko to create an input method to allow entering characters usable with the Lushootseed language (a member of the Salish family of languages). Dave had issues with the pull request so I closed that in favor of tracking the creation of that here.

Spiking processor load

When I switch to a keyboard in the extension, there's intermittent high 'processor load' (fan comes on, keyboard unresponsive, pointer moving randomly across screen). This lasts for about 20 sec, and then go away again. Happens irregularly, very few minutes. (HP Chrombook x360 14)

korean phonetic keyboard?

Is there anywhere to get a phonetic Korean keyboard? There's only one available & the mapping is nonsense. ㅎ is mapped to 'g' even though it's an 'h' sound & ㅗ is mapped to 'h' even though it's an 'o' sound. I also can't find the 'ㅇ' at all.

cursor moving on it's own?

After installing the esperanto keyboard (esperantoxkb), the cursor fades to about half of normal transparency and starts moving around on it's own. I have only noticed it happening when this keyboard is active & after I switched keyboards it stopped.

Missing double arrow compositions

In many other similar compose setups, the special + = + < or > produce the unicode LEFTWARDS DOUBLE ARROW \u21d0 and RIGHTWARDS DOUBLE ARROW \u21d2 characters. It would be useful to have these available here, too.

adapt lushootseed keyboard for writing a version of cyrillic?

Would it be possible to add a key to write the extra sound used in Esperanto? I'm trying to create a keyboard using the Cyrillic layout here because there isn't an existing keyboard available. Esperanto has 6 extra letters (ĉ/ĝ/ĥ/ĵ/ŝ/ŭ), but also lacks q, w, x, & y so they could be repurposed. All other letters are used. Semicolon could be used for one too, as in the original layout. On the Russian keyboard Ш/ш ( ʃ ) is "{/[" & Чч "+/=".
I was thinking of using this mapping:
EDIT:
I just installed the Esperanto keyboard to check the mapping:
x is mapped to ĉ = xevalo - ĉevalo
w is mapped to ĝ = qanwo - ŝanĝo
y is mapped to ŭ = antay - antaŭ
q is mapped to ŝ = marqi - marŝi
[ is mapped to ĵ = bova[o - bovaĵo
] is mapped to ĥ = e]oqanwo xiu[ayde - eĥoŝanĝo ĉiuĵaŭde

Do I need to change anything Else to have it show up as something other than "EN"?
Esperanto's IME is 'epo' I think.
The "input components" could be:
// to show 'EO'
{
"name": "Esperanto",
"type": "ime",
"id": "esperanto_klavaro_xkb",
"description": "Esperanto keyboard - klavaro por Esperanto", // user visible description
"language": "eo", // The primary language this IME is used for
"layouts": ["epo"]
}

OR

// to show 'RU'
{
"name": "Есперанто",
"type": "ime",
"id": "Esperanto",
"description": "Cirila por Esperanto",
"language": "ru",
"layouts": ["ru"]
}
@bderrly

Compose key needs to be released before the next character for compose mode

Currently to get into compose mode one needs to press and release right Alt before pressing the next key. If any other key is pressed before the release event happens, the compose mode is cancelled, which means that, if one is typing quickly, compose will not work.

This is extremely annoying, since the characters need to be deleted very often and retyped slowly, and this is not how Compose key supposed to work (nor does it actually work that way on Linux).

Remap Brydge G-Type Fn key to Ctrl

Here's the pixelbook bottom-left Ctrl key:

Screenshot 2019-05-09 at 4 30 38 PM

Here are the Brydge G-Type keyboard bottom-left Ctrl/Fn keys:

Screenshot 2019-05-09 at 4 30 27 PM

What would be great is if there was a way to remap 'Fn' to 'Ctrl' on the latter :)

No interrobangs‽

We should have interrobangs because they're trendy (that's questionable, I know) and useful.

ComposeKey "Keep modifier" settings is not remembered across sessions

The Keep modifier option for the ComposeKey extension seems to be forgotten after every reboot.

Poking a bit around in background.js, it might be due to the way it is set in localStorage and chrome.storage.sync. In localStorage we store it as so:

  if (settings.keepModifier) {
    localStorage.setItem('keepModifier', "true");
  } else {
    localStorage.removeItem('keepModifier');
  }

And retrieve it as so:

var keepModifier = localStorage.getItem('keepModifier') == "true";

…which seems correct. However, for Chrome Sync, we do this:

  chrome.storage.sync.get({
    key: 'AltRight',
    // Default to keeping the modifier: otherwise, the default AltRight compose
    // key conflicts with AltGr in international layouts.
    keepModifier: true,
  }, (stored) => {

So here, if it is not set, we go with the default of true.

That said, it seems to be set properly in options.js, so I'm not sure what's going wrong here. But it is annoying to have to reset (disable) it every time.

Does not provide a new input method

The extension does not work at all: I see no mentions at all of "compose" in chrome://settings/inputMethods.

I am using Chrome 75.0.3770.102 on a Chromebook (Google_Setzer.7287.381.0).

Composing keys are also being output

I just installed the extension through chrome-store, logged out and in again.

Now when I key in "alt-gr + ' + a", I get the sequence " 'áa ", that is single-quote + composed character + "a".

Any ideas what could be wrong ?
thanks!!

Bullet doesn't work

Most of the Compose Key shortcuts work great, but I would really like to use the bullet shortcut. It doesn't work.

® registered trademark is no problem, ² superscript is good, just to demonstrate that I know how to use Compose Key.

But alt.= for bullet yields nothing at all.

Extension error: package invalid, cannot load extension, filenames reserved

After updating to Chrome 84.0.4147.110 64bit on Chrome OS I noticed the compose key not working anymore and in chrome://extensions there was an error for the extensions saying

Package is invalid. Details: 'Cannot load extension with file or directory name
_metadata. Filenames starting with "_" are reserved for use by the system.'.

The bug is old and should occur when using local extensions or file names starting with _, see stackoverflow, Google Groups, Chromium bugs.

In my case uninstalling and reinstalling the extension did fix it, i.e. the package does not have a _metadata folder as suggested on web results.

Android applications crash with Slovak QWERTY

Android applications hard crash when the Slovak QWERTY language keyboard layout, installed from this project, is currently set, and other than standard ASCII characters are inputted (diacritic characters, CTRL+SPACE, Tabulator etc.)
I think this started, when my Chromebook Acer R13 received Android 9 Pie version (from Chrome OS M78)
Chrome OS's Chrome browser is OK and works with no problem, only Android part is problematic.
Is this problem with this "keyboard extension", or is it some bug in Chrome OS?
Thank you
Martin

Problem with Russian ComposeKey keyboard

I tried to add ComposeKey support to the Russian phonetic keyboard by Adding a Section to the "input_components" section of the manifest.json file. After saving & refreshing the extension I added the Russian ComposeKey layout, but the instant I switched to it My Chromebook reboots. What did I do wrong & how do I get it working? I tried it twice with the same results.I'm using the HP Chromebook x360 11. The manifest.json is below. The section I added is highlighted. I added the Kurdish sections long ago but they never showed up in input methods. Removing them wouldn't fix anything would it?

{
"name": "ComposeKey",
"version": "1.6",
"manifest_version": 2,
"description": "Compose Key for Chrome OS",
"background": {
"scripts": ["background.js"]
},
"permissions": [
"input",
"storage"
],
"input_components": [
{
"name": "Compose Key (US)",
"type": "ime",
"id": "compose_key",
"description": "Adds Compose key functionality to the US keyboard.",
"language": "en-US",
"layouts": ["us"]
},
{
"name": "Compose Key (US International)",
"type": "ime",
"id": "compose_key_us_intl",
"description": "Adds Compose key functionality to the US International keyboard.",
"language": "en-US",
"layouts": ["us(intl)"]
},
{
"name": "Compose Key (US International (PC))",
"type": "ime",
"id": "compose_key_us_alt_intl",
"description": "Adds Compose key functionality to the US International (PC) keyboard.",
"language": "en-US",
"layouts": ["us(intl_pc)"]
},
{
"name": "Compose Key (US Extended)",
"type": "ime",
"id": "compose_key_us_extended",
"description": "Adds Compose key functionality to the US Extended keyboard.",
"language": "en-US",
"layouts": ["us(altgr-intl)"]
},
{
"name": "Compose Key (US Dvorak)",
"type": "ime",
"id": "compose_key_us_dvorak",
"description": "Adds Compose key functionality to the US Dvorak keyboard.",
"language": "en-US",
"layouts": ["us(dvorak)"]
},
{
"name": "Compose Key (US Programmer Dvorak)",
"type": "ime",
"id": "compose_key_us_dvp",
"description": "Adds Compose key functionality to the US Programmer Dvorak keyboard.",
"language": "en-US",
"layouts": ["us(dvp)"]
},
{
"name": "Compose Key (US Colemak)",
"type": "ime",
"id": "compose_key_us_colemak",
"description": "Adds Compose key functionality to the US Colemak keyboard.",
"language": "en-US",
"layouts": ["us(colemak)"]
},
{
"name": "Compose Key (US Workman)",
"type": "ime",
"id": "compose_key_us_workman",
"description": "Adds Compose key functionality to the US Workman keyboard.",
"language": "en-US",
"layouts": ["us(workman)"]
},
{
"name": "Compose Key (US Workman International)",
"type": "ime",
"id": "compose_key_us_workman_intl",
"description": "Adds Compose key functionality to the US Workman International keyboard.",
"language": "en-US",
"layouts": ["us(workman-intl)"]
},
{
"name": "Compose Key (Canadian English)",
"type": "ime",
"id": "compose_key_ca_eng",
"description": "Adds Compose key functionality to the US Workman keyboard.",
"language": "en-CA",
"layouts": ["ca(eng)"]
},
{
"name": "Compose Key (UK)",
"type": "ime",
"id": "compose_key_gb_extd",
"description": "Adds Compose key functionality to the UK keyboard.",
"language": "en-GB",
"layouts": ["gb(extd)"]
},
{
"name": "Compose Key (UK Dvorak)",
"type": "ime",
"id": "compose_key_gb_dvorak",
"description": "Adds Compose key functionality to the US Workman keyboard.",
"language": "en-GB",
"layouts": ["gb(dvorak)"]
},
{
"name": "Compose Key (Sorani Kurdish)",
"type": "ime",
"id": "compose_key_ku",
"description": "Adds Compose key functionality to the Sorani Kurdish keyboard.",
"language": "ku-Arab-iQ",
"layouts": ["ku"]
},
{
"name": "Compose Key (Kurdish)",
"type": "ime",
"id": "compose_key_sorani_kurdish",
"description": "Adds Compose key functionality to the Sorani Kurdish keyboard.",
"language": "ku-Arab-iQ",
"layouts": ["ar(sa)"]
},

{
  "name": "Compose Key (Russian)",
  "type": "ime",
  "id": "compose_key_russian",
  "description": "Adds Compose key functionality to the Russian keyboard",
  "language": "ru",
  "layouts": ["ru_phonetic"]
 }

],
"options_ui": {
"page": "options.html",
"chrome_style": true
}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.