Гид по технологиям

Как выборочно скрыть значки на рабочем столе macOS

6 min read macOS Обновлено 12 Dec 2025
Выборочно скрыть значки на рабочем столе macOS
Выборочно скрыть значки на рабочем столе macOS

Файл, жёсткая ссылка и символическая ссылка на рабочем столе Mac.

Краткое содержание

  • Скрипт выборочно скрывает элементы рабочего стола, при этом оставляет подключённые диски и тома видимыми.
  • Настройте поведение через массивы переменных для файлов и папок, которые нужно всегда показывать или всегда скрывать.
  • Запускайте из приложения Shortcuts или как самостоятельный исполняемый файл для удобного управления рабочим столом.

Рабочий стол macOS легко превращается в цифровой ящик с хламом: файлы, папки, скриншоты. Но можно аккуратно убрать видимый беспорядок, сохранив при этом функциональность и доступ к подключённым устройствам. Ниже — продуманное решение для этой задачи.

Почему не стоит использовать «ядерный» метод по умолчанию

Самый простой способ мгновенно очистить рабочий стол — команда в Терминале:

defaults write com.apple.finder CreateDesktop -bool false && killall Finder  

Этот подход работает, но он слишком радикален: он скрывает все элементы, включая подключённые внешние диски и тома, и требует перезапуска Finder. В результате вы теряете быстрый доступ к важным ресурсам и прерываете текущие окна Finder.

Мой скрипт более аккуратный: он помечает ненужные элементы как скрытые (chflags hidden) и не трогает тома. Файлы не переименовываются, что снижает риск поломки автоматизаций и ссылок.

Принцип работы скрипта

Кратко: скрипт проходит по содержимому папки ~/Desktop, определяет, какие элементы являются томами/дисками, проверяет списки исключений («всегда показать» и «всегда скрыть») и переключает атрибут скрытости через chflags без перезапуска Finder.

Определения в одну строку:

  • Том: смонтированный диск или том, видимый системе как отдельный ресурс (например, внешний HDD или сетевой том).
  • Скрытый файл: файл с атрибутом hidden в macOS, который Finder по умолчанию не показывает.

Преимущества этого подхода

  • Сохраняется доступ к подключённым дискам и томам.
  • Файлы не переименовываются, поэтому автоматизации и скрипты продолжают работать.
  • Не нужно перезапускать Finder: нет потерянных окон и прерываний рабочего процесса.
  • Скрипт легко настраивается через массивы в начале файла.

Когда этот метод не подойдёт

  • Если вы хотите полностью отключить отображение всех элементов рабочего стола, включая тома — тогда CreateDesktop=false остаётся самым простым решением.
  • Если вы используете нестандартные файловые менеджеры вместо Finder, видимость может управляться иначе и chflags не даст ожидаемого результата.
  • При системных ограничениях безопасности (например, строгие политики MDM) скрипт может не получить права на изменение атрибутов файлов без дополнительной настройки.

Как использовать скрипт в Apple Shortcuts

Добавление нового Apple Shortcut.

  1. Откройте приложение Shortcuts и создайте новый пустой ярлык.
  2. Добавьте действие Run Shell Script.
  3. Удалите стандартный «Hello World» и вставьте скрипт целиком.

Добавление действия Run Shell Script.

Ниже приведён исходный скрипт — вставляйте его без изменений в кодовой части действия:

#!/bin/bash  
  
# Path to the Desktop directory  
DESKTOP_PATH="$HOME/Desktop" # Don't edit this line  
  
# List of files and folders to always SHOW  
ALWAYS_SHOWN=(  
# Add filenames/folders here as needed (examples below)  
# "Always Visible Folder" # placeholder/example folder  
# "Always Visible File.txt" # placeholder/example file  
)  
  
# List of files and folders to always HIDE  
ALWAYS_HIDDEN=(  
  "\$RECYCLE.BIN"# Don't edit this line  
# "Always Hidden Folder" # placeholder/example folder  
# "Always Hidden File.txt" # placeholder/example file  
)  
  
  
  
