LINUX.ORG.RU

Как перехватить раскладку клавиатуры?

 


0

1

Для смены раскладки использую gxkb. Флаг раскладки есть в трее (использую stalonetray). Флажок маленький. Хочу вывести куда нибудь тот же флажок, но в большом формате. Для этого надо перехватит сигнал от gxkb или как то считать с трея, но я не понимаю как. Раньше я пользовал xxkb, и у него есть такая возможность выводить на рабочий стол отдельное окно с флагом. Но, к сожалению, xxkb криво работает с тремя языками, а мне сейчас нужны три. Поэтому перешел на gxkb. Прошу прощения, если вопрос глупый, я не программист. Может все это и тривиально. Система linux mint + fvwm. Использовать fvwmscript не удобно - минимальный период опроса у него 1 секунда, а переключать приходится чаще.

★★★★

Разве в stalonetray и/или в gxkb нельзя настроить, какие флажки выводить? По-моему, это самый простой способ. Попытаться перехватывать событие изменения раскладки клавиатуры в fvwm - это практически переписать stalonetray как модуль для fvwm.

К тому же, если мне не изменяет память, то по протоколу xembed именно gxkb отправляет пиксмап в stalonetray. А stalonetray уже отображает то, что ему приходит. Ну разве, что он может «договориться» о размере пиксмапа, или сам отмасштабировать. Но в этом я не уверен. Давно уже в этом ковырялся.

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

Да, правильно, можно установить размер иконок отображаемых в трее stalonetray, но проблема в том, что устанавливает размер сразу всех иконок. У меня в трее висит 7 иконок, а увеличить надо одну. Даже если умудриться увеличить одну, то смотреться будет дико. gxkb не управляет размером иконок.

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

Есть небольшая утилита xkblayout-state и она четко определяет расклад клавиатуры. Вы не знаете как заставить fvwmscript зацикливаться быстрее чем на 1 сек? Еслиб как нибудь заставить крутится со скоростью 0.1 сек, то проблема бы была решена.

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

Честно говоря, даже не представляю, как вы это все хотите получить в идеальном виде. В трее висит куча разных иконок, но только одна из них имеет особенный большой размер, и это флажок раскладки клавиатуры?

zloy_starper ★★★
()

а в чем заключается кривость работы xxkb? а то всю жизнь с тремя языками сижу, и никакой кривости не замечал

ну и в самом fvwm есть Schedule Periodic

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

Есть небольшая утилита xkblayout-state и она четко определяет расклад клавиатуры.

Ну это то понятно, можно, зарегистрировать доставку сообщений о смене раскладки от X. А xkblayout-state - это часть fvwm, или сама по себе утилитка?

Еслиб как нибудь заставить крутится со скоростью 0.1 сек, то проблема бы была решена.

Ну скорее всего поправить в исходниках частоту опроса чего-то там вам нужного не велика сложность. Вот только не поплохеет ли от высокой частоты?

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

Да нет же. Может я плохо излагаю. Еще раз медленно: я хочу иметь флажок раскладки клавиатуры в другом месте, не в трее, размером в 10 раз больше.

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

Если оставить флажок только в трее, то с тремя раскладками он работает. Если же включить функцию вывода флага в отдельное окно, то лично у меня глючит конкретно. Крутит только два флага, в то время как в трее крутит три. А Schedule Periodic имеет минимум цикла - 1 секунда.

rustamych ★★★★
() автор топика
Последнее исправление: rustamych (всего исправлений: 1)
Ответ на: комментарий от zloy_starper

xkblayout-state - сама по себе утилита. Поправить никак, по умолчанию минимум = 1 секунде. Вы правы, что такая высокая частота может доставить проблемы. Поэтому и задумался как бы использовать вывод gxkb.

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

Если же включить функцию вывода флага в отдельное окно, то лично у меня глючит конкретно. Крутит только два флага, в то время как в трее крутит три

отключи XXkb.controls.two_state

А Schedule Periodic имеет минимум цикла - 1 секунда

серьезно? а в man заглянуть?

