Coder Social home page Coder Social logo

alfie's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

neurosnap

alfie's Issues

Fix horizontal and vertical scaling issues

When text overflows horizontally or vertically we have strange scrolling issues.

Horizontal scroll should never be used, we should truncate with ellipsis in this case.

Vertical scrolling should only apply to list elements under the search box.

Watch for changes in /Applications

Currently, if an application is installed while Alfie is running, Alfie will require a reboot to recognise the new app in the mac-apps plugin. We should add file watchers to see when new applications are installed and dynamically add them to the plugins shortcuts.

Add support for multi-key shortcuts in alfie-frontend

e.g. the alt shortcut alt+enter, requires detection of both keys pressed at the same time.

This should be simple to implement using a map

e.g.

let keydownMap = {};

onKeyChange = e => {
  keydownMap[e.keycode] = e.state == 'keydown';
}

Add alt command support

When holding the alt key, we should support a variation of the command

e.g. instead of opening the folder in finder, open a quick preview, or copy the path to the keyboard.

For this we need to frontend to display the different command when alt is held

Add notifications when an error occurs

scenarios:

  • config could not be parsed
  • plugin could not be loaded
  • icons for applications could not be loaded

these should all result in notifications being sent to the user explaining the error.

Decouple classes by using event emitter

When a partial search query e.g. "goog" is made, and then completed by pressing the enter key, we should send the updated search results without being requested.

This prompts significant changes to the architecture used for communicating between the electron application and the react application.

Currently we pass the browserWindow instance through a large number of constructors (think death by prop passing in react). This is done so we can use the browserWindow.webContents.send function to send unsolicited data to the react application from within our plugins. We now additionally need to make calls to the search function within the same plugins as explained above.

We should consider using an event driven architecture, where plugins share a global event hub and can communicate to other plugins and to search and browserWindow. This would avoid passing these objects through constructors and function calls and would effectively decouple these classes from one another.

Add support for autocompleting plugins

e.g. if we type goog, then select the "search google" result, this should autocomplete the text to the full command i.e. "google ".

This is also useful for longer commands where typing the full command is painful

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.