当前位置: 首页>>技术问答>>正文


如何禁用所有Unity动画?

, ,

问题描述

如果它不可能那么可能只是Dash显示/隐藏动画。我只是发现自己在等待没有意义的动画。

最佳解决方法

unity,animations,ubuntu

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:

unity,animations,ubuntu

动画将被延迟,直到光标实际移动到仪表板区域内。

  1. xdotool可实现键盘和鼠标点击/移动的自动化;使用sudo apt-get install xdotool安装它

  2. 打开设置…键盘,然后转到快捷方式选项卡。创建自定义快捷方式,根据需要命名,并将”Command”设置为:xdotool mousemove --sync 25 60 click 1 --delay 100 mousemove restore

    • 如果您的屏幕分辨率低于1024×768左右,您可能需要稍微调整坐标(25 60)。

  3. 单击“应用” right-column会说”Disable”,点击它,你会看到”New Accelerator”:按你的快捷键组合。你不能选择Super,即使你在Compiz中禁用它,因为它是Unity的hard-captured。我选择了Ctrl+Alt+Z,因为它接近超级键。

  4. 现在,您的快捷方式应该更快,更快地启动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 AnimationUrgent AnimationDash Blur设置为“无”。

Hide Animation设置为Slide only

如果需要,可以将面板和虚线透明度更改为完全不透明。

第三种解决方法

对不起,你不能。此时(2012年7月25日)使用Ubuntu 12.04 LTS,没有简单的方法可以禁用Unity动画。 (至少没有重新编译)。

我不认为,在将来的版本中会有一个禁用动画的选项。因为,Unity的目标之一是提供令人愉悦的用户体验,动画被认为是实现这一目标的最佳方式之一。

解决方法:

您可能的解决方法是将短划线动画更改为淡入淡出(因为,在我看来,淡入淡出比滑动更快)。您可能也有兴趣禁用所有窗口的动画。去做这个,

  1. 下载并安装compizconfig-settings-manager

    sudo apt-get install compizconfig-settings-manager  
    
  2. 通过在破折号中搜索或键入ccsm来打开它。转到Unity插件→实验选项卡,将隐藏动画的设置更改为仅淡入淡出。

如果要在所有窗口中禁用动画,可以在ccsm中禁用动画插件。如果要禁用“淡化”,请禁用“淡化”窗口插件。

希望这会有所帮助。


编辑:正如izx在他的edited answer中所示您清楚地看到,短划线动画的选项在Unity中是硬编码的,并且这些选项无法通过任何配置选项进行更改,因为这些持续时间不是可变的,可以更改。因此,这意味着,您必须通过将这些持续时间更改为0 ms来重新编译单位以完全禁​​用动画。

第四种方法

要添加到Ángel Araya’s instructions:我能够通过取消AnimationsFading Windows(除Window Decoration基本上都下CompizConfig设置管理器中的Effects类别(标签)来禁用所有动画。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1786.html,未经允许,请勿转载。