Schedule [Periodic] delay_ms [command_id] command
              The command is executed after about delay_ms milliseconds.
ananas ★★★★★
()
Ответ на: комментарий от ananas

Пардон, перепутал с PeriodicTasks в FvwmScript. А как затолкать Schedule Periodic в FvwmScript? Там же периодическая часть имеет минимум 1 сек. По поводу xxkb попробую. Спасибо. Может и перестанет глючить.

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

А у меня и не было такой опции. Вот мой конфиг xxkb

XXkb.mainwindow.enable: yes
XXkb.mainwindow.in_tray: no
XXkb.mainwindow.label.enable: no
XXkb.mainwindow.geometry: 108x73-20-70
XXkb.mainwindow.type: top
XXkb.mainwindow.border.width: 2
XXkb.mainwindow.border.color: red
XXkb.mainwindow.label.background: red
XXkb.mainwindow.label.foreground: green
XXkb.button.geometry: 108x73-100+156
XXkb.image.path: /home/nail/.icons/flags/xxkb
XXkb.mainwindow.image.1: us.xpm
XXkb.mainwindow.image.2: ru.xpm
XXkb.mainwindow.image.3: br.xpm
XXkb.mousebutton.1.enable: no
XXkb.ignore.reverse: yes
XXkb.app_list.wm_class_class.ignore: Texmaker Kile 
XXkb.controls.add_when_create: yes
Мой fvwm развернут поверх Linux Mint. Может это еще играет роль. Раньше я пользовался просто Linux Mint Mate и там был такой глюк. ctrl shift гонял по кругу два языка и чтобы перейти на третий приходилось мышкой кликать на иконку в трее и выбирать третий. После выбора третьего ctrl shift опять гонял по кругу только два с учетом выбранного. Вот поэтому я и перешел на gxkb.

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

А в /etc/X11/app-defaults/XXkb случайно не лежит конфиг с XXkb.controls.two_state? В общем, если вы не там настраиваете, а отдельно (.Xresources?), попробуйте явно задать two_state: no у себя. Сейчас проверил — три флажка успешно показывает.

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

Вах шайтан действительно лежит файл XXkb и в нем

XXkb.controls.two_state: yes
Тогда я не пойму зачем нужен файл ~xxkbrc? Стало быть его можно удалить, а все исправления делать в /etc/X11/app-defaults/XXkb ?

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

Работает, но теперь показывает разные раскладки в трее и в отдельном окне. Английский одинаково, а русский и бразильский путает. Причем в трее показывает правильно. Не пойму как исправить? Ниже мой ~xxkbrc.

XXkb.mainwindow.enable: yes
XXkb.mainwindow.in_tray: yes
XXkb.mainwindow.label.enable: no
XXkb.mainwindow.geometry: 108x73-6-230
XXkb.mainwindow.type: top
XXkb.mainwindow.border.width: 2
XXkb.mainwindow.border.color: red
XXkb.mainwindow.label.background: red
XXkb.mainwindow.label.foreground: green
XXkb.image.path: /home/nail/.icons/flags/xxkb
XXkb.mainwindow.image.1: us.xpm
XXkb.mainwindow.image.2: ru.xpm
XXkb.mainwindow.image.3: br.xpm
XXkb.mainwindow.image.4:
XXkb.mousebutton.1.enable: no
XXkb.ignore.reverse: yes
XXkb.app_list.wm_class_class.ignore: Texmaker Kile 
XXkb.controls.add_when_create: yes
XXkb.controls.two_state: no

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

После перезагрузки полная чертовщина. Показывает только в трее и только две раскладки. Если перезапустить killall xxkb; nohup xxkb &, то из трея все исчезает и появляется флаг в отдельном окошке, НО раскладок опять всего две. В чем дело? Ниже фалы ~xxkbrc и /etc/X11/app-defaults/XXkb . gxkb работал намного лучше.

