Вы можете использовать сторонний инструмент, devilspie2 , чтобы управлять поведением окон приложений при их создании. Следующий файл конфигурации devilspie2 не позволит отображать окно Hangouts во всех рабочих областях:
if (get_window_name() == "Google Hangouts") then
unpin_window();
end
Сохраните его в файле с именем hangouts.lua
в каталоге конфигурации devilspie2 (для Fedora 24 это . config / devilspie2 /
.
Наконец, убедитесь, что devilspie2 запускается при запуске среды рабочего стола, и все будет в порядке.
Он делает то, что написано на банке.
Когда Bash вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с параметром
- login
, он сначала читает и выполняет команды из файла/ etc / profile
. Он правильно объясняет, что он читает и выполняет / etc / profile
как интерактивную оболочку входа в систему или как неинтерактивная оболочка с опцией - логин
.Это не означает, что это не интерактивная оболочка входа в систему, обозначенная $ 0
, начинающаяся с дефиса.
Однако такое поведение является намеренным, и его можно изменить во время компиляции, раскомментировав параметр времени компиляции, найденный в config-top.h :
/* Define this to make non-interactive shells begun with argv[0][0] == '-'
run the startup files when not in posix mode. */
/* #define NON_INTERACTIVE_LOGIN_SHELLS */
Это действительно вызывает вопрос однако, почему это поведение было реализовано, когда это не так, IMHO , как можно было бы разумно ожидать, что оно будет работать, особенно когда оно не реализовано таким образом в других оболочках.
Тем не менее, я не думаю, что стандартная оболочка POSIX определяет оболочку входа в систему , поэтому я предполагаю, что она открыта для интерпретации.
Вот способ решения исходной проблемы, который работает с bash
:
$ su - someuser -c 'bash -l -c tmux'