Введение

Меню "Услуги" (или просто "Услуги") является элементом пользовательского интерфейса в macOS. Сервисы - это программы, которые принимают вход от пользователя, обрабатывают его и, по желанию, помещают результат обратно в буфер. Концепция возникла в операционной системе NeXTSTEP, от которой она была перенесена в macOS и GNUstep. Подобные функции могут быть эмулированы на других операционных системах.

macOS

Apple рекламирует меню "Услуги" в связи с другими функциями своей операционной системы. Например, можно найти текст на рабочем столе, выбрав его мышью и используя услугу Spotlight. Другими центральными сервисами являются Grab для съемки скриншотов и проверка орфографии системы. Концепция похожа на графический интерфейс, эквивалентный трубе Unix, позволяющий обрабатывать и передавать произвольные данные между программами. Услуги могут быть реализованы как прикладные сервисы, которые выставляют часть функциональности приложения для работы с выбранными данными, обычно без отображения интерфейса. В своей документации для разработчиков Apple рекомендует, чтобы приложения использовали сервисы для предоставления функций, которые "в целом полезны", приводив в качестве примера клиент Usenet, предоставляющий шифрование ROT13 в качестве услуги. Автономные сервисы могут также создаваться без хост-приложения. Их простота, одноцелевое назначение и тот факт, что они не требуют разработки графического пользовательского интерфейса, делает написание автономных сервисов популярными проектами программирования для начинающих пользователей macOS. Поскольку многие приложения устанавливают свои записи без запроса пользователя, меню услуг macOS имеет тенденцию быстро забиваться десятками записей. Большинство пользователей будут использовать только небольшой подмножество возможных вариантов, поэтому сокращение и настройка меню делает его быстрее и приятнее в использовании. До Mac OS X Snow Leopard для этого требовалось программное обеспечение третьих сторон; в Snow Leopard меню Услуги можно настроить из панели Клавиатуры в Настройках системы.

Эмуляция

С точки зрения программного обеспечения меню "Услуги" является средством межпроцессной связи. Для пользователя это интерфейс для выполнения действий на выбранных данных. Эмуляция меню "Услуги" основана на том факте, что существует несколько способов достижения этого в операционной системе. Даже в macOS существует альтернативная система под названием контекстное меню, которая перенесена из классической Mac OS. В системе X Window любые данные, выбранные в приложении, доступны всем другим программам. Таким образом, меню "Услуги" может быть приложением, которое извлекает текущий выбор и позволяет пользователю выбрать действие. Недостающая часть - это возвращение обработанных данных обратно в исходное приложение. Вместо этого сервис может открыть новое окно, чтобы показать результаты. В качестве альтернативы, служба может заменить текущий буфер с результатами операции, оставляя пользователю только выполнять вставку (поскольку различные наборы инструментов реализуют команды копирования/выбора и вставки по-разному, и, вероятно, не под внешним программным управлением).