XXkb.mainwindow.enable: yes
XXkb.mainwindow.in_tray: no
XXkb.mainwindow.label.enable: no
XXkb.mainwindow.geometry: 108x73-6-230
XXkb.mainwindow.type: top
XXkb.mainwindow.border.width: 2
XXkb.mainwindow.border.color: red
XXkb.mainwindow.label.background: red
XXkb.mainwindow.label.foreground: green
XXkb.image.path: /home/nail/.icons/flags/xxkb
XXkb.mainwindow.image.1: us.xpm
XXkb.mainwindow.image.2: ru.xpm
XXkb.mainwindow.image.3: br.xpm
XXkb.mainwindow.image.4:
XXkb.button.enable: yes
XXkb.button.geometry: 15x15-60+7
XXkb.button.image.1: us.xpm
XXkb.button.image.2: ru.xpm
XXkb.button.image.3: br.xpm
XXkb.button.image.4:
XXkb.mousebutton.1.enable: no
XXkb.ignore.reverse: yes
XXkb.app_list.wm_class_class.ignore: Texmaker Kile 
XXkb.controls.add_when_create: yes
XXkb.controls.two_state: no
XXkb.image.path: /usr/share/xxkb

XXkb.group.base: 1
XXkb.group.alt: 2

XXkb.mainwindow.enable: yes
XXkb.mainwindow.geometry: 48x48
XXkb.mainwindow.image.1: en48.xpm
XXkb.mainwindow.image.2: ru48.xpm
XXkb.mainwindow.image.3: su48.xpm
XXkb.mainwindow.image.4:
XXkb.mainwindow.label.font: -misc-*-r-*-20-*

XXkb.*.border.color: black
XXkb.*.border.width: 0

XXkb.*.label.foreground: white
XXkb.*.label.background: blue4
XXkb.*.label.enable: no

! XXkb.mainwindow.type:
! possible values - normal, top, tray, wmaker

XXkb.button.enable: yes
XXkb.button.geometry: 15x15-60+7
XXkb.button.image.1: en15.xpm
XXkb.button.image.2: ru15.xpm
XXkb.button.image.3: su15.xpm
XXkb.button.image.4:
XXkb.button.label.font: -misc-*-r-*-13-*

XXkb.controls.add_when_start: yes
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: no
XXkb.controls.focusout: no
XXkb.controls.two_state: no
XXkb.controls.button_delete: yes
XXkb.controls.button_delete_and_forget: yes
XXkb.controls.mainwindow_delete: yes

XXkb.mousebutton.1.reverse: no
XXkb.mousebutton.3.reverse: no

XXkb.bell.enable: no
XXkb.bell.percent: -50

XXkb.ignore.reverse: no

! XXkb.app_list.<match>.<action>: <list>
! <match> is one of "wm_class_class", "wm_class_name", "wm_name", "property"
! <action> is one of "ignore", "start_alt", "alt_groupM" (M - 1..4) 
! For example:
!   XXkb.app_list.wm_class_class.ignore: *clock Fvwm*
!   XXkb.app_list.wm_class_name.start_alt: licq
!
!  ignore windows in KDE tray
!  XXkb.app_list.property.ignore: _KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR

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

LeninGad Дело в том, что у меня fvwm поверх linux mint mate, а это ubuntu 16. Перезапускаю комп, значок только в трее и только два языка. Перезапускаю killall xxkb; nohup xxkb & и значок появляется только в отдельном окошке. Запускаю центр управления и там клавиатура. После этого появляется значок в трее и все три раскладки работаю одинаково и правильно. Как то не хочется каждый раз делать такие процедуры. Как бы это обойти?

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

Все. Нашел решение. Надо просто запретить другим воздействовать на раскладку. При загрузке fvwm запускаю строку

+ I Exec exec setxkbmap -layout 'us,ru,br' -variant 'winkeys' -option grp:ctrl_shift_toggle,grp_led:scroll
Запускается в трее (виден только краешек флага, поскольку он большой). Сделал кнопку которая запускает killall xxkb; nohup xxkb & и ву а ля - имеем флаг в отдельном окошке. Хоть какое-нибудь, но решение. Получилось вот так https://drive.google.com/open?id=1lDkh30MmvseaF9TDcG_3TEFGKlk-L_XV

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

