Coder Social home page Coder Social logo

hainproject / hain Goto Github PK

View Code? Open in Web Editor NEW
3.2K 109.0 159.0 9.66 MB

An 'alt+space' launcher for Windows, built with Electron

Home Page: http://hainproject.github.io/hain/

License: MIT License

JavaScript 94.21% C++ 2.68% Python 0.31% Batchfile 0.26% Objective-C 1.52% Shell 0.07% Objective-C++ 0.95%
hain launcher electron javascript

hain's Introduction

Hain

Build status Build Status Join the chat at https://gitter.im/appetizermonster/hain

An alt+space launcher for Windows, built with Electron.

I always dreamed of an alternative to Alfred on Windows, that is made with JavaScript. so, I made it.

Vision

It's a launcher with strict syntax (like terminal programs), it's not targeting to interpret natural language.
I believe the strict syntax can provide more powerful and fast response than to interpret natural language.

Features

  • Searching Executable files very fast with Fuzzy Matching
  • Plugins in Pure JavaScript

Downloads

Go to Releases, then you can download prebuilt binaries.

Usage

Run and press alt+space anywhere.

Themes

See THEMES.md

How to make Plugins

See Plugin Documentation

Development Requirements

  • Node.js v8.9.x
  • npm v5.6.x

See engines property in package.json

Install/Build from Source

# Clone this repo
git clone https://github.com/hainproject/hain.git
# Go into the repo
cd hain
# Install dependencies
npm install

Run from Source

npm run dev

Build for Windows

npm run build

Build for Linux

npm run build-debian

Build for macOS

gulp build-darwin

Contributing

See CONTRIBUTING.md

Credits

The name "Hain" is named by Hyunseop Lee, it means "a Servant" in Korean.
The app icon & gif are designed by Yunsung Lee.
It uses npmsearch.com for searching packages for now.

License

MIT

hain's People

Contributors

angrevol avatar appetizermonster avatar braunson avatar braydenhouston avatar cpriest avatar daemongh avatar danielfallon avatar dannya avatar e- avatar ewnd9 avatar florianrappl avatar gsgeschke avatar gum-joe avatar kamahl19 avatar krokofant avatar leonardosnt avatar metrakit avatar mistic100 avatar notatestuser avatar s4kr4 avatar semigradsky avatar sethxd avatar staff0rd avatar thebuzzdee avatar tw0517tw avatar vuelos avatar vutran avatar ycanastra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hain's Issues

How to install development plugin

I cannot figure out how to make the plugin I'm working on load in the app. I've got a folder in hain-user/devplugins with index.js and package.json. Do I have to publish to npm? I'd rather not do that until I know it actually works.

Distribute via chocolatey

First of all: great job ๐Ÿ‘!

I think this useful tool should definitely be distributed as a binary, e.g., via Chocolatey, as well. That would make it very easy to be obtained and integrated in system installation / provisioning routines.

If you need or want assistance or help I would love to contribute.

Allow right-click to run as admin

Right now there is no way to launch an application as admin (correct me if I'm wrong, but I couldn't find it). Maybe adding support for right-clicking on the list would be a good idea? Additional options might include properties and open in explorer, not sure how easy it would be to add those, but run as admin should be possible, I think.

Problem with opening dev tools

In docs:

Note: You can see logging messages in Chrome Developer Tools in the app.
You can open Chrome Developer Tools by pressing Ctrl+Shift+I in the app.

I tried Ctrl+Shift+I, Alt+Shift+I, F12...
There are no results.

I am using v0.0.2-rc4 (HainSetup-ia32.exe)

Proxy?

Is there a way yet to get it to work behind a proxy?

hpm is just spinning currently

Port to linux

Prior discussion happened in gitter chat https://gitter.im/appetizermonster/hain

Short brief: I've started hain by commenting out native addon code at app/platform-util/index.js

Current plan is to make a pull request after config file issue #13 will be resolved, as the current shortcut alt+space is not working on a Linux

File extensions should have lesser priority in fuzzy search

