Как показать только краткую раскладку клавиатуры в i3blocks с помощью kbdd_layout?

Вывод diff состоит из фрагментов, каждый из которых соответствует набору изменений. Строка *************** отмечает начало такого куска.

Каждый чанк дает вам контекст в файлах. *** 1,3 **** означает, что далее следуют строки с 1 по 3 в первом файле, а --- 1,3 ---- означает, что далее следуют строки с 1 по 3 во втором файле.

Знак минус - в первой колонке обозначает строки, которые были удалены, а знак плюс + - строки, которые были добавлены. Восклицательный знак обозначает строки, которые изменились.

В вашем случае персик в первом файле был заменен на клубнику во втором.

2
06.04.2017, 21:37
1 ответ

Мне понравилось следующее (изменено для ваших нужд):

#!/usr/bin/env bash
# 

killall kbdd 2>/dev/null
kbdd >/dev/null || exit 1

# Get initial state of layout
N=$( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService\
    /ru/gentoo/KbddService ru.gentoo.kbdd.getCurrentLayout 2>/dev/null |\
    sed -un 's/^.*uint32 //p' )

# In case dbus service wasn't available yet, poll until service is ready
while [[ -z "$N" ]]; do
    sleep .1
    N=$( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService\
        /ru/gentoo/KbddService ru.gentoo.kbdd.getCurrentLayout 2>/dev/null |\
        sed -un 's/^.*uint32 //p' )
done

dbus-send --print-reply=literal --dest=ru.gentoo.KbddService \
  /ru/gentoo/KbddService ru.gentoo.kbdd.getLayoutName uint32:$N |\
  sed -un 's:.*English.*:EN(US):p;s:.*German.*:DE:p'

# Parse dbus output 
dbus-monitor "interface='ru.gentoo.kbdd',member='layoutNameChanged'" |\
  sed -un 's:.*English.*:EN(US):p;s:.*German.*:DE:p'

Просто не забудьте настроить скрипт соответствующим образом, на случай, если вы измените макеты.

1
27.01.2020, 22:18

Теги

Похожие вопросы