Верно, что-то я не подумал об этом. Вечером попробую. А запретить трей это как? В кофиге ~.xxkbrc я пишу XXkb.mainwindow.in_tray: no но иконка все равно появляется в трее. Виден правда кусочек - верхний левый угол большого флага. После перезапуска xxkb флаг появляется в отдельном окне. Или надо писать false вместо no?

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

Почему-то не срабатывает. Вот мой конфиг xxkb

XXkb.mainwindow.type: normal
XXkb.mainwindow.enable: yes
XXkb.mainwindow.in_tray: no
XXkb.mainwindow.label.enable: no
XXkb.mainwindow.geometry: 108x73-6-930
XXkb.mainwindow.type: top
XXkb.mainwindow.border.width: 2
XXkb.mainwindow.border.color: red
XXkb.mainwindow.label.background: red
XXkb.mainwindow.label.foreground: green
XXkb.image.path: /home/nail/.icons/flags/xxkb
XXkb.mainwindow.image.1: us.xpm
XXkb.mainwindow.image.2: ru.xpm
XXkb.mainwindow.image.3: br.xpm
XXkb.mainwindow.image.4:
XXkb.button.enable: no
XXkb.mousebutton.1.enable: no
XXkb.ignore.reverse: yes
XXkb.app_list.wm_class_class.ignore: Texmaker Kile 
XXkb.controls.add_when_create: yes
XXkb.controls.two_state: no
В конфиге fvwm выделил место на правой панели и запускаю там xxkb
*RightPanel: (108x73, Swallow(NoClose,UseOld) xxkb 'Exec exec xxkb', Frame 0)
Но при запуске fvwm все равно флаг лезет в трей. После перезапуска xxkb флаг исчезает из трея и появляется там, где я ему указал на правой панели. Но заметил одну неприятность. Если я в открытом окне, например, geany нажимаю «справка» и затем «о программе», то выскакивает окошко со справкой и убивает флаг xxkb. Приходится перезапускать. И такая фигня с любым окном, не только с geany. Это уж совсем неудобно.

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

Эта фигня происходит если флаг располагается на панельке fvwm. Вне панельки fvwm такого нет. На самом деле флаг просто прячется под панельку.

rustamych ★★★★
() автор топика
Последнее исправление: rustamych (всего исправлений: 1)
Ответ на: комментарий от ananas

Исправил. Теперь проблема исчезла, но блин появились новых целых две. Во первых флаг стал с заголовком, да еще и значок на панели открытых файлов. https://drive.google.com/open?id=18BOMVkQ7RT1iLE0fd-N3b_0uXnPIBZMW Вторая проблема похожа на ту, что была, но еще хуже. Теперь при открытии окна нового приложения флаг опять прячется под все, т.е. опять исчезает с панели. Похоже не смогу я побороть этот xxkb. Мой конфиг теперь такой

XXkb.mainwindow.type: normal
XXkb.mainwindow.enable: yes
XXkb.mainwindow.in_tray: no
XXkb.mainwindow.label.enable: no
XXkb.mainwindow.geometry: 108x73-6-930
XXkb.mainwindow.border.width: 2
XXkb.mainwindow.border.color: red
XXkb.image.path: /home/nail/.icons/flags/xxkb
XXkb.mainwindow.image.1: us.xpm
XXkb.mainwindow.image.2: ru.xpm
XXkb.mainwindow.image.3: br.xpm
XXkb.mainwindow.image.4:
XXkb.button.enable: no
XXkb.mousebutton.1.enable: no
XXkb.ignore.reverse: yes
XXkb.controls.two_state: no
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: yes

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

это потому, что окно xxkb у тебя не встроилось в панель, возможно из-за того, что ты неверно прописал метку для ловли окна

вот мой рабочий кусок

*FvwmPanel: (Id kbd, 40x1, Padding 5 5, Swallow(UseOld,NoKill) "XXkb" 'Exec exec xxkb')

