如何禁用所有 Unity 动画?

如何禁用所有 Unity 动画?

如果不可能,那么也许只是 Dash 显示/隐藏动画。我只是发现自己在等待动画,这是毫无意义的。

答案1

在此处输入图片描述

1. 为什么无法在 Unity 12.04 中禁用此 Dash 动画

  • 不幸的是,淡入淡出/不透明度动画和相关时间在 Unity 源代码中是硬编码的。
  • 实际代码可以在unity-5.12/plugins/unityshell/src/ShortcutController.cpp(这是您必须修改并重新编译才能摆脱动画的内容)
  • 此文件中的一些示例行演示了使用 Super 键启动 Dash 时动画的硬编码:

    30:const无符号整数SUPER_TAP_DURATION = 650;
    31:const无符号整数FADE_DURATION = 100;
    39:,淡入动画(淡入淡出持续时间)
    40:,淡出动画(淡出持续时间)
    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: 自我->fade_out_animator_.Stop();
    150:self->fade_in_animator_.Start(self->view_window_->GetOpacity());
    213:淡入淡出动画器.停止();
    214:fade_out_animator_.开始(1.0-view_window_->GetOpacity());
    244: .add(“超时持续时间”,超级点击持续时间+淡入淡出持续时间)
    246: .add(“about_to_show”,(Visible()&& !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 插件之外硬编码的。

2. 替代方案 A:切换到 Ubuntu 2D

Ubuntu 2D 具有不同的 Unity Shell 代码,在那里,通过 Super 启动 dash 是即时的,并且不会产生任何动画。

3. 备选方案 B:使用自定义快捷方式通过单击 Ubuntu Logo 来启动 Dash,从而绕过动画

我们可以利用不透明度/淡入淡出动画没有发生当您通过“开始”按钮启动 Dash 时,或者,如果您的光标位于启动器栏上/周围,即使您按下 Super:

在此处输入图片描述

动画将会延迟,直到光标实际移动到破折号区域内。

  1. 工具允许键盘和鼠标的自动点击/移动;使用以下方式安装sudo apt-get install xdotool
  2. 打开“设置”...“键盘”,然后转到“快捷方式”选项卡。创建一个自定义快捷方式,随意命名,然后将“命令”设置为:

    xdotool mousemove --sync 25 60 click 1 --delay 100  mousemove restore
    

    在此处输入图片描述

    • 如果您的屏幕分辨率低于 1024x768 左右,则可能需要稍微调整坐标 (25 60)。
  3. 单击应用。右侧栏将显示“禁用”,单击它,您将看到“新加速器”:按下您的快捷键组合。您不能选择超级,即使您在 Compiz 中禁用它,因为它很难被 Unity 捕获。我Ctrl+Alt+Z之所以选择它,是因为它靠近 Super 键。

  4. 现在您的快捷方式应该可以更快地启动 Dash。

    • 这是 Youtube 视频演示。前几次(当左侧启动器变得模糊和变暗时)使用 SUPER 键;然后使用自定义 xdotool 快捷方式(请注意启动器不再动画并且破折号出现得更快)

答案2

安装 Compiz 配置管理器。

Ubuntu 软件中心:Compiz 配置管理器

或者

终端:sudo apt-get install compizconfig-settings-manager

安装后打开它并进入Ubuntu Unity Plugin-> Experimental(Tab)

从那里您可以将 和 设置Lauch AnimationUrgent AnimationDash Blur无”。

将 设置Hide AnimationSlide only

如果您愿意,您可以将面板和仪表板的透明度更改为完全不透明。

答案3

抱歉,你不能。目前(2012 年 7 月 25 日),Ubuntu 12.04 LTS 有禁用 Unity 动画的简单方法。(至少无需重新编译)。

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

解决方法:

可能的解决方法是将仪表板动画更改为淡入淡出(因为在我看来,淡入淡出比滑动更快)。您可能还想禁用所有窗口的动画。为此,

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

     sudo apt-get install compizconfig-settings-manager  
    
  2. 通过搜索或输入来打开中央商务区以破折号显示。前往Unity 插件实验选项卡并更改设置隐藏动画仅淡入淡出

如果你想禁用所有窗口中的动画,你可以禁用动画ccsm 中的插件。如果要禁用褪色,请禁用褪色的窗户插件。

希望这会有所帮助。


编辑:正如 izx 在他的编辑答案您清楚地看到,冲刺动画的选项在 Unity 中是硬编码的,并且无法使用任何配置选项进行更改,因为这些时间持续时间不是可以更改的变量。因此,这意味着,您必须重新编译 Unity,将这些时间持续时间更改为 0 毫秒,才能完全禁用动画。

答案4

我认为在 CompizConfig 设置管理器中关闭效果下的淡入淡出窗口会对 Unity 产生影响。(速度上会有细微的差别,但还是有区别的。)

相关内容