As the title says I can't type e.x. ř, č, š, etc. in terminal. My keyboard layout is set to Czech and I can type these characters in e.g. Firefox. I did regenerated my locales with

sudo locale-gen en_US.UTF-8

Which did regenerate the Czech locale too.

I don't know if this has anything to do with it but echo $LANG returns en_US.UTF-8. I would like to keep english as the system language and be able to use these character in the terminal.

  • 4
    Please edit your question and tell us i) your operating system, ii) your terminal program, iii) whether you are using a GUI, iv) the output of locale .
    – terdon
    Sep 19, 2020 at 16:08

1 Answer 1


You choose the locales you want on your system, and then choose the keyboard layout for the locale you wish to use at any given time. Different OS distributions (Debian, Red Hat, Opensuse) GUI interfaces (x-windows, wayland), desktop environments (gnome, KDE, LXDE); have different and multiple overlapping ways to do what you want.

I use gnome desktop with Debian and wayland on my laptop, so I use command-line tools and 'gnome-settings' program. You might need the 'locales' package; Then, 'dpkg-reconfigure locales' from a terminal allows you to set your locale, if your're using Debian-based distribution.

If the keyboard just works after that, great. But if it doesn't, you must use a program to choose the keyboard for your locale. Almost every Linux distribution is Debian-based.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .