banshee --next 来自虚拟控制台

banshee --next 来自虚拟控制台

我想要banshee --next通过虚拟控制台(例如,按下 Ctr-Alt-F1 时显示的控制台)来执行或仅仅控制 banshee。

这可能吗?我该怎么做?

答案1

事实证明,运行 dbus 的 X 会话具有以下环境变量设置,可从 X 中的所有终端仿真器访问:

DBUS_SESSION_BUS_ADDRESS

它的内容(`echo $DBUS_SESSION_BUS_ADDRESS)似乎表示 Dbus 使用的 Unix 套接字。

让 banshee 终端命令在虚拟控制台中工作其实就是与虚拟终端共享该值的简单事情。

为了实现自动化,我编写了以下简单脚本:

$ cat get_dbus_addr.sh 
#!/bin/bash
#Use this file for sharing the most recent DBus socket address 
FILE="/tmp/${USER}_DBUS_SESSION_BUS_ADDRESS" 

if [ ! -z "$DBUS_SESSION_BUS_ADDRESS" ]
then
  echo $DBUS_SESSION_BUS_ADDRESS > "$FILE"
else
  export DBUS_SESSION_BUS_ADDRESS=`cat "$FILE"`
fi

我从适当的终端配置文件获取脚本(这样它就可以在 GUI 和虚拟控制台中获取)。在 GUI 中获取它会将值保存到 /tmp 中的共享文件中,而在虚拟控制台(未设置 ENV 变量)中获取它会加载它。

答案2

我收回刚才的话——tmux允许从单个终端(如屏幕)访问和控制多个终端(或窗口)。我可以banshee --next从虚拟控制台访问和控制。非常酷的实用程序。

不幸的是,直到他们修复已知错误,不,这是不可能的,因为 banshee 使用 DBus 将这些命令从命令行传递给玩家。最好的解决方法是使用 CTRL-ALT-T 而不是 CTRL-ALT-F1。或者至少这对我在 12.04 上有效。

相关内容