LINUX.ORG.RU

i3 и отображение текущей раскладки

 ,


3

2

Имеется i3 для которого переключение языка настроено вот таким образом:

exec_always setxkbmap -model pc105 -rules evdev -layout us,ua,ru -option grp:shift_caps_switch,terminate:ctrl_alt_bksp,grp_led:scroll,compose:ralt
и имеется свой i3status, который проверяет язык ввода по scroll led-у и отображает его в строке статуса:
i3status --config ~/.i3/i3status.conf | while :
do
    read line
    LG=$(setxkbmap -query | awk '/layout/{print $2}') 
    case "$(xset -q|grep LED| awk '{ print $10 }')" in
        "00000000") LG="US" ;;
        "00001004") LG="UA" ;;
    esac
    echo "LG: $LG | $line" || exit 1
done

Какие идеи есть насчет проверить вводимый язык? vertexua, у тебя нормально отображалась раскладка. Как делал?

★★★★

Я забил болт пытаться сделать это через существующие средства, просто написал говноплагин для py3status. Короче то же что и у тебя, только через python

vertexua ★★★★☆ ()
Ответ на: комментарий от cab

Я думаю что я эту всю чепуху полностью выброшу со временем, в том числе и i3status и напишу нормальный сервис, который будет работать не так через жопу как все вышеперечисленное. Там всего-то, потоковый json надо кормить

vertexua ★★★★☆ ()
Ответ на: комментарий от vertexua

~/.i3/xkblayout-state тот же, что и у меня в коде?

cab ★★★★ ()
Ответ на: комментарий от vertexua

в шапке вопроса i3status --config ~/.i3/i3status.conf | while : и дальше.
А где твой гитхаб?

cab ★★★★ ()
Ответ на: комментарий от cab

Святая деанонимизация, во вопросы пошли. Не, я не сильно шифруюсь, но не разбазариваю. Можешь скинуть почту

vertexua ★★★★☆ ()

i3blocks умеет показывать раскладку, и многое другое.

muted ()

Раз уж речь зашла о py3status, сколько % CPU он использует у вас? У меня он постоянно грузит CPU на 1%, даже firefox себя так не ведет когда не в фокусе. Даже написал скрипт на alt+p чтоб приостанавливал выполнение, когда ноут работает от батареи:

#!/usr/bin/env python3
# coding: utf-8

import os, subprocess


stat = subprocess.check_output("ps -C py3status -o stat".split(), universal_newlines=True)
if "SNl" in stat:
	os.system("killall -SIGSTOP py3status")
	os.system("notify-send -t 500 'py3status paused!'")
else:
	os.system("killall -SIGCONT py3status")
	os.system("notify-send -t 500 'py3status resumed!'")
	os.system("killall -SIGUSR1 py3status")

Smola ()
Ответ на: комментарий от muted

Если на каджый язык по кейбиндингу, то я бы вопросов не задавал. Тут больше вопрос как узнать какая из раскладок включена. А расширение классное, спасибо.

cab ★★★★ ()

Почему бы не поставить xkb-switch? Легкий и быстрый.
При выполнении печатает текущую раскладку, потому просто выводишь её вывод и готово.

qnicolya ()
Ответ на: комментарий от qnicolya

Я привык переключаться между двумя основными языками по CAPS-у и на редко используемый язык по нажатию на правый Alt. xkb-switch такое умеет?

cab ★★★★ ()
Ответ на: комментарий от cab

Его не волнует способ переключения, он только показывает раскладку. У меня в i3pystatus это выглядит так:

status.register(«shell»,
command=«xkb-switch»,
color=«#129212»,
interval = 0.01,)

Тебе же просто надо будет вместо той тучи кода вывести полученную от него строку.

qnicolya ()

Рекомендую fbxkb или xxkb

WRG ★★★★ ()

Как часто смотрите на индикатор раскладки? Не нужно.

afterlanding ★★ ()
Последнее исправление: afterlanding (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.