Duolingo as a GNU / Linux app: learn English in a fun way

Duolingo and Tux logo

Duolingo is a fantastic service that allows you to learn languages, including the English that is so necessary for jobs today. The project aims to teach in a simple and intuitive way several languages ​​thanks to gamification, in addition to being totally free (although it has a paid version to avoid ads). In other words, it is a wonderful alternative to other apps such as ABA English or Babbel.

Between courses languages ​​offered They are: English, Spanish, Swedish, French, German, Portuguese, Italian, Catalan, Esperanto, Portuguese, Guarani, Russian, etc. So you have a wide variety of languages ​​to choose from. Something that other apps do not usually have, since they are limited only to teaching English or some other specific languages.

Advantages and disadvantages of Duolingo

As a user of this type of apps to learn Swedish and improve my English, I have tried several of them in recent years. And I have to say that of all the ones you find in the apps stores, the vast majority are not worth it. Among the best are:

  • Duolingo : besides being totally free (you can pay to avoid ads and work offline), it offers a fun and enjoyable way to learn English. They are short lessons divided into several categories and you learn almost by playing and by repeating activities based on translations from English to Spanish and from Spanish to English, audios to listen to and also to practice your pronunciation by recording your voice. Another interesting thing that it offers is that it shows images like the famous smartcards so that you can match the image with the correct word, something that your brain assimilates very quickly as it is a very visual method. It also encourages you to continue learning by obtaining achievements and new levels as if you were in a video game. In short, an almost perfect app with a large amount of content.
  • ABA English: It is very good and professional, with lessons divided by levels of English, final exams for each lesson, etc. Each of the topics consists of a real conversation between two natives, classes with a virtual teacher, activities in which you must listen and write, interpret, and a large amount of vocabulary. The biggest problem I see is that they are so long and take so long to do, that you can end up tired before finishing the lesson. That is a bit daunting and is what has kept me coming back to Duolingo. But as an advantage it has native conversations, something that Duolingo should incorporate to be the perfect app.
  • Linguee: as a complement to the previous apps, Linguee offers a web service or through its mobile app in which you can see thousands of translations between languages. So when you have a question about how to say something in English, you can look it up here and it will clarify a lot. In addition, it has a web service called deepl.com which is the best translator I have ever tried. You can translate text and also documents, with free service and also other Premium plans. The translator uses Deep Learning and AI to get the best translations, almost natural as if they had been done by a native speaker. That is why it surpasses translators like Google's, etc.
  • Wordreference: Finally, one of the best apps or websites that also complements the previous ones is WordReference, which serves as a good dictionary to consult vocabulary.

So if you are trying to learn a language, I hope you don't waste time like me I did testing a large number of apps to see which one best suits what you are looking for and get straight to the point ...

But the downside of these tools is that they do not have a native app for Linux, not even for other operating systems in many cases. Only apps for Android, iOS and the web service that you can use from any browser. But that has a solution as I explain below ...

Duolingo (or any of the above apps on your Linux desktop)

How can you have a GNU / Linux distro and you want to use these services more easily To access your browser, find the web address, register and access the content, you should know that there is a way to have them as native apps in your distro (although they are not officially available).

For this we are going to start from the basis that it is possible to transform any web page into an app for your Linux in a simple way and relying on NodeJS technology. I don't know if you remember that a long time ago I told you how to have Microsoft Office (online) as an app in your distro, because this is something similar. The steps are these:

  • First locate the web service that you want to transform into a Linux app. In this case it would be Duolingo URL.
  • Then copy the address of that website and save it for later. If you're not going to copy anything else, you can keep it on the clipboard.
  • Now install the packages you need: NPM and Nativefier. Depending on the distro you can do it with one or another package manager, for Debian / Ubuntu and derivatives, which are the most widespread, you can execute the following command:
sudo apt-get install npm

sudo npm install nativefier -g

  • Once installed, you can now use the URL you copied earlier to generate the native app with the following command that creates the app for 64-bit for Linux, with the name Duolingo:
nativefier -p linux -a x64 -n Duolingo https://www.duolingo.com/register

  • That command will include this address in our Electron-based app. Pay attention to the terminal output, because if it shows an error message, you should start from the beginning and you may be doing something wrong ... If it freezes, you can press Ctrl + C to finish the action and run the command again. new.
  • The next step is update permissions so that the generated package can be executed, which in our case is called Duolingo and will be inside a directory generated with the name-linux-64:
cd *-linux-64

sudo chmod +x *

  • Now I know can execute for the first time to test it, you just have to invoke it with:

  • After the first test, if necessary you can rebuild the app with Nativefier and use extra options to customize your app. For example, instead of the command that we used previously to generate the app, you can add these options to enable Flash content and have it displayed in full screen:
nativefier -p linux -a x64 -n Duolingo https://www.duolingo.com/register --flash --full-screen

  • Remember to give the proper permissions again before running a new test. And if you want see all options To customize your available app, you can run:
nativefier --help

Another option with Epiphany

As an alternative to Electron, you can also use GNOME Web Browser (Epiphany) if you are on a system with a GNOME desktop environment. This browser also allows you to do something similar and have the app from the application menu or launcher on your desktop. The step-by-step procedure is:

  • Install the browser if you don't have it. You can do it from the terminal with APT or from the App Store if it is easier for you.
  • Get the URL of the web that you want to turn into a shortcut as if it were an app, in this case it would be Duolingo.
  • Open the GNOME browser that you have installed, and among its menu options you will find the option "Install site as web application".
  • A new pop-up window will open that allows you to customize the name. Put Duolingo in this case.
  • Click Create. As an icon, you can see that it uses the same one that is used for the web theme of the page.
  • Now if you go to application menu on your desktopIn the Internet applications section, you will find the icon to run your new app. Once located in your browser, you can easily clear it to the launcher to have a much faster shortcut ...

I hope it has been helpful for you and you can make Duolingo your number one language learning app on your Linux, and many more… From a screen bigger than your smartphone or tablet, so you no longer have excuses to learn languages.

The content of the article adheres to our principles of editorial ethics. To report an error click here!.

2 comments, leave yours

Leave a Comment

Your email address will not be published.



  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.

  1.   Fran said

    Everything was going fine until I got to the point of:
    The next step is to update the permissions so that the generated package can be executed, which in our case is called Duolingo and will be inside a directory generated with the name-linux-64:


    cd * -linux-64

    sudo chmod + x *

    => when I put that first command it tells me:: ~ $ cd * -linux-64
    bash: cd: * -linux-64: The file or directory does not exist

  2.   Luisinho said

    Hello and thank you I have Ubuntu20.04 the problem is that it does not allow it to synchronize with my account that I already have in Duolingo, and I do not know what to do because it does not recognize me or show me my current progress that I already have.

    Thank you