我从 Ubuntu 13.10 Saucy 存储库安装了 Nemo,并用它替换了 Nautilus,如下所示这里:
$ xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search
$ gsettings set org.gnome.desktop.background show-desktop-icons false
$ gsettings set org.nemo.desktop show-desktop-icons true
现在,当我从 Unity Launcher 启动 Nemo 时,它会将其窗口置于屏幕上其他窗口的下方。我希望 Nemo 像 Nautilus 和其他所有应用程序一样在前台启动。
答案1
后来,我开始在其他应用程序中遇到此问题,然后我开始寻找解决方案,不是针对 Nemo,而是针对一般情况,并在Ubuntu 论坛, 和二在询问 Ubuntu也一样。
这是由 Compiz 引起的,因此您必须使用compizconfig-settings-manager
(sudo apt-get install compizconfig-settings-manager
,然后ccsm
使用 Alt+F2 启动命令,或从终端启动,或者从破折号中搜索“CompizConfig 设置管理器”)。
- 打开“常规选项”
- 在“关注和提高行为”选项卡下,将“关注预防级别”设置为“关闭”
按照这些步骤后,我所有新打开的窗口都会按预期显示在前台。
答案2
关于 nemo(以及一些其他应用程序)在后台启动的问题在 Ubuntu 14.04 中仍然存在。
您自己提供的解决方案(Barta Tamás,答案 1)也仍然可以在 14.04 下解决此问题:
- (安装并)打开 compizconfig-settings-manager
- 在“常规”下打开“常规选项”
- 选择“关注并提高行为”标签
- 将“焦点预防级别”设置为“关闭”
并且所有新打开的应用程序现在都将出现在前台。
答案3
一个更通用(但也更灵活)的解决方案是使用devilspie2。
安装包devilspie2,将命令添加/usr/bin/devilspie2
到您的启动应用程序中,创建文件~/.config/devilspie2/window_open.lua
并填充以下内容:
if (get_application_name() == "nemo") then
focus_window()
end
您可以轻松添加其他命令,因此如果您还希望 Nemo 出现在屏幕中央,请尝试以下操作:
if (get_application_name() == "nemo") then
focus_window()
center()
end
这应该适用于大多数窗口管理器,而不仅仅是支持 Compiz 的窗口管理器!
对于调试(devilspie2 --debug
从 shell 运行),最好这样做:
function debug_output(header, window_information)
if window_information == "" then
debug_print(header .. "---")
else
debug_print(header .. window_information)
end
end
debug_output("Application: ", get_application_name())
debug_output("Window Name: ", get_window_name())
debug_output("Window Type: ", get_window_type())
debug_output("Window Class: ", get_window_class())
debug_output("Window Role: ", get_window_role())
geometry = string.format("x=%d, y=%d, width=%d, height=%d",
get_window_geometry())
debug_output("Geometry: ", geometry)
if (get_application_name() == "nemo") then
focus_window()
end