Имя: Пароль:
IT
Админ
Linux, D-Bus, JavaScript - как?
🠗 (Asmody 07.02.2022 01:33)
0 hogik
 
06.02.22
22:33
Подскажите пожалуйста полным текстом программы.
Как выполнить на языке JavaScript:
$ gdbus call --session
--dest org.gnome.SettingsDaemon.Keyboard
--object-path /org/gnome/SettingsDaemon/Keyboard
--method org.gnome.SettingsDaemon.Keyboard.SetInputSource
"0"
1 acht
 
06.02.22
22:50
(0) > Подскажите пожалуйста полным текстом программы.
Дайте, пожалуйста воды попить, а то так есть хочется, что переночевать негде.

В каком окружении ты собрался запускать JavaScript?
nodejs?
2 hogik
 
06.02.22
22:57
nodejs?
Нет.
Хочется вставить вызов в HTML.
А про воду попить...
Фраза - жесть.
3 hogik
 
06.02.22
23:01
4 acht
 
06.02.22
23:04
(3) Это вообще к чему?
5 Сергиус
 
06.02.22
23:24
(4)Видимо, то, что хочется получить)
6 acht
 
06.02.22
23:40
(0) Даже не затрагивая тем о песочницах и ограничениях браузера и об этичности похода переключения клавиатуры по желанию левой html странички, остается вопрос.
С чего ты взял, что раскладка 0 - это не китайская, например?
7 hogik
 
06.02.22
23:51
(6)
«С чего ты взял, что раскладка 0 - это не китайская, например?»(с)
Я это пытаюсь сделать сугубо :-) для своей домашней системы.
Чтобы поставить стартовой страницы в Chromium.
Т.к. меня достаёт запоминание последней выбранной раскладки.
Хочу иметь Eng при вызове Chromium.
А она в моей системе имеет 0 номер/порядка.
8 acht
 
06.02.22
23:56
(7) > Я ... для своей ... меня ... в моей
Успехов тебе и семь футов под килем. Полный текст программы ему написать.
9 hogik
 
07.02.22
00:00
8)
А за деньги можешь написать? :-)
Или только бла-бла можешь?
10 Asmody
 
модератор
07.02.22
01:33
(0) DBus из браузерного js недоступен.
(9) А за чрезмерную борзоту у нас можно укатить в бан на длительные сроки
11 tgu82
 
07.02.22
08:32
(10) Нет тут никакой борзоты. Если есть возможность помочь Ходжику - почему бы не помочь.
Он между прочим за все эти годы много кому помог и много чего полезного для 7-ков сделал
12 tgu82
 
07.02.22
08:33
(8) А что это так же сложно как операционку написать?
Сомневаюсь. Кто спецы могли бы и помочь. Это же не коммерция
13 hogik
 
10.02.22
03:51
Задачку из (7) сообщения решил так.

В файле "chromium-browser.desktop" изменил строку:

Exec="/home/vova/Рабочий стол/.RunInEng" 1 /usr/lib/chromium-browser/chromium-browser --disable-gpu --wm-window-animations-disabled --log-level=3 %U

Поместил в каталог "/home/vova/Рабочий стол" скомпилированную программу:

#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
int main(int argc,char *argv[])
{  int pid,status,ret; char buf[1024],com[1024];
   if (argc<3) {printf("Usage: %s delay command [arg1 [arg2]...]\n",argv[0]); return EXIT_FAILURE;}
   pid=fork();
   if (pid==0) {execvp(argv[2],&argv[2]); perror("execvp"); return EXIT_FAILURE;}
   strcpy(buf,"pidof "); strcat(buf,argv[2]); strcat(buf," 1>/dev/null 2>/dev/null");
   strcpy(com,"gdbus call --session ");
   strcat(com,"--dest org.gnome.SettingsDaemon.Keyboard ");
   strcat(com,"--object-path /org/gnome/SettingsDaemon/Keyboard ");
   strcat(com,"--method org.gnome.SettingsDaemon.Keyboard.SetInputSource ");
   strcat(com,"0 1>/dev/null 2>/dev/null");
   sleep(atoi(argv[1]));
   while(1)
   {  ret=system(buf);
      if (ret==0) {system(com); break;}}
   return EXIT_SUCCESS;}
14 hogik
 
20.02.22
00:38
Ещё одно решение задачки из (7) сообщения.
В конце файла /usr/bin/chromium-browser добавить символ & в строки:
exec $LIBDIR/$APPNAME $CHROMIUM_FLAGS "$@"
$LIBDIR/$APPNAME $CHROMIUM_FLAGS "$@"
Добавить операторы после последнего fi:
sleep 1
gdbus call --session --dest org.gnome.SettingsDaemon.Keyboard --object-path /org/gnome/SettingsDaemon/Keyboard --method org.gnome.SettingsDaemon.Keyboard.SetInputSource 0 1>/dev/null 2>/dev/null
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший