标签: input

用于 Linux (Inkscape/Gimp) 的外部平板电脑输入设备?

什么是适用于 Linux 的好的外部平板电脑输入设备?

它应该用于更方便地使用 Inkscape 和 Gimp。

一些有用的特性,我想:

  • 通过 USB 连接
  • 包括带一些按钮的笔
  • 平板电脑应该只对笔触敏感
  • 开源驱动程序(必须)
  • 供应商的一些操作系统参与

开放问题:

  • 在实践中,这种平板电脑的合适尺寸是多少?
  • 是否有一些很好的指南如何在 Linux/X 下设置它?
  • 还有哪些很棒的程序可以更轻松地与平板电脑一起使用?

xorg hardware hardware-compatibility input

5
推荐指数
1
解决办法
1509
查看次数

在后台运行时获取用户输入

我正在编写一个脚本,提示用户输入并在之后进行一些处理。我是read用来获取数据的,但后来我注意到,当脚本使用键盘快捷键运行时(我在 Ubuntu 的键盘快捷键列表中添加了一个条目),它会忽略read并继续执行其余代码。

如何使用像这样在后台运行的脚本读取用户输入?

shell keyboard-shortcuts terminal input x11

5
推荐指数
1
解决办法
2592
查看次数

如何处理键盘贪婪的应用程序

我遇到了一个非常具体的问题,但是任何帮助都有助于理解 X 与键盘的关系。

我希望能够在 XBMC 播放的音乐之上启动 ElectricSheep 程序。我已经设置了启动脚本,我可以毫无问题地启动 ElectricSheep。

当我尝试关闭它时会出现问题。如果我在没有运行 XBMC 的情况下启动 ElectricSheep,按 Esc 将关闭它。如果 XBMC 正在运行(或者即使我在脚本中包含一行以在启动之前终止 xbmc),它会抓取所有键盘输入,使我离开 ElectricSheep 的唯一途径是从 ssh 会话终止它或终止 X 本身。

如果我在 XBMC 运行时运行 xev,它不会收到任何输入。

有没有办法启动一个应用程序并明确地给它 X 键盘?谢谢你的帮助!

keyboard xbmc input x11

5
推荐指数
1
解决办法
457
查看次数

cat 什么时候完成从管道中读取的内容?

