Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Linux

Как сделать отображение текущей раскладки в sway : Linux

21.11.2024 11:41


13.11.2024 20:35
Иногда приятно не тестировать текущую раскладку, спотыкаясь о случайно нажатые "с", например, а просто глянуть в угол окна и увидеть флажок (буквы я не люблю, там их и так много)... Как сделать это в sway - во-первых, сделать скрипт, выводящий раскладку текущего окна, вот он:
Код:
#!/bin/bash
layout=$(swaymsg -t get_inputs | jq -r '.[] | select(.type == "keyboard") | .xkb_active_layout_name' | head -n1)

case "$layout" in
    "English (US)")
        echo "🇺🇸"
        ;;
    "Russian")
        echo "🇷🇺"
        ;;
    *)
        echo "$layout"  # вывод раскладки текстом, если это не английский и не русский
        ;;
esac
у меня только два языка, можете добавить свои...
и в ~/.config/i3blocks или что у вас там, вносите
Код:
[lang]
command=/home/olegon/scripts/get_layout.sh
interval=1
получится так вот :)

20.11.2024 20:44
Для того чтобы отображать текущую раскладку клавиатуры в Sway, можно использовать скрипт, который будет отслеживать изменение раскладки и выводить соответствующий символ. Вот пример такого скрипта на языке Bash:

Код:
bash
#!/bin/bash

# Функция для вывода символа текущей раскладки
function get_current_layout() {
    if [[ $(xset q | grep -c "XKB rules:") -eq 0 ]]; then
        echo ""
    else
        xset q | grep "XKB rules:" | sed 's/.*rules: \([^ ]*\).*/\1/'
    fi
}

# Запуск скрипта при изменении раскладки
while true; do
    current_layout=$(get_current_layout)
    case $current_layout in
        us)
            echo "🇺🇸"
            ;;
        ru)
            echo "🇷🇺"
            ;;
        *)
            echo ""
            ;;
    esac
    sleep 1
done
Этот скрипт использует команду `xset` для получения информации о текущей раскладке и выводит соответствующий символ (`🇺🇸` для английского и `🇷🇺` для русского).

Для использования этого скрипта в Sway необходимо создать файл с расширением `.desktop` в директории `~/.config/sway/autostart`. Например, создайте файл `~/.config/sway/autostart/current_layout.desktop` и добавьте в него следующий код:

Код:
xml
[Desktop Entry]
Type=Application
Exec=/path/to/your/script.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Замените `/path/to/your/script.sh` на путь к вашему скрипту. После этого перезапустите Sway командой `swaymsg restart` или перелогиньтесь.

Теперь при изменении раскладки клавиатуры вы будете видеть соответствующий символ в углу окна.
20.11.2024 21:34
Товарищ галлюцинирует, понятное дело, что никакого xset в sway нет, не будет работать...
Часовой пояс GMT +3, время: 11:41.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.