在 Ubuntu 14.04 中,我能够从 Compiz 配置设置管理器永久禁用 Unity 插件(以隐藏启动器和顶部栏)。但是在 16.04 中,重新启动后它又恢复了。您知道如何使此更改永久生效吗?或者:有没有办法在每次启动时禁用它们?或者:我可以完全卸载它们吗?感谢您的任何想法。
(原因:这些条严重干扰全屏应用程序。例如,当显示对话框时,它们会出现,覆盖屏幕的重要部分。gnome-session-flashback 也是如此。)
答案1
定影#1506023已实现对 unityshell 的启动检查,因此即使您在 ccsm 中禁用了它,它也将被添加回活动 Compiz 插件列表(unity-active-plugins-安全检查)。
正如所讨论的#1620728,我们可以禁用此签入/usr/share/upstart/sessions/unity7.conf
。只需注释掉以下行:
#/usr/lib/x86_64-linux-gnu/unity/unity-active-plugins-safety-check
然后将该文件复制到~/.config/upstart/unity7.conf
,因为系统范围的文件可能会在更新时被覆盖。
或者,将活动插件列表锁定为固定值。如果 Compiz 使用 GSettings 配置后端(默认),则可以将密钥锁定active-plugins
在 Dconf(Gsettings 的后端)中。
(1)获取 Compiz 配置文件列表:
dconf read /org/compiz/existing-profiles
对我来说
['Default', 'unity']
附加一个名为的新配置文件nounity
:
dconf write /org/compiz/existing-profiles "['Default', 'unity', 'nounity']"
(2)获取当前活动的 Compiz 配置文件:
dconf read /org/compiz/current-profile
对我来说是unity
。将此处的所有设置复制到新nounity
配置文件
dconf dump /org/compiz/profiles/unity/ | dconf load /org/compiz/profiles/nounity/
(3)获取活动插件列表:
dconf read /org/compiz/profiles/nounity/plugins/core/active-plugins
为我
['core', 'composite', 'opengl', 'place', 'mousepoll', 'snap', 'grid', 'copytex', 'imgpng', 'resize', 'wall', 'commands', 'vpswitch', 'move', 'unitymtgrabhandles', 'regex', 'compiztoolbox', 'session', 'animation', 'expo', 'workarounds', 'ezoom', 'fade', 'scale', 'unityshell']
将其复制到文本编辑器中以供日后使用。删除'unityshell'
并添加'decor'
(用于窗口装饰、框架、标题等)在后面的某个位置opengl
。
['core', 'composite', 'opengl', 'decor', 'place', 'mousepoll', 'snap', 'grid', 'copytex', 'imgpng', 'resize', 'wall', 'commands', 'vpswitch', 'move', 'unitymtgrabhandles', 'regex', 'compiztoolbox', 'session', 'animation', 'expo', 'workarounds', 'ezoom', 'fade', 'scale']
注意:您可以从 ccsm 完成此步骤。单击左侧面板上的“首选项”,切换到 nounity 配置文件,返回,禁用 Unity 插件,然后启用窗口装饰。Compiz 第一次可能会崩溃。然后可以选择将配置文件改回 unity。现在 ccsm 应该已设置/org/compiz/profiles/nounity/plugins/core/active-plugins
为正确的值,以便插件按正确的顺序排列。
(4)从现在起,我们将遵循Dconf 手册锁定Compiz 配置active-plugins
文件nounity
。我们将创建一个名为 的新 Dconf 系统数据库nounity
。创建一个文件夹/etc/dconf/db/nounity.d/
,然后创建一个文件/etc/dconf/db/nounity.d/plugins
,其中包含步骤中的内容(3):
[org/compiz/profiles/nounity/plugins/core]
active-plugins=['core', 'composite', 'opengl', 'decor', 'place', 'mousepoll', 'snap', 'grid', 'copytex', 'imgpng', 'resize', 'wall', 'commands', 'vpswitch', 'move', 'unitymtgrabhandles', 'regex', 'compiztoolbox', 'session', 'animation', 'expo', 'workarounds', 'ezoom', 'fade', 'scale']
(5)我们将把该密钥锁定为此默认值。创建一个文件夹,然后创建一个包含内容的/etc/dconf/db/nounity.d/locks/
文件/etc/dconf/db/nounity.d/locks/plugins
/org/compiz/profiles/nounity/plugins/core/active-plugins
(6)如果DCONF_PROFILE
环境变量未设置,并且系统上没有/etc/dconf/profile/user
Dconf 配置文件,则使用默认的后备配置。因此,创建我们自己的配置是安全的。我们将调用它,user
以便 Dconf 默认加载它,并指定我们的nounity
系统数据库来锁定active-plugins
密钥。创建一个文件/etc/dconf/profile/user
,内容如下
user-db:user
system-db:nounity
(7)由于步骤(4)-(6)称呼
sudo dconf update
一切都设置好了。现在你可以使用 Compizconfig 设置管理器切换到 nounity Compiz 配置文件——可能是最简单的 GUI 方式——或者通过编辑你的 compizconfig 文件 ( ~/.config/compiz-1/compizconfig/config
)
[general_ubuntu]
profile = nounity
无论如何,此选择在重新启动后仍然有效。使用此nounity
配置文件,Unity shell 不会显示,甚至您也无法在 ccsm 或通过 dconf 启用它,因为插件列表已被锁定。使用此unity
配置文件,您可以手动切换插件(但unityshell
会在启动时自动激活)。
答案2
不,您不必卸载它,您可以重命名相关的插件文件,这样
compiz
就找不到它了。sudo mv /usr/lib/x86_64-linux-gnu/compiz/libunityshell.so /usr/lib/x86_64-linux-gnu/compiz/libunityshell.so.disabled sudo mv /usr/share/compiz/unityshell.xml /usr/share/compiz/unityshell.xml.disabled
但是如果您想获取窗口处理程序,则必须设置另一个窗口装饰器。
顺便说一句,为了了解总体情况,我曾经
dpkg -L unity | grep -i compiz
找到过相关的文件。要启用它,请将它们重命名为安装时的名称,或者重新安装 Unity 包。