заметь, XXkb (имя иксовых ресурсов для xxkb), а не xxkb, как у тебя

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

Сделал как у вас, не помогает. Вот геометрия в ~.xxkbrc

XXkb.mainwindow.geometry: 108x73-6-930
Размер флага 108х73 и положение -6-930. В конфиге fvwm
*RightPanel: (6x73, Frame 0)
*RightPanel: (Id kbd, 108x73, Padding 5 5, Swallow(UseOld, NoKill) "XXkb" 'Exec exec xxkb', Frame 0)
*RightPanel: (6x73, Frame 0)
Ширина панели 120, поэтому откусываю спереди 6 и после 6 и в середине 108. В сумме 120. Разммер тот же 108х73. Если напишу 108х1 как у вас, то вся панель разваливается на составные части.

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

Не понимаю - зачем? В stalonetray я указываю размер иконок icon_size 20 и все иконку будут втыкаться такого размера, какую бы не сунул для gxkb. Меня совсем не устраивает в трее размер иконок в 5 раз больше. Мне нужен флаг большого размера в отдельном окне. xxkb умеет так делать, но что-то надо подправить в конфиге fvwm. xxkb умеет гораздо больше. Например, может втыкать иконку в каждое открытое окно.

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

Мне вот чего еще непонятно. В конфиге fvwm я указываю конкретное место на панели fvwm. Ниже кусок, соответствующий картинке, что я выложил.

*RightPanel: (10x20, Frame 0)
*RightPanel: (25x20, Id desk0, Title "0", Action (Mouse 1) GotoDesk 0 0, Colorset 11, ActiveColorset 12, Frame 0)
*RightPanel: (25x20, Id desk1, Title "1", Action (Mouse 1) GotoDesk 0 1, ActiveColorset 12, Frame 0)
*RightPanel: (25x20, Id desk2, Title "2", Action (Mouse 1) GotoDesk 0 2, ActiveColorset 12, Frame 0)
*RightPanel: (25x20, Id desk3, Title "3", Action (Mouse 1) GotoDesk 0 3, ActiveColorset 12, Frame 0)
*RightPanel: (10x20, Frame 0)
*RightPanel: (120x5, Frame 0)
*RightPanel: (6x73, Frame 0)
*RightPanel: (Id kbd, 108x73, Padding 5 5, Swallow(UseOld, NoKill) "XXkb" 'Exec exec xxkb', Frame 0)
*RightPanel: (6x73, Frame 0)
*RightPanel: (120x7, Frame 0)
Test (x stalonetray) *RightPanel: (120x70, Swallow(NoClose,UseOld) stalonetray 'Exec exec stalonetray', Frame 0)
Вначале идут рабочие столы 0-3, потом зазорчик в 5px и затем флаг xxkb размером 108х73 и потом трей. Казалось бы место для флага выделено. Но если я укажу в конфиге xxkb XXkb.mainwindow.geometry: 108x73 без указания места, т.е. просто размер флага, то он появляется вне панели fvwm в левом верхнем углу экрана. Чтобы флаг был там где нужно, надо обязательно указывать место XXkb.mainwindow.geometry: 108x73-6-930. Как то невяжутся два конфига. Может в этом и причина странного поведения? Надо бы заставить выкладывать флаг там, где указано в конфиге fvwm, независимо от конфига xxkb.

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

Не понимаю - зачем?

моя ошибка, просмотрел что нужно вынести в отдельное окно. Тут да, gxkb так не сможет.

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

Чтобы флаг был там где нужно, надо обязательно указывать место XXkb.mainwindow.geometry: 108x73-6-930

нет, чтобы флаг был там, где нужно, он должен быть встроен в FvwmButtons, а твое указание места - это просто размешение окна xxkb НАД панелью. или задай размеры ячейки для флага большего размера, или флаг сделай меньше, или добавь NoHints к флагам Swallow

ananas ★★★★★
()

Из xxkb очень легко выдрать код, который отвечает за работу индикатора. Ты опиши подробно ТЗ со всеми хотелками, может нужное не только тебе будет.

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

