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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

adawdp

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

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

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

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

Оффлайн anton666

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

adawdp

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

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

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

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

Оффлайн anton666

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

Оффлайн Azure

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

Оффлайн anton666

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

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

Оффлайн Azure

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

Оффлайн anton666

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

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

Оффлайн martin_wanderer

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Я "пробовал" этот скрипт. После творческой переработки получился вот такой монстр. Заточен под работу с раскладкой "русская машинопись". Конвертирует последнее слово слево от курсора. Направление конвертации определяет по наличию в этом слове русских букв. Переключает раскладку клавиатуры так, чтобы после конвертации она совпадала с раскладкой сконвертированного текста.
UPD: указал язык в code; UPD2: исправил ошибку в комментарии; UPD3: xdotool внезапно перестал понимать опции команды key в конце стороки. Сделал как положено
Код: Bash
  1. #!/bin/bash
  2. # изменить раскладку последнего слова из Russian (typewriter) в English (US) и обратно
  3. # \x2F = / = slash
  4. # \x5C = \ = backslash
  5.  
  6. en1='`1234567890-=';    ru1='|№-\x2F":,._?%!;';
  7. en2='qwertyuiop[]\x5C'; ru2='йцукенгшщзхъ)';
  8. en3="asdfghjkl;'";      ru3='фывапролджэ';
  9. en4='zxcvbnm,.\x2F';    ru4='ячсмитьбюё';
  10. EN1='~!@#$%^&*()_+';    RU1='+1234567890=\x5C';
  11. EN2='QWERTYUIOP{}|';    RU2='ЙЦУКЕНГШЩЗХЪ(';
  12. EN3='ASDFGHJKL:"';      RU3='ФЫВАПРОЛДЖЭ';
  13. EN4='ZXCVBNM<>?';       RU4='ЯЧСМИТЬБЮЁ';
  14. # TODO если последнее слово не содержит букв, то не считать его английским, а конвертировать в противоположную раскладку и раскладку менять.
  15. # TODO попробовать использовать словарь
  16. # TODO анализировать всю строку
  17. function SrcContainsRuChars () [[ "$forconvert" =~ [А-ЯЁа-яё] ]] # 0 - true, когда есть хотя бы одная русская буква
  18. function CurrentLayoutIsRu () { setxkbmap -query | grep -P "layout:\s+ru," > /dev/null; } # 0, если grep что-нибудь нашел
  19.  
  20. function LayoutShortcut ()
  21. {   # сочетание смены раскладки взять из настроек системы
  22.     gsettings list-recursively org.gnome.desktop.wm.keybindings | # весь список горячих клавиш
  23.     grep 'switch-input-source\s' | #org.gnome.desktop.wm.keybindings switch-input-source ['<Alt>Shift_L']
  24.     grep -P "(?<=').+(?=')" -o | sed 's/<//g' | sed 's/>/+/g'; # Alt+Shift_L
  25. }
  26.  
  27. xdotool key --clearmodifiers Shift+Home; # выделить всю строку
  28. sleep 0.2; # чтобы успело отработать выделение
  29. # \S+\s*$ - последнее слово - "\S"="непробелы" "+"="один или больше" "\s"="пробелы" "*"="ноль или больше" "$"="конец строки"
  30.  
  31. fixed=$(xsel | grep -P '^.*\s(?=\S+\s*$)' -o); # взять любые символы отделенные пробелом от последнего слова # perl positive lookahead
  32. forconvert=$(xsel | grep -P '\S+\s*$' -o); # взять последнее слово
  33.  
  34. if SrcContainsRuChars
  35. then # направление конвертации определяем по наличию русских букв
  36.     srcchars="$ru1""$ru2""$ru3""$ru4""$RU1""$RU2""$RU3""$RU4"
  37.     dstchars="$en1""$en2""$en3""$en4""$EN1""$EN2""$EN3""$EN4"
  38. else
  39.     srcchars="$en1""$en2""$en3""$en4""$EN1""$EN2""$EN3""$EN4"
  40.     dstchars="$ru1""$ru2""$ru3""$ru4""$RU1""$RU2""$RU3""$RU4"
  41. fi
  42. converted=$(printf '%s' "$forconvert" | sed "y/$srcchars/$dstchars/") # заменить srcchars на соотв dstchars
  43.  
  44. printf '%s' "$fixed""$converted" | xsel --input --clipboard # записать модифицированную строку в буфер
  45.  
  46. xdotool key --clearmodifiers Shift+Insert # вставить строку из буфера
  47. # если раскладка текста равна текущей раскладке - переключить ее
  48. [ $(SrcContainsRuChars)$? == $(CurrentLayoutIsRu)$? ] &&
  49.     xdotool key --clearmodifiers $(LayoutShortcut);
  50.  
