Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Скрипты частично заменяющие или дополняющие функционал программы xNeur.  (Прочитано 42306 раз)

0 Пользователей и 1 Гость просматривают эту тему.

adawdp

  • Автор темы
  • Гость
2015 Dec 27; 07:32 PM; Oakville, ON, Canada.

— Начиная со 145 страницы и по 147 страницу в теме xNeur - Punto Switcher for Linux стал обсуждать родственный вопрос о возможности выполнения некоторых операций по замене не в той раскладке введенных символов символами в нужной раскладке. Полагаю, что это лучше обсуждать в отдельно теме, чтобы не засорять тему о программе xNeur.
https://forum.ubuntu.ru/index.php?topic=165332.2160
— Я пользуюсь двумя скриптами. Один из них меняет раскладку выделенного текста, другой меняет раскладку группы неправильно введенных символов без пробелов, при этом выделения текста не требуется ( например начал печатать слово не в той раскладке, одно нажатие клавиши раскладка напечатанного изменилась, язык переключился).
— Это всё ни в коем случае не заменяет xNeur но несколько облегчает жизнь, потому как в настоящее время xNeur не у всех и не всегда стабильно работает.
Код: (bash) [Выделить]
#!/bin/bash
# Этот скрипт позволяет менять раскладку выделенного текста, т.е. выделяется текст, нажимаются соответствующие клавиши происходит смена раскладки и замена символов выделенного текста…
#cd /home/путь к скрипту/
xdotool key Ctrl+Insert
sleep 0.1s
xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -b -i
sleep 0.1s
xdotool key Shift+Insert
sleep 0.1s
xdotool key Caps_Lock
Код: (bash) [Выделить]
#!/bin/bash
#Этот скрипт производит замену символов вне в той раскладке если они неразрывны и нет пробела после последнего символа, пример „ghjnj“ нажимаем назначенную клавишу получаем „прото“, т.е. начали неправильно печатать слово „протокол“ исправили и продолжили правильно, раскладка тоже переключилась.
xsel --clear
sleep 0.1s
xdotool key Shift+Home
sleep 0.1s
STRING=$(xsel | sed 's|.* ||')
len=$STRING
if [ ${#len} = 0 ];
then
xdotool key Right
sleep 0.1s
exit 1;
else
xdotool key Right
sleep 0.2s
for i in `seq 1 ${#len}`;
do
xdotool key Shift+Left
sleep 0.1s
done
fi
xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -b -i
sleep 0.1s
xdotool key Shift+Insert
sleep 0.1s
xdotool key Caps_Lock

Пользователь решил продолжить мысль 28 Декабря 2015, 16:58:17:
2015 Dec 28; 08:58 AM

— Можно сделать ещё одну модификацию:
Код: (bash) [Выделить]
#!/bin/bash
xdotool key Shift+Home
sleep 0.1s
xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -b -i
sleep 0.1s
xdotool key Shift+Insert
sleep 0.1s
xsel --clear; sleep 0.1s
xdotool key Caps_Lock
— Этому скрипту назначается клавиатурная комбинация или вообще отдельная клавиша и тогда можно полностью заменить раскладку не выделяя текста, но раскладка будет заменена в одной строке.
— В общем из примитивного ( без использования словарей) это по-моему почти весь набор, наверное можно усовершенствовать, переделать, отполировать и так далее…
« Последнее редактирование: 28 Декабря 2015, 16:58:17 от adawdp »

Оффлайн anton666

  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
К сожалению не умею запускать bash скрипты ??? Поискал по гугл понял, что нахрапом bash не возьмешь :(
Понимаю изучать надо, штука полезная, но на данный момент на это совершенно нет времени.
А скрипты хотелось бы использовать уже сейчас :) Не могли бы вы мне подсказать как их запустить.
Я создал текстовый файл в директории: /home/путь к скрипту/
Дал ему произвольное имя.
Естественно не чего не работает:)
Как запустить скрипт?
Что означают вот эти строчки? "xdotool key Caps_Lock"
Предполагаю, что это горячии клавиши для изменения раскладки текста, но почему их несколько в одном скрипте?

adawdp

  • Автор темы
  • Гость
2016 Mar 09; 08:20 AM; Oakville, ON, Canada.

Anton666, я не IT специалист, не программист и вообще мне год до пенсии (1952 г.р.), но ввиду того что интернет просто переполнен инструкциями и рекомендациями по Linux многое можно сделать “по образу и подобию” просто с минимальным умственным напряжением выполнив рекомендации специалистов :)! При этом просто нужно набрать несколько фраз в поисковике…
— Я не специалист, но попробую рекомендовать :)!
— Берём вот этот скрипт (последняя так сказать редакция)
Код: (bash) [Выделить]
#!/bin/bash
sleep 0.1; xdotool sleep 0.3 key Ctrl+c
xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -b -i
sleep 0.1; xdotool sleep 0.1 key Shift+Insert
sleep 0.1; xsel --clear
— Скрипт образцовым не является потому что к его составлению прикоснулся я, но работает.:)
— Не сложно предположить, что для работы скрипта нужны следующие программы sleep xdotool xsel  sed часть из которых может быть от рождения в системе.
— В Ubuntu есть такая программа Терминал среды GNOME (Эмулятор терминала для рабочего стола GNOME) запустив её и введя положим xsel можно многое узнать.
— Вообще всё можно узнать просто примитивно набирая в поисковике например “как запустить скрипт в Ubuntu”… Поскольку речь идёт о xNeur, то можно дописать используя „горячие клавиши“.
— Параметры системы → Клавиатура → Комбинации клавиш → Дополнительные комбинации клавиш после этого нажать “+” и во всплывшем маленьком окошке выполнить указанные там действия в том числе ПРОПИСАТЬ ПУТЬ К ВАШЕМУ СКРИПТУ…

