Как настроить запуск всех приложений не сфокусированным или свернутым?

Разве нет способа заставить все приложения минимизироваться при запуске или заставить их загружаться в фоновом режиме, чтобы они не открывались в верхней части окна, над которым я работаю, кроме того, чтобы окно всегда было сверху?

Я замечаю, что на многие подобные вопросы, подобные этому, приходят слепые ответы с решением, которое включает в себя настройку правил окна в 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 и установив время продолжительности скольжения стены равным нулю миллисекунд.

Другие вопросы по тегам