我正在使用该应用程序树表,这类似于 Excel 的增强版。我希望能够并排查看两个“电子表格”。遗憾的是,应用程序本身不提供此选项,并且会自动将每个新打开的文档放入新选项卡中,甚至无法像 Microsoft Office 产品那样在主应用程序窗口中“排列窗口”。
有什么技巧可以欺骗应用程序第二次启动吗?也许是窗口管理器级别的东西? (我使用的是 KDE + xmonad;如果它是一个 hack,恰好产生一些丑陋的东西,比如没有可见菜单或窗口装饰的选项卡,那也没关系)。或者也许以某种方式强制程序在第二个不同的进程中启动。
我不需要程序的两个实例以某种方式彼此“了解”(与 Excel 电子表格相反,在 Excel 电子表格中您可以引用不同电子表格文件的单元格)。我在两者之间所需要的只是用于复制和粘贴纯文本的简单剪贴板功能。
只要有效,我不介意使用不优雅的技巧。我当前的解决方案是使用 Synergy 在第二台计算机上打开第二个电子表格;任何不那么痛苦的事情都是受欢迎的。
答案1
X 服务器没有选项卡或打开文件的概念,因此就 X 服务器而言,TreeSheets 在一个窗口中完成自己的业务。您必须说服 TreeSheets 以某种方式打开单独的窗口。
如果应用程序缺乏此功能,您唯一的办法就是启动单独的实例。如何执行此操作取决于 TreeSheets 如何检测正在运行的实例。
如果 TreeSheets 依赖于主目录下某处的锁定文件,请尝试使用不同的主目录运行它:
HOME=/home/rumtscho/treesheets-instances/1 treesheets second-file
您必须将配置文件复制或符号链接到/home/rumtscho/treesheets-instances/1
.
如果 TreeSheets 坚持忽略HOME
环境变量,您可能必须以其他用户身份运行它。
如果 TreeSheets 查找属于同一应用程序的另一个窗口,您可能必须在不同的显示器上运行不同的实例。首先,尝试通过在不同的显示器上运行来欺骗它:
ssh -X localhost treesheets second-file
如果失败,请尝试严厉的方法:在 VNC 客户端内运行 TreeSheets。
如果 TreeSheets 使用 D-Bus,请尝试取消设置环境变量DBUS_SESSION_BUS_ADDRESS
。
可能还有其他方法,这完全取决于 TreeSheets 如何检测正在运行的实例并与其通信。查找运行 TreeSheets 时创建的文件以及它打开的文件。
TreeSheets somefile &
# wait until the program has finished starting up
find ~/.[!.]* -mmin -5
lsof -p${!}