Я понимаю что «твое указание места - это просто размешение окна xxkb НАД панелью». Я не понимаю другое. В скрипте fvwm указан размер НА панели. Почему же тогда флаг можно разместить где угодно на экране, а не только в отведенном месте НА панели? Все указанные тобой предложения к сожалению не работают. Пробовал увеличить размер ячейки под флаг на панели, пробовал сделать флаг меньше и даже сам файл флага уменьшал - толку нет. NoHints тоже не спасает. Где проблема зарыта не понимаю, но точно в fvwm.

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

Дык нет ругани по этому поводу никакой. Специально перезагрузил комп и проверил исчезновение флага. Ниже его содержание. Я подозреваю, что где-то у меня в конфиге fvwm прописано такое поведение. Я выложил мой конфиг здесь https://drive.google.com/open?id=1M1bKdi51T_ZPeQn4rTgPY3hM5ImHT7BV Гляньте опытным глазом - может сразу увидите. Я использовал конфиг по умолчанию, там правая панель уже была RightPanel. Я просто модернизировал немного под свои нужды. Убрал pager (817) и воткнул туда флаг xxkb (819).

initctl: Не удается подключиться к Upstart: Failed to connect to socket /com/ubuntu/upstart: В соединении отказано
syndaemon: процесс не найден
/etc/mdm/Xsession: Beginning session setup...
localuser:nail being added to access control list
[fvwm][FlocaleGetFontSet]: (-*-fixed-medium-r-semicondensed-*-13-*-*-*-*-*-*-*,-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-16-*-*-*-*-*-*-*) Missing font charsets:
MICROSOFT-CP1251
[fvwm][style_parse_and_set_window_style]: <<ERROR>> Bad style option:  CenterPlacement
[fvwm][scanForPixmap]: <<WARNING>> Couldn't load image from bgicons/my1.png
[fvwm][scanForPixmap]: <<WARNING>> Check that FVWM has support for the filetype it's being asked to load.
[fvwm][scanForPixmap]: <<WARNING>> Couldn't load image from bgicons/my2.png
[fvwm][scanForPixmap]: <<WARNING>> Check that FVWM has support for the filetype it's being asked to load.
sh: 1: Syntax error: Missing '))'
sh: 1: Syntax error: Missing '))'
[FvwmIconMan][FlocaleGetFontSet]: (-*-fixed-medium-r-semicondensed-*-13-*-*-*-*-*-*-*,-*-fixed-medium-r-normal-*-14-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-16-*-*-*-*-*-*-*) Missing font charsets:
MICROSOFT-CP1251
Gtk-CRITICAL **: calendar_invalidate_day_num: assertion 'row != -1' failed at /usr/bin/dayplanner line 2693.
X11 error: BadWindow (invalid Window parameter) (request: X_GetProperty, resource 0x14)
X11 error 3 detected at xembed.c:494:xembed_retrive_data
X11 error: BadWindow (invalid Window parameter) (request: X_GetWindowAttributes, resource 0x3)
X11 error 3 detected at debug.c:140:print_icon_data

(nm-applet:1905): Gdk-CRITICAL **: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
** Message: volume:49299
** Message: volume:49299
ImageMagick: libMagickWand-6.Q16.so.2
Starting GuiMessageQueue
Starting Double Commander
Double Commander 0.8.2 beta
Revision: 8010
Build: 2018/02/23
Lazarus: 1.6.0.4
Free Pascal: 3.0.0
Platform: x86_64-Linux-gtk2
System: Linux Mint 18.1 Serena
Desktop Environment: Unknown
Widgetset library: GTK 2.24.30
This program is free software released under terms of GNU GPL 2
(C)opyright 2006-2017 Alexander Koblov (alexx2000@mail.ru)
   and contributors (see about dialog)
