├── README.md └── CHANGELOG.md /README.md: -------------------------------------------------------------------------------- 1 | {this repo is no longer used} 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 1.1.4 2 | 3 | ## Changes 4 | 5 | - Update Setapp, Sparkle, and Paddle frameworks 6 | - Remove Safari Bookmarks, as searching bookmarks is no longer supported on macOS 10.13 High Sierra 7 | 8 | ## Fixes 9 | 10 | - Update to work with macOS 10.13 High Sierra 11 | 12 | # 1.1.3 13 | 14 | ## Changes 15 | 16 | - "Launch at Login" is no longer be enabled by default, to comply with [Setapp](https://setapp.com/) guidelines. Users who have already set the setting manually will not be affected 17 | 18 | ## Fixes 19 | 20 | - Fix a bug that prevented Launch at Login from working 21 | - Fix a bug that could cause slowdowns if Spotlight returns inconsistent results 22 | - Fix a bug that caused share sheets to appear in the wrong place on Retina displays 23 | - Update the About text to reflect the switch to node v7.0.0 24 | - Fix a bug with the links in the about text. 25 | 26 | # 1.1.2 27 | 28 | ## Fixes 29 | 30 | - Fix a bug that would reset certain preferences on startup, for users upgrading from Lacona 1.0.x 31 | - Fix a bug that could cause the "Tutorial" popover to not appear on first launch 32 | - Fix the ordering of dialogs presented to the user on first launch 33 | 34 | # 1.1.1 35 | 36 | ## Fixes 37 | 38 | - Fix a bug that only allowed one "Shortcut" to be changed from the default at a time. 39 | 40 | # 1.1.0 41 | 42 | ## New Features 43 | 44 | - Major revamp of Preferences. Icons make things look better, and all addons and built-in commands show Examples of how they are used. Revamped the License page, added tabs, and array preferences now show up in sheets. 45 | - Added the ability to conditionally enable built-in features via Preferences. Disabling features that you do not need may improve performance. 46 | - Added "Context" support - Lacona is now aware of the current clipboard contents, and the current Finder window (if it is foremost). This means that commands like "email clipboard contents to Vicky" are now possible. Or, with the `lacona-shell` Addon, "run rm -rf * in {current finder directory} is now very easy". This works for URLs, Files, Directories, and text on the clipboard. This can be disabled from 'macOS Integration' in Preferences. 47 | - You can now now specify your "Quick Select Modifier", which allows you to select which modifier key you use to pick an option by number. Previously, it was always set to `alt`. 48 | - Added a one-time popup prompting for Contacts, Reminders, and Events access. If the user clicks no, the functions will automatically be disabled in settings. 49 | - If Contacts, Reminders, and Events access are not permitted, they will automatically be disabled in the Preferences as well. 50 | - The 'reveal in Finder' command can now reveal Applications and Volumes (not just files). 51 | - You can now install Addons by clicking a link from any application. Links in the form [`lacona-install://lacona-convert-currency`](lacona-install://lacona-convert-currency) will pop up an alert asking you to confirm installation. If confirmed, the Addon will automatically install. This only works for published Lacona Addons. 52 | - Check out the "GitHub" and "IFTTT" addons! 53 | 54 | ## Changes 55 | 56 | - Massive performance improvements, especially for users who have a lot of Contacts. On our test system, performance for the `open` command and all fallthroughs was increased about eightfold. 57 | - Fetch some data at load time, increasing performance the very first time Lacona is called up after a restart. 58 | - Small change to the way that Command Aliases work. If the alias matches the input exactly, the full replacement will be used. Now, you can shorten long, commonly used commands that do not require arguments, such as "open twitter.com in Safari". 59 | - Lacona now understands 24-hour time. 60 | - Lacona now understands dates like "July 4-5", "3-5pm", and "the 25th". 61 | - Lacona now makes its understanding of dates a bit more explicit, by automatically adding components like "at", "on", and ":00". 62 | - Whack 17MB off the application size with minification/deduplication. Note that the majority of the large file size comes from bundling Node.js, which is required for functioning. 63 | - IPC with the Node process no longer goes through the network adaptor. This improves performance, and also remove the annoying "Allow Incoming Connections" message that occassionally appeared on Startup. 64 | - Add some attributions to the About page. 65 | - "Play next song" and kin are now properly identified as symbols. 66 | - Songs in iTunes shows the iTunes logo. 67 | - Safari bookmarks now use the Safari logo 68 | - Do not show duplicate options that represent the same thing ('open Chrome' and 'open Google Chrome') 69 | - Prevent some nonsense inputs ('open Google Chrome and Chrome') 70 | 71 | ## Fixes 72 | 73 | - The "Please Purchase Lacona Pro" popup and the tutorial popup will now both appear even if the Menu Bar Icon is hidden. 74 | - Fix a bug that was causing the "Please Purchase Lacona" popup/delay to happen for some system commands. 75 | - Fix "enable/disable Dark Mode" on OSX Sierra 76 | - Selecting options using the mouse now works all the time. Due to an macOS Quirk, this has the unfortunate side-effect of making the cursor always be the normal (rather than having the text and pointer cursors). Not a huge problem, though. 77 | 78 | ## Developer Changes 79 | 80 | - Update underlying node.js to v7.0.0 81 | - Botched addons will no longer break everything. Addons with errors in user-defined code will simply print messages to the log file and Lacona will continue behaving as normal. If your addon is not working, try running `lacona logs`. 82 | - Preferences are now stored in `preferences.json` rather than `config.json`, and they should not include a top wrapper object. This is because preferences are now Addon-specific (Addons cannot access other Addon's config). 83 | - The `auth` type was added to preferences, allowing oauth2-based authentication, straight from Preferences. 84 | - Addons can now specify `examples` in the `lacona` property of `package.json`. 85 | - Addons can now set their own preferences programmatically using the `setConfig` function. 86 | - Addons can now export a `hooks` object, which contains functions that are called at various times. Currently, the `onLoad`, `onLoadConfig`, and `onURLCommand` hooks are available. The latter two hooks are passed `observe`, `config`, and `setConfig`, so they can prefetch sources, modify config settings, and respond to URL commands if necessary. 87 | - Beefed up `setClipboard` and `fetchClipboard` - they can now handle files, URLs, and multiple strings. 88 | - The `image` type is now available for annotations, allowing Addons to specify annotations with an absolute file path to an image file. 89 | - The `url` type is now available for annotations, allowing Addons to specify annotations with an http[s] path to an image file. 90 | - Introduced the `symbol` category, which italicizes the words. This demonstrates to the user that the given input is a symbol of some sort. 91 | 92 | # 1.0.3 93 | 94 | ## Changes 95 | 96 | - Lacona will now appear in the Dock while the Preferences window is open, allowing for improved window management. 97 | - Clicking the Dock icon while the Preferences window is open will no longer make the Lacona Input Bar appear. 98 | - "search google for lacona" will now present one option instead of two. 99 | 100 | ## Fixes 101 | 102 | - Fix a bug where pressing "Purchase Lacona..." while the purchase sheet was already active would cause bad behavior and crashes. 103 | 104 | ## Developer Changes 105 | 106 | - Introduced `fetchUserDefaults` to `lacona-api` 107 | - Addons can now extend the `elliptical-*` classes, so extensions can now provide Dates, URLs, Email Addresses, Strings, and more. 108 | 109 | # 1.0.2 110 | 111 | ## Changes 112 | 113 | - `lacona-cli@1.1.0` adds the concept of "Developer Mode". Using `lacona dev package-name`, you can set a single addon to be in "Developer Mode", which means that the delay and license prompt will not happen, even for unlicensed users. This will make addon development a bit easier for people seeking scholarships. 114 | - Built-in Commands and Addons can now be [translated](http://docs.lacona.io/docs/advanced/translation.html) (no translations are currently available, but they will come with time) 115 | - If any of the built-in commands are installed using [`lacona-cli`](https://www.npmjs.com/package/lacona-cli), that will supercede the built-in version. This allows developers to test fixes and translations of these commands. The built-in commands are 116 | - [lacona-calculate](https://github.com/laconalabs/lacona-calculate) 117 | - [lacona-command](https://github.com/laconalabs/lacona-command) 118 | - [lacona-communicate](https://github.com/laconalabs/lacona-communicate) 119 | - [lacona-events](https://github.com/laconalabs/lacona-events) 120 | - [lacona-finder](https://github.com/laconalabs/lacona-finder) 121 | - [lacona-itunes](https://github.com/laconalabs/lacona-itunes) 122 | - [lacona-osx](https://github.com/laconalabs/lacona-osx) 123 | - [lacona-search-internet](https://github.com/laconalabs/lacona-search-internet) 124 | - [lacona-settings](https://github.com/laconalabs/lacona-settings) 125 | - [lacona-translate](https://github.com/laconalabs/lacona-translate) 126 | 127 | ## Fixes 128 | 129 | - Fix a bug with pressing the down arrow to navigate lists in the Preferences 130 | - Fix a bug where multiple lists could be selected at the same time in the Preferences 131 | 132 | # 1.0.1 133 | 134 | ## New Features 135 | 136 | - Add a small activity indicator to the Addons page 137 | 138 | ## Changes 139 | 140 | - Minor text changes 141 | 142 | ## Fixes 143 | 144 | - Make the Preferences page functional on macOS 10.12 Sierra 145 | 146 | # 1.0.0 147 | 148 | ## New Features 149 | 150 | - Payment is now enabled. All built-in commands are free to use forever. Running commands from Addons will have a slight delay and prompt for purchase. Once purchase has been validated, these messages will go away. 151 | - Add the "Shortcuts" section to config, which allows two new feature: Aliases and Prefixes. 152 | - Aliases are user-defined ways to cut down on typing. They are replacements that can replace either the beginning of commands ('o safari' -> 'open safari') or entire commands ('twifi' -> 'toggle wifi for 1 second') 153 | - Prefixes have always existed - they are the commands that are selected by default if you do not enter a verb ('safari' -> 'open safari'). Now, they are user-configurable. There are 4 by default: 'open', 'search', 'look up', and 'calculate'. 154 | - Add "Large Fonts" theme, which increases the font size (to pre-0.10.0 size). Very useful on large monitors 155 | - You can now specify a Reminder List for the "remind me to" command, and a Calendar for the "schedule" command. Additionally, added the alternate "add milk to shopping list" syntax, which is a synonym for "remind me to". 156 | 157 | ## Changes 158 | 159 | - Dramatic performance improvements across the board, especially for fallthrough, files, and dates 160 | - Style changes and continued simplifications, to better fit into the larger macOS environment 161 | - Calculate now does math asyncronously, which improves fallthrough performance, especially for searching. 162 | - Add links to the [Terms of Use](https://www.lacona.io/terms) and [Privacy Policy](https://www.lacona.io/privacy) to the About page. 163 | - Ignore starting spaces and multiple spaces 164 | - "Define" is now only available for dictionary words - it will not do automatic truncation/adjustment 165 | - "Look up" is now a synonym for "define" 166 | - Add "look up" as a fallthrough (user-configurable) 167 | - Applications now have qualifiers, which fixes problems if you have multiple applications in different directories with the same name 168 | - Allow the word form of numbers to be used in dates ("remind me to eat in an hour", "schedule party for march first") 169 | - Increase the transparency of inactive modifiers in the Keyboard Shortcut setting 170 | - "Eject " and "eject all" will now show a notification on success or failure 171 | - Change the color of the "reminder title" argument, so it does not blend in with dates and times 172 | - Hide the "disable/enable" button while uninstalling addons. 173 | - Scheduling all-day events now creates an alarm at 9am the day before the event, rather than 11:45pm the day before. 174 | - Make the initial tutorial popover less ugly. 175 | 176 | ## Fixes 177 | 178 | - Fix a bug that could cause options and the preview popover to become invisble, but their shadow to persist 179 | - Fix "open Lacona Preferences" 180 | - Reminders created with lacona will now display their due date in the iOS Reminders App 181 | - Fix a bug that did not allow "schedule x from today to tomorrow" 182 | - Force Lacona's built-in NPM tool to use `~/.lacona-npm` as the cache directory, rather than the default `~/.npm`. This fixes some situations where pre-existing npm permissions issues could cause Addon installation/uninstallation failures for Lacona. Also, prevent other undesired interactions with npm config files. 183 | - Fix a potential crash when editing theme settings for the first time. 184 | - Fix a regression that ignored the "Applications" setting - so default setting users could not open Finder. 185 | 186 | # Public Beta 13 (0.10.1) 187 | 188 | ## Fixes 189 | 190 | - Fix a bug that could cause crashes if some running applications did not have bundle identifiers 191 | - Fix a bug with activating and quitting running applications with whitespace in their titles 192 | - The lacona addon log will now be appended to rather than overwritten with each error, making addon development easier 193 | - Fix the `lock computer` command 194 | - Ensure that the website link appears for addons that are not yet installed 195 | - Ensure that author name appears for addons that have been installed 196 | - Fix a bug that could result in Lacona not launching properly if certain Network devices were disabled or the hosts file was configured strangely 197 | - Installation and Uninstallation failures will now be reported as alerts, so there is no need to search through the console logs 198 | - The "Check for Updates" button on the Addons will be re-enabled if errors occur 199 | - Fix a crash that could occur if attempting to install multiple addons at the same time 200 | - Fix an issue that could get an node_modules into an inconsistent state if multiple addons were installed and uninstalled at the same time 201 | - Vertically center the keyboard hints on the right side of options, could potentially fix a display bug on some external monitors 202 | 203 | # Public Beta 12 (0.10.0) 204 | 205 | ## New Features 206 | 207 | - Add the ability to download and install addons published to npm. Check out the [documentation for writing your own addons!](https://docs.lacona.io). 208 | - Introduce small icons for certain features (Apps, Contacts, Bookmarks, Preference Panes, Contacts) 209 | - Add the Calculate command, which can do basic arithmetic and unit conversions. For a list of features, see [MathJS](http://mathjs.org/). Results appear in a popover window. 210 | - Add the Define command, which looks up words in the system dictionary. Currently, only the Oxford English Dictionary is supported. 211 | - Add commands to Move, Delete, Copy, and Reveal files and folders (thank you to @rltbennett) 212 | - Added a fallthrough for Calculate 213 | - You can now open Apps using some common alternative names (e.g. Chrome -> Google Chrome, iMessage -> Messages). If there are more apps with alternative names that are not supported, please [submit an issue](https://github.com/laconalabs/LaconaApp/issues). 214 | - Introduce the ability to open Volumes 215 | - Add qualifiers to relationships, both by label (my brother (Mobile)) and by name (my brother (Aaron)) 216 | - Add a small introductory popover on first launch, explaining how to open the Lacona bar and preferences 217 | - Opening Lacona from Finder or the Dock will now bring up the Lacona bar 218 | - You can now toggle multiple settings with the same command ("turn off wifi and bluetooth") 219 | - The Mute and Do Not Disturb commands now support a time duration ("mute for 10 minutes") 220 | 221 | ## Changes 222 | 223 | - Switch the underlying API to use Node.js instead of JavascriptCore. Improved performance for all commands. May require addon changes. 224 | - Switched `lacona-api` to use Promises and Observables more consistently - may require addon changes. 225 | - Updated the underlying elliptical engine, which has a few minor changes to better support qualifiers and annotations. May require addon changes. 226 | - Shrank the text and simplified the visual style to allow popover previews and icons to better fit with the flow of content 227 | - The Keyboard Shortcut can no longer be set to to Shift+[Letter/Number/Punctuation], as those are normal typing characters. 228 | - Add a brief description to the Keyboard Shortcut setting 229 | - Change the Preferences styling to fit more in line with OSX 230 | - Remove the Right Click menu from Preferences and Lacona Options 231 | - Changed the way that Preferences are saved on disk 232 | - Switched to using Service Management for Launch at Login functionality 233 | 234 | ## Fixes 235 | 236 | - Fix a crash when adding an invalid Application name to Applications 237 | - Fix a bug when attempting to remove certain settings that have defaults. 238 | - Relationships will now work even if the name has diacritical marks. 239 | 240 | # Public Beta 11 (0.9.0) 241 | 242 | ## New Features 243 | 244 | - Lacona can now quit menu bar apps 245 | - Added the `relaunch` command (works with Dock and Menu Bar apps) 246 | - API: Addons can now use `callNode` to make calls out to Node js, where they can use Node modules like `fs` and `https`. 247 | 248 | ## Changes 249 | 250 | - Show all entries for certain commands before any characters have been input (eject, switch to, quit) 251 | - Add `activate` as a synonym for `switch to` 252 | - Enable fuzzy matching for many more commands 253 | - Visual: Slightly decrease shadow 254 | - API: Split File and Directory into two distinct phrases (rather than File encompassing both) 255 | - API: RunningApplication results have a new property: `activiationPolicy`, either "regular", "accessory", or "prohibited" 256 | 257 | ## Fixes 258 | 259 | - Fix a bug that could clear command settings with every relaunch 260 | - Fix a bug where RunningApplications, Contacts, and Volumes would not be updated if they changed after Lacona launch 261 | - API: Fix a bug with `quitApplication` not calling the callback 262 | 263 | # Public Beta 10 (0.8.1) 264 | 265 | ## Fixes 266 | 267 | - Fix a bug that would cause silent failures if the user had never used Lacona before 268 | 269 | # Public Beta 9 (0.8.0) 270 | 271 | ## New Features 272 | 273 | - Add limited support for developer addons 274 | - Add the "reload addons" Applescript command 275 | 276 | ## Fixes 277 | 278 | - Fix a bug with "toggle Do Not Disturb" 279 | - Fix a display bug visible on Retina displays 280 | 281 | # Public Beta 8 (0.7.0) 282 | 283 | ## New Features 284 | 285 | - Added the "open Lacona Preferences" command (this does the same thing as CMD+,) 286 | - Added support for "qualifiers" - a way of unambiguously specifying ambiguous commands. Try the `call` command for a contact with multiple phone numbers. 287 | - The `open` command can now open Contacts, which will open in the Contacts application 288 | 289 | ## Fixes 290 | 291 | - Fix a bug where entering an empty string on the settings page could revert data to the defaults 292 | - Fix a bug where "search for " was not ignoring the word "for" 293 | - Fix two separate bugs that resulted in certain commands were not presenting all available options 294 | - Relationship-Name linking was made much more robust, so it now accepts names with spaces in them 295 | - You can no longer open multiple preference panes with a single command (which never worked to begin with) 296 | 297 | ## Changes 298 | 299 | - Improve text rendering quality on some systems 300 | 301 | # Public Beta 7 (0.6) 302 | 303 | ## New Features 304 | 305 | - Added the ability to start Facetime Audio calls 306 | 307 | ## Fixes 308 | 309 | - Do not hijack modifier+arrow key combinations (like Command+Left) 310 | - Changes to Applications settings will now take effect immediately 311 | - Fix a bug with opening "~/*" files 312 | - Fix a crash when typing quotation marks 313 | 314 | ## Changes 315 | 316 | - Reworked everything under-the-hood using [elliptical](http://elliptical.laconalabs.com/), for improved performance and (future) extensibility 317 | - Cleaned up the language for making calls, texts, emails, facetime calls, and facetime audio calls 318 | - Changed the colorization of "time of day" and "folder" 319 | - Due to under-the-hood changes, nothing works when running outside of the Applications directory 320 | 321 | # Public Beta 6 (0.5) 322 | 323 | ## New Features 324 | 325 | - Added the Lacona Preferences Page 326 | - Added the ability to manage the list of directories to search for applications 327 | - Added the ability to customize Lacona's search engines 328 | - Added the ability to hide the menubar icon 329 | - While Lacona is open, pressing Command+q quits it 330 | - While Lacona is open, pressing Command+, now opens the Preferences 331 | 332 | ## Fixes 333 | 334 | - Fix a bug where iTunes songs missing some info could result in 'play undefined' being a valid command 335 | - Fix a bug where using a quotation mark in an "open" command would crash Lacona 336 | - Allow Lacona to find files whose names have diacritical marks in them 337 | - "schedule x next Friday to Sunday" would previously fail 338 | - Fix a bug which could cause crashes on startup if launched outside /Applications more than once 339 | - Fix a bug that would result in executing the wrong command if the user typed and pressed enter very quickly 340 | - Removed some unnecessary files from Resources 341 | 342 | --- 343 | 344 | # Public Beta 5 (0.4.2) 345 | 346 | ## Fixes 347 | 348 | - Fixed a bug where "open lacona.io and <...>" would sort before "open lacona.io" 349 | - Reverted a broken implementation of "call/email/text/facetime" to 0.4 version 350 | 351 | --- 352 | 353 | # Public Beta 4 (0.4.1) 354 | 355 | ## Fixes 356 | 357 | - Lacona would previously ignore some applications/bookmarks if you had more than 100 358 | - In version 0.4, Lacona could not open Apps/Pref Panes/Volumes and Files/URLs in the same command - now it can again 359 | - Auto-update library (Sparkle) updated to version 1.13.1, to fix [a recently-discovered security vulnerability](https://github.com/sparkle-project/Sparkle/releases/tag/1.13.1). 360 | 361 | ## Changes 362 | 363 | - If running outside of the Applications directory, Lacona will ask to move itself. Outside of the Applications directory, OSX does not allow apps to access Contacts, Calendar, etc... 364 | - Lacona now differentiates between "files" and "folders". 365 | - Lacona can now open Applications that live outside the /Applications directory. To limit clutter, it is limited to these directories: 366 | * `/Applications` - System, App Store, and normal Apps 367 | * `/Applications/Xcode.app/Contents/Applications` - Developer utilities, if Xcode is installed 368 | * `/System/Library/CoreServices/Applications` - System utilities 369 | * `~/Applications` - Chrome Apps, among other things 370 | * `/usr/local/Cellar` - Apps installed via Homebrew 371 | * `/opt/homebrew-cask/Caskroom` - Apps installed via Homebrew Cask 372 | * `Finder.app` 373 | - In the "open" command, Applications and Preference panes will always appear above files, even if the beginning of the name is not matched. 374 | - File searching performance improved dramatically. 375 | 376 | --- 377 | 378 | # Public Beta 3 (0.4) 379 | 380 | ## New Features 381 | 382 | - Added the "schedule" command - you can now schedule events on the default calendar using natural language 383 | - You can now open files by name, just like a Spotlight search 384 | - You can now open files by entering a file path 385 | 386 | ## Changes 387 | 388 | - Fallthroughs are now displayed without a border, to reduce visual complexity 389 | - Lacona will now appear on the active display, rather than always the first one 390 | - Lacona will now display lower on most screens (centered vertically, if there were 9 rows of data displayed) 391 | - If you are setting an F-key as the Keyboard Shortcut, you do not need to use a modifier (though you still may) 392 | - The "search on " command now sorts above the "open " command, to make fallthrough searching slightly easier. 393 | - Command continuation information (in repeats and sequences) is not displayed for complete outputs. Use `{Right}` or `{Tab}` to see continuations 394 | 395 | ## Fixes 396 | 397 | - Lacona will now resize automatically if the display size changes 398 | - The "shutdown" command is now functional 399 | - The "eject all" command is now functional 400 | - Plug a memory leak with Spotlight queries 401 | 402 | --- 403 | 404 | # Public Beta 2 (0.3.1) 405 | 406 | ## New Features 407 | 408 | - Allow Lacona to control Light/Dark mode ("enable dark mode", "toggle light mode"...) 409 | - Add 3 new themes (light, light-minimal, and dark-minimal) 410 | - The Lacona theme can be set to automatically mirror the OS theme (light/dark mode) 411 | - Switched to "One" color scheme, based on Atom One, for improved light-mode visibility 412 | - Allow vim-style (hjkl) movement when holding the control key 413 | - Added an About panel 414 | 415 | ## Changes 416 | 417 | - Thin down the status menu icon a bit 418 | - Lacona width is now limited to 820px maximum, to help people with large screens 419 | - Even up the space between fallthroughs and the rest of the words 420 | 421 | ## Fixes 422 | 423 | - Prevent "rubber band" effect that moves the entire Lacona window when scrolling past edges 424 | - Fix a bug where Lacona could be displayed but not focused 425 | - Prevent Lacona from stealing the current App's focus 426 | - Ensure that "tonight" in "remind me to eat tonight" is properly colorized 427 | - Lacona refuses to launch on OSX <= 10.10 428 | 429 | --- 430 | 431 | # Public Beta 1 (0.3) 432 | 433 | - Initial Beta Launch 434 | --------------------------------------------------------------------------------