鉴于以下代码,为什么 cat 只在我输入\n或CTRL+后打印管道的内容D?cat 实际打印它读取的内容的条件是什么?

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(void){
    int pid,p[2];
    char ch;
    pipe(p);
    if((pid=fork()) == -1){
        fprintf(stderr,"Error:can't create a child!\n");
        exit(2);
    }
    if(pid){
        close(p[0]);
        while((ch=getchar())!=EOF){
            write(p[1],&ch,1);
        }
        close(p[1]);
        wait(0);
    }else{
        close(p[1]);
        close(0);
        dup(p[0]);
        close(p[0]);
        execlp("cat","cat",NULL);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pipe input cat

5
推荐指数
1
解决办法
1044
查看次数

在 SSH 进入机器时从文件中获取密码

我想通过 SSH 连接到远程机器,但不想输入密码,而是想从另一个文件重定向它。

所以我有一个password.txt存储密码的文件。File.sh是我的 bash 文件。

在 File.sh

#!/bin/bash
ssh -T user@10.2.5.1
Run Code Online (Sandbox Code Playgroud)

在执行文件时,我做了:

./File.sh < password.txt
Run Code Online (Sandbox Code Playgroud)

但我还是被要求输入密码。

如何从文件中获取要输入的密码?

ssh input

5
推荐指数
2
解决办法
3021
查看次数

为什么每个设备在 /dev/input/by-path 上有两个条目

如果我去,/dev/input/by-path我可以看到我的输入外设。

我有一个键盘和一个鼠标,在我的平台上输出是:

pci-0000:05:00.0-usb-0:1.2:1.0-event-kbd
pci-0000:05:00.0-usb-0:1.1:1.0-event-mouse
pci-0000:05:00.0-usb-0:1.1:1.0-mouse
pci-0000:05:00.0-usb-0:1.1:1.1-event-kbd
Run Code Online (Sandbox Code Playgroud)
  1. 为什么每个设备有两个条目?
  2. 每个条目的目的是什么?

作为旁注,只有一个open(<path_to_device>, O_RDONLY)用于监听输入(对于键盘来说,它是usb-0:1.2:1.0一个)。

(我正在运行 Ubuntu;以防万一!)

input devices input-method

5
推荐指数
1
解决办法
1507
查看次数

如何通过键盘输入退出 bash 循环?

我有一个bash lopp为

#!/bin/bash
for (( c=0; c<=1000000; c++ ))
do  
SOME STUFF HERE
done
Run Code Online (Sandbox Code Playgroud)

我通过键盘输入中断长循环,Ctrl+C但Ctrl+C只是终止脚本。我正在寻找一种替代方法来继续当前循环并在完成STUFF当前循环中的运行后中断循环。

bash input shell-script for

5
推荐指数
1
解决办法
3499
查看次数

无法安装、读取、写入或格式化 SD 卡

我可以

  • 当它处于“锁定”位置时从我的 micro-sd 卡中读取

但是当我尝试“解锁”它时,事情变得非常奇怪:我没有办法

  • fsck 它,也不
  • 安装它,也不
  • 读了,也不..
  • 格式化吧!

我需要格式化它,我该怎么办?

这是我的gparted输出:

$ sudo gparted
Created symlink /run/systemd/system/-.mount ? /dev/null.
Created symlink /run/systemd/system/boot-efi.mount ? /dev/null.
Created symlink /run/systemd/system/home-iago\x2dlito-.docker-devicemapper.mount ? /dev/null.
Created symlink /run/systemd/system/home.mount ? /dev/null.
Created symlink /run/systemd/system/run-user-1000.mount ? /dev/null.
Created symlink /run/systemd/system/run-user-117.mount ? /dev/null.
Created symlink /run/systemd/system/tmp.mount ? /dev/null.
Created symlink /run/systemd/system/var.mount ? /dev/null.

======================
libparted : 3.2                                         # see screenshots
======================                                  #
Input/output error during write on /dev/mmcblk0         # first error …
Run Code Online (Sandbox Code Playgroud)

debian input sd-card disk partition-table

5
推荐指数
0
解决办法
2909
查看次数

如何完全抑制盖子开关事件?

语境:

由于我的二合一敞篷车缺少驱动程序,向后折叠屏幕只会触发盖子开关事件。这会导致笔记本电脑暂停,或者在 Gnome 中禁用“笔记本电脑盖关闭时暂停”时,仍会导致所有输入设备被禁用(包括触摸屏,这会使平板电脑模式无用)。

作为一种解决方法,我想手动处理切换到平板电脑模式。这需要禁止所有盖子开关事件。

题:

如何在 Linux 中完全禁止盖子开关事件?

或者,找到一种列出/禁用响应盖子开关的进程的方法可以解决问题。

目前,在平板电脑模式下折叠屏幕并返回记录以下事件:

Jul 25 23:58:54 jl-xps systemd-logind[816]: Lid closed.
Jul 25 23:58:58 jl-xps systemd-logind[816]: Lid opened.
Run Code Online (Sandbox Code Playgroud)

盖子开关事件映射到/dev/input/event0. /proc/bus/input/devices列表(截断):

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
U: Uniq=
H: Handlers=event0 
B: PROP=0
B: EV=21
B: SW=1
Run Code Online (Sandbox Code Playgroud)

尝试:

方法1:systemd-inhibit从采取如何禁用自动暂停,当我关闭笔记本盖子?

# systemd-inhibit --what=handle-lid-switch sleep 1m
Run Code Online (Sandbox Code Playgroud)

然后在计时器结束前翻转屏幕。盖子开关事件仍然由 记录systemd-logind,我可以看到/dev/input/event0正在写入(并且其他输入设备仍然被禁用)。

方法二:ACPI

$ echo "LID0" | sudo tee /proc/acpi/wakeup
Run Code Online (Sandbox Code Playgroud)

并检查它是否确实被禁用:

LID0 …
Run Code Online (Sandbox Code Playgroud)

laptop input devices wayland libinput

5
推荐指数
1
解决办法
3233
查看次数

为什么 gawk 在来自输入数据时将 `0123` 视为十进制数?

根据$ man gawk,该strtonum()函数可以将字符串转换为数字:

strtonum(str) 检查 str,并返回其数值。如果 str 以前导 0 开头,则将其视为八进制数。如果 str 以前导 0x 或 0X 开头,则将其视为十六进制数。哦?否则,假设它是一个十进制数。

如果字符串0以前导 开头,则将数字视为八进制,而如果以 开头,0x则将其视为十六进制。

我已经运行这些命令来检查我对函数的理解:

$ awk 'END { print strtonum("0123") }' <<<''
83

$ awk 'END { print strtonum("0x123") }' <<<''
291
Run Code Online (Sandbox Code Playgroud)

该字符串"0123"被正确地视为包含八进制数并转换为十进制数83。同样,字符串"0x123"被正确地视为包含十六进制数并转换为十进制数291。

现在,如果我运行相同的命令,但将数字字符串从程序文本移动到输入数据,会发生以下情况:

$ awk 'END { print strtonum($1) }' <<<'0123'
123

$ awk 'END { print strtonum($1) }' <<<'0x123'
291
Run Code Online (Sandbox Code Playgroud)

我理解第二个结果,它与前面的命令相同,但我不理解第一个。为什么 gawk 现在将其0123视为十进制数,即使它以0 …

input numeric-data gawk

5
推荐指数
1
解决办法
278
查看次数