No description
  • JavaScript 88.9%
  • CSS 9%
  • HTML 2.1%
Find a file
ymnuk 367e253999
All checks were successful
ci/woodpecker/tag/woodpecker Pipeline was successful
Обновление модулей
2025-11-27 00:10:31 +03:00
.gitignore Fix files 2025-10-13 16:28:12 +03:00
.woodpecker.yml Fix CI/CD 2025-11-25 21:54:55 +03:00
consts.js Исправление ошибки воспроизведения m4v 2025-11-25 21:41:17 +03:00
index.html Вернули звук 2025-11-26 23:24:42 +03:00
LICENSE first commit 2025-09-22 18:20:20 +03:00
main.js Реализация эффектов 2025-11-26 23:08:55 +03:00
package.json Обновление модулей 2025-11-27 00:10:31 +03:00
preload.js Исправление ошибки воспроизведения m4v 2025-11-25 21:41:17 +03:00
README.md Добавление возможности отключения эффектов перехода 2025-11-27 00:01:59 +03:00
renderer.js Добавление возможности отключения эффектов перехода 2025-11-27 00:01:59 +03:00
style.css Исправление эффектов 2025-11-26 23:22:21 +03:00

PhotoFrame

Простое и настраиваемое приложение-фоторамка для десктопа, созданное с помощью Electron.

Возможности

  • Полноэкранный режим: Запускается в полноэкранном режиме без рамок для полного погружения.
  • Поддержка нескольких мониторов: Вы можете выбрать, на каком мониторе запустить приложение.
  • Гибкое управление: Переключайте медиафайлы с помощью клавиш (←, →, PageUp, PageDown) или кликов по краям экрана.
  • Поддержка видео: Воспроизводит популярные форматы видео. Короткие ролики могут зацикливаться.
  • Настраиваемые тайм-ауты: Управляйте временем показа изображений и видео.
  • Случайный порядок: Возможность перемешать плейлист для случайного воспроизведения.
  • Кэширование: Быстрый запуск благодаря кэшированию списка файлов.
  • Скрытый интерфейс: Кнопка закрытия появляется только при наведении мыши.

Конфигурация

Все настройки находятся в файле config.json. Приложение создаст его с настройками по умолчанию при первом запуске.

  • mediaPath: Полный путь к вашей папке с фотографиями и видео.
  • imageTimeout: Время показа одного изображения в секундах (например, 8 = 8 секунд).
  • videoTimeout: Время в секундах, через которое переключается к следующему медиафайлу. Видео короче этого значения будут зацикливаться, видео длиннее - будут воспроизводиться до конца. По умолчанию 60 секунд.
  • shuffle: Воспроизводить файлы в случайном порядке (true) или по порядку (false).
  • displayIndex: Индекс монитора для отображения (0 - основной, 1 - второй и т.д.).
  • transitionEffect: Тип эффекта перехода между файлами (fade, crossfade, slide, none или random). По умолчанию random.
  • muteVideos: Отключить звук при воспроизведении видео (true) или оставить звук включенным (false). По умолчанию false.

Установка и запуск

Требования:

  1. Клонируйте репозиторий:

    git clone <your-repo-url>
    cd photoframe
    
  2. Установите зависимости:

    npm install
    
  3. Настройте config.json: Отредактируйте файл config.json, указав путь к вашим медиафайлам.

  4. Запустите в режиме разработки:

    npm start
    

Сборка приложения

Вы можете собрать дистрибутивы для разных платформ с помощью следующих команд:

  • Windows (x64):

    npm run build:win
    
  • Linux (x64):

    npm run build:linux
    
  • Linux (arm64):

    npm run build:linux-arm64
    

Готовые файлы появятся в папке dist.

Запуск без графической оболочки

Приложение теоретически может использоваться на одноплатных компьютерах (например, Orange Pi, Raspberry Pi) без графической оболочки, при этом само приложение фоторамки работает как графическая среда. Это позволяет достичь:

  • Максимальной производительности и стабильности
  • Минимального потребления системных ресурсов
  • Энергоэффективности при постоянной работе

Для этого:

  • Запустите приложение сразу после загрузки системы через .xinitrc или systemd-сервис
  • Используйте минимальные настройки X11 или Wayland
  • Настройте автозапуск через crontab @reboot или системный сервис

Примечание: такой способ использования теоретически возможен, но на практике не тестировался.

Кэширование и отслеживание изменений

Приложение использует файл media-cache.json для хранения списка медиафайлов и ускорения запуска:

  • При первом запуске создается полный список файлов в указанной директории
  • При последующих запусках используется кэш для быстрого доступа к списку файлов
  • Изменения в директории отслеживаются в реальном времени с помощью chokidar

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

Эффекты переходов

Приложение поддерживает различные эффекты плавных переходов между медиафайлами:

  • fade: Плавное исчезновение текущего файла и появление нового
  • crossfade: Одновременное исчезновение старого и появление нового файла
  • slide: Новое изображение "въезжает" (справа при следующем файле, слева при предыдущем)
  • random: Случайный выбор эффекта перехода (по умолчанию)

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

Для установки конкретного эффекта в файле config.json необходимо установить параметр transitionEffect.

Лицензия

Этот проект распространяется под лицензией MIT.