Giter Site home page Giter Site logo

lusakasa / saka Goto Github PK

View Code? Open in Web Editor NEW
214.0 8.0 19.0 2.94 MB

Elegant tab, bookmark and history search

License: MIT License

JavaScript 95.67% CSS 0.47% HTML 0.40% SCSS 3.47%
chrome-extension javascript preact karma jasmine tab-management tab-switcher tab-search

saka's Introduction

Saka GitHub license Build Status codecov.io Code Coverage Chrome Web Store

A browsing assistant for Firefox and Chrome designed to be fast, intuitive, and beautiful. Inspired by Spotlight. Keyboard-focused but mouse friendly too.

  • Lists tabs in order of recency by default, then fuzzy search by title or URL.
  • Search recently closed tabs
  • Search all bookmarks
  • Search all browsing history
  • Search all modes at once

Install

Install Saka from the Firefox Marketplace or Chrome Webstore.

Development

See the Getting Started page on the project Wiki.

Release Instructions (for maintainers)

  1. Update the version number in manifest/common.json

  2. Make a commit and set the message to the version: git commit -m "v0.15.2"

  3. Tag the commit with the version and a message describing changes since the last release: git tag -a v0.15.2

  4. Push the commit to github with tags: git push origin --follow-tags

  5. View the build status at https://travis-ci.org/lusakasa/saka/ and generated releases at https://github.com/lusakasa/saka/releases

License

MIT Licensed, Copyright (c) 2017 Sufyan Dawoodjee, Uzair Shamim

saka's People

Contributors

dependabot[bot] avatar eejdoowad avatar johncvieira avatar mattcompiles avatar pureooze avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

saka's Issues

doesn't work with xmodmap

I've exchanged my Escape key with Caps Lock. It works well in Firefox (and most other applications) except Saka Key.

Here is what Firefox actually says about the events (event 1 is my Escape and others are Caps Lock):

default

Versions:

  • latest Arch Linux
  • latest Firefox nightly
  • latest Saka Key from AMO

Make keyboard shortcut configurable

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!

Opening another new tab when trigger saga in new tab

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.

Feature Request: Trigger With Hotkey

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!

FYI Quicktabs

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. :-)

FeatureRequest: Close selected tab

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.

Larger window/customization options?

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).

Select next option by default

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.

Fix the Storybook setup with Saka

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.

Color scheme customization in Saka

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.

Refactor Saka search modes to use React best practices

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

Not able to find url that has "abc"

What a great extension, love it!

Could you help me understand why it doesn't find the page shown below?

Could it be because I suspended the tab?

How would I have to search to find this tab?

Thank you!

image

screenshot from 2018-07-07 07-40-40

Option to change default mode

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.

  • Add option for default search mode. Ex. If I change it to "Bookmarks", summoning Saka will set the search for my bookmarks instead of the current open tabs.

Show pinned tab status?

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

Automate releases

This is a long term idea. Time is probably better spent on features and bug fixes.

Write a release script that:

  • is executed with npm run release
  • asks for a version number
  • asks for release notes
  • updates the version number in the manifest
  • creates a commit and an accompanying tag
  • pushes the commit and tag to github
  • triggers a travis build that generates versioned zip-files and creates a github release
  • uploads the release to the Firefox Marketplace and Chrome Webstore

Past searches

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:-((

Add match highlighting to bookmark and history modes

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.

Allow for custom keyboard shortcut

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.

Open source Saka

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. :)

New Mode Suggestion: Recently View Pages

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:

  1. if page exists in some tab: switch to it
  2. if page exists in a closed tab session: restore the session
  3. otherwise: create a new tab with the page

Any thoughts?

tab management

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.

Modes ui

What about having the modes accessible at all time like this?

image

I think that would make the addon a lot more dynamic and comfortable.

I think it would be also nice to have an "x" button on the top left corner to close the UI whenever you want.

browser.tabs is undefined

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

eslint rules

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?

Options menu

It would be nice if Saka was as customisable as Saka key. Some things that could be available in an options menu:

  • choose which mode is the default/ ability to have separate shortcuts to access each mode directly
  • hide the full list of tabs/bookmarks (i.e. just the search bar until some input is typed)
  • colour of bar and text etc.
  • a full list of available shortcuts

Apologies if this already exists.

Saka needs a Maintainer

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].

Use separate manifest files for Firefox and Chrome

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.

Enhance Mode Switcher UI

Some follow up ✨ enhancements ✨ as mentioned in #64

  • add "cursor: pointer" to tab css 👉
  • switch modes on mouse hover (no click necessary) 🖱
  • remove mode search mode 💀

Don't load site icon for incognito tabs

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

Show Windows in Recently Closed search results

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'.

Unified search mode

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.

Doesn't work in Firefox 57 (macOS)?

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:

  • Saka Key 1.25.2
  • Saka 0.12.0

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?

screen shot 2017-11-20 at 14 07 19

Built dist not running on Firefox 61.0.1

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.

Add tests for Saka

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.