dextapp / dext Goto Github PK
View Code? Open in Web Editor NEW๐ A smart launcher. Powered by JavaScript.
License: MIT License
๐ A smart launcher. Powered by JavaScript.
License: MIT License
Even though I have a plugin disabled (e.g dext-giphy-plugin
), I can still query to it because of its existence in .dext/plugins
So this is what my config.json
looks:
{
"theme": "dext-predawn-theme",
"hotKey": "alt+space",
"plugins": []
}
Dext should be aware of which plugins are enabled/disabled (not sure if it is already atm) by checking what is in the plugins
key of the config
We need to write tests for these action creators:
resetDetails()
closeDetails()
openDetails()
Test file: __tests__/app/renderer/src/actions/creators.js
I installed dext with npm install dext -g
, and for some reason I can't get it to open. I changed the Spotlight shortcut to Alt+Cmd+Space, and I even tried restarting my mac to see if it would work. Also, I don't have Alfred or any other launcher installed.
I already found it mildly frustrating to try to inspect the application through webkit's devtools
This also affects my train of thought when checking through the state
We should check out the possibility to:
Whenever the window is shown, query and results should be cleared.
I'd like to contribute to getting this working on windows. What do you think the biggest hurdles will be for getting this to work cross platform?
I've extracted the screen-saver to a standalone module: https://github.com/vutran/screen-saver
Core plugin needs to be updated to utilize this module.
Sometimes you already have cmd + space already registered to another app. Allow a way for the user to change their key bindings to another combination.
A common use for a calculator is taking the number and copying it into some form or document. If I use dext as a calculator this isn't possible as clicking away from dext erases the answer.
Since the introduction of #52 , we need to update the docs to reflect the new query
method.
Some titles gets too long using the dext-hackernews-plugin
so we need to apply the -webkit-line-clamp
css property to the resultTitle
class. Refer to resultSubtitle
for example.
We need to write a spec for the reducer: app/renderer/src/reducers/selectedIndex.js
Test file: __tests__/app/renderer/src/reducers/selectedIndex.js
Screensaver works when booting the app in development mode but when starting from an asar archive, it will not execute, probably due to asar being a virtual directory.
May be related to: electron/electron#2708
More info: http://electron.atom.io/docs/tutorial/application-packaging/#executing-binaries-inside-asar-archive
Plugins API currently makes a call to output()
. This won't make sense going forward should we implement action-based commands. Renaming to execute
may fix the issue since it may not be "outputting" anything.
output
should be kept and update to route to the new execute
method.
When using the clipboard functionality, it is hard to know if it had actually been executed. We need some sort of indicator that an item has been copied to the clipboard.
Allow items to open an extended details/panel for displaying rich content similar to Spotlight (reference screenshot below).
May be of use for some plugins such as dext-giphy-plugin
to display a quick view of the larger image.
Default scrollbar is too big and clunky.
Limit the rate of executing queries to prevent multiple child processes from being forked.
I think that it is time that we start considering setting NODE_PATH
to set a specific folder as the source of truth for loading modules, beyond the node_modules
folder.
The aim is to the have the following (example)
before
import paths from '../../../utils/paths'
after
import paths from 'core/utils/paths'
App may not be necessarily targeted for developers in the end so we can move the dext package manager to a separate module. Leaving this open to allow further discussion.
Alfred has the ability to execute alternate command if holding down the alt button.
This will be a new property for each item
.
"mods": {
"alt": {
"arg": "https://google.com/",
"subtitle": "Visit Google"
},
"cmd": {
"arg": "https://facebook.com/",
"subtitle": "Visit Facebook"
},
}
mods.alt
and display the given subtitle
mods.cmd
and display the given subtitle
When the app starts, the window should open by default.
Icon.js
49:11 error 'icon.type' PropType is defined but prop is never used react/no-unused-prop-types
50:11 error 'icon.path' PropType is defined but prop is never used react/no-unused-prop-types
51:13 error 'icon.letter' PropType is defined but prop is never used react/no-unused-prop-types
ResultList.js
54:10 error 'theme' PropType is defined but prop is never used react/no-unused-prop-types
55:12 error 'results' PropType is defined but prop is never used react/no-unused-prop-types
55:30 error 'results.*' PropType is defined but prop is never used react/no-unused-prop-types
56:18 error 'selectedIndex' PropType is defined but prop is never used react/no-unused-prop-types
Queries can be cached for a short duration to prevent forking of new process too often. Plugins can expect to have their own cache store.
When viewing a long list of results, keyboard up and down should scroll the window if necessary.
Provide a core extension to create internal plugins that can return items based on the global query. This will allow us to create a calc by evaluating the full query (eg: 1+1
) without a necessary keyword.
Looking at either ava
or jest
for testing.
A bit going back on my words (#11) but it may make more sense to renamed execute
to search
.
This would allow us to use execute
in the future for executing a specific item.
Example would be something like this:
module.exports = {
search: q => {
items: [], // list of ietms
},
execute: item => {
// executes for the selected item...
},
};
This will be a breaking change but since it's still early, we should migrate and just alias/deprecate execute
.
This makes it difficult to write some snapshot tests.
_Reference:_ <ResultList />
produces children contained of <ResultItemContainer />
which is connected to a redux store.
Will keep this open for discussion on what options are available aside from a single root-level connected container.
Some people just prefer sharp corners.
When typing, display some info on what the user is currently doing. (Example: which plugin filter is it searching, etc.)
Currently working with a designer to create an icon for the app.
Update .editorconfig
to allow trimming trailing white-space for .md
files
With the introduction of #88 , we'll need to have friendly deprecation notices. Let's use this ticket to see what we want for future alerts of this type.
Ideally, I'd like to see something like create-react-app.
TBD.
Considering adding support for yarn cause this thing is ridiculous fast! We'll need to commit the generated yarn.lock
file as well as updating documentations for installing with yarn
.
Indentation is weird on app/renderer/index.html
open for discussion on what to use. ideally creating a definition file for TypeScript in the dext-core-utils
repo could be a great start for us.
Create a core plugin that interfaces with dext-core-utils
to allow updating configurations via the Dext Bar.
it's only natural that the app hides/closes when the user hits ESC,
dext doesn't do this atm
Alfred themes doesn't follow CSS specifications. We'll need to provide a layer to map their structure over to our theming API.
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.