我在运行Ubuntu 14.04 LTS的笔记本电脑上使用MATLAB R2014a,我遇到了一个相当恼人的问题。每当我在编辑器或主窗口中使用触摸板上的双指滚动手势时,命令窗口中会显示以下输出:
MEvent。 CASE!
当滚动工作时,当我继续执行手势时,这条线会一遍又一遍地输出。
有关如何阻止这种情况发生的任何想法?
注意:它也出现在Processing和Arduino IDE
答案 0 :(得分:19)
作为用户,每次打开MATLAB时我都不想输入上面的命令。所以我在matlab上搜索了一下' startup'命令行部分, 和search path'部分。我在完成以下简单步骤后解决了我的问题:
创建一个文件 ' startup.m来'只有一行,这将禁用Mevent.CASE! (下面是要复制的文字)
!synclient HorizEdgeScroll=0 HorizTwoFingerScroll=0
将创建的startup.m文件放在MATLAB中定义的userpath文件夹中。
它在运行MATLAB R2015b的Ubuntu 15.04上对我有用,我希望它对你们所有人都有用。
注意:这是对@someDude和@Slothworks答案的改进。
答案 1 :(得分:13)
这些解决方案都不适合我。此外,我喜欢保持两个手指滚动。 这对我有用:
MATLAB依赖于jdk7,jdk8无法使用它。它显示为16.04,之后不再在repos中提供openjdk-7-jre,并且必须从外部源安装。安装它:
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-7-jdk
确保已正确设置MATLAB_JAVA变量。可以通过以下方式检查:
echo $MATLAB_JAVA
如果输出为空,则此变量为空。它可以用
设置export MATLAB_JAVA=/usr/lib/jvm/java-7-openjdk-amd64/jre
然后,使用用于调用MATLAB的任何命令从同一个shell执行MATLAB,通常是
matlab
在MATLAB命令窗口中,运行
version -java
并验证输出是否包含“OpenJDK”。如果一切都成功,你就不应再看到MEvent了。案件!错误信息。
使这个持久化: 添加
export MATLAB_JAVA=/usr/lib/jvm/java-7-openjdk-amd64/jre
到/etc/profile
文件(用于系统范围更改)或~/.profile
用于本地用户
来源:https://www.reddit.com/r/matlab/comments/5anydi/how_to_stop_mevent_case_from_appearing/
答案 2 :(得分:7)
停用水平滚动可能会解决问题。尝试在gnome-terminal上运行以下命令:
synclient HorizEdgeScroll=0 HorizTwoFingerScroll=0
或MATLAB console中的以下内容:
!synclient HorizEdgeScroll=0 HorizTwoFingerScroll=0
(来源:http://www.mathworks.com/matlabcentral/answers/112528-mevent-case-when-two-finger-scrolling)
答案 3 :(得分:0)
GNOME 3.20 :: SYNCLIENT已经过时, 修复MEvent。案件! MATLAB for xinput
中的错误建议的解决方案是运行
!synclient HorizTwoFingerScroll=0
作为启动文件的一部分,禁用水平滚动。然而,这不适用于更新的Linux版本,因为不推荐使用synaptics触摸板驱动程序而转而使用libinput。然而,这个问题的新解决方案稍微复杂一些。 首先,我们需要从终端(而不是MATLAB命令窗口)使用xinput list命令找到触摸板设备的ID。你应该看到类似的东西:
~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
⎜ ↳ ELAN Touchscreen id=11 [slave pointer (2)]
我们对SynPS / 2 Synaptics TouchPad感兴趣,在这种情况下,id = 13。我们可以通过运行以下命令查看此设备支持的配置选项:
~$ xinput list-props 13
请记住将13更改为机器上触控板的ID!在输出中,您应该看到如下行:
Synaptics Two-Finger Scrolling (283): 1, 1
这告诉您在垂直和水平方向上启用了两个手指滚动。要更改此运行:
~$ xinput set-prop 13 "Synaptics Two-Finger Scrolling" 1 0
如果你找不到"双指滚动"一行都没有丢失。查找与水平滚动相关的行。就我而言:
libinput Horizonal Scroll Enabled (266): 1
以及用于禁用此属性的命令是:
~$ xinput set-prop 13 "libinput Horizonal Scroll Enabled" 0
要在每次运行MATLAB时自动运行,您可以添加
!xinput set-prop 13 "libinput Horizonal Scroll Enabled" 0
到您的启动文件。
答案 4 :(得分:0)
对于没有simulink但x-input的人 这是Riyas Jaleel对matlab中仅禁用水平滚动的改进,但在其他app中没有。
首先安装允许知道当前窗口名称的xdotool
sudo apt install xdotool
src:https://unix.stackexchange.com/questions/256713/how-to-execute-a-command-on-window-focus-unfocus
现在在matlab的bin文件夹中创建一个名为patchScroll.sh的脚本,其中包含以下内容
while [ true ]
do
window=`xdotool getwindowfocus getwindowname`
is_enabled=2
if [ "$window" = "MATLAB R2017a" ]; then
if [ "$is_enabled" != "0" ]; then
xinput set-prop 13 "libinput Horizonal Scroll Enabled" 0
is_enabled=0
echo "is_enable $is_enabled"
fi
else
if [ "$is_enabled" != "1" ]; then
xinput set-prop 13 "libinput Horizonal Scroll Enabled" 1
is_enabled=1
echo "is_enable $is_enabled"
fi
fi
sleep 1
done
现在在bin文件夹中的matlab文件中启动matlab
加
第一行和当前第二行之间的./patchScroll.sh &
我们不能直接将代码放在matlab文件中,因为循环是无限的,它会阻止matlab的启动,这就是我们使用& amp;最后。