Нет ли способа заставить все приложения минимизироваться или заставить их загружаться в фоновом режиме, чтобы они не открывались в верхней части окна, над которым я работаю, кроме того, чтобы окно всегда было на вершине?
Я заметил, что на многие подобные вопросы, как этот, вслепую отвечают с решением, которое включает в себя манипулирование настройками правил окна в CompizConfig > General > Focus & Raise Behavior
, но это фактически ничего не делает для предотвращения такого рода кражи фокуса.
Проверьте 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+ Сценарий зависит от x11-utils
и xdotool
. Это приводит к очень короткому мерцанию, когда приложение открыто. Этого можно избежать, используя CCSM и установив длительность скольжения стены равной нулю миллисекунд.
, '')
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 и установив длительность скольжения стены равной нулю миллисекунд.