lusakasa / saka Goto Github PK
View Code? Open in Web Editor NEWElegant tab, bookmark and history search
License: MIT License
Elegant tab, bookmark and history search
License: MIT License
Do you plan to release the source for Saka? I just discovered Saka Key and tried out Saka and they are both nice, but Saka is closed source. I prefer building my workflow/habits around open source tools, so I won't be using Saka for now. If you plan to open source it, perhaps say so and leave this ticket open. If not close, and I can stay subscribed on the off chance you change your mind down the road, I'll be notified. :)
Saka currently relies on mode specific providers and "dumb" components to render search results for the selected mode. We currently define a "dumb" component for each search mode. This is done so that we can set certain things like the icon and color for each suggestion as they differ between each type of suggestion.
We should refactor Saka to have a single generic suggestion component that accepts props that define all the suggestion specific parameters.
The refactoring will make the code a lot easier to understand and maintain.
Some related docs:
https://reactjs.org/docs/composition-vs-inheritance.html
https://reactjs.org/docs/components-and-props.html
Dear @lusakasa,
What do you think of the idea, showing the tab status in the list?
For example, if a tab is pinned, then maybe add a small pin icon next to its entry on the list?
I am a heavy user of pinned versus non-pinned tabs and helping me distinguish those would be great.
Your input is much appreciated.
Yours
Need to figure out the best way to do unit and UI tests for Saka.
If anyone has experience with this in other chrome/firefox extensions let me know!
Hello
I cannot find on your website or in the readme what the keyboard shortcut is to pen Saka.
Would be good if this was made clear.
Thanks
I was wondering if you were planing to make this addon a tab manager addon. If you are i think it would be nice to have like a right click menu that allows you to do other stuff to the tab like reload the tab, bookmark it, move it to an other window, unload the tab, copy it's url etc
Also the addon says something bout tab selection. I haven't found a way to select more than one tab at a time but if it's possible or if you plan to make it possible it would be really useful to be able to perform all those actions to more than one tab at a time.
Consider using https://github.com/clarkbw/jest-webextension-mock
Advantage: Seems to be cleaner to use and setup with Jest
Disadvantage: Seems much less popular
It would be nice if Saka was as customisable as Saka key. Some things that could be available in an options menu:
Apologies if this already exists.
First of all, thank you for creating such an amazing extension.
Feature request to add an option to define the default 'search mode'. Currently it searches for current open tabs, but I am much more likely to open a new tab from my bookmarks.
I started writing Saka when my life was much less busy. Lately, my job and a different project consume the bulk of my time and energy. As a result, development of Saka has stalled and issues go unanswered.
I'm looking for someone who's willing to step up and lead this project. If you're interested, please email me at [email protected].
Supporting vim-like selection of tabs would be really cool, by using ctrl+j/k to go up/down and ctrl+h/l to switch page. A great addition to Saka-key.
copy Paste text
Features
I read about your aims for the extension, which are mine to - to easily navigate between tabs, yet the window is tool small for me to usefully do this.
I very much like the concept, yet when Saka opens I can only see 6 tabs, which is actually less useful than navigating default tabs. Any plans to allow customisation of this?
(Yes, searching is one way to do this, yet not practically the only way. To my mind, you need both search and quick click-selection).
As mentioned in #23 users could find it useful to change the color scheme of Saka. Ideally this is implemented as a drop down that lets users select the theme they desire.
I often find myself unable to locate a page I've seen recently either because I've navigated away from it or because I've closed it.
I propose a mode that presents a list of pages in order of view recency. This list should be updated when the user navigates to a new page within a tab or when the active tab changes.
When the user activate an entry in this mode, one of the following happens:
Any thoughts?
We should add some tests using Cypress to provide a few E2E tests that call the actual browser API and actually run in Chrome instead of Node.
Requires cypress-io/cypress#1965
I'm a huge fan of using the keyboard, so let me say this is a great extension !
I'd love a keybinding for closing the currently selected tab in the drop down of saka. Not sure how hard that would be to implement.
I guess my use case is this :
I often use saka to review what tabs i currently have open and close those i'm finished with. So I open saka search for tabs and arrow down to a tab I want to close. Open/switch to it. Close it with ctrl-w. Reopen saka, repeat the process.
If saka had a key binding to close the currently selected (in saka) tab i could open saka, select/search for the tab press a key to close Ideally saka will retain focus so i can close another tab, and another, etc.
Just a thought. Thanks for the great extension.
First of all, thanks for your wonderful work. I've always been looking for such a plugin.
When I try to trigger saga in the new tab page (i.e. the page that appears after pressing cmd + t
). The saka floating bar will end up showing in another new tab, which seems to be strange. I wonder whether it's a designed behavior or a bug.
Using macOS 10.13, chrome 70.0, saka 0.17.1
Thanks a lot.
Past searches:
Needs an interface somehow. Frequently i get the wrong tab and have to REDO the tabsearch. BUT Saka does not remember my last search ... so i have to retype it ... Gets tiresome:-((
I really like the UI on this one, but I'm cautious about extensions that require this permission other than a couple that I trust. It would be cool to see how it can be removed.
It looks like the codebase needs massive refactoring to bring it in line with the eslint rules. It's difficult to work on when everything is highlighted red. Is there a plan to work on this?
Saka should have separate manifest files that are chosen when the build command is run. Ideally we have one main manifest and then two smaller manifests that contain browser specific settings. We could then use Webpack to combine the main manifest with the browser specific one and then place it in the dist directory.
Run following commands specified in wiki:
yarn install
yarn run build:firefox;
and loaded from about:debugging > Load Temporary Add-on
. But gives me following error:
Reading manifest: Error processing background.persistent: Event pages are not currently supported. This will run as a persistent background page.
Reading manifest: Error processing permissions.7: Value "chrome://favicon/" must either: must either [must either [be one of ["clipboardRead", "clipboardWrite", "geolocation", "idle", "notifications"], be one of ["bookmarks"], be one of ["find"], be one of ["history"], be one of ["activeTab", "tabs", "tabHide"], be one of ["browserSettings"], be one of ["cookies"], be one of ["downloads", "downloads.open"], be one of ["topSites"], be one of ["webNavigation"], or be one of ["webRequest", "webRequestBlocking"]], be one of ["alarms", "mozillaAddons", "storage", "unlimitedStorage"], be one of ["browsingData"], be one of ["devtools"], be one of ["identity"], be one of ["menus", "contextMenus"], be one of ["pkcs11"], be one of ["geckoProfiler"], be one of ["sessions"], be one of ["contextualIdentities"], be one of ["dns"], be one of ["management"], be one of ["privacy"], be one of ["proxy"], be one of ["nativeMessaging"], be one of ["theme"], or match the pattern /^experiments(\.\w+)+$/], or must either [be one of ["<all_urls>"], must either [match the pattern /^(https?|wss?|file|ftp|\*):\/\/(\*|\*\.[^*/]+|[^*/]+)\/.*$/, or match the pattern /^file:\/\/\/.*$/], or match the pattern /^resource:\/\/(\*|\*\.[^*/]+|[^*/]+)\/.*$|^about:/]
Reading manifest: Error processing commands.toggleSaka4.global: An unexpected property was found in the WebExtension manifest.
Reading manifest: Error processing key: An unexpected property was found in the WebExtension manifest.
This is a long term idea. Time is probably better spent on features and bug fixes.
Write a release script that:
npm run release
There seems to be an issue when searching for bookmarks where if you have folders in your bookmarks and they meet the search critera, then saka will throw an error since it cant prettify the URLs.
Related:
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/bookmarks/search
https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNode
Is it possible to activate this extension using a different keyboard shortcut from Ctrl-Space? That one is already been mapped on my machine for an omnisearch box on the computer.
Some follow up ✨ enhancements ✨ as mentioned in #64
To prevent private window site icons from being stored in the regular cache, it would be preferable not to load them in the popup. You could use null or with a little more work, replace them with a mask icon (for example, https://design.firefox.com/icons/viewer/ under the "General" category).
When I search in this repository, it seems that a good opportunity to return a null or alternative value for tab.favIconUrl may be in allTabSuggestions() where you could access tab.incognito, but to be honest, I'm having trouble following the code.
Ref. https://discourse.mozilla.org/t/context-of-inline-image-requests-in-extension-page-e-g-a-popup/27932
Provide support for Safari browser
Hello, thank you for the very good job on saka extensions.
Probably I'm missing something obvious but I can't make Saka work in FF57. I have these versions:
I've mapped Saka for Ctrol+O. I also noticed that in Saka Key options it still says "Coming to Firefox soon" which makes me think Saka Key doesn't know that there is Saka on Firefox now?
I've just installed Saka for Firefox and couldn't toggle the panel (CTRL+SPACE Am I right?). When I press extension's icon (browser_action) I get 'browser.tabs is undefined' in the current page console.
Saka 0.4.0
Saka Key 1.25.2
Firefox 61.0.1
OS Ubuntu 18.04
As mentioned by @MattsJones in #92 we can add a unified search mode that allows the user to search all modes at once. This might have some performance issues that would need to be addressed. Also need to figure out how users would use the mode.
I'm not sure if it's possible to map opening a Chrome extension to a hotkey but it would be awesome to be able to open the overlay with a hotkey for a more spotlight-like workflow.
Thanks!
As discussed in #26 we could show recently closed windows in the the recently closed results.
Note that if this is done, the placeholder should also be changed to 'Recently Closed' instead of 'Recently Closed Tabs'.
It would be awesome if Saka could select the next site when the popup opens. (like in intellij/webstorm) So if I want to go back to the previous site quickly I just have to toggle Saka and press Enter instead of having to move down to the 2nd option.
Also really looking to be able to set a custom hotkey on Firefox. Maybe Ctrl/Cmd+E or Ctrl/Cmd+Shift+O should be the default.
Thanks.
You have crafted a splendid extension and it looks all promising. I just wanted to let you know that there is already such an extension called Quicktabs. Just so you know and are able to make good decisions. :-)
It seems a bit too easy to change modes through mouse hover, I find that I accidentally change modes when I am trying to click on the search bar/result.
A while back I added Storybook support for Saka but it never fully worked. There were issues with missing css (like icons) as well as some issues with mocking the browser APIs when rendering certain components. On top of that the storybook build ended up breaking when I upgraded the project to Webpack 4.
I have managed to get most of the stuff mentioned above working in a branch here: https://github.com/pureooze/saka/tree/storybook-fix
There are however still some minor issues to iron out so this issue is to keep track of the work to get Storybook working again. I also thought this would be a good way for others to provide suggestions/feedback for how Storybook should be used with Saka.
Wonder if it would make sense to have some shortcuts for navigating the list of choices? (ideally somewhere on the home row and involving up/down arrow keys) -- for example Ctrl-J
and Ctrl-K
?
Thanks!
Hi there,
I currently have all of my x + space keyboard combos taken up outside of Chrome (Terminal, Spotlight, etc). I'd like to be able to configure the keyboard shortcut.
Thanks!
In tab search mode, as you type in a search string, matching text in each suggestion is displayed in bold font. The fuze library does this automatically.
It would be nice to add this functionality to the bookmark and history modes. These modes currently use chrome's built in search, which doesn't provide any match highlighting, but you can manually search for matching substrings in the suggestions.
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.