Extension: Rooster Observer - Edit LingQs for all lesson words

@Vardan_Yervadian @mhast

It is definitely possible to remap these keys in an easy popup menu. It’s on the todo!

It would be saved in local storage which means that would need to set them for every different browser you use. Could also save preferences in some database but that’s out of scope for this.

1 Like

That’s incredible, I would 100% use this addon if you are able to create it… it would be a total game changer for me. Thanks for all your hard work, all of these addons are great and I’m excited to check out what comes next.


I’m looking at it right now, might get a version out today.

edit: → something like this


second edit: → The keyboard events are happening directly from the javascript and not via a keydown in the html. What this means is… It is absolutely possible to remap any key. The caveat is that I need to actually reprogram all of those functions individually. Which is quite painful… and time consuming.


For the first version of the script I’ll do some simpler ones like change the tts key and the toggle translation button. Stay tuned on the main web extensions page.

third edit: → Please let me know which keybindings you actually use and i’ll include those in the first version.

1 Like


→ The word limit bug has been solved.
→ You will now see all words for any size lesson.

Nerd notes

→ The script encountered errors when there was no data available on a word it was trying to see.
→ We now check if no data and just display no selectable buttons nothing for that word
→ Full individual word count for a lesson is listed in the console.



→ Observer Lite has been merged into Observer
→ Now displays all words, even if no options
→ Slight graphics upgrade

Nerd notes

→ ObserverLITE was also having the same problems, I merged the scripts to be more efficient.


Yes!! I have all the boxes! Great work!

1 Like

Wow, you work quick, haha. So the main shortcuts I use are:

(arrow keys) - move left/right between lingqs and up/down choosing from the list on the righthand definition panel
(enter) - choose definition
(1,2,3,4) - rating lingq’s
(x) - ignore lingq
(k) - make lingq known

Just as an example, I’d probably switch this around so that it’s more like vim (the text editor) where your hands stay over homerow. It would probably look something like this:

(hjkl) - movement
(space) - choose definition
(asdf) - rate lingqs 1-4
(v) - make lingq known
(c) - ignore lingq

It would be amazing if you could also set a key to select the text box for entering your own definition… I don’t think there’s currently a keyboard shortcut to do that so I’m guessing that would be a ton of work. If that was possible you could basically use only the keyboard and never touch the mouse!

Shift + movement for jumping between pages would be awesome too but the above are the main ones that are used non-stop for me.

Thanks again for working on this, really excited to check out the addon.


My dad always tells me… You can sleep when you are dead.

This is not too complicated. It will involve finding the correct endpoints and elements on the LingQ reader. (Which may change and break the script at some point)

Sounds good, you will have the option to set key to whatever you want. If i end up developing this a bit I’ll likely have preloaded keybinding configs you can swap between.

This is no problem. There exists a function built in to editablecontainers in Javascript which LingQ is using for their textbox. We just call .focus() on the box and its done.

I’ll have a look at how it works.

Appreciate the kind words. Thanks very much.

Edit: I have found the action that handles the keyboard shortcuts, I will see if I can intercept the keybindings to it and replace somehow.

Lets find out…

second edit: It works!

I have successfully intercepted the keydown, made it trigger with a new key and sent the response as the old key without changing any function. This means… Easy rebinding of everything…

I’ll get cracking on those bindings you use and get this extension released.

third edit: → coming soon! Just going to work out some GUI changes and I’ll get it released.






Didn’t get everything I wanted done in this patch but it will do for now.
Spent a bit of time sorting out some bugs. Code is complicated and I badly need to restructure it.

Bug Fixes

→ Fixed Create button → now appends button to top of container

→ Fixed Update Button Displaying hint Text

New in 1.27


Ignore New Words


Mark Word Known


Delete existing LingQs


→ Fixed console error outside of reader
→ Fixed known words showing as ‘4’ instead of ‘5’
→ Added more Text to Speech

→ Bug fix for tags not displaying on Linged/Known words
→ Added ‘Ignored Words’ popup.

1 Like

I was working more with LingQing via LingQ observer, and I was wondering if — like the line starters for LingQs — we could have line starters for our LingQ’s notes section:

  • Direct Meaning:
  • Contextual Meaning:
  • Root Words:
  • Root Word Meanings:
  • Hanja:
  • Phonetic:
  • Phrase:
  • Grammar:

For more personal versions of these LingQs.

When the toggle line starters were created, I thought they were line starters for the notes section rather than the “meaning” section of the LingQ for the whole community. I’m only now realizing that they appear as a meaning of a LingQ over a Note of a LingQ.

Sorry, I must have been out of it not to realize this before.

Regardless, the community could use the line starters to contribute to public LingQ meanings.

This way, learners know where the meaning input came from exactly.

And use the notes section to personalize more detailed information (using the same line starters that are in the meanings section of Rooster Observer) that would be too much/personalized (to the learner) to appear on a public meaning of a LingQ.

Quick side question: Was there a reason for us not to be able to add notes via the Rooster Observer to our LingQs in addition to the meanings?

Would this be a premium feature instead?

I also noticed that when you toggle and use the line starters, it creates one larger LingQ rather than having multiple saved meanings for one LingQ. Is there a way, in addition to that, to create an experience like within Ling where multiple meanings are attached to one word?:

