Cerebro – бесплатная альтернатива Alfred и Spotlight

    Хочу показать вам свой open-source проект Cerebro — это бесплатная альтернатива Alfred и Spotligth, работать над которым я начал несколько месяцев назад и лишь недавно добился стабильности и кроссплатформенности, с которой готов показать продукт широкой аудитории.



    (под катом будет много скриншотов)


    Зачем?


    Я ставил для себя несколько целей:


    • Сделать бесплатный open-source аналог Alfred и Spotlight;
    • Он должен быть кросс-платформенным;
    • В отличии от многих open-source проектов сделать акцент на хороший UI/UX и простоту в использовании;
    • Исправить то, что не нравится в Alfred: бóльшая свобода для плагинов (например, отображение не только текста, но и любых других элементов интерфейса);
    • Исправить то, что не нравится в Spotlight: кастомизация, плагины, скорость;
    • «Мощный эй-пи-ай», чтобы любой разработчик на JS мог за 10 минут сделать простое расширение, а пользователи могли найти эти плагины в одном месте.

    Что получилось


    В итоге используя javascript и electron я создал приложение, которым пользуюсь постоянно. Из коробки оно умеет:


    • Искать в гугле;
    • Искать и запускать приложения (пока только на MacOS);


    • Считать и конвертировать величины


    • Навигироваться по файловой системе и показывать файлы



    • Переводить с одного языка на другой


    • Искать на гугл-картах

    Плагины


    Плагин — это простой npm-модуль, написанный на javascript. В принципе, вы можете написать плагин на любом другом языке, просто обернув в js вызов вашего скрипта. Документация по созданию плагинов доступна на гитхабе.




    На момент написания статьи доступно 10 плагинов, которые можно искать и устанавливать прямо из приложения:


    • Поиск по базе caniuse.com



    • Поиск фильмов на IMDB



    • Поиск gif на giphy.com



    • Поиск подходящих emoji



    • Поиск по контактам в OSx


    • Выполнение shell-comand


    • Системные команды для OSx (screen saver, empty trash, restart)
    • Поиск во встроенном в OSx словаре
    • Отображение внешнего и внутрннего IP адреса
    • Kill — чтобы убить любой процесс в системе

    Отзывы


    Я надеюсь, что вы найдёте что-то полезное и для себя. В комментариях хотелось бы услышать отзывы, предложения, критику. И буду рад пулл-реквестам и новым плагинам от разработачиков!


    Сайт
    Репозиторий

    Share post

    Similar posts

    Comments 56

      0
      Классно!
      Пытаюсь поменять HotKey, но оно просит его напечатать. Лучше чтобы просто определяло нажатие
        0
        Перезапустил и все заработало)

        ещё 3 наблюдения:
        1) При вводе текста и последующей попытке его выделить курсором — у вас двигается все окно. Спотлайт умеет разделять эти два действия.
        2) Спотлайт закрывается при клике мимо окна. У Церебро этого нет. Это фича?
        3) Поиск по приложениям зависит от прописных/заглавных букв. Нужно искать независимо от символов
          0
          Отличные наблюдения)

          1 — точно, я даже не думал об этом
          2 — А какая у вас система? Это баг, но на OSx он не воспроизводится
          3 — ага, в какой-то из релизов это сломалось) Поправим!
            0
            2) У меня тоже макос. Нашел причину. По-умолчанию выставлена галочка «Developer mode». Если её убрать — клик мимо окна закрывает приложение

            Классный проект! Поменял свой спотлайт на церебро. Будем тестить)
          0
          В принципе, хоткей просто определяется, но должна быть нажата хотя бы одна спец. клавиша (alt, ctrl или cmd)
            0
            Еще в окне плагинов не очень логично:

            Наводишь на плагин (не кликаешь)
            Нажимаешь Details — появляется информация о плагине
            Всё, с этого момента на другие плагины неясно как перейти — список плагинов затемнён, а при клике по списку кидает на гитхаб.

            Думаю лучше убрать редирект на гитхаб, сделать для плагина действие по клику — выделение, а ссылку на гитхаб добавить в описание плагина
              0
              Тоже хорошее наблюдение, подмаю над этим. Я всё делаю без мыши и интерфейс получился в основном под клавиатуру: выбор плагина стрелками вверх/вниз, стрелка вправо — его выделение, стрелка влево или esc – переход обратно в список результатов.
          +1
          Выглядит крайне приятно, просто решил написать об этом.
            0
            Спасибо, выглядит перспективно.

            Возможно ли добавить некое подобие vi-mode? Переход в «нормальный» режим при нажатии на Esc и перемещение с помощью hjkl в нем?
              0
              Интересная идея) Теоретически всё можно. Сможете подробнее расписать, как вы это видите? Получается, что после ввода текста сначала нужно нажать хоткей для перехода в vi-mode (чтобы символы hjkl не писались в поле поиска), и потом по esc переходить в обычный режим?
                0
                В моем представлении это выглядит как-то так — по-умолчанию включен insert-mode, ввод текста осуществляется обычным способом. При нажатии Esc включается normal-mode:

                — навигация осуществляется при помощи hjkl
                — i возвращает insert-mode, автоматически фокусируется поле ввода
                — y копирует выделенный текст
                — Esc убивает панель.

                Еще можно добавить цифровые модификаторы для некоторых действий — 4j перемещает на четыре строки вниз, 3k на три вверх.
              0
              Скажите, а при добавлении плагина нужно пересобрать приложение, как я понял? Не размышляли ли Вы над возможностью добавления плагина в работающее приложение (т.е. просто указываем файлы со скриптами/шаблонами и оно усваивается и сразу работоспособно без пересборки)? Я просто как раз сейчас занимаюсь приложением на том же стеке технологий и пытаюсь наколхозить подобную систему…
                0

                Не совсем — чтобы добавить плагин приложение нужно просто перезагрузить.


                В Cerebro для плагинов я сделал следующее: я сделал скелет, который в режиме разработки (npm run debug) запускает webpack в watch-режиме и создаёт симлинк в папке с плагинами. Поэтому чтобы применить изменения в плагине при разработке нужно просто нажать cmd+r в dev tools Cerebro. Когда отладка закончена (разработчик жмёт ctrl+c в терминале) — симлинк удаляется.


                Когда плагин готов просто запускаем npm run build чтобы собрать и минифицировать код и паблишим плагин в npm с определённым тегом — и он готов для установки всем пользователями. А установка плагина — это просто установка npm-пакета в определённую директорию и перезагрузка приложения.

                  0
                  Спасибо, поразбираюсь с Вашими исходниками )
                +5
                Системная утилита на Electron — как минимум занятно и смело!
                  0
                  Не могу поменять HotKey, ничего не печатает в этом поле и не дает стереть.
                    0

                    Попробуйте рецепт выше

                      0
                      Пытался поставить cmd + space, почему-то не дает. Остальные срабатывают.
                        0

                        Возможно этот хоткей уже используется для чего-то другого (например, смена раскладки или spotlight). Если так — сначала нужно освободить хоткей:)

                          0
                          Стоял поиск Spotlight. Я выключил этот шорткат, потом вообще затер на другой — без изменений, его нельзя выбрать.
                            0
                            Получилось после перезагрузки системы, не знаю в чем проблема была)
                      +1
                      Для меня фича №1 — запуск файлов, это умеют делать все конкуренты
                      Фича №2 — открыть файл. А это значит интеграция с Everything или Locate под Windows для поиска файлов. И под Mac хотя бы с проиндексированной базой Spotlight.

                      Без этого не конкурент FARR, Listary, Wox, Spotlight (Flashlight и что там еще) — у всех все есть и работает великолепно. Farr и заметки с напоминаниями сделает, Flashlight в Todoist задачу занесет.

                      Сейчас запуск программ и калькулятор кажется у всех есть. Плагинов катастрофически мало…
                      Даешь больше полезных плагинов, например как тут http://flashlight.nateparrott.com/browse
                        0
                        А открытие программ в windows не планируете реализовать (хотя бы windows 10)?
                          0

                          Конечно планирую! Сейчас работаю над этим

                          0
                          Не хватает поиск файлов по индексированной базе, хотя бы того же Spotlight, а то зачастую помнишь имя файла а путь его вбивать довольно долго.

                          При конвертации валют например такой запрос «300 baht in eur» не понимает, приходится уточнять и писать «300 thb in eur»

                          С несколькими мониторами, не запоминает позицию при перезагрузки приложения.

                          А так, очень перспективно на мой взгляд.
                            0
                            И вообще, хотелось бы чтобы по хоткею приложение открывалось на том мониторе, где в последний раз был фокус.
                            0
                            А где можно посмотреть список что и во что можно перевести?
                            И можно ли посчитать, например процент от числа?

                            P.S. Есть супер-классная программа для пользователей Маков — Numi (рекомендую). У них в документации подробно написано какие математические операции и функции конвертации присутствуют.
                              0

                              Посмотреть только в исходниках, к сожалению:) Пока можно конвертировать только массу, дистанцию, валюты и температуру.

                              +8
                              Статья стала бы лучше, если бы начиналась с того, зачем нужны Alfred и Spotlight. Ведь не все сталкивались с этими программами.
                                0
                                Полностью с Вами согласен.
                                +4

                                Для тех кто на линуксе — Albert, написанный на с++, работает очень шустро

                                  +1

                                  Надо запретить повторный запуск
                                    0
                                    Даже не пытайтесь запустить Cerebro из Cerebro на русской раскладке
                                      0
                                      под Linux Mint ecли установить shell plugin, то введение "$" ни к чему не приводитimage
                                        0
                                        Вот это подарок! Огромное вам спасибо! Пойду писать плагины)
                                          0
                                          Ой, я дико извиняюсь, мой внутренний перфекционист бьётся в истерике — http://take.ms/2wB8S, пожалуйста, подвиньте слово Search на три пикселя вправо и увеличьте высота поля на 1 пиксель вниз.
                                          0
                                          А вы не смотрели на https://www.lacona.io? Крайне интересный проект в том же поле.
                                            0
                                            Видимо у меня одного не работает поиск по файловой системе windows
                                              –1
                                              автор, вам огромный респект за труды. често и без подколов. я всегда уважаю чужой труд, даже если не вижу в нем для себя пользы.
                                              тепеь немного скепсиса:
                                              1. спотлайт. прежде всего — это системный сервис индексирования файлов, и только потом морда к нему. соответственно, ваш продукт может быть некой заменой только последнему.
                                              2. попытка конкурировать альфреду смела, но, имхо, при его возможностях и стоимости, безперспективна. это не минус, а только намек на трезвую оценку своих шансов.

                                              все написанное касается исключительно OSX.
                                                0
                                                вот не согласен ни по первому, ни по второму…

                                                Вы очень субьективно смотрите, например, для меня спотлайт это прежде всего лончер + быстрый калькулятор и так по мелочи. В данном случае Cerebro полностью задачу покрывает. А если учесть плагины с простой интеграцией, что и вовсе легко уходит гораздо дальше по возможностям.

                                                По поводу цены Alfred, вы считаете 19 фунтов стерлингов для текущей версии ценой, которая не оставляет шансов бесплатной Cerebro, серьёзно? Что заставляет вас так считать?
                                                  0
                                                  Вы очень субьективно смотрите
                                                  вполне возможно. но я смотрю как человек очень хорошо знающий макось.
                                                  поэтому и разделяю спотлайт системный сервис индексации, и спотлайт морду.
                                                  поймите, я не против сабжа, я за точность формулировок.

                                                  Что заставляет вас так считать?
                                                  цена в 35 фунтов за вечную лицензию, обширная библиотека уже существующих workflow (плагинов) и возможность писать их на любом языке, установленном в системе (чем, кстати, и пользуюсь).
                                                  я желаю всех благ начинанию автора, но отписал как человек, трезво смотрящий на вещи.
                                              • UFO just landed and posted this here
                                                  0

                                                  Ну например, потому что у меня не было цели написать бесплатный лончер, а была цель поиграть с электроном и понять его возможности:) Что в итоге получилось — то и показываю

                                                    0

                                                    Ну напишите свое приложение, покажите как надо. Недавно в статье c описанием Electron тоже в коментариях тоже было много критики формата "что вы делаете, кому нужен этот тяжелый Electron". Критиковать легко, а сделать самому сложнее.


                                                    Поэтому я очень рад за автора, в любом случае это лучше, чем никакого приложения вообще. Спасибо автору!

                                                    0
                                                    Написали бы что 64 bit obly, а то скачал 34 метра :)
                                                      +1

                                                      О, спасибо за репорт, поправлю, не должно быть только 64 bit

                                                      0
                                                      Очень удобно — спасибо! Все основные сценарии покрыты, но для меня очень важная фича это быстрый просмотр гуглокарт, а там какая-то хитрая логика с зумом.
                                                      — Если указать только город — зум маленький, видно только очертания города, а когда улица указана, то для некоторых адресов зум меняется на максимальный — видна только часть дома без окрестностей.(Можно сравнить разницу на этих адресах: «киев львовская 22а карта» и «киев львовская 22 карта»). Гораздо удобнее когда на карте виден не только дом, а и окрестности рядом — тогда понятно где это и как туда добраться.
                                                      — Если адрес вставить из буфера, то карта может уплыть куда-то влево, а зум станет минимальным
                                                      — Также не понял как поставить в качестве хоткея двойной клик по какой-либо кнопке.
                                                        0

                                                        Зум сейчас ставится автоматически гуглом, но его он легко изменяется скроллом по карте

                                                          0
                                                          Зум сейчас ставится автоматически гуглом, но его он легко изменяется скроллом по карте

                                                          Даже если открыть строку ввода и вставить туда адрес? Зачастую результат будет разным при вставке адреса в строку ввода и наборе вручную.
                                                        +1
                                                        мне на macos в Spotlight очень не хватает поиска сразу на русском и на heccrjv ( на англ раскладке ) приложений.
                                                          0
                                                          +1. Уже было бы лучше чем спотлайт для русской аудитории
                                                            0

                                                            Добавил в список фич!

                                                              0
                                                              Или, как в Alfred, нужна настройки раскладки, которая всегда будет активироваться при открытии окна поиска – это позволяет не проверять раскладку каждый раз, а просто писать оригинальное (англоязычное) название приложения и гарантированно получать нужный результат. Например, Словарь можно найти и по «сло» и по «dic».
                                                              Делать перевод между раскладками («heccrjv») нужно для каждой пары языков, а у пользователя может быть не самая стандартная раскладка.
                                                              0
                                                              Классный проект! Автор молодец! Советую!
                                                                0
                                                                • В windows10 у меня черная панель и значек приложения там видно плохо.


                                                                • Возможность запуска нескольких копий — это фича? после третьего запуска и попытки закрыть вторую копию перестала перехватывать "хоткей" и выкинуло ругательство на какой то ексепшен в основном потоке js. Закрыть приложение не получается. Что странно, в трее один черный значек и выйти из приложения никак… а вот в диспетчере задач их три, правда у двух значки таки белые )))

                                                                p.s. в целом хорошо, но без возможности запуска приложений, открытия файлов смысла не вижу в использовании, потому подожду поддержки windows. В linux не знаю зачем оно мне, поскольку нативно без мышки с клавиатуры все выполняется отлично.

                                                                  0

                                                                  Собирался сделать такую же штуку, и даже кое что сделал на c# (тоже чутка попиарюсь), но увидел что есть аналоги лучше.
                                                                  Касательно вашей поделки, хотелось бы уже запускать через него проги на винде)

                                                                  Only users with full accounts can post comments. Log in, please.