# Function to check if an item is in the ALWAYS_SHOWN array  
is_in_always_shown() {  
  local item_basename="$1"  
  for shown_item in "${ALWAYS_SHOWN[@]}"; do  
    if [[ "$item_basename" == "$shown_item" ]]; then  
      return 0# Match found  
    fi  
  done  
  return 1# No match  
}  
  
# Function to check if an item is in the ALWAYS_HIDDEN array  
is_in_always_hidden() {  
  local item_basename="$1"  
  for hidden_item in "${ALWAYS_HIDDEN[@]}"; do  
    if [[ "$item_basename" == "$hidden_item" ]]; then  
      return 0# Match found  
    fi  
  done  
  return 1# No match  
}  
  
# Check if any visible non-volume item exists  
has_visible_non_volumes=false  
for item in "$DESKTOP_PATH"/*; do  
  if [[ -e "$item" ]]; then  
    item_basename=$(basename "$item")  
  
    # Ignore items in ALWAYS_SHOWN  
    if is_in_always_shown "$item_basename"; then  
      continue  
    fi  
  
    # Ignore items in ALWAYS_HIDDEN  
    if is_in_always_hidden "$item_basename"; then  
      continue  
    fi  
  
    # Check if the item is not a volume and is not hidden  
    if [ ! -d "$item" ] || [[ $(diskutil list | grep "$item_basename") == "" ]]; then  
      if ! ls -ldO "$item" | grep -q "hidden"; then  
        has_visible_non_volumes=true  
        break  
      fi  
    fi  
  fi  
done  
  
# Toggle visibility accordingly  
if $has_visible_non_volumes; then  
  echo "Hiding all non-volume items (excluding specified exceptions)..."  
  
  for item in "$DESKTOP_PATH"/*; do  
    if [[ -e "$item" ]]; then  
      item_name=$(basename "$item")  
  
      # Check if the item is in the ALWAYS_SHOWN list  
      if is_in_always_shown "$item_name"; then  
        continue  
      fi  
  
      # If it's not an exception, hide it  
      chflags hidden "$item"  
    fi  
  done  
  
  echo "Non-volume items hidden (except exceptions)."  
else  
  echo "Unhiding all items (excluding specified exceptions)..."  
  
  for item in "$DESKTOP_PATH"/*; do  
    if [[ -e "$item" ]]; then  
      item_name=$(basename "$item")  
  
      # Check if the item is in the ALWAYS_HIDDEN list  
      if is_in_always_hidden "$item_name"; then  
        continue  
      fi  
  
      # If it's not an exception, unhide it  
      chflags nohidden "$item"  
    fi  
  done  
  
  echo "All items unhidden (except exceptions)."  
fi  

read more

Запустите ярлык кнопкой Play или сочетанием Command+R, когда окно Shortcuts активно. Первый запуск может запросить разрешение на выполнение скриптов; подтвердите его и запустите снова.

Запуск скрипта в Apple Shortcuts.

Совет: закрепите ярлык в строке меню для быстрого доступа.

Для продвинутых пользователей: добавьте в массивы ALWAYS_SHOWN и ALWAYS_HIDDEN имена файлов/папок, которые нужно всегда показывать или скрывать. Скрипт работает как переключатель — второй запуск вернёт элементы в исходное состояние.

Использование скрипта как самостоятельного инструмента

Если вы предпочитаете запускать скрипт напрямую:

  1. Сохраните код в файл, например hide_desktop.sh.
  2. Сделайте файл исполняемым:
chmod +x /path/to/hide_desktop.sh  
  1. Запускайте из терминала, задавайте хоткей через Alfred или конвертируйте в приложение через Automator.

Запуск ярлыка Declutter Desktop через терминал.

Быстрые сценарии использования

  • Ведение публичных презентаций или стримов: скрываете личные файлы, оставляя подключённые носители видимыми.
  • Регулярная уборка: лёгкий переключатель, который возвращает порядок без удаления файлов.
  • Рабочие профили: храните в ALWAYS_SHOWN ярлыки на активные проекты для быстрого доступа.

Альтернативные подходы

  • Полное отключение рабочего стола через CreateDesktop=false — самый радикальный метод, но он прячет всё.
  • Папка-ящик: храните всё в одной папке и показывайте только её. Проще, но требует дисциплины.
  • Сторонние утилиты для управления рабочим столом — дают графический интерфейс и дополнительные функции, но могут быть платными или требовать полного диска доступа.

Модель принятия решения: когда использовать этот скрипт

Если вас устраивает, что:

  • Вы хотите сохранить видимость томов и внешних дисков.
  • Вы не хотите ломать имена файлов или автоматизации.
  • Вам нужен быстрый и обратимый способ скрыть визуальный беспорядок.

То этот скрипт — подходящий выбор.

Используйте CreateDesktop=false, если:

  • Вам нужно полностью скрыть рабочий стол, включая все тома, и вы готовы к перезапуску Finder.

Критерии приёмки

  1. При первом запуске видимые файлы (кроме томов и элементов из ALWAYS_SHOWN) получают атрибут hidden и исчезают из Finder на рабочем столе.
  2. При повторном запуске файлы становятся видимыми (кроме элементов из ALWAYS_HIDDEN).
  3. Подключённые внешние диски остаются видимыми в любом состоянии.
  4. Скрипт не переименовывает никаких файлов.
  5. Finder не перезапускается автоматически и открытые окна Finder сохраняют состояние.

Чек-листы по ролям

Для рядового пользователя:

  • Сохранить скрипт в удобное место.
  • Сделать исполняемым через chmod.
  • Запустить и проверить, что личные файлы исчезают.

Для администратора системы:

  • Проверить совместимость с политиками MDM.
  • Добавить скрипт в автоматические задания, если нужно.
  • Проверить логирование и уведомления об ошибках.

Для разработчика/автоматизатора:

  • Убедиться, что автоматизации не зависят от изменения имён файлов.
  • Добавить тестовые файлы в Desktop и проверить поведение массивов исключений.

Мини‑методология настройки

  1. Скопируйте скрипт.
  2. Добавьте в ALWAYS_SHOWN ключевые ярлыки и папки.
  3. Добавьте в ALWAYS_HIDDEN временные файлы или мусор.
  4. Протестируйте в отдельной учетной записи, если не уверены.

Возможные риски и способы их смягчения

Риск: скрипт не имеет прав на изменение атрибутов.

  • Смягчение: подтвердите разрешения в Security & Privacy, или запустите от пользователя с нужными правами.

Риск: сторонние менеджеры файлов игнорируют атрибут hidden.

  • Смягчение: проверьте совместимость с используемым файловым менеджером.

Риск: MDM/корпоративная политика блокирует выполнение.

  • Смягчение: согласуйте с ИТ и используйте утверждённые инструменты.

Однострочный глоссарий

  • chflags hidden / nohidden — утилита macOS для установки/снятия флага “скрытый” у файла или папки.
  • CreateDesktop — настройка Finder, управляющая видимостью всех элементов рабочего стола.

Заключение

Этот скрипт даёт гибкий, обратимый и безопасный способ поддерживать рабочий стол macOS в порядке, не жертвуя доступом к подключённым томам и не ломая автоматизации. Он удобен как для повседневного использования через Shortcuts, так и для интеграции в рабочие процессы через Alfred, Automator или скриптовые инструменты.

Важно: перед массовым развёртыванием протестируйте поведение в вашей среде и настройте массивы исключений под свои привычки.


Это решение помогает сохранить эстетичность и функциональность рабочего стола — аккуратность без жертв.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Kaspersky Password Manager: как исправить ошибки
Безопасность

Kaspersky Password Manager: как исправить ошибки

Как исправить ошибку Usbupdate.exe на Dell
Поддержка

Как исправить ошибку Usbupdate.exe на Dell

Включение командной панели в Firefox и Edge
Браузеры

Включение командной панели в Firefox и Edge

Резервное копирование в Windows 11 — настройка и советы
Windows

Резервное копирование в Windows 11 — настройка и советы

Postman — руководство по API-тестированию
API

Postman — руководство по API-тестированию

Конвертация ZIP в PDF — 4 быстрых способа
Инструменты

Конвертация ZIP в PDF — 4 быстрых способа