很难准确地解释我正在寻找什么,所以我制作了一些示例输出,说明我希望我的终端如何工作。(行首的每个数字代表该行的返回值,> 代表输入行。
> me@computer:~$
5. me@computer:~$ cat somefile < command
start of file < output
< output
this < output
is < output
the < output
content < output
of < output
the < output
file < output
< output
end of file < output
4. me@computer:~$
3. me@computer:~$
2. me@computer:~$
1. me@computer:~$ echo this is the first line < command
this is the first line < output
Run Code Online (Sandbox Code Playgroud)
在此示例中,您键入要执行的命令的输入行将始终位于顶部。它会将每个命令和它的输出向下推送为“事件”,可以这么说。所以如果你 cat 一个文件,它会以相反的顺序输出所有内容,所以每个命令的输出外观没有改变,只是它的位置。
我最近才开始使用 tmux,并且遇到过几次这个问题。
无论我在命令行上输入什么,在我按下回车键并被执行之前,它都是隐藏的。我不知道我是如何触发这个的,并且在手册中找不到任何关于“隐藏输入”的提及。我试过 setw -g monitor-activity on 和 set -g visual-activity on ,但似乎这些是为了别的东西。
需要明确的是,如果输入正确,我可以运行程序或命令——例如 python manage.py runserver 可以工作,但是当我输入它时——没有键出现。这与您输入 PostgreSQL 或类似密码时相同。命令确实显示在历史记录中,并且可以在命令执行后看到(在当前行上方)。
我鼠标中的开关触点坏了,与其再次打开并清洁它们或尝试寻找替换开关(或购买新鼠标),我想通过软件解决这个问题。
有没有一种方法可以告诉 Linux 输入系统观察鼠标按钮的当前状态,并且仅在过去几毫秒的平均值达到一个极端时才发送按下/释放事件?
这样,当按住鼠标按钮时,来自故障开关的非常短的“按钮释放”脉冲将被忽略,因此我可以毫无问题地拖放。同样,单击一次应该足够慢,不会被处理为双击。
我会对 udev/evdev 或 Xorg 解决方案感到满意,因为作为鼠标,它只需要在 Xorg 中工作。
如何在 Synaptics 触摸板中启用 LED 支持?我正在使用 Debian Jessie 和 xserver-xorg-input-synaptics 版本。1.8.1-1。
我找到了来自 SUSE 的 Takashi Iwai 的补丁,用于在 Synaptics 触摸板和Debian 错误 609903 “启用 LEDDoubleTap 功能”中支持 LED 。但这些补丁适用于 Synaptics 版本。< 1.8 并且不适合我。
我正在做类似于以下最小示例的操作:
#! /bin/sh
# $1 = file containing list of files to sync
# $2 = source dir ; $3 = target dir
cat "$1" | while read f
do
cp -i "$2"/"$f" "$3"/"$f"
done
Run Code Online (Sandbox Code Playgroud)
我发现它cp -i
根本不等待我的输入,循环只会运行到最后。为什么,以及可以做些什么来解决这种情况?
当我oun
快速键入按键序列时,按键序列oun<F12>
由我的键盘发出。
(更新:实际上,您必须按住序列中的每个键才能触发问题。如果在按 'u' 之前释放了 'o',则问题不会触发)。
我第一次注意到这个问题是在使用谷歌浏览器输入网站时,并注意到在输入时开发者控制台会随机弹出。直到我在 vim 中输入并突然<F12>
出现在我的文本中时,我才弄清楚细节。
几分钟的实验产生了以下结果:
作为开发人员,这似乎是一个需要解决的直截了当的问题(如果您按顺序看到这四个输入,请放弃第四个)。但是,我不知道从哪里开始:Linux 上有哪些低级输入流过滤可用,或者如何破解设备驱动程序等。
我的问题是,我应该在哪里实施这样的更改?在内核中?是否有接受过滤器的键盘输入处理机制?
额外细节:
这是在 HP ProBook 4530s(2011 年的商务笔记本电脑)上。我在 Windows 7 主机上的 VirtualBox VM 中运行 Debian 8。我还没有启动到 Knoppix 来验证问题在 100% 纯 Linux 环境中仍然存在,但我非常有信心这是在操作系统级别以下发生的问题。
其他人在 2012 年用全新的 4530 报告了完全相同的问题(相同的键序列):http : //www.tomsguide.com/forum/75276-35-keys-activate-typing-help
更新:
我使用 Knoppix 启动了 4530 并运行了 xev 以确认这是一个硬件问题。这是输出的摘录,您可以在其中看到oun<F12>
序列:https : //gist.github.com/cellularmitosis/018d822e5ccc5c1a64e6
更新 2:
好吧,我很幸运,BIOS 更新足以解决问题。参见http://h20564.www2.hp.com/hpsc/swd/public/detail?sp4ts.oid=5060881&swItemId=ob_146941_1&swEnvOid=4059
我接受 Dmitry 的回答,因为如果 BIOS 更新没有解决问题,我接下来会尝试这样做。
我是否可以>
在终端底部保留一个输入符号(例如),以便用户可以在文本流过的情况下进行输入?
我正在制作一个多进程应用程序,主要处理文本流(在不久的将来会有 telnet 输入和输出)。我>
用 printf放了一个提示符号,告诉用户他可以写。但是如果有些孩子对之前的输入回答有点晚,输出就写在那个提示之后,即使技术上仍然有效,也不是很实用。
即使文本在上面“滚动”,有没有办法保持一个空行并提示输入?
我有一个没有滚轮的指点设备,但我希望能够通过它滚动,也许可以通过按住按键并拖动来滚动。我看过一些关于类似主题的帖子,但似乎没有一个解决方案有效。
我在 中看到以下警告dmesg
:
[ 2.631179] psmouse serio2: synaptics: Your touchpad (PNP: SYN1218 PNP0f13) says it can support a different bus. If i2c-hid and hid-rmi are not used, you might want to try setting psmouse.synaptics_intertouch to 1 and report this to linux-input@vger.kernel.org.
...
[ 2.819449] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio2/input/input10
Run Code Online (Sandbox Code Playgroud)
触摸板可以使用,但我感觉它不像以前那样好用。我使用的是带有自定义配置内核的 Gentoo。我最近切换到其他发行版并回到 Gentoo 并从头开始重新配置内核。我不相信我对输入设备做了什么不寻常的事情,所以这可能是 中建议的错误dmesg
。
$ uname -r
5.1.4-gentoo
$ grep -E 'INPUT|I2C_HID|HID_RMI' .config
CONFIG_RFKILL_INPUT=y
CONFIG_INPUT=y
CONFIG_INPUT_LEDS=m
CONFIG_INPUT_FF_MEMLESS=y
CONFIG_INPUT_POLLDEV=y
CONFIG_INPUT_SPARSEKMAP=m
# CONFIG_INPUT_MATRIXKMAP is not set …
Run Code Online (Sandbox Code Playgroud) 从 Linux 用户空间,如何获取 evdev/input_event 设备的类型(即鼠标或键盘)?
我知道我可以通过阅读/proc/bus/input/handlers
或列出来枚举它们/sys/class/input/
,但不清楚哪些设备是鼠标或键盘。
/proc/bus/input/handlers
类似的行H: Handlers=sysrq kbd event3 leds
似乎表明这是一个存在“kbd”的键盘,但我找不到任何实际的文档。