I have detailed notes on the Dictionary / Notes Section implementation for Observer just haven’t gotten around to it yet. Will be included in the Free version.

Sure, I’ll add it these the notes. Its going to require some serious UI re-design so not show how fast these Observer updates will be happening.

1 Like

No worries, just super excited for the updates whenever you can make them!

Thank you!

You’re killing it! :smiley:

Great work @jpp025 Ill attach that. Good to know the addon is helping!

1 Like

:heart_eyes: :heart_eyes: :heart_eyes:

Wow! That was quick work! This is exactly what I was hoping!

Can a “Grammar:” line starter be added to the “Toggle Line Starters”?

Edit: It’d be used differently than the grammar tags by LingQ towards the top. This would give the ability for a more detailed side-by-side breakdown (or sentence explanation) of grammar (like in the above image).


Copy of my Firefox add-on review, if you start a “Testimonial” Section for the Rooster Observer and want to use it (you have my permission :slightly_smiling_face:):

This is a solid add-on to up your efficiency in LingQing within LingQ! I love it and will continue to use it — though maybe in its other forms since I love more than one Rooster Extension. I’m checking it out within the Master LingQ (Premium) addon (see Rooster’s web extension support page for info on that) soon.

With Rooster Observer, learners can see the LingQ(/potential LingQ) add grammar tags, add meanings (more than one in the most recent update), toggle line starters for your notes section of a LingQ, and update LingQs that you’ve already made/ignored.

My target language is Korean, and I’ve found a smoother process in LingQing via Rooster Observer since it’s compact and comprehensive.

My setup is Rooster Observer (while I’m in sentence mode) + Rooster Hotkeys to LingQ and study more efficiently for me.

1 Like

How would one do that? In case maybe I could help with removing multiples.

Yes! Here’s another vote for including the Hanja!

Edited to add: Oh, it’s already there!

1 Like

Hi @WillowMeDown,

I’m not sure, but maybe reporting it via the Forum or checking in on the forum? Maybe zoran has some ideas? (zoran’s the person who is always active in the forum).

I’m not sure if LingQ Librarians have permission to weed out some of those multiples.



for 1.52

  • Added New Word → Known word button
  • Style fixes for some menus

for 1.52

  • Added New Word → Known word button
  • Style fixes for some menus

for 1.51
→ Added Text to Speech and Translate fragment button to LITE

for 1.50
→ Bug fix for ignore word in LITE container.

for 1.49
→ Bug fix for updating new word text after creation
→ small GUI updates to new word container

for 1.48
→ bug fix preventing LITE container from removing

for 1.47
→ Added translate button (Which creates a hint button) for words without hints. (Observer & Observer Lite)

for 1.46
→ Added fragment support for Arabic, Bulgarian and all European characters. (Asian and Latin were already included)

for 1.45
→ Added entire LingQ Text to speech voice map

for 1.44
→ Added TTS voice selection for each word/phrase on New/LingQed/Known words.
→ Caches each audio for each voice as required for uninterrupted playback
→ Flex update on grammar input row

for 1.43
→ Fix for certain terms not bolding in phrases
→ Consistency for drag handle sizing
→ Fix for observer box replacing LingQ box when active

for 1.42
→ Improved Dictionaries Menu

for 1.41
→ Fixed display if fragment is null

for 1.40
→ Simplified GUI colors / styling
→ Audio consistency
→ Fragments toggle
→ Term is now bold in the phrase

for 1.39
→ Added Display more fragments button
→ Added ‘New Word’ button
→ GUI update for Status selection

for 1.38
→ Added Transliteration for Known/Lingqed words.
→ Global display toggle at the top that persists between reloads

for 1.37
→ Added colors for selected and translated hints in Known/Lingqed words
→ Changed selected hint color

for 1.36
→ Bug fixes for New words Creation/Update
→ Phrase shows before Lingqing on new words

for 1.35
→ Added Translate button to Phrases
→ Added Translation fragment box

for 1.34
→ Changed Hint Button display
→ Added Dictionaries for All languages
→ Add/Remove Dictionaries

→ Added close button to Observer LITE

→ Fix for broken tags on LingQed words

→ Styling updates
→ Bug fix for all hints button
→ Grammar and Translation Line Starters added

→ Second and Third meanings support
→ Extra Meanings auto load and extra boxes are toggle-able
→ Added Notes section for all word types
→ Line Starters moved to Notes Section
→ Bug fixes for updating new LingQs


Observer has stopped working for me. It doesn’t show the words anymore. The Lite version seems fine though.

Sorry to hear that. Are you using manual install, or install from chrome/Firefox store?

Edit: I just tested the most recent patch 1.44 and found no issue on Chrome or Firefox. You might be having an issue if the master lingq addon is installed at the same time. To log the error you could open console (F12), click show lingqs and post a pic.

2nd edit: Problem may arise from your language not being in the new voice map. I’ll sort out the remainder languages today.

3rd edit: I have completed the entire voice map of LingQ and resubmitted the extension. Should be no problems now!

some decent updates to Rooster Observer today. If you find a language that is behaving incorrectly please let me know.