给定XX的进程iD,我想要列出任何窗口ID,其中_NET_WM_PID = XX.如果可能的话,更好的是最老的仍然活跃的窗口ID.
我对linux很新,但我要做的是创建一个脚本,该脚本将采用命令行,并查看是否已经打开一个属于使用相同命令行调用的进程的窗口.如果是这样,只需将焦点设置到该窗口,否则执行命令行以获得新进程.我的目的是在我的ubuntu桌面中使用它,我将把这个脚本挂钩到我的easystroke鼠标手势命令中,这样,例如,每次我为gmail做手势我都没有得到一个全新的gmail会话,我只是被带到我现有的gmail chrome app窗口.也许有一个更简单的方法来解决所有这些问题,但我还没有找到方法.
在帮助下,我已经弄清楚如何使用pgrep找到命令行的PID以及如何使用wmctrl将焦点设置到窗口句柄,但我仍然坚持从PID到窗口ID.
我已经在Sublime Text 2中编辑我的.m文件了(以下我的问题的其余部分称为Sublime)已经有一段时间了,并且最近习惯于使用Sublime中的构建函数来运行Python代码,我当时试图为MATLAB文件设置类似的东西.我试图这样做是因为我厌倦了运行我的代码并在单独的窗口中编辑我的代码.
在文档之后,我尝试使用下面这个非常合理的看似代码,其中'-r'标志启动MATLAB来运行我的文件,"-nodesktop"标志启动MATLAB而没有大笨重的Java GUI,以及"-nosplash"标志在没有不必要的启动画面的情况下启动MATLAB.选择器允许Sublime在m个文件上自动使用此构建系统,path变量设置将启动MATLAB的目录的路径(通过运行"which matlab"找到的目录).
我知道我可以在MATLAB GUI中设置一个首选的文本编辑器,但我对此并不感兴趣.我对使用Sublime作为构建系统以及文本编辑器感兴趣.
{
"cmd": ["matlab", "-r", "-nodesktop", "-nosplash", "$file_name"],
"selector": "source.m",
"path": "/usr/local/MATLAB/R2012a/bin"
}
Run Code Online (Sandbox Code Playgroud)
在我的无错文件.m文件上运行构建时,我发现下面的错误,这没有意义.我认为它没有意义,因为已经使用标准命令行选项启动了MATLAB,并且也接收到了MATLAB内部错误.
/usr/local/MATLAB/R2012a/bin/matlab: 1: /usr/local/MATLAB/R2012a/bin/matlab: awk: not found
/usr/local/MATLAB/R2012a/bin/matlab: 1: /usr/local/MATLAB/R2012a/bin/matlab: expr: not found
Internal error 2: Could not determine the path of the
MATLAB root directory.
original command path = /usr/local/MATLAB/R2012a/bin/matlab
current command path = /usr/local/MATLAB/R2012a/bin/matlab
Please contact:
MathWorks Technical Support
for further assistance.
[Finished in 0.1s with exit code 1]
Run Code Online (Sandbox Code Playgroud)
有没有其他人有这样的问题,通过备用构建系统调用MATLAB脚本?我没有尝试在Sublime上为除Ubuntu 12.04之外的任何其他操作系统设置MATLAB的构建系统,如果该信息有用的话.
它现在有效!
这是我的Matlab.sublime-build:
{
"cmd": ["/usr/local/MATLAB/R2012a/bin/matlab", …Run Code Online (Sandbox Code Playgroud)