从 chrome- 浏览器发送消息到 ubuntu 中的 bash 脚本以控制键盘 LED
send message from chrome-browser to bash script in ubuntu to control keyboard leds
Ubuntu16 上 google-chrome 中的 HTML5/JavaScript 网页是否可以控制键盘 LED?
我有一个带有自定义键盘的 NUC5PCYH,它接受 CapsLock、ScrollLock 和 NumLock 信号作为功能性操作输入和一个 Web 应用程序来控制它。
我未能使 Google Chrome 的本地消息扩展的两个不同测试示例正常工作,因为我不理解一半的说明。
几个 PHP 示例表明 运行 来自 PHP 触发的 BASH 脚本的 XSET 是可能的,但我对 PHP 和有限 BASH 知识.
使用 SQLite3 读取 chrome 的本地存储 'variables' 对我来说似乎很容易,但我似乎无法弄清楚如何编写 SQLite 脚本和 none google-chrome 缓存中的文件被识别为有效数据库。
如果我知道任何 Linux 编程语言,我会写一个来监视 chrome 浏览器 window 客户区的顶行并根据二进制激活 LED黑色和近黑色像素的图案。
任何人都可以指出 PHP、SQLite 或 Native Message Extensions 中可能的解决方案的零知识安装吗?
或者,聘请程序员解决问题的最佳地点在哪里?
我已经设法使用第二种想法自己解决了问题,PHP。
安装 Apache2 和 PHP 设置本地主机
sudo apt-get update
sudo apt-get install apache2
sudo apt-get install php libapache2-mod-php
移除/var/www/html/index.html
在/var/www/html/
中创建两个文件
index.php
<?php
$var=$_GET['data'];
exec("sh /var/www/html/simple.sh $var", $output);
echo var_dump($output);
?>
simple.sh
#!bin/bash
sudo echo > file.txt
echo
因为 apache 的用户名是 www-data:
php -r "echo exec('whoami');"
文件夹需要将所有权更改为 apache
sudo chown -R www-data:www-data /var/www/html
最后一个要创建的文件,目前在桌面上,但可以放在任何地方:
monitor.sh
data=`cat /var/www/html/file.txt`
if [ $data -eq 1 ]
then
xset led named "Caps Lock"
else
xset -led named "Caps Lock"
fi
编辑一些设置和权限:
sudo visudo
将以下内容添加到文件末尾:
www-data ALL=NOPASSWD: ALL
启用 Ca 的更改ps锁定 LED:
sudo gedit /usr/share/X11/xkb/compat/ledcaps
将:!allowExplicit;
替换为:allowExplicit;
最终序列:
打开浏览器并输入URL:
http://localhost/index.php?data=1
index.php 将从 URL 中获取数据值并使用该值作为第一个参数执行 simple.sh。
simple.sh 使用 echo 将 $1 中的参数值写入名为 file.txt.
的文本文件
sh monitor.sh
存储在file.txt中的值被shell命令cat
转储到变量data中cat
。
如果变量data中的值为1则CapsLock开启,如果值为其他值则关闭
将数据值保存到 file.txt 并使用 monitor.sh 从不同位置读取是由于 /var/log/apache2/error.log
:
中的 xset 错误
xset: unable to open display ""
我最好的猜测是 xset 无论如何都需要显示,并且由 PHP 从 shell 文件启动是没有默认显示的。 X 和 xset for -display 的文档让我非常困惑,以至于我在尝试了各种建议后使用了这种方法。意外的好处是我可以在网络 NAS 盒上托管 monitor.sh 文件,而不是锁定在 /var/www/html/
内
ps:如果我遗漏了什么或忘记了一些明确的细节,请原谅我,因为我在这个环境中对这些工具还很陌生。
Ubuntu16 上 google-chrome 中的 HTML5/JavaScript 网页是否可以控制键盘 LED?
我有一个带有自定义键盘的 NUC5PCYH,它接受 CapsLock、ScrollLock 和 NumLock 信号作为功能性操作输入和一个 Web 应用程序来控制它。
我未能使 Google Chrome 的本地消息扩展的两个不同测试示例正常工作,因为我不理解一半的说明。
几个 PHP 示例表明 运行 来自 PHP 触发的 BASH 脚本的 XSET 是可能的,但我对 PHP 和有限 BASH 知识.
使用 SQLite3 读取 chrome 的本地存储 'variables' 对我来说似乎很容易,但我似乎无法弄清楚如何编写 SQLite 脚本和 none google-chrome 缓存中的文件被识别为有效数据库。
如果我知道任何 Linux 编程语言,我会写一个来监视 chrome 浏览器 window 客户区的顶行并根据二进制激活 LED黑色和近黑色像素的图案。
任何人都可以指出 PHP、SQLite 或 Native Message Extensions 中可能的解决方案的零知识安装吗?
或者,聘请程序员解决问题的最佳地点在哪里?
我已经设法使用第二种想法自己解决了问题,PHP。
安装 Apache2 和 PHP 设置本地主机
sudo apt-get update
sudo apt-get install apache2
sudo apt-get install php libapache2-mod-php
移除/var/www/html/index.html
在/var/www/html/
中创建两个文件index.php
<?php
$var=$_GET['data'];
exec("sh /var/www/html/simple.sh $var", $output);
echo var_dump($output);
?>
simple.sh
#!bin/bash
sudo echo > file.txt
echo
因为 apache 的用户名是 www-data:
php -r "echo exec('whoami');"
文件夹需要将所有权更改为 apache
sudo chown -R www-data:www-data /var/www/html
最后一个要创建的文件,目前在桌面上,但可以放在任何地方:
monitor.sh
data=`cat /var/www/html/file.txt`
if [ $data -eq 1 ]
then
xset led named "Caps Lock"
else
xset -led named "Caps Lock"
fi
编辑一些设置和权限:
sudo visudo
将以下内容添加到文件末尾:
www-data ALL=NOPASSWD: ALL
启用 Ca 的更改ps锁定 LED:
sudo gedit /usr/share/X11/xkb/compat/ledcaps
将:!allowExplicit;
替换为:allowExplicit;
最终序列:
打开浏览器并输入URL:
http://localhost/index.php?data=1
index.php 将从 URL 中获取数据值并使用该值作为第一个参数执行 simple.sh。
simple.sh 使用 echo 将 $1 中的参数值写入名为 file.txt.
的文本文件sh monitor.sh
存储在file.txt中的值被shell命令cat
转储到变量data中cat
。
如果变量data中的值为1则CapsLock开启,如果值为其他值则关闭
将数据值保存到 file.txt 并使用 monitor.sh 从不同位置读取是由于 /var/log/apache2/error.log
:
xset: unable to open display ""
我最好的猜测是 xset 无论如何都需要显示,并且由 PHP 从 shell 文件启动是没有默认显示的。 X 和 xset for -display 的文档让我非常困惑,以至于我在尝试了各种建议后使用了这种方法。意外的好处是我可以在网络 NAS 盒上托管 monitor.sh 文件,而不是锁定在 /var/www/html/
内ps:如果我遗漏了什么或忘记了一些明确的细节,请原谅我,因为我在这个环境中对这些工具还很陌生。