— “xdotool key Caps_Lock” — это команда для переключения раскладки, переключает скрипт, а в настройках у меня для переключения предусмотрена клавиша Сaps Lock…

— Скрипт это всё же концепт, если громко выразиться, :) Вы должны его приспособить “под себя”.

Оффлайн anton666

  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
Что то у меня не работают ваши скрипты:( Для верности в конец каждого скрипта прописывал "notify-send 'Сообщение' 'Вроде отработал:)", это для того что бы появлялось сообщение дающее понять, вызывается скрипт или нет.
Дак вот сообщения появляется(везде кроме второго предложенного вами скрипта), но ни каких действий(переключения раскладки и т.д.) не происходит:(
Кто не будь еще пробовал скрипт? Работает?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
anton666,
А у Вас все составляющие установлены? Например xdotool, xsel…?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн anton666

  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
Извиняюсь, первый раз bash скриптами пользуюсь, еще не знаю всех тонкостей. Проблема была в том, что не установлен xdotool. Установил, вроде начал работать, спасибо за помощь ???

Пользователь решил продолжить мысль 26 Марта 2016, 17:53:33:
Хотя второй, самый интересный скрипт, все равно не работает:(
Цитировать
Этот скрипт производит замену символов вне в той раскладке если они неразрывны и нет пробела после последнего символа, пример „ghjnj“ нажимаем назначенную клавишу получаем „прото“,
Там ведь кроме xdotool и xsel вроде больше не чего не требуется?
« Последнее редактирование: 26 Марта 2016, 17:53:33 от anton666 »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Не работает полностью или только переключение? В каком приложении пробуете?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн anton666

  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
Похоже, что полностью, так как дописаная мной команда:
Цитировать
"notify-send 'Сообщение' 'Вроде отработал:)"
Не выполняется:(

В разных приложениях пробовал, к примеру в LibreOffice.

Оффлайн martin_wanderer

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Я "пробовал" этот скрипт. После творческой переработки получился вот такой монстр. Заточен под работу с раскладкой "русская машинопись". Конвертирует последнее слово слево от курсора. Направление конвертации определяет по наличию в этом слове русских букв. Переключает раскладку клавиатуры так, чтобы после конвертации она совпадала с раскладкой сконвертированного текста.
UPD: указал язык в code; UPD2: исправил ошибку в комментарии; UPD3: xdotool внезапно перестал понимать опции команды key в конце стороки. Сделал как положено
Код: (Bash) [Выделить]
#!/bin/bash
# изменить раскладку последнего слова из Russian (typewriter) в English (US) и обратно
# \x2F = / = slash
# \x5C = \ = backslash

en1='`1234567890-=';    ru1='|№-\x2F":,._?%!;';
en2='qwertyuiop[]\x5C'; ru2='йцукенгшщзхъ)';
en3="asdfghjkl;'";      ru3='фывапролджэ';
en4='zxcvbnm,.\x2F';    ru4='ячсмитьбюё';
EN1='~!@#$%^&*()_+';    RU1='+1234567890=\x5C';
EN2='QWERTYUIOP{}|';    RU2='ЙЦУКЕНГШЩЗХЪ(';
EN3='ASDFGHJKL:"';      RU3='ФЫВАПРОЛДЖЭ';
EN4='ZXCVBNM<>?';       RU4='ЯЧСМИТЬБЮЁ';
# TODO если последнее слово не содержит букв, то не считать его английским, а конвертировать в противоположную раскладку и раскладку менять.
# TODO попробовать использовать словарь
# TODO анализировать всю строку
function SrcContainsRuChars () [[ "$forconvert" =~ [А-ЯЁа-яё] ]] # 0 - true, когда есть хотя бы одная русская буква
function CurrentLayoutIsRu () { setxkbmap -query | grep -P "layout:\s+ru," > /dev/null; } # 0, если grep что-нибудь нашел

function LayoutShortcut ()
{   # сочетание смены раскладки взять из настроек системы
    gsettings list-recursively org.gnome.desktop.wm.keybindings | # весь список горячих клавиш
    grep 'switch-input-source\s' | #org.gnome.desktop.wm.keybindings switch-input-source ['<Alt>Shift_L']
    grep -P "(?<=').+(?=')" -o | sed 's/<//g' | sed 's/>/+/g'; # Alt+Shift_L
}

xdotool key --clearmodifiers Shift+Home; # выделить всю строку
sleep 0.2; # чтобы успело отработать выделение
# \S+\s*$ - последнее слово - "\S"="непробелы" "+"="один или больше" "\s"="пробелы" "*"="ноль или больше" "$"="конец строки"

fixed=$(xsel | grep -P '^.*\s(?=\S+\s*$)' -o); # взять любые символы отделенные пробелом от последнего слова # perl positive lookahead
forconvert=$(xsel | grep -P '\S+\s*$' -o); # взять последнее слово

if SrcContainsRuChars
then # направление конвертации определяем по наличию русских букв
    srcchars="$ru1""$ru2""$ru3""$ru4""$RU1""$RU2""$RU3""$RU4"
    dstchars="$en1""$en2""$en3""$en4""$EN1""$EN2""$EN3""$EN4"
else
    srcchars="$en1""$en2""$en3""$en4""$EN1""$EN2""$EN3""$EN4"
    dstchars="$ru1""$ru2""$ru3""$ru4""$RU1""$RU2""$RU3""$RU4"
fi
converted=$(printf '%s' "$forconvert" | sed "y/$srcchars/$dstchars/") # заменить srcchars на соотв dstchars

printf '%s' "$fixed""$converted" | xsel --input --clipboard # записать модифицированную строку в буфер

xdotool key --clearmodifiers Shift+Insert # вставить строку из буфера
# если раскладка текста равна текущей раскладке - переключить ее
[ $(SrcContainsRuChars)$? == $(CurrentLayoutIsRu)$? ] &&
    xdotool key --clearmodifiers $(LayoutShortcut);
« Последнее редактирование: 26 Мая 2016, 19:07:45 от martin_wanderer »

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Программа позволяет сопроводить открытие/активацию окна переключением раскладки клавиатуры.
Окна для определенной раскладки задаются в переменных eng_l и rus_l. Указывать можно часть заголовка.
Горячие клавиши для смены раскладки указать свои, пример xdotool key alt+shift.
После отображения/активации окна возможна смена раскладки, программа её менять не будет, до смены активного окна.
Работа программы распространяется только на окна, заголовки которых указаны в переменой.

Код: (python) [Выделить]

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

import re
import gi
import time
gi.require_version('Gtk', '3.0')
gi.require_version('GLib', '2.0')
from gi.repository import Gtk
from gi.repository import GLib
import subprocess

# Заголовки окон с желательной английской раскладкой
eng_l = ['leafpad', 'geany', 'commander', 'терминал', 'аутент', '~']
# Заголовки окон с желательной русской раскладкой
rus_l = ['pidgin', 'telegram', 'firefox', 'thunderbird', 'nautilus', 'рабочий']

# Проверка раскладки RU или US
def get_kb():
    a = subprocess.check_output("gsettings get org.gnome.desktop.input-sources mru-sources", shell=True).decode('utf-8')
    b = re.findall(r"\[\('xkb'\, '(\w+)'", a)
    return b[0]

# Получение имени окна
def get_name_win():
    try:
        p = subprocess.check_output('xdotool getwindowfocus getwindowname %1', shell = True)
        return p.decode('utf-8').strip('\n')
    except:
        get_name_win()

# Функция с циклом ожидания смены имени окна
def funck_get_name_window(*args):
    while True:
        if args[0].lower() in get_name_win().lower():
            GLib.usleep(GLib.USEC_PER_SEC)
        else:
            break

# Основная функция
def main_funck_my_prog():

    top_name_window = get_name_win().lower()

    # Проверка для окон с желательной английской раскладкой
    for n_w in eng_l:
        if get_kb() == 'ru' and n_w.lower() in top_name_window:
            while True:
                subprocess.Popen('xdotool key alt+shift'.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
                if get_kb() == 'us':
                    time.sleep(1)
                else:
                    break
            funck_get_name_window(n_w)
            break
        else:
            if n_w.lower() in top_name_window:
                funck_get_name_window(n_w)
                break

    # Проверка для окон с желательной русской раскладкой
    for n_w in rus_l:
        if get_kb() == 'us' and n_w.lower() in top_name_window:
            while True:
                subprocess.Popen('xdotool key alt+shift'.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
                if get_kb() == 'us':
                    time.sleep(1)
                else:
                    break
            funck_get_name_window(n_w)
            break
        else:
            if n_w.lower() in top_name_window:
                funck_get_name_window(n_w)
                break

    return True

GLib.threads_init()
GLib.timeout_add_seconds(2, main_funck_my_prog, priority=GLib.PRIORITY_LOW)
Gtk.main()

« Последнее редактирование: 09 Марта 2021, 21:40:30 от ivsatel »

Оффлайн martin_wanderer

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Программа позволяет сопроводить открытие/активацию окна переключением раскладки

Ух-ты! Раскладка по-умолчанию для конкретных типов окон! Вот бы еще различать открытие окна и активацию: у меня включена настройка "Allow different sources for each window" - соответственно, запросто может быть, что я в Firefox пишу по английски, переключился, скажем, в словарь, а при возврате - принудельно в русскую расскладку.

Горячие клавиши для смены раскладки указать свои в 39-й строке, пример xdotool key alt+shift.
А что не взяли у меня скрипт для сочетания клавиш?
Код: (Bash) [Выделить]
   # сочетание смены раскладки взять из настроек системы
    gsettings list-recursively org.gnome.desktop.wm.keybindings | # весь список горячих клавиш
    grep 'switch-input-source\s' | #org.gnome.desktop.wm.keybindings switch-input-source ['<Alt>Shift_L']
    grep -P "(?<=').+(?=')" -o | sed 's/<//g' | sed 's/>/+/g'; # Alt+Shift_L

Кстати, в проверке раскладки защита от жадности,  по-моему,  лишняя - не нужен там знак вопроса. Во всяком случае я не смог придумать, когда жадный вариант сработает неправильно
Код: (Bash) [Выделить]
setxkbmap -query | grep -P 'layout\:\s+?ru,us' >/dev/null

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Вот бы еще различать открытие окна и активацию: у меня включена настройка "Allow different sources for each window" - соответственно, запросто может быть, что я в Firefox пишу по английски, переключился, скажем, в словарь, а при возврате - принудельно в русскую расскладку.

Различаются окна по фокусировке, т.е. окно получило фокус, тут-же пошла проверка на соответствие раскладки заголовку окна.

А что не взяли у меня скрипт для сочетания клавиш?

Подумал так надежней

Кстати, в проверке раскладки защита от жадности,  по-моему,  лишняя - не нужен там знак вопроса.

Да) Вы правы, не спорю.

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
У меня Lubuntu, и
setxkbmap -queryвыводит одно и тоже на рус. и англ. раскладках.

Цитировать
# сочетание смены раскладки взять из настроек системы
    gsettings list-recursively org.gnome.desktop.wm.keybindings | # весь список горячих клавиш
    grep 'switch-input-source\s' | #org.gnome.desktop.wm.keybindings switch-input-source ['<Alt>Shift_L']
    grep -P "(?<=').+(?=')" -o | sed 's/<//g' | sed 's/>/+/g'; # Alt+Shift_L
короче:
gsettings list-recursively org.gnome.desktop.wm.keybindings \
| sed -rn 's/>/+/; s/.*switch-input-source \[\x27<(.*)\x27\].*/\1/p'
и сочетание для смены выводит не верное (Super+space, а реальное - Alt+Shift)

martin_wanderer,
1. Перед обявлением функции не нужно писать "function "
2. Лишние ";". Точка с запятой ставится только МЕЖДУ командами или зарезервированными словами записаными в одной строке, или после последней команды в функции, если закрывающая скобка функции находится в этой же строке.
3. При объеденении содержимого из нескольких значений переменных двойные скобки нужны только в начале и в конце.
newvar="$var1$var2$var3"4. printf '%s' "$fixed""$converted"можно вывести и эхом:
echo "$fixed$converted"5. [ $(SrcContainsRuChars)$? == $(CurrentLayoutIsRu)$? ] &&
    xdotool key --clearmodifiers $(LayoutShortcut);
заменить на:
SrcContainsRuChars && CurrentLayoutIsRu \
&& xdotool key --clearmodifiers $(LayoutShortcut)

Пользователь добавил сообщение 28 Мая 2016, 20:07:01:
Цитировать
# если раскладка текста равна текущей раскладке - переключить ее

А когда раскладка клав. может быть не равна раскладке текста?

Ввел текст не в той раскладке, потом зачем-то перключил раскладку (случайно?),
и нажал сочетание для вызова скрипта конвертации?

Имхо: нужно в конце просто менять раскладку,
и не вычеслять сочетание, а указать его в переменной.
« Последнее редактирование: 28 Мая 2016, 20:07:01 от Cxms »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
gsettings list-recursively org.gnome.desktop.wm.keybindings \
| sed(grep)
Что за цирк?gsettings get org.gnome.desktop.wm.keybindings switch-input-source | grep -om1 "[^][' .,]\+"Почему это функция? Значение нужно 1 раз, следовательно стоит присвоить переменной, а не получать его каждый раз.
По поводу текущей раскладки стоит смотреть параметр gsettings get org.gnome.desktop.input-sources currentв перечне раскладок gsettings get org.gnome.desktop.input-sources sources— но они могут быть пустые, если переключение идет через setxkbmap
Подробнее…
« Последнее редактирование: 28 Мая 2016, 20:33:08 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
1. в чем цирк?
2.
Цитировать
gsettings get org.gnome.desktop.wm.keybindings switch-input-source | grep -om1 "[^][' .,]\+"
+ удалить < и заменить > на +
| sed 's/<//;s/>/+/'3. Да, там кроме функции еще много лишнего.
4.
Цитировать
По поводу текущей раскладки стоит смотреть параметр
gsettings get org.gnome.desktop.input-sources current
вывод: uint32 0 - на обоих раскладках.

Пользователь добавил сообщение 28 Мая 2016, 20:34:06:
gsettings get org.gnome.desktop.input-sources sourcesвывод: @a(ss) [] - на обоих раскладках.

Пользователь добавил сообщение 28 Мая 2016, 20:42:43:
setxkbmap -layout us,ru
setxkbmap -layout ru,us
- переключают раскладку, но остается проблема получить значение текущей раскладки.

Пользователь добавил сообщение 28 Мая 2016, 20:55:07:
Решено. После изменения раскладки setxkbmap'ом, начал выводить ее верное значание в setxkbmap -query.
« Последнее редактирование: 28 Мая 2016, 20:55:07 от Cxms »

 

Страница сгенерирована за 0.048 секунд. Запросов: 26.