小编Zor*_*oth的帖子

我可以在终端中忽略前导感叹号吗?(由于 ipython,我本能地输入它们)

因为我大部分时间都在 IPython shell 中度过,所以我有一个坏习惯,即在终端命令前加上感叹号。通常,这只会导致错误,但有时,它会导致一些不好的事情发生。我可以有效地禁用!终端中的功能吗?这是否有干扰任何脚本的风险?

command-line bash

24
推荐指数
3
解决办法
3061
查看次数

将音频通过管道传输到同一台计算机上的另一个用户 (pulseaudio)

我同时运行两个用户,因为有些游戏不喜欢合成窗口管理器,而且你不能在我最喜欢的桌面 Unity 中关闭合成。我不想运行同一用户的两个 TTY,因为它们以不幸的方式相互交互。我正在运行 Ubuntu 16.04。

一个用户,jonathan,在 TTY7 的统一会话中,另一个,steamdude,在 TTY2 的 XFCE 会话中。除了音频,一切都按我的意愿工作。将两个用户都添加到音频组并重新登录后,我可以在另一个 TTY 中听到来自一个 TTY 的音频。但是,当一个用户使用声卡时,另一个用户根本无法播放音频。

最接近我拥有的解决方案(我不知道它为什么起作用)是使用 paprefs 使 RTP 设备能够在 Unity 会话中环回。steamdude 不需要连接到 RTP 设备;由于某种原因,环回不会干扰 TTY2 的声音。问题是模块环回中存在一个长期存在的错误,导致它有长达一秒的延迟。手动循环

pacat -r --latency-msec=1 -d rtp.monitor | pacat --latency-msec=1 -d alsa_output.pci-0000_00_1b.0.analog-stereo
Run Code Online (Sandbox Code Playgroud)

修复了延迟问题但没有解决问题;声卡锁定问题又回来了。

潜在的解决方案,首先是最理想的,包括:

1) 将音频直接从一个用户传送到另一个用户

我尝试过的第一件很明显的事情是行不通的

pacat -r --latency-msec=1 -d rtp.monitor | sudo -u steamdude pacat --latency-msec=1 -d alsa_output.pci-0000_00_1b.0.analog-stereo
Run Code Online (Sandbox Code Playgroud)

这失败了,输出如下:

Home directory not accessible: Permission denied
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
write() failed: Broken pipe
Run Code Online (Sandbox Code Playgroud)

请注意,两个用户都在彼此的组中,我通过 chmod 和 setfacl …

users permissions tty pulseaudio

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

标签 统计

bash ×1

command-line ×1

permissions ×1

pulseaudio ×1

tty ×1

users ×1