При использовании среды рабочего окружения KDE Plasma мне нравилось то, что можно переключить отображение раскладки текущего языка с буквенного обозначения (RU или EN) на изображение флагов (российский и американский).
За время длительного использования KDE очень привык к такому виду раскладки, поэтому при использовании GNOME две буквы в системном трее (en и ru) кажутся какими-то вырвиглазными, поэтому ниже расскажу про то, как изменить значок раскладки на флаг страны в любом дистрибутиве Linux с GNOME на борту.
Расширений и редактора Dconf не будет
На удивление, работающих для GNOME 44 расширений, которые бы меняли текстовый вариант раскладки на флаг страны найти не удалось. Рискну предположить, что такие расширения существовали раньше, но были заброшены разработчиками и к 44-ой версии рабочего окружения просто-напросто не дожили.
Некоторые в интернетах предлагали решить эту проблему через редактор Dconf, знакомый многим пользователям GNOME, которые пытались кастомизировать окружение под себя. Но все имеющиеся статьи на счет Dconf в современной ситуации не работают, так как тех ключей, которые там указаны в настройках GNOME 44 не найти.
Получается, что два традиционных способа кастомизации GNOME не помогут установить флаги вместо текстов раскладок, поэтому придется перейти к последнему и радикальному варианту - ручное изменение конфигурационных файлов GNOME.
Редактируем конфигурационные файлы GNOME
Редактировать будем конечно же в терминале посредством консольного текстового редактора nano, который идет из коробки практически в любом популярном дистрибутиве, который использует GNOME. Если консольный текстовый редактор вам чем-то не подходит для редактирования, то можете заменить его название на gnome-text-editor и файл откроется в привычном текстовом редакторе GNOME, который, кстати, я включил в свое время в ТОП лучших текстовых редакторов Linux.
Но прежде чем совершать какие-либо действия с конфигурационными файлами, мы сделаем один важный и необходимый шаг: резервное копирование изменяемого файла. Для этого откроем терминал и введем туда следующую команду:
sudo cp /usr/share/X11/xkb/rules/evdev.xml /usr/share/X11/xkb/rules/evdev.xml.bp
С ее помощью мы сделали копию редактируемого файла, чтобы на случай, если что-то пойдет не так, иметь возможность откатиться к работающему варианту конфига. После создания копии, открываем этот файл в консольном текстовом редакторе и видим то, что показано на скриншоте:
sudo nano -l /usr/share/X11/xkb/rules/evdev.xml
Ключ -l включает нумерацию строк, чтобы было проще осуществлять навигацию по файлу. Нас интересует поиск фрагментов, которые содержат следующий текст:
<shortDescription>en</shortDescription>
<shortDescription>ru</shortDescription>
Таких фрагментов может быть много, так как текст en или ru будет содержаться в нескольких раскладках клавиатур, описанных в конфигурационном файле. Тексты en и ru, как вы понимаете, мы заменяем на флаги США и России:
<shortDescription>🇺🇸</shortDescription>
<shortDescription>🇷🇺</shortDescription>
В моем случае, вместо иконок будет вставляться текст, который вы видите на скриншоте ниже. Это происходит потому, что в дистрибутиве еще не установлено шрифтов для отображения иконок:
Что касается замены текста en, то мне повезло сразу и я попал в настройки той раскладки, которая установлена была у меня по-умолчанию. С текстом ru пришлось поковыряться чуть дольше, поэтому я заменил все вхождения текста на иконку российского флага. Заняло это не очень много времени и так можно быть уверенным в том, что точно ничего не упустите.
Но если вы не хотите долго сидеть над файлом, то можно воспользоваться функцией поиска и замены всех вхождений en и ru в тексте, которая встроена в nano. Для этого нажмите сочетание клавиш Alt + R и в первом окне введите то, что нужно найти:
Затем вводите текст, который должен заменить найденные фрагменты:
После нажатия клавиши Enter начнется перебор найденных фрагментов текста. Чтобы заменить их все, нажмите кнопку A:
Такую же процедуру повторим для текста ru и российского флага, после чего сочетаниями Ctrl + O и Ctrl + X сохраняем изменения и закрываем конфигурационный файл.
Проверяем результат
Теперь нужно либо выйти из системы и войти снова, либо перезагрузить устройство. После этой процедуры вместо текста en и ru будут отображаться флаги США и России:
Как вы понимаете, вместо иконок флагов можно использовать абсолютное любые иконки, которыми вы желаете заменить стандартные текстовые обозначения раскладок. Про иконки в GNOME я рассказывал в отдельном посте на канале.
Можно было бы попробовать сделать собственное расширение для GNOME, которое будет производить автоматическую замену существующих раскладок на флаги стран, но для этого нужно время для ресерча того, как делать расширения для GNOME. Поэтому, пока что ограничимся редактированием конфигурационного файла.
Подведем итоги
Это, естественно, вкусовщина и дело привычки. Но если вы пользуетесь GNOME и считаете, что тоже хотите иметь флаги вместо букв раскладок, то данная статья может помочь. Еще раз повторю, что перед внесением любых изменений в конфигурационные файлы лучше делать их резервную копию, чтобы иметь возможность откатиться назад.
Поставьте лайк, если заметка помогла и напишите в комментариях, как вам идея иметь флаги стран вместо текстовых обозначений раскладок?