Запуск команд с zsh в качестве оболочки по умолчанию?

Если вы используете рабочие области (называемые видовыми экранами в Compiz), вы можете использовать devilspie2 для открытия приложений, максимизированных в другом рабочем пространстве. Он использует lua в качестве языка сценариев, поэтому он достаточно мощный. Это не так хорошо работает с видовыми экранами, поскольку они являются технически только разделом одного большого рабочего пространства, поэтому необходимы обходные пути и внешние инструменты. Это сценарий, который я использую для размещения pidign-разговора в viewport 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 и установить время продолжительности скольжения на стене до нуля миллисекунд.

1
задан 13 March 2013 в 18:42

1 ответ

Я не верю, что вам нужно беспокоиться об этом, если это сценарий перед графическим интерфейсом GUI или сценарий, предшествующий логину, который должен быть запущен, если вы определяете, что это такое начало файла сценария.

Если это происходит в rc.local, то я не считаю, что вам нужно беспокоиться о Bash vs. ZSH. Однако, если это будет загружаться для каждой оболочки входа, вы частично должны быть обеспокоены тем, запускает ли ZSH ее или какой-либо другой язык оболочки запускает ее.

3
ответ дан 25 May 2018 в 00:34
  • 1
    Я ищу что-то, что запускается после входа в систему и запуска GUI. Как мне это сделать? – David Y. Stephenson 13 March 2013 в 18:42
  • 2
    @ DavidY.Stephenson Смотрите ответ пользователя1251007 на этот вопрос: P – Thomas Ward♦ 14 March 2013 в 00:05

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

Похожие вопросы: