Вчера я зашёл под своей старой учётной записью на ноутбук, который давно не использовал. С последнего захода было много изменений, какой-то софт удалён, какой-то доставлен. Решив слегка почистить программы, которые запускаются при старте системы, я зашёл в System Preferences/Accounts/Login Items.

И там я увидел отсылку на древнейшую программу Nikon View, которую снёс очень давно. Задумался о двух вещах – как посмотреть путь к этой программе и где эти Login Items сконфигурированы. Google мне, как обычно, помог, отослав к отличной статье MacWorld “See paths to Login Items“.

В простой методе достаточно навести указатель мыши на программу и в подсказке покажется полный путь (но ввод этого путь непрост – его нужно вбивать вручную):

А более правильный, но слегка “гиковский” метод – это использование defaults. Конечно же, Login Items описаны в логичном для этого месте – в конфигурации loginwindow (это процесс, отвечающий за вход в систему):

$ defaults read loginwindow | grep Path
Path = "/Users/ctrld/Library/PreferencePanes/Hazel.prefPane/Contents/Resources/HazelHelper.app";
Path = "/Users/ctrld/Library/PreferencePanes/RedHand.prefPane/RedHand.app";
Path = "/Applications/Zooom2.app";
Path = "/Applications/Chax.app";
Path = "/Applications/Skype.app";
Path = "/Applications/Things.app";
Path = "/Applications/LaunchBar.app";
Path = "/Applications/Mailplane.app";
Path = "/Applications/Tweetie.app";
Path = "/Applications/Evernote.app/Contents/Resources/EvernoteHelper.app";
Path = "/Applications/Dropbox.app";
Path = "/Applications/SizeUp.app";

Найти, где именно находятся эти Login Items, можно было на примере одного из них (я взял Hazel):

$ defaults find Hazel | grep "in domain "
Found 1 keys in domain 'com.apple.Console.LSSharedFileList': {
Found 1 keys in domain 'com.apple.Console': {
Found 2 keys in domain 'com.apple.help': {
Found 1 keys in domain 'com.apple.loginitems': {
Found 12 keys in domain 'com.noodlesoft.Hazel': {
Found 4 keys in domain 'com.noodlesoft.HazelHelper': {
Found 1 keys in domain 'loginwindow': {

Так как эти данные уникальны для каждого пользователя, то настройки находятся в домашнем каталоге. А именно здесь:

$ find ~ -name com.apple.loginitems\*
/Users/ctrld/Library/Preferences/com.apple.loginitems.plist

Как удалить конкретную программу через команду defaults, я не нашёл – по идее нужно сформировать то ли dict, то ли array, и его удалить. Проще либо удалить через настройки Login Items, то ли отредактировать файл ~/Library/Preferences/com.apple.loginitems.plist в любом редакторе.