Skip to content

YaxinCheng/Tonnerre

Repository files navigation

Tonnerre

Tonnerre is a pure swift built, extensible, and productive Spotlight alternative. You can consider it as a global search bar with everything you are interested, or it is a text-based Siri who responds to all your requests.

Getting Started

These instruction will get you a copy of the project up and running on your local machine for development and testing purpose.

Prerequisites

  • from macOS Mojave (10.14)
  • Git
  • Xcode with the latest Swift version (5)
  • Carthage

Installing

cd somewhere
git clone https://github.com/YaxinCheng/Tonnerre.git
cd Tonnerre
carthage update
open Tonnerre.xcodeproj

After open in Xcode, you can add a new scheme Tonnerre and it will build the Tonnerre.app

Or you can download a built version here: Tonnerre.dmg

Built With

  • HotKey - Simple global shortcuts in macOS
  • TonnerreSearch - A necessary component for building your own Spotlight on macOS with Swift
  • LiteTableView - A faster and simpler table view for macOS
  • MathParser - A swift library parsing string typed math expressions to its evaluated result

Functionality

Here is what Tonnerre can offer

Open everywhere

Everywhere, when you press ⌥ + Space, Tonnerre search bar will show up, and waiting for your request.

searchbar

Quick search for your apps and your files

When you type in a request, Tonnerre acts quickly and provides you a list of options. Besides navigating using arrow keys, and Enter to select, Tonnerre also provides quick-selection with ⌘+number.

quickLaunch

File Search based on file names or file content

Besides simply app search and launch, Tonnerre supports file search function with keyword file for search by name, and contentfor search by content

filesearch

Search is never enough only on local

When you can search through the local files and apps, you know this is never enough. The broader internet is our destination. So, when you need to search things online.

Tonnerre provides you numerous options to satisfy different types of search: Google, Bing, DuckDuckGo, Wikipedia, Google Image, Google Map, and etc.. You just need to type in the keyword, and followed by the content you want to search, then it lead you to where you want to be.

Google

google

Google Map

map

Wikipedia

wiki

Only search is not productive enough, even with internet

When we search, we care more about its content. Why do we have to jump to browser or file editor to know the content? Can't we do it here?

Yes, of course! With Tonnerre, you can preview the option by clicking Space bar. It doesn't matter if it's a image, a file, or an URL, you can view it before open it.

Preview a file

filePreview

Preview an URL

translate

Besides search, Tonnerre has something more

Search is just one side of this app. It actually has something more, that help you do things with the least key strokes and no mouse move

Record your copy history

Preview is supported of course

clipboard

Quit your program

quit

Eject your external harddrives (dmg included)

eject

Some other functions...

Besides all these, Tonnerre also support quick launch Browser bookmarks (Safari and Chrome supported), quick launch URLs, calculator, look up dictionary, and etc.. There are more functionalities waiting for you to explore

Dark Mode

As Apple introduced Dark mode in macOS Mojave, Tonnerre also supports two different coloured interfaces. And it is totally based on your system settings

darkmode

Extensions

At the very beginning, the word extensible was mentioned. According to my builtin English Dictionary:

extensible | ikˈstensəb(ə)l |

adjective

able to be extended; extendable: an extensible architecture designed to accommodate changes.

So, Tonnerre supports extensions too. The extensions are called TNE Script. They are simply packed scripts with extra resource files. For more detailed info about TNE Script, go to: TNEExamples.

Roadmap

  • More options in the setting panel
  • Better indexing and change-listening algorithm
  • More script language support for TNE Script

License

This project is licensed under the GPLv3 Licence - see the LICENSE.md