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
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.
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.
We need to write a spec for the reducer: app/renderer/src/reducers/selectedIndex.js
Test file: __tests__/app/renderer/src/reducers/selectedIndex.js
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:
Update .editorconfig
to allow trimming trailing white-space for .md
files
Default scrollbar is too big and clunky.
When viewing a long list of results, keyboard up and down should scroll the window if necessary.
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.
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
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.
Alfred themes doesn't follow CSS specifications. We'll need to provide a layer to map their structure over to our theming API.
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.
Limit the rate of executing queries to prevent multiple child processes from being forked.
Looking at either ava
or jest
for testing.
Currently working with a designer to create an icon for the app.
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.
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
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
.
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.
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
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.
We need to write tests for these action creators:
resetDetails()
closeDetails()
openDetails()
Test file: __tests__/app/renderer/src/actions/creators.js
When the app starts, the window should open by default.
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.
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
.
TBD.
it's only natural that the app hides/closes when the user hits ESC,
dext doesn't do this atm
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?
Whenever the window is shown, query and results should be cleared.
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'
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.
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.)
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.
Since the introduction of #52 , we need to update the docs to reflect the new query
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.
Indentation is weird on app/renderer/index.html
Create a core plugin that interfaces with dext-core-utils
to allow updating configurations via the Dext Bar.
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.
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.
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
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.