aranscope / alfie Goto Github PK
View Code? Open in Web Editor NEWElectron based open source Alfred alternative
License: GNU General Public License v3.0
Electron based open source Alfred alternative
License: GNU General Public License v3.0
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.
Currently the previous search will remain when visibility is toggled.
We should make sure all calls to hide and show go through a common interface, and this interface should send an event to the frontend, telling it to clear the search field.
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.
e.g. facebook, twitter, reddit etc.
This can be adapted or added to the web-search plugin.
e.g.
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';
}
Alfred currently supports navigating the filesystem (opening directories and files).
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
scenarios:
these should all result in notifications being sent to the user explaining the error.
@
i.e. if there are no results, we should fallback to "Search the web for X"
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.
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
gif well done -> opens well done gif to side
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.