我有一个基本上执行以下操作的方法:
command = 'xkbcomp -i {id} {file} $DISPLAY'.format(id=id, file=self.xkb)
subprocess.Popen(command, shell=True)
当我直接调用该方法时,键盘映射会正确应用于设备而不会出现问题。但是,当我将该方法作为信号的结果(gtk MenuItem上的“激活”信号)调用时,该命令会执行,但不应用地图并且不会出错。我尝试手动指定$ DISPLAY而不改变行为。