【问题标题】:Configure pointer focus properties of Matlab's command window配置matlab命令窗口的指针焦点属性
【发布时间】:2013-06-03 15:22:52
【问题描述】:
  • 我正在使用 Xmonad(使用 XMonad.Config.Xfce 包)在 Linux 下运行 Matlab 2013a。
  • 无论命令窗口是否停靠,都会出现此问题。
  • 命令窗口提示不会获得键盘焦点,除非指针位于 在命令窗口上方。

有没有办法让 Matlab 命令窗口像其他普通窗口(如终端)一样具有焦点行为?

最重要的是:我想让键盘焦点跟随窗口焦点, 并且不需要指针的任何特殊定位,这样我就可以在我的窗口周围“Alt-Tab”并让命令窗口获得键盘焦点。到目前为止,我发现的所有资源都与程序化控制焦点有关;我只是想在交互式会话中改善我的用户体验。

【问题讨论】:

  • 我不确定我是否理解您的问题:您的命令窗口何时获得焦点?您希望它何时获得焦点?我可以更改操作系统的窗口设置。因此,当我取消停靠命令窗口时,只要指针位于它上面,它就会处于焦点。如果我将指针移到编辑器上,它就会成为焦点。如果窗口停靠,我必须单击。但是,我可以为操作系统关闭此行为。
  • @Schorsch 我想使用键盘在我的窗口之间导航,而不必依靠移动/单击鼠标来设置焦点。 Matlab 不合作。
  • Alt + Tab & un-docking windows 适合我 - 我想它不适合你?
  • 我无法重现此内容...按应有的方式工作。您确定它已正确取消停靠,例如,在其自己的磁贴中具有自己的窗口标题等的独立窗口?
  • 如果它不可重现,这个问题可能应该被关闭;这可能取决于我的 Xmonad 配置的详细信息。

标签: matlab focus


【解决方案1】:

要将键盘焦点放在命令窗口上,请在您的 xmonad.hs 中包含以下内容

import XMonad.Hooks.SetWMName
import XMonad.Hooks.ManageHelpers

并按如下方式配置您的ManageHook

myManageHook = composeAll . concat $
    [ [appName =? a --> doCenterFloat | a <- myFloatAS ]
    , (your other hooks)
    ] where
        myFloatAS = ["MATLAB"]

最后,将setWMName "LG3D" 包含在您的startupHook 中。请参阅 here 以获取使用此功能的完整 xmonad.hs 配置(这是我找到解决方案的地方)。如果您有其他 Java 应用程序没有获得应有的关注,您可以将它们添加到 myFloatAS 列表中。

【讨论】:

    【解决方案2】:

    是java自带的问题。

    如果我跑:

    export MATLAB_JAVA=/usr/lib/jvm/java-7-openjdk/jre
    matlab -desktop
    

    Matlab 按预期工作。

    我在运行 MATLAB2014a 时遇到了这个问题。我设置了 setWMName "LG3D" 但我仍然无法专注于我的窗口。我不得不点击焦点窗口来获得光标,有时情况更糟,我不得不点击随机的地方,直到我得到我的光标。这不会在 MATLAB2010 上发生。对我有用的是如上所述使用本机版本的 java。

    最后,我使用以下 bash 脚本启动 matlab8:

    #!/bin/bash
    export MATLAB_JAVA=/usr/lib/jvm/java-7-openjdk-amd64/jre/
    /usr/local/bin/matlab8 -desktop -nosplash
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      • 2013-04-12
      • 1970-01-01
      • 2014-10-21
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多