I don't know how one should implement it but for example searching for ffx should return Firefox before forfiles.exe because .exe (and other extensions) is too common and it should have lesser effect than the filename itself.

But of course simple name priority > extension priority would be wrong because then searching ffx will return C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows Fax and Scan.lnk before forfiles.exe.

Testing Plugins

The docs don't have any info on locally testing (Run your plugins) a plugin other than putting it in the appdata/hain-user/devplugins folder to which nothing happens when you do so, I've tried restarting hain, looking for my dev plugin in the list, in the 'install list' and still my plugins do not display anywhere.. how can I test this before publishing it?

How to index custom folders / files?

I want to run this: Z:/dropbox/my_project/run.bat

In Launchy I told it to index the dropbox folder, then I was good to go. What can I do here?

Add Clipboard api

Add an api to send and receive items from the clipboard. Also, an api to insert text into front most application like in Alfred

Easily check if response object is empty?

I'm working on a plugin, and if the search doesn't return any results I wanted to add a search result that indicates that and tells them to search again, instead of not providing any feedback.

I feel like should be easy to check if there aren't currently any results, and then create this one, but not sure how to do it. Thanks for any help!

[Question] Does it selfupdate?

As in title. Does hain selfupdate? If not, can it be added? Afaik electron has some sort of ability to do it built in.

Allow a plugin to use its own shortcut

It would be nice to allow plugins to define their own keyboard shortcuts for direct access like in Alfred. A perfect implementation would consider repeat or double-tap key presses as shortcuts (e.g. alt + alt)!

Ideas for hain-package-manager

/hpm install

  • show and sort by count of downloads #30
  • don't show the plugins that are already installed

/hpm list

  • show 'native' plugins (hain-plugin-filesearch, hain-plugin-math, ...) with versions too
  • show last version for outdated plugins, update plugin when selected

Crash with Alt + Space

On Windows 10 with a 4k resolution monitor.

Alt + Space causes the following error to pop up.
image

It works if I go directly to the executable and run that.

Executable search only looks on the system drive.

I like a lot of people install some software off my small ssd and instead on a large hdd. Hain seems to only find files on the system drive and in certain directories making it almost useless. Allowing the user to change these paths without needing to rebuild would be great.

funny shortcut

It's funny Alfred uses alt+space when similar functionality is achieved in gnome-shell with the Windows key !

Fallback to calculator

Currently the workflow to the calculator, with my swedish qwerty layout, is
alt+space
shift+0 (equal sign)
some calculation

Could it be set to default to use the calculator if there are no other matches for the example query 1+1?

Add functionality to open folders in file explorer?

This is awesome, and I like it a lot better than the launcher I've been using. The only feature missing I use a lot is to search for & open folders. Any chance you're planning to add this functionality?

Could you add more run-like features?

I just checkout out hain and it is brilliant, however, I think you could add a lot more standard features
NB: I know most of these could be added as plugins, but it seems more convenient to ship them out of the box.

Features:

  1. Environment variables - in run, you can type %appdata% and it would launch/run what the environment variable %appdata% is equal to (in this case, open C:\Users\<user>\AppData\Roaming)
  2. Ship a plugin that allows you to run /opendir <dir> to open a dir (another run feature - could be a plugin)
  3. Most used/favourite apps - this would be quite good as it would let you quickly run your most used/favourite apps, rather than type them in each time
  4. Add an /update command to apply hain updates.
  5. Repo: Add a CONTRIBUTING.md so issues that you don't want don't happen (hopefully) and to give instructions about contributing

Hope you continue developing!
Thanks in advance.

Port to OSX

Personally, I'd like to see this application take full advantage of the fact that it's written in electron. I see this application as having much more potential in the long run than Alfred.

Plugin Icon not working

When I add the following code to the index.js file in my plugin, the icon is not being displayed.

function search(query, res) {
  res.add({
    title: ...,
    desc: ...,
    icon: './icon.png'
  });
}

I see that it is looking for the icon at the following location file:///C:/Users/username/AppData/Local/hain/app-0.0.3/resources/app.asar/dist/icon.png

I get error file not found message shown in the developer console.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.