在摆弄了我的 OpenSuSE Leap 15.3 机器的键盘设置后,我发现fcitx
任务栏中出现了两次虚拟键盘小程序:
杀死一个小程序也会使第二个小程序消失,并且我找不到允许我删除多余小程序的菜单条目。小程序选择器还告诉我有问题的小程序已加载两次:
所以:我该怎么办?
将我的 OpenSuSE Leap 从 15.2 升级到 15.3 后,我发现 Compose 键(键码:135)不再起作用。实际上,xev
不再将其识别为Multi_key
,而是NoSymbol
:
KeyPress event, serial 40, synthetic NO, window 0x7800001,
root 0x561, subw 0x0, time 8470151, (923,367), root:(923,396),
state 0x10, keycode 135 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
注意:该键实际上标有Compose
,因为它是 Sun Type 7 键盘的一部分。在$XKB/keycodes/evdev
文件中,我有这两行代码(其中第二行已被我禁用,因为它适用于带有菜单键的常规 PC 键盘):
<COMP> = 135;
// alias <MENU> = <COMP>;
该$XKB/symbols/compose
文件已使用以下块升级:
partial modifier_keys
xkb_symbols "comp" {
key <COMP> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};
当前setxkbmap
配置如下所示:
╭─jacek@epica ~
╰─➤ setxkbmap -print -verbose 10 127 ↵
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules: evdev
model: pc105
layout: de
variant: pl
options: compose:comp,terminate:ctrl_alt_bksp,altwin:meta_win,lv3:ralt_switch
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwertz)
types: complete
compat: complete
symbols: pc+de(pl)+inet(evdev)+terminate(ctrl_alt_bksp)+altwin(meta_win)+level3(ralt_switch)+terminate(ctrl_alt_bksp)
geometry: pc(pc105)
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwertz)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+de(pl)+inet(evdev)+terminate(ctrl_alt_bksp)+altwin(meta_win)+level3(ralt_switch)+terminate(ctrl_alt_bksp)" };
xkb_geometry { include "pc(pc105)" };
};
我可以compose:comp
很清楚地看到这个选项。所以:这里有什么问题?
我的解决方案(用于 Raspbian Buster)的 makefile 包含如下LDFLAGS
定义:
LDFLAGS=-L/usr/lib -L/usr/lib/arm-linux-gnueabihf
…因此标准的 libdir 优先于特定于平台的 libdir。不幸的是,我在使用 中的一个库时遇到了一些麻烦,/usr/lib
由于 C++ ABI 过时,无法链接到该库。但是,当我交换目录时,一切正常:
LDFLAGS=-L/usr/lib/arm-linux-gnueabihf -L/usr/lib
在 Universal 之前声明依赖于平台的 libdirs 通常是更可取的/usr/lib
吗?谢谢你。
更新:相应的配方是相当标准的,内容如下:
$(EXEC) : $(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) -o $(EXEC) $(LDFLAGS) $(LIBRARIES)
$(OBJECTS) : $(SRC)
$(CC) $(CFLAGS) -c $(SRC)
我知道有一个每线程一行的视图(-H),但特定线程没有按主进程分组。事实上,我会对每个进程的唯一线程数完全满意(= 某个进程创建了多少子线程?)。
在使用 CDIO 库向我的 USB CD-ROM 驱动器发出弹出命令时,我遇到了由于缺少权限而导致的错误。我总是收到这样的错误消息:
INFO: ioctl CDROM_SEND_PACKET for command PREVENT ALLOW MEDIUM REMOVAL (0x1e) failed: Operation not permitted
该ioctl
调用是cdda-player
我调用的应用程序的一部分,如下所示:
cdda-player -ev /dev/sr0
看了下源码,libcdio
发现这行代码很麻烦:
int i_rc = ioctl (p_env->gen.fd, CDROM_SEND_PACKET, &cgc);
当我以 root 身份(使用sudo
)运行代码时,一切正常。以下是我的 CD-ROM 驱动器的权限:
pi@autoradio:/import/valen/autoradio/libcdio-master $ ls -al /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 Jul 5 22:42 /dev/sr0
pi@autoradio:/import/valen/autoradio/libcdio-master $ ls -al /dev/sg0
crw-rw----+ 1 root cdrom 21, 0 Jul 5 22:38 /dev/sg0
pi@autoradio:~ $ getfacl /dev/sr0
getfacl: Removing leading '/' from absolute path names
# file: dev/sr0
# owner: root
# group: cdrom
user::rw-
user:pi:rw-
group::rw-
mask::rw-
other::---
用户pi
是cdrom
组的一部分。不过,标准eject
实用程序确实有效。
现在:我必须设置哪些权限才能以普通用户身份进行弹出操作?谢谢你。
更新:这是我的内核版本:
pi@autoradio:/import/valen/autoradio/libcdio-master $ uname -a
Linux autoradio 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux
我有一个 USB 2.0 CD/DVD 驱动器,它(在其他用例中)用于播放音乐 CD。但是:驱动器似乎忽略了 CDROMPLAYMSF 命令。
主机是带有当前版本 Raspbian 的 Raspberry Pi 3B。我正在使用libcdaudio
音频 CD 播放,这反过来会发出必要的ioctl
命令,包括 CDROMPLAYMSF。
更新:cd-drive
根据要求,我可以在此向您提供我的驱动器的规格,由以下实用程序吐出cdio
:
CD-ROM drive supports MMC 3
Drive: /dev/cdrom
Vendor : MATSHITA
Model : CD-RW CW-8124
Revision : DA0D
Hardware : CD-ROM or DVD
Can eject : Yes
Can close tray : Yes
Can disable manual eject : Yes
Can select juke-box disc : No
Can set drive speed : No
Can read multiple sessions (e.g. PhotoCD) : Yes
Can hard reset device : Yes
Reading....
Can read Mode 2 Form 1 : Yes
Can read Mode 2 Form 2 : Yes
Can read (S)VCD (i.e. Mode 2 Form 1/2) : Yes
Can read C2 Errors : Yes
Can read IRSC : Yes
Can read Media Channel Number (or UPC) : Yes
Can play audio : Yes
Can read CD-DA : Yes
Can read CD-R : Yes
Can read CD-RW : Yes
Can read DVD-ROM : Yes
Writing....
Can write CD-RW : Yes
Can write DVD-R : No
Can write DVD-RAM : No
Can write DVD-RW : No
Can write DVD+RW : No