Linux keyboard layout indicator

Keyboard layout indicator in gnome

It has been discussed several times. This question is just to get the latest answer from the experts. Is it still impossible to get a keyboard layout indicator in the top panel in gnome shell? My personal experience says, it is impossible. I can use keyboard layout indicator in gnome classic, ubuntu, xfce, lxde! But not in gnome shell. Also, will it still be impossible to use it even after release of ubuntu 13.04? For whatever it is worth, I think it is quite strange and sad that what can be done in practically every other DE can not be done in gnome.

I would need more infrmation to precisely answer this: What type of indicator are you seeking? Do you want it to directly modify the layout? There are several extensions available, but if you can provide some more information hopefully I can get one of them working for you if it isn’t already compatible with your g:s version.

In gnome-fallback session, I get keyboard layout indicated as en1, en2 for two english layouts (normal and dvorak) I use. In gnome-shell, there is an empty space but no indication of what layout is being used. Also, I can change keyboard layout. Only, it is not displayed in the panel

3 Answers 3

If you mean something like this (Ubuntu 13.04 Gnome Remix):

keyboard indicator

The indication change when you switch layout with your selected keyboard switch combination.

I installed the AppIndicator extension (https://extensions.gnome.org/extension/615/appindicator-support/ ) and then, after the first change of keyboard layout, you have a keyboard-layout notification in the gnome notification zone. Open ubuntu tweaks, extensions, select AppIndicator options:

appindicator extension's settings

and be sure to select «show in panel» for the keyboard indicator.

So it would seem your actual problem is not with the indicator itself but with the panel label being broken/not being displayed. This problem has been present since at least 3.4 and I wrote a thorough comment discussing this before I understood your problem entirely. If I’m mistaken about the actual issue my apologies.

This is an image of what I think you expect to see: en1

(Note: the Login Screen link in the Region & Language panel lets you make the gdm login indicator functional as well)

To clarify, I have only tested this in 3.8. Here is what I did:

Install Icon Hider extension from: Icon Hider on e.g.o

Once installed open the icon hider preferences by refreshing the page you installed from or iirc from the menu entry. Now set the «keyboard» entry to On and you should see the blank space.

Next, since I only had one layout by default, and the menu showed I had 0, I decided to add one. Open the blank keyboard menu and launch «Region & Language Settings». If you have more than 1 layout already you should try removing all but your default/preferred language. WARNING: when you have only 1 enabled(3.8) the indicator automatically hides, so you should use the Icon Hider extension to hide/show it again as when you remove the 2nd it will hide. Then I added an alternate and finally the menu showed me an entry, as my default contained no pre-set layout so the menu showed no entry at all.

Читайте также:  Как сменить ip на сервере linux

Now that I added 2 it showed the entries and I selected one.

The result was the image above. I do hope this works but I’m guessing ymmv depending on your g:s version.

Other information probably not of value if your issue is regarding the layout text/label:

Technically speaking, Gnome Shell should not be confused with Fallback, as G:S extensions do not work in fallback, but they will work in the new Classic mode which under 3.8 can be spawned by running:

`gnome-shell --replace --mode=classic` 

When you say it is not displayed in the panel, does that mean you see no icon but you can click the blank space where the icon should be and then use the menu properly? Or does that menu not let you change layouts and you use another method?

Or does it work in both G:S and Fallback, but no icon in either? If so we can probably find a means to get the icon working.

If it’s that you don’t see the indicator/menu with no icon, in G:S, than it’s the matter of that indicator not being enabled in G:S. You have to use an extension like Icon Hider to get the extension to show.

If you want to try to get it running under G:S you can run the following, this is not permanent and will revert after logging out:

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.panel.statusArea.keyboard.actor.show();' 

Источник

Ищется нормальный индикатор раскладки клавиатуры

Сейчас используется xxkb, регулярно падает. Например, из-за изменения яркости подсветки экрана, и не только. Конечно, можно при выявлении такой зависимости вроде «поменял яркость — падает» писать костыль, который по нажатию клавиши изменения яркости будет не просто её менять, а делать killall xxkb, менять яркость, запускать xxkb. Но это же костыль.

Требования:
отсутствие привязки к какому-либо DE и лишних зависимостей
изкоробочность
максимально стабильная работа

Используется i3wm и gentoo.

Третья лампочка на клавиатуре.

Вот еще:

3. Утилита xxkb Xxkb — это небольшая программа для отображения текущей раскладки клавиатуры. Вот так у меня выглядит файл ~/.xxkbrc: XXkb.button.enable: no XXkb.mainwindow.enable: yes XXkb.mainwindow.type: tray XXkb.mainwindow.geometry: 15x15+0+0 XXkb.image.path: /usr/share/xxkb/ XXkb.mainwindow.image.1: en15.xpm XXkb.mainwindow.image.2: ru15.xpm Для автозапуска xxkb в ~/.i3/config у меня прописано exec xxkb &.

Я уже читал. Мой собственный конфигг если и отличается, то не сильно. Разницы между exec xxkb & и exec —no-startup-id xxkb & не увидел, как падало, так и падает.

Я рекомендую — kbdd - запоминание раскладки для каждого окна в тайловых wm Kbdd — это небольшой демон, для пооконного запоминания раскладок, написанный на чистом C и распространяющийся под лицензией GPL-3. Особенность данного демона в том, что он не зависит от сторонних WM и/или DE. (из заметки автора программы на хабре) Вся соль программы в независимости от WM/DE, что означает — она будет работать там, где xxkb пасует. В моём случае это awesome. Пользователи gentoo могут установить kbdd из оверлея rion, а пользователи archlinux из AUR. Для остальных: стабильную версию можно взять здесь. Гит https://github.com/qnikst/kbdd.git

нормальные люди переключатель ищут, а ты что? Индикатор какой-то

Читайте также:  How to get linux distro name

Порадовала возможность отображать в заголовке окна текущую раскладку. Но данная функция не работает в некоторых специфических приложениях из-за чего xxkb падает. Подобные программы необходимо добавить в игнор в настройках, используя свойства окон, которые можно узнать с помощью xprop. Кроме того, проигнорировать надо и программы подобные fbpanel. Но к сожалению порой "лишний" флажок на панели все равно появляется.[/Bash]

нормальные люди переключатель ищут

У нормальных людей переключатель работает.

А чем оно будет эту раскладку отображать в трее?

да я бы для начала попробовал запустить его в gdb. Кстати, а он правда падает (т.е. с записью о сегфолте в сислоге) или просто тихо завершается?

Для индикации, очевидно. Чтобы отображалось в трее флажком.

А ебилды под него где? Что-то найти не могу.

Ладно, это очень увлекательная дискуссия, я её вел, так как болел, больше ни на что сил не было.

Пойду дышать свежим воздухом, хватит уже сидеть перед ноутом.

У меня не пашет. «It shows a flag of current keyboard in a systray area and allows you to switch to another one. It’s written in C and uses the GTK+2.4 library only (no GNOME is needed)»

нормальный индикатор раскладки клавиатуры

ну хоть один знает! Ну и регистранты нынче пошли. язабан, ШГ, а по базовым основам школота-школотой.

cat /etc/X11/xorg.conf.d/30-keyboard.conf Section "InputClass" Identifier "keyboard-all" Driver "evdev" Option "XkbLayout" "us,ru" Option "XkbOptions" "grp:caps_toggle,grp_led:caps" MatchIsKeyboard "on" EndSection 

Уже запилил, и я в курсе некоторых основ. Мне УДОБНЕЕ смотреть на флажок, чем на лампочку капслока, которая ночью будет сливаться с подсветкой клавиатуры.

(while true; do xxkb; sleep 5; done)&

Это у меня в стартовых скриптах WM уже довольно давно 🙂

Как совсем аскетичный вариант skb.

Всего порядка ста строчек на Си, тупо возвращает текущую раскладку и всё.

Да, это круто. Но увы, он выдает текст, а не гадит в трей. А убогий i3status не умеет что-либо стороннее писать из коробки, только (. далее список, например, загрузку проца, время, . ). То есть можно и накостылять, но зачем?

Обойдусь временно лампочкой, может потом придумаю что получше.

Так я не понял решили проблему или нет? Мне тоже надо что бы в i3 в каждом окне/программе была своя раскладка, а не одна на всё. При вызове dmenu набор идет в том языке какой последний, а хочется что бы переход был на системный, и я не совсем понял как kbdd настроить. Буду следить за темой, может что полезное будет.

Но увы, он выдает текст, а не гадит в трей.

А разве там нельзя просто виджеты цеплять как в awesome? Плохо если так =(

Совсем маньячный Ъ способ: статусбар написан тоже на Си. Ну и. Благо, если стоит gentoo, то всё равно из исходников собирается и кастомные патчи накладываются легко.

И да, многовато чести для индикатора раскладки, чтобы исходники править.

Не решили толком. Галочка «Решено» = топикстартер удовлетворился индикацией раскладки с помощью лампочки на капслоке и редко-падающего-xxkb, ну а при запуске dmenu нужно будет иногда переключить раскладку.

Остальные окна обрабатываются нормально, для них раскладки свои запоминаются, а вот с dmenu да, проблема.

А ещё, если уже стоит qt, можно попробовать qxkb. Но не знаю, насколько это соответствует пункту «отсутствие привязки к какому-либо DE и лишних зависимостей». Там только qt.

Читайте также:  Быстрый linux для ноутбуков

собрал пакет. Выводит Eng и Rus в консоль. А каким образом в панельку прикручен у Вас?

у меня на OpenSUSE 13.1 и Awesome падает эта приблуда по невыясненным обстоятельствам. Так что выбор сомнительный.

awesome v3.5.1

function get_layout() local filedescriptor = io.popen("skb -1") local value = filedescriptor:read() filedescriptor:close() return value end keylayout = wibox.widget.textbox() mytimer = timer(< timeout = 1 >) mytimer:connect_signal("timeout", function() keylayout:set_text(get_layout()) end) mytimer:start() . left_layout:add(keylayout) 

я подписался на эту тему ибо у меня есть следующая проблема: на генту я пользовался xxkb. это простой как кирпич индикатор, который просто делает свою работу™. При попытке перенести этот опыт на убунту меня ждал жесткий облом: xxkb в убунту регулярно падает. раньше я думал что проблема именно в этой софтине но продолжал ее юзать ибо лень 🙂

Когда я увидел этот тред на ЛОРе, я воспрял духом: ну кто-то а лоровский спв точно подкинет годную идею. я перепробывал все годные (без километра зависимостей и странных рантаймов) проги, которые были здесь упомянуты. Выбор пал на gxkb. Я думал, вот оно, мое счастье. Но после пары недель лёгкое спокойствие было замещено старым недовольством: этота софтинка (уже не индикатор, а переключатель) выдает очень похожый фокус: при переключении языка с помощью Alt+Shift флажок не меняется. Тоесть единственное усовершенствование по сравнению с xxkb это то что он не падает. Это несомненно прогрес, вашу мать!

уважаемые знатоки внимание вопрос™©: в убунту|линуксе есть индикатор который способен **нормально работать** (в fluxbox) **неделями** а не до следующего падения?

ZuBB ★★★★★ ( 08.04.14 10:22:07 MSK )
Последнее исправление: ZuBB 08.04.14 10:23:48 MSK (всего исправлений: 1)

уважаемые знатоки внимание вопрос™©: в убунту|линуксе есть индикатор который способен **нормально работать** (в fluxbox) **неделями** а не до следующего падения?

у меня xxkb падает ТОЛЬКО если он настроен чтоб висеть флажком на каждом окне,
а если я его ставлю в трей — всё ок
причём.
в убунте он вообще не запускался для каждого окна, только в трей (и не падает)
в федоре висит на всех окнах, падает пару раз в день не зависимо от списка игнора окон, иногда падает для одного окна, иногда да 2-3, иногда вообще весь

или я не шарю или что-то не так
Reading symbols from /usr/bin/xxkb. (no debugging symbols found). done.

(т.е. с записью о сегфолте в сислоге) или просто тихо завершается?

копнул логи, вот что нашёл
xxkb[1337]: segfault at 58c5f7cc ip 4ed2e27a sp bfaf97e0 error 4 in libc-2.18.so[4ecb9000+1b8000]
и во всех случаях это error 4 in libc-2.18.so[4ecb9000+1b8000]

Да, хреново на буках: индикатора scroll lock нет. Сам вот никак не придумаю, что бы такое забульбенить в качестве индикатора раскладки. Жаль, нельзя светодиодом вебки управлять отдельно — было бы лучше всего.

у меня не для каждого окна, по падает зараза. я уже подумываю а мож проблема уровнем ниже?

ps: я не знаю как убунтовцы/дебиановци собирают софт, но у меня есть несколько аппов, которые у генту работали на порядок лучше

я уже мульен репортов послал в каноникал через ихний упси. но дело с места так и не сошло

ZuBB ★★★★★ ( 08.04.14 14:45:36 MSK )
Последнее исправление: ZuBB 08.04.14 14:46:02 MSK (всего исправлений: 1)

man blink(1), если не жалко отдельный usb-порт

Источник

Оцените статью
Adblock
detector