Как настроить запуск всех приложений не сфокусированным или свернутым?
Разве нет способа заставить все приложения минимизироваться при запуске или заставить их загружаться в фоновом режиме, чтобы они не открывались в верхней части окна, над которым я работаю, кроме того, чтобы окно всегда было сверху?
Я замечаю, что на многие подобные вопросы, подобные этому, приходят слепые ответы с решением, которое включает в себя настройку правил окна в CompizConfig > General > Focus & Raise Behavior но это на самом деле ничего не делает для предотвращения такого рода кражи фокуса.
2 ответа
Проверьте GDevilSpie из Центра программного обеспечения, здесь есть учебник http://www.webupd8.org/2011/02/how-to-start-applications-minimized.html
Если вы используете рабочие пространства (называемые областями просмотра в Compiz), вы можете использовать devilspie2, чтобы открывать приложения, развернутые в другом рабочем пространстве. Он использует lua в качестве языка сценариев, поэтому он довольно мощный. Он плохо работает с окнами просмотра, поскольку технически они являются лишь частью одного большого рабочего пространства, поэтому необходимы некоторые обходные пути и внешние инструменты. Это сценарий, который я использую для размещения беседы на портале 3,3 (третий сверху и слева) моего экрана fullHD (1920×1080):
-- a helper function to capture string from external command output
function os.capture(cmd, raw)
local f = assert(io.popen(cmd, 'r'))
local s = assert(f:read('*a'))
f:close()
if raw then return s end
s = string.gsub(s, '^%s+', '')
s = string.gsub(s, '%s+$', '')
s = string.gsub(s, '[\n\r]+', ' ')
return s
end
if (get_window_class()=="Pidgin" and get_window_role()=="conversation") then
-- get the current viewport
vp = os.capture("xprop -root |grep '_NET_DESKTOP_VIEWPORT(CARDINAL) = ' |cut -d ' ' -f 3-4 |tr -d ','")
-- unfortunately, the below does not work due to a bug in xdotool
-- vp = os.capture("xdotool get_desktop_viewport")
-- set_window_geomtery is relative to current position, it seems, so go to the left and top most vieport
os.execute("xdotool set_desktop_viewport 0 0")
-- set the window maximized and to viewport 3,3
set_window_geometry(3930,2250,650,950)
maximize()
-- now go to the original viewport
os.execute("xdotool set_desktop_viewport " .. vp)
end
Сценарий зависит от x11-utils а также xdotool, Это приводит к очень короткому мерцанию, когда приложение открыто. Это можно устранить, используя CCSM и установив время продолжительности скольжения стены равным нулю миллисекунд.