!/bin/bash setsid compiz——替换

!/bin/bash setsid compiz——替换

我遇到这个问题已经有一段时间了。我的联想 B-4030 笔记本电脑上安装了 Ubuntu 16.04。我目前安装了 Mac OS-X 主题这里。

但是我从 Ubuntu 14.04 升级后也遇到了同样的问题,问题如下:

当我把笔记本电脑放进去睡觉模式并再次登录,图标和/或鼠标指针不出现。虽然我可以与图标和鼠标指针交互。不是每次都出现相同的图标,而是随机图标。但是当我点击消失了图标使指针和图标都活跃起来。

我尝试寻找答案并发现

这两种情况都一样吗?因为在上面的链接中,用户专门讨论的是鼠标指针,而不是图标。

这种奇怪行为的可能原因是什么?

该问题解决了吗?

桌面上缺失图标的截图

答案1

这可能是由 Compiz 中纹理加载方式的错误引起的,Compiz 是运行 Unity 的 Ubutnu 中的合成器。Compiz 负责将图像和内容加载到纹理中。当您的笔记本电脑进入挂起状态时,GPU 会忘记它的内存(否则它必须保持开机状态或将其保存到磁盘)

Compiz 可能存在一个错误,即某些驱动程序(如 nVidia 驱动程序)清除视频内存会导致纹理无效。这不会发生在我的英特尔系统上,因为 GPU 和 CPU 基本上共享相同的内存,这些内存保持在低功耗状态(并且不会丢失)

无论哪种方式,您的解决方案可能是重新启动 compiz:

 setsid compiz --replace &

重要的是要认识到这个命令有很多陷阱:

  • 必须使用setsid或其他东西来确保它不会在其父级消失时被杀死。否则,在您关闭终端后,compiz 将崩溃。

  • 必须从带有显示器的桌面运行。如果您切换到另一个终端/显示器并运行此命令,它将不知道要使用哪个 X 显示器(您必须在其前面加上DISPLAY=:0或类似

  • 如果您省略,&您将无法运行更多命令,因为 compiz 将在您的终端中运行,关闭它可能会使 compiz 崩溃。

答案2

这里

解决方案发现该问题存在于以前版本中。该问题与显卡驱动程序有关,特别是 NVIDIA。

解决方案很简单:

以 root 身份进入终端:

cd /etc/pm/sleep.d/

$:触摸 compiz-fix.sh

$: nano compiz-fix.sh

!/bin/bash setsid compiz——替换

出口 0

ctrl+x 保存

$:chmod + x compiz-fix.sh

要删除更改,只需以 root 身份执行:

$: rm compiz-fix.sh

对我来说很有魅力!

相关内容