Executable directory: /usr/lib/doublecmd/
Loading configuration from /home/nail/.config/doublecmd/
Loading lng file: /usr/lib/doublecmd/language/doublecmd.ru.po
WDX: LOAD: /usr/lib/doublecmd/plugins/wdx/rpm_wdx/rpm_wdx.wdx
WDX: LOAD: /usr/lib/doublecmd/plugins/wdx/deb_wdx/deb_wdx.wdx
WDX: LOAD: /usr/lib/doublecmd/plugins/wdx/audioinfo/audioinfo.wdx
Error loading configuration file /home/nail/.config/doublecmd/favoritetabs.xml
PollThread: Start polling
PollThread: AddPoll 12
Creating PixmapManager
Loading icon theme DCTheme
Loading icon theme DCTheme
Error: pixmap [/usr/lib/doublecmd/doublecmd] not loaded!
PollThread: AddPoll 19
UDev: Begin monitoring
Detecting mounts through /proc/self/mounts
PollThread: AddPoll 20
TColumnsFileView.Create components
Creating TFileSystemFileSource
TColumnsFileView.Creat[9592:9592:0914/134517.723586:ERROR:sandbox_linux.cc(379)] InitializeSandbox() called with multiple threads in process gpu-process.
** Message: volume:49299
** Message: volume:49299
[1:1:0914/134538.552335:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler *blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
[1:1:0914/134538.885665:ERROR:webthread_impl_for_utility_thread.cc(19)] Not implemented reached in virtual blink::ThreadScheduler *blink::scheduler::WebThreadImplForUtilityThread::Scheduler() const
** Message: volume:49299
** Message: volume:49299

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

Наверное можно, но я не программист и сам точно не смогу. Хотелка простая. У меня fvwm поверх linux mint mate 18 (ubuntu 16.04). Пользую три раскладки - английская, русская, и португальская. Хочу иметь большой флаг раскладки на панели fvwm (где то выше есть картинка). Я много лет так работал на Linux Mint Mate, а раньше на убунте. Большой флаг всегда присутствует в глазу, не надо отвлекаться и искать маленькую иконку в трее. На мой взгляд оч удобно. Три ярких цвета, красный ru, синий en и зелено-желтый br. Вот сейчас кажется все заработало с xxkb. Флаг разместил на панельку, но он зараза прячется под панель и под все раскрытые окна, как только в открытом окне я открою дочернеее окно, типа «свойства программы». Ну сделал кнопку и перезапускаю xxkb, но дико неудобно. Если выдрать этот кусок, то встает вопрос как его вставить в fvwm?

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

Так, а что там за панелька? Трей? Как я понимаю не трей, а кнопка нужна.

Если выдрать этот кусок, то встает вопрос как его вставить в fvwm?

Написать программу, скомпилировать.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от rustamych

О, кстати, вспомнил обходной способ борьбы, чтобы ничего не делать и поднять размер иконки xxkb в трее (если это трей), может поможет. Надо сделать иконку нужного размера и скормить её xxkb. Вроде в ~/.xxkbrc это можно сделать. На всякий случай выложу свой (я точно размер менял чтобы на hidpi нормально смотрелось, но как уже плохо помню).

XXkb.image.path: /usr/share/xxkb/
XXkb.mainwindow.type: tray
XXkb.group.base: 1
XXkb.group.alt: 2
XXkb.mainwindow.enable: yes
XXkb.mainwindow.image.1: en48.xpm
XXkb.mainwindow.image.2: ru48.xpm
XXkb.mainwindow.image.3:
XXkb.mainwindow.image.4:
XXkb.mainwindow.appicon: yes
XXkb.mainwindow.geometry: 48x48+2+2
XXkb.mainwindow.in_tray: GNOME2
XXkb.button.enable: no
XXkb.app_list.wm_class_name.start_alt: skype
XXkb.controls.add_when_start: yes
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: no
XXkb.controls.focusout: no
XXkb.mainwindow.xpm.1: en48.xpm
XXkb.mainwindow.xpm.2: ru48.xpm
XXkb.mainwindow.label.enable: no
en48.xpm и ru48.xpm ЕМНИП как раз те иконки, лежат в /usr/share/xxkb, может можно в хомяк запихнуть в какой-нибудь ~/.local/share/xxkb Не помню точно, попробуй.

Да, он с квадратными иконками у меня не глючил. С прямоугольными была какая-то трабла.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Нет это не трей. Трей это там где мегасинк красным горит (на первом фото). Панелька справа зеленая и на ней большой флаг. Панельки делаются внутри fvwm и средствами fvwm, которым я и пользуюсь. Засовывать в трей мне не надо. Я собственно с этого начал.

rustamych ★★★★
() автор топика
6 апреля 2020 г.
Ответ на: комментарий от ananas

Через два года решил вернуться к этой проблеме. Решение нашел, отпишусь, может кому еще поможет. Дело оказалось в конфиге xxkb. У меня стояла опция XXkb.mainwindow.type: top, я выставил XXkb.mainwindow.type: normal или wmaker и все заработало. Теперь флаг не исчезает с панели при открытии субокна. В общем вот конфиг xxkb

XXkb.mainwindow.type: normal
XXkb.mainwindow.enable: yes
XXkb.mainwindow.in_tray: false
XXkb.mainwindow.label.enable: no
XXkb.mainwindow.geometry: 108x73
XXkb.mainwindow.border.width: 2
XXkb.mainwindow.border.color: red
XXkb.image.path: ~.icons/flags/xxkb
XXkb.mainwindow.image.1: us.xpm
XXkb.mainwindow.image.2: ru.xpm
XXkb.mainwindow.image.3: br.xpm
XXkb.mainwindow.image.4:
XXkb.mousebutton.1.enable: no
XXkb.ignore.reverse: yes
XXkb.controls.two_state: no
XXkb.controls.add_when_create: yes
XXkb.controls.add_when_change: yes

В конфиге fvwm

+ I Exec exec setxkbmap -layout 'us,ru,br' -variant 'winkeys' -option grp:alt_shift_toggle,grp_led:scrollXDG
Сглотнуть в панель
*RightPanel: (Id kbd, 120x73, Padding 0 0, Swallow(UseOld, NoKill, NoHints) "XXkb" 'Exec exec xxkb', Frame 0)

Одна проблемка осталась. В конфиге xxkb указана красная рамка для иконки толщиной 2px. Вот она вообще не отображается. Пробовал менять всячески размеры окна для иконки раскладки и в конфиге xxkb и в конфиге fvwm, все бестолку. Рамка просто игнорируется.

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

Там было в первой строке normal, а потом ниже top. Потом я удалил строку с top, но тогда это не помогло. Может надо было комп перегрузить, а не только fvwm. Я заметил, что для некоторые возможности перезагружаются только с перезагрузкой компа. В этот раз я перезагружал комп. Может дело еще в новой версии минта. Я переустановил минт до последней версии и поверх поставил fvwm. Теперь гораздо удобнее и именно то, что я хотел - большая блямба сверху в углу и боковым зрением видна раскладка. Когда две раскладки, то это не так важно, но когда три, как сейчас у меня, то раздражает постоянное клацканье клавой.

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

про дублирование я тебе тоже говорил.

не знаю, как именно у тебя организован конфиг xxkb, но, в принципе, достаточно или его перезапуска, или перез его перезапуском перечитать иксовые ресурсы при помощи xrdb

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

Да может и так проще. Но мне проще перезагрузить. Осталась одна проблема, которую здесь уже обсуждал Evgueni - работает только глобальное переключение языка. Не работает «отдельный язык на отдельное окно». Не работает также XXkb.button., чтоб иконка была в открытом окне. Хотя может у тебя работает, а у меня опять нет? Кстати рамку так и не смог затолкать. Пробовал уменьшить иконку или место под иконку увеличить, думал, что просто не видно рамки. Нет, рамка игнорируется полностью. Но главное, что основное работает - блямба есть.

rustamych ★★★★
() автор топика

Может тебе лучше сделать на каждую раскладку свою комбинацию клавиш и не париться по поводу индикаторов вообще? Быстро вырабатывается привычка нажимать нужный хоткей до того, как начать печать независимо от того, какая раскладка включена.

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

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

ananas ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.