Virtual flash cards

Card Game

Article from Issue 248/2021

Anki brings a virtual flash card box to the desktop. Thanks to a useful collection of add-ons, you can adapt Anki to suit your needs, making it one of the most efficient learning tools.

The flash card is still one of the most effective methods for anchoring learning material in long-term memory. But instead of working with a physical index card box and decks of flash cards, today's students use computer programs. Anki [1], considered to be one of the most innovative learning programs for electronic flash cards, goes far beyond everyday needs and even offers a web-based counterpart.

Anki includes several convenient features that you won't get when shuffling through an old-school stack of note cards, such as built-in statistics to chart your progress. The program also lets you rate your success with individual cards, keeping the most difficult at the front of the deck for additional repetitions. The Anki: flashcard system also comes with a large number of add-ons that let you adapt the software to meet a wide range of learning needs. For learning foreign languages, Anki offers the ability to use different character sets, such as Chinese or Russian. Anki uses LaTeX to display formulas, making it ideal for higher mathematics. In addition, Anki can also handle multimedia content; unlike conventional flash cards, Anki can integrate videos, audio files, and images as learning content.


Anki is available in the repositories of all the common distributions. You can also download a tarball for 64-bit systems from the Anki website, which is recommended if your distribution's repos offer an older Anki version. To set up Anki, unpack the roughly 150MB tarball, which will add about 460MB of data to your hard disk. Then change to the newly created directory and install the package using:

sudo make install

Then start Anki by either selecting the entry in the start menu or entering the anki command in a terminal window.

If you want to compile Anki manually, the source code is available on the project's GitHub page [2]. You will also find many older versions of the software as TAR.BZ2 archives, which can be useful if the latest version of Anki cannot be installed on older Linux systems due to missing dependencies.


Upon intial start-up, Anki opens a language-localized window, so you don't have to make any adjustments (Figure 1).

Figure 1: Anki's main window where you start adding virtual flash card decks.

To get started, you need to create a deck of virtual flash cards with the corresponding content on their front and back sides. Click the Create Deck button bottom center. Enter a name for the deck in the window and confirm it.

After clicking on Add below the menubar, you can start entering the contents for each card. The input window consists of two fields for free text input for the front and back of the flash cards; it also allows formatting of the entered data via a small buttonbar above the input fields. You can format the text input, define a background color, link a multimedia file to the index card, or play an audio recording, which is useful for practicing the correct pronunciation of foreign language terms. In addition, the software lets you to enter short fill-in-the blank text. You can also insert chemical or mathematical formulas as needed (Figure 2) using the hamburger menu on the right side of the buttonbar.

Figure 2: Anki's input dialog offers various options for formatting questions for your flash cards, including fill-in-the-blank text and multimedia files.

The Type selection field lets you specify the form in which the entered terms should be queried. You choose whether Anki queries the cards on both sides or only the front or back side at any given time. Once you have entered the front and back text, click on the Add button to save your card.

After completing the input of a deck of cards, Anki displays the name of the deck with the number of flash cards you entered in the main window. If other decks already exist, only the last one to be activated is shown in the main window. Clicking Decks in the top buttonbar opens the deck display, where all the existing decks are shown, including the decks that need to be reviewed and the new decks to be learned.

Click on a deck to activate it. Next, click Study Now to the right of the deck display to start querying. The program switches to a flash card view where the first term appears. Think about the correct answer and then press the space bar to reveal the answer on the back of the card (Figure 3).

Figure 3: The front and rear sides of each flashcard appear in the program window.

If you want to type in your answer, select Basic (type in the answer) in the Type field in the Add dialog window. When you the type in your answer on a card, Anki will show it with a green background if your answer is correct. Incorrect answers are shown with a red background; Anki then displays the correct answer below.


Anki lets you manage flash card decks in a hierarchical structure. The top level consists of a main topic, while the lower levels are divided into sub-topics. To do this, you create the individual sub-topics as separate decks and then drag and drop them onto the main deck.

Alternatively, when creating the decks, you can define sub-topics by first specifying the name of the main deck when assigning names followed by two colons (::) and then the name of the sub-deck. Anki then displays each of the sub-decks indented below the main deck.

You should define your deck structure at the beginning of data input. When creating a hierarchical structure, Anki hides sub-decks entered in the main deck. The sub-decks can only be viewed via Browse in the main window's top buttonbar.

However, after creating a tree structure, new flash cards can still be created in the main deck. To do this, select the desired target deck in the Decks selection field of the Add dialog window. Anki adds the flash card (front and back) when distributing the flash card to multiple sub-decks and then displays the total number of new flash cards in the main deck's overview.

You can also create an extended structure when entering the learning content in the individual decks. Especially for complex topics, it is advisable to use keywords or tags. The Tags field lets you enter several keywords separated by a space. These keywords can also be targeted selection criteria later on when learning the content on the individual cards.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • FOSSPicks

    This month Graham looks at SonoBus, NewsFlash,, RetroShare, Emilia Pinball, and much more!

  • Pauker Flash Card Tool

    Get ready for your next exam with the Pauker flash card system.

  • Free Software Projects

    DJs don’t need expensive decks now that Mixxx offers a competitive computer-based alternative. The Liquidsoap programming language provides a fully automated approach to generating flexible streams.

  • Python match

    Exploring the new Python match statement, Python's implementation of switch/case.

  • Adobe AIR for Linux

    With the advent of Adobe Integrated Runtime (AIR), Flash applications now run on the desktop, any desktop – yes, even Linux.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More