« Последнее редактирование: 26 Май 2016, 20:07:45 от martin_wanderer »

Оффлайн ivsatel

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

Код: Python
  1. #! /usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3.  
  4. import gi
  5. gi.require_version('Gtk', '3.0')
  6. from gi.repository import Gtk
  7. from gi.repository import GLib
  8. import subprocess
  9.  
  10. # Заголовки окон с желательной английской раскладкой
  11. eng_l = ['leafpad', 'geany', 'commander', 'терминал', 'аутент', '~']
  12. # Заголовки окон с желательной русской раскладкой
  13. rus_l = ['pidgin', 'telegram', 'firefox', 'thunderbird', 'nautilus', 'рабочий']
  14.  
  15. # Проверка раскладки RU или US
  16. def get_kb():
  17.     if subprocess.call("setxkbmap -query | grep -P 'layout\:\s+?ru,us' >/dev/null", shell=True):
  18.         return 'US'
  19.     else:
  20.         return 'RU'
  21.  
  22. # Получение имени окна
  23. def get_name_win():
  24.     try:
  25.         p = subprocess.check_output('xdotool getwindowfocus getwindowname %1', shell = True)
  26.         return p.decode('utf-8').strip('\n')
  27.     except:
  28.         get_name_win()
  29.  
  30. # Функция с циклом ожидания смены имени окна
  31. def funck_get_name_window(*args):
  32.     while args[0].lower() in get_name_win().lower():
  33.         GLib.usleep(2000000)
  34.  
  35. # Основная функция
  36. def main_funck_my_prog():
  37.  
  38.     top_name_window = get_name_win().lower()
  39.  
  40.     # Проверка для окон с желательной английской раскладкой
  41.     for n_w in eng_l:
  42.         if get_kb() == 'RU' and n_w.lower() in top_name_window:
  43.             subprocess.Popen('xdotool key alt+shift'.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
  44.             funck_get_name_window(n_w)
  45.         elif n_w.lower() in top_name_window:
  46.             funck_get_name_window(n_w)
  47.  
  48.     # Проверка для окон с желательной русской раскладкой
  49.     for n_w in rus_l:
  50.         if get_kb() == 'US' and n_w.lower() in top_name_window:
  51.             subprocess.Popen('xdotool key alt+shift'.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
  52.             funck_get_name_window(n_w)
  53.         elif n_w.lower() in top_name_window:
  54.             funck_get_name_window(n_w)
  55.  
  56.     return True
  57.  
  58. GLib.timeout_add_seconds(2, main_funck_my_prog, priority=GLib.PRIORITY_LOW)
  59.  
  60. GLib.threads_init()
  61. Gtk.main()
  62.  
  63.  
  64.  
« Последнее редактирование: 26 Июнь 2016, 12:27:19 от ivsatel »

Оффлайн martin_wanderer

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

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

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

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

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 333
    • Просмотр профиля
Вот бы еще различать открытие окна и активацию: у меня включена настройка "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, 21:07:01:
Цитировать
# если раскладка текста равна текущей раскладке - переключить ее

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

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

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

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5486
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
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, 21: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, 21:34:06:
gsettings get org.gnome.desktop.input-sources sourcesвывод: @a(ss) [] - на обоих раскладках.

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

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

 

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