问题描述
如果它不可能那么可能只是Dash显示/隐藏动画。我只是发现自己在等待没有意义的动画。
最佳解决方法
1.为什么不能在Unity 12.04中禁用此Dash动画
-
不幸的是,渐变/不透明度动画和相关时间是Unity源代码中的hard-coded。
-
实际代码可以在
unity-5.12/plugins/unityshell/src/ShortcutController.cpp
中找到(这是你必须修改和重新编译以摆脱动画) -
当您使用Super键启动Dash时,此文件中的一些示例行演示了动画的hard-coding:30:const unsigned int SUPER_TAP_DURATION = 650; 31:const unsigned int FADE_DURATION = 100; 39:,fade_in_animator_(FADE_DURATION)40:,fade_out_animator_(FADE_DURATION)65:fade_in_animator_.animation_updated.connect(sigc :: mem_fun(this,& Controller :: OnFadeInUpdated)); 66:fade_in_animator_.animation_ended.connect(sigc :: mem_fun(this,& Controller :: OnFadeInEnded)); 67:fade_out_animator_.animation_updated.connect(sigc :: mem_fun(this,& Controller :: OnFadeOutUpdated)); 68:fade_out_animator_.animation_ended.connect(sigc :: mem_fun(this,& Controller :: OnFadeOutEnded)); 120:show_timer_ = g_timeout_add(SUPER_TAP_DURATION,& Controller :: OnShowTimer,this); 149:self-> fade_out_animator_.Stop(); 150:self-> fade_in_animator_.Start(self-> view_window _-> GetOpacity()); 213:fade_in_animator_.Stop(); 214:fade_out_animator_.Start(1.0-view_window _-> GetOpacity()); 244:。新增(“timeout_duration”,SUPER_TAP_DURATION + FADE_DURATION)246:!。新增(“about_to_show”,(可见()及;&安培; fade_out_animator_.IsRunning()&安培;&安培; view_window_&安培;&安培; view_window _-> GetOpacity()= 1.0f))247:.add(“about_to_hide”,(Visible()&!fade_in_animator_.IsRunning()&& view_window_&& view_window _-> GetOpacity()!= 1.0f))
-
当然,您必须对此进行修补并使用每个新的Unity更新进行重建…
-
没有任何干扰Compiz可以改变这一点,因为所有这些都是Compiz插件之外的hard-coded。
2.备选方案A:切换到Ubuntu 2D
Ubuntu 2D有不同的Unity Shell代码,在那里,通过Super启动短划线是瞬间的,并没有动画任何东西。
3.备选方案B:使用自定义快捷方式通过单击Ubuntu徽标启动Dash,从而绕过动画
我们可以利用以下事实:当您通过”start”按钮启动Dash时不会发生不透明度/淡入淡出动画,或者,如果您的光标位于启动栏上/周围,即使您按下Super:
动画将被延迟,直到光标实际移动到仪表板区域内。
-
xdotool可实现键盘和鼠标点击/移动的自动化;使用
sudo apt-get install xdotool
安装它 -
打开设置…键盘,然后转到快捷方式选项卡。创建自定义快捷方式,根据需要命名,并将”Command”设置为:
xdotool mousemove --sync 25 60 click 1 --delay 100 mousemove restore
-
如果您的屏幕分辨率低于1024×768左右,您可能需要稍微调整坐标(25 60)。
-
-
单击“应用” right-column会说”Disable”,点击它,你会看到”New Accelerator”:按你的快捷键组合。你不能选择Super,即使你在Compiz中禁用它,因为它是Unity的hard-captured。我选择了
Ctrl+Alt+Z
,因为它接近超级键。 -
现在,您的快捷方式应该更快,更快地启动Dash。
-
Here’s a Youtube video demo。前几次(当左侧的发射器模糊和变暗时)使用SUPER键;然后用自定义xdotool快捷键(注意启动器不再动画,破折号显得更快)
-
次佳解决方法
安装Compiz Configuration Manager。
Ubuntu软件中心:Compiz Configuration Manager
要么
终端:sudo apt-get install compizconfig-settings-manager
安装完成后打开它并进入Ubuntu Unity Plugin
– > Experimental
(Tab)
从那里你可以将Lauch Animation
,Urgent Animation
和Dash Blur
设置为“无”。
将Hide Animation
设置为Slide only
。
如果需要,可以将面板和虚线透明度更改为完全不透明。
第三种解决方法
对不起,你不能。此时(2012年7月25日)使用Ubuntu 12.04 LTS,没有简单的方法可以禁用Unity动画。 (至少没有重新编译)。
我不认为,在将来的版本中会有一个禁用动画的选项。因为,Unity的目标之一是提供令人愉悦的用户体验,动画被认为是实现这一目标的最佳方式之一。
解决方法:
您可能的解决方法是将短划线动画更改为淡入淡出(因为,在我看来,淡入淡出比滑动更快)。您可能也有兴趣禁用所有窗口的动画。去做这个,
-
下载并安装
compizconfig-settings-manager
sudo apt-get install compizconfig-settings-manager
-
通过在破折号中搜索或键入ccsm来打开它。转到Unity插件→实验选项卡,将隐藏动画的设置更改为仅淡入淡出。
如果要在所有窗口中禁用动画,可以在ccsm中禁用动画插件。如果要禁用“淡化”,请禁用“淡化”窗口插件。
希望这会有所帮助。
编辑:正如izx在他的edited answer中所示您清楚地看到,短划线动画的选项在Unity中是硬编码的,并且这些选项无法通过任何配置选项进行更改,因为这些持续时间不是可变的,可以更改。因此,这意味着,您必须通过将这些持续时间更改为0 ms来重新编译单位以完全禁用动画。
第四种方法
要添加到Ángel Araya’s instructions:我能够通过取消Animations
和Fading Windows
(除Window Decoration
基本上都下CompizConfig设置管理器中的Effects
类别(标签)来禁用所有动画。