Giter Site home page Giter Site logo

reblws / tab-search Goto Github PK

View Code? Open in Web Editor NEW
123.0 8.0 17.0 1.46 MB

WebExtension for keyboard-accessible tab management

Home Page: https://addons.mozilla.org/en-US/firefox/addon/tab_search/

License: MIT License

JavaScript 84.94% CSS 8.05% HTML 7.01%
webextension tab-management tabs close-tabs addon webextensions javascript

tab-search's Introduction

logo-96

TabSearch

Easy tab search & switching. This WebExtension provides a keyboard-accessible search interface for managing your open tabs.

Get it from Mozilla Addons!

screenshot

Shortcuts

Shortcut Description
Win/Linux: Ctrl + Shift + F / Mac: Cmd + Shift + L Toggle extension
Enter Open selected tab or first in list if not selected
Select previous tab
Select next tab
Ctrl + Backspace Delete a tab
Alt + R Refresh tab
Alt + P Pin tab
Ctrl + C Copy Tab URL
Alt + Shift + D Delete all duplicate tabs
Alt + M Mute (only if tab is audible)

Usage

These instructions should get you up to compiling with and/or developing with the source. If you just want to use the extension and are on Firefox, you should get the extension from AMO.

Compiling the source requires node.js.

Step 0: If you plan on sending pull-request, you should fork the repository.

Step 1: Clone the TabSearch repository.

git clone https://github.com/reblws/tab-search.git

If you forked the repo, just replace the clone url with your own.

Step 2: Navigate to the root of the directory you cloned and install the required dependencies.

npm install

Step 3: You'll need to compile the changes from src/ into the dist/ folder. The following scripts are available to help with this

# Starts a live server watching for changes in `src/` and outputs them to `dist/`
# NOTE: Need to restart this command if changing one of the manifest files
npm start

# Opens Firefox with add-on installed from the files in `dist/`, automatically reloads the extension on each change found in `dist/`
npm run watch:firefox

Step 4: Build for production

npm run build:firefox

If you want to build or watch for Chrome just use start:chrome or build:chrome instead. This just changes the manifest.json file so it doesn't raise any errors. There's no watch command for Chrome yet.

Changelog

See CHANGELOG.md.

License

MIT

tab-search's People

Contributors

reblws 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

tab-search's Issues

Error processing windowTypes: This property is deprecated

updateTabInWindow/< moz-extension://524099ca-5e94-41a5-b1e4-d5611b684bd6/background_bundle.js:2696:49
promiseBadgeTextWindowUpdate moz-extension://524099ca-5e94-41a5-b1e4-d5611b684bd6/background_bundle.js:2707:54

Firefox 64.0

Extra "enter" keystroke is sometimes needed

If I do CMD+SHIFT+L, then type a search string, then press enter nothing happens. But if I press enter again the first tab in the results is opened. Can the behavior be changed to work with a single enter keypress?

Add ability to customize extension shortcut key

I would like the ability to define a custom shortcut key to activate the extension. Perhaps this is something Firefox needs to implement, the same way that Chrome has a page to manage hotkeys for extensions.

Sort tabs under colapsable user defined headlines

Great extension, probably the best way to keep track of "too many" tabs right now! I understand that you're mostly concerned with searching, but I believe that keeping tabs organized helps a great deal in narrowing down search results as well as sometimes even making them superfluous.

I believe that making the headlines or groups you have listed in the options under Results to be collapsible would make it easier to search: do I want to search History? Collapse the others and make the search (the search should only affect expanded headlines - or should that be an option?). Did I close a tab prematurely, but a couple of tabs ago? Collapse all but Recently closed tabs and it should be easy to see. It would also probably be a good idea to allow the user to choose in the options which headlines should be expanded or collapsed by default when the pop up is opened.

I also propose that the user should be able to set headlines in the options for groups of tabs, and then should have the ability to drag-and-drop tabs to these groups or headlines - sort of a light version of tab groups. New tabs should then open under the current headline/group. These headlines or groups should probably all have the same colour as all tabs, so as to not add confusion. They should of course also be collapsible.

If this is implemented I suggest that the term Headlines are used for the base divisions (Tabs, History, Bookmarks and Recently closed tabs) and the term Groups are used for the user defined divisions of open tabs.

If the Groups are to much then I suggest allowing drag-and-drop to sort tabs in the list (assuming this isn't the reason why the above falls...).

It would probably be even easier to use if the Headlines were shown as 4 simple buttons between the search field and the list in the pop up, preferably underlined with their respective colour. Then you could quickly toggle which Headlines should be expanded or collapsed by just clicking their button, and easily see which were expanded by noting which buttons were marked.

EDIT: spelling

separate result types

Im going to look at doing a PR for this but I wanted to get my thoughts down before I forget:
It would be really handy to have a tabbed interface in the dialog to separate result types to separately show open-tabs, history, closed-tabs, and bookmarks.

  1. You should be able to set the default tab and the tab order
  2. Each tab should have a configurable shortcut to change the focus
  3. You should get a match count on each tab
  4. Others?

I want to see history and bookmarks in my results but when I search for gmail to go to my email tab I get all the history and bookmark stuff first, selecting one of those opens a new tab instead of changing to the already open tab.

Multi-tab deletion

Could you add the option to select multiple tabs at one to close them

Automatically focus on search input

I suggest that when the extension icon/button is clicked or the keyboard shortcut is pressed, the "Search for a tab..." input field should immediately be given focus. That way, the user can start typing their query right away.

It's particularly troublesome to have to click on something after using the keyboard shortcut. That defeats the purpose of having such a shortcut to begin with, in my opinion.

(This is aggravated by the fact that the current shortcut, Ctrl+Shift+L, is difficult to activate using only the left hand, so I move my right hand from the mouse to the keyboard to press it, then back to the mouse to move the cursor and click the "Search for a tab..." input, and then back to the keyboard to type. As is, it's often faster to not use the shortcut at all. As a side note, it'd be great to be able to set our own shortcuts. I'd also suggest a default shortcut of Ctrl+Shift+F since it can be done easily enough with just the left hand.)

Bigger popup

I love this extension!

I would also love the see if the popup was bigger so I could fit more results on the screen. Maybe make it resizable? Or add an option where you can specify how many entries you want to see at once?

Change main Keyboard Shortcut

Ctrl + shift + F overlaps "Panorama view" extension own shortcut.

It should be possible to change it in the extension settings page, that also a good place to to learn it, since this info is only available on the extension web page.

Expose history to extension

In TabSearch settings there is the "Show recently closed tabs - Limit (max. 25):" option. I'd really like to have more than 25.

Is this limit there for performance reasons or something else?

Option to display tabs in popup by MRU

Just discovered this addon and it's awesome!! Thx!

One feature i would really love to see is the ability to order the tabs in the popup by most recently used. I usually have a ton of tabs open so listing tabs by MRU would allow me to quickly jump to a tab i was recently if i don't remember the name of it or don't feel like searching.

Check out https://github.com/babyman/quick-tabs-chrome-extension for a great Chrome plugin that does this.

Hide or resize favicon in popup

As of v0.4.8, I think the favicons in the popup are way to big in comparison to the text (especially if one selected a smaller font size in the prefs for the link/titles).

As it's possible to change the font size of the tab links/titles, I think it would be nice to have a preference to hide / shrink the favicons of the tabs.

Ability to disable pinned tabs in settings

It would be nice if there were a setting for disabling search of pinned tabs (e.g. a checkbox at Settings > Results > Show Pinned Tabs or something).

I have a lot of pinned tabs and almost never want to access them quickly.

Add mouse interface for tab management

In the options it's stated that you have added "More tab management options". Am I right when I believe those are the ones mentioned in issue "Tab management #31"?

There these features where discussed:

Move tabs
Refresh tabs
Mute/Unmute tabs
Pin tabs
Copy the url of the selected tab(s)
Bookmark selected tab(s)
Close duplicated tabs
Move selected tab(s) to an existing window/new window

The issue was edited as Done for release 0.4 and I have 0.4.4, but I still can't find the features. Some of them would be very useful indeed!

I'm on Ff Quantum 58.0.2 (64-bit) branded as Mozilla Firefox for Linux Mint mint-1.0, on a machine with Linux Mint 18.3 Cinnamon.

Expected matches not coming up in search

I have 247 tabs open (so that might be the problem... it's definitely a problem). Also, i just installed the plugin. If it takes some time to index, i apologize for this report.

One of my open tabs is this one:

https://gitlab.com/drutopia-platform/sites/family-home/issues/12

Which has the title Site launch checklist (#12) · Issues · drutopia/platform / sites / family-home · Gitlab

When i bring up tab search (all settings default, fuzzy search on etc.) and type in:

gitlab drutopia family

I expect to get that tab. I do not. It's not merely not first in the list, it's not in the results at all. Instead, tab search seems to be using only the last word of several searched for its matches, and limiting the total results displayed somehow also.

(When starting a new tab, Firefox itself used to be infallible in suggesting tabs that matched the words in any order. It no longer is, which is why i'm looking for a separate tab search. So there may be an underlying Firefox issue here, but since tab search implements its own searching algorithm i'm hoping it can overcome Firefox's deficiencies.)

Thanks!

Support binding more than one keyboard shortcut to an action.

At least for the actions that take effect when the panel is open (e.g. this is unrelated to #2). There are a number of reasons someone might want to do this, but personally:

On macOS, in most menus (all/almost all native menus, at least), as well as almost all text boxes you can navigate up and down a line using either the arrow keys, or Ctrl+N and Ctrl+P. For clarity, I actually mean the control key, MacCtrl, not Cmd. (Strangely, macOS supports a number of other similar movement options inherited from emacs, of all places. Regardless, some people like myself come to use them heavily).

This is in addition to allowing arrow keys (which I also use).

In your extension I'd like to be able to navigate with either arrow keys or Ctrl+N/Ctrl+P, but as it is, I need to choose.

Instead of asking for your extension to code in this macOS quirk, it would probably be better to just support allowing multiple shortcuts for a single action.

FF57.0b3 : Panel is not focussed automatically

When using C-S-l or clicking the icon, the panel is not focused automatically, and therefore, https://github.com/reblws/tab-search/blob/master/src/index.js#L21 has no effect.

I checked in debugger that both DOMContentLoaded and the timeout fire, but I have to press Tab in both cases to focus the popup. I looked briefly in the MDN WebExt APIs (i.e. https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/browserAction) but I didn't see a way to force-focus the popup. Any ideas?

Might be a FF bug.

Search text not cleared after popup dismissed

Hi,

Awesome plugin!!! I'm having an issue though when searching... I would assume that my search text would be cleared out after the popup is dismissed however it seems to persist which makes repeated searches annoying as i have to remember to always first clear the search text.

Is there a way to reset it automatically?

Thanks

Improve keyboard navigation

This is a very nice add-on, I just wish a couple of keyboard actions could be improved:

  • When I use the up-arrow to go through the list and reach the search box, another up-arrow key press should go to the bottom of the tab list (the last item). There is no use for the up-arrow in the search box anyway, so I believe this is worth the effort. That way one can easily navigate the list backwards.
  • The end-key scrolls the list to the bottom, but doesn't change the selection. In my opinion, it should also select the last item in the list.
  • The same applies to the home-key
  • The page-up and page-down key scroll the list, but don't change the selection. In most applications (e.g. your file browser), the selection would also change.
  • Shift-tab should go backwards in the list (this is already filed in another issue).

These are just my improvement suggestions. The add-on itself is already very good, a bit of polishing of the keyboard navigation would make it perfect :)

Scrolling with arrow keys is too jerky

The fix in #28 unfortunately causes jerky scrolling, because the default behavior for ArrowDown and ArrowUp is to scroll up or down. Instead, the list should only scroll when the focused tab is the first or last visible element in the viewport, as it does when pressing ArrowRight or ArrowLeft, without causing the extra input required to go down.

Tab management

I know your addon now mainly focuses on finding tabs and getting to them but since I saw it's possible to close tabs I was wondering if you were planing to add features to be able to manage the tabs like re arrange them bookmark them reload them etc? I think taking that step forward would make this extension even greater and more useful than it's now.

suggestions: to truncate tab names to just 1 line and more

  • ability to truncate tab name to 1 line (coz some outdated SEOs writes long paragraphs here which takes a lot of space);
  • ability to choose between colored sidelines (if anyone prefers) and greyed background for Recently Closed
  • ability to change the background color of Number of tabs small icon (again, grey is preferable as Quantum basic design choice)
    Thanks.

Regarding the No-Focus issue

Hello,

I'm M.Samuel who reported about the flashing cursor not focused in the search box. I'm on Firefox v57 (Quantum) which was released just yesterday and it's a fresh clean install in a Windows 7 x64. I started to believe it's not related to the extension because the "LastPass" extension doesn't have focus too. I think it may be related to a browser bug. I'm not sure though.

Many thanks for your efforts.

Expose Bookmarks via TabSearch

If the tab I'm looking for isn't there, but I have bookmarked it, it would be great if that appeared in the TabSearch results. Similar to how recently closed tabs can appear.

Treat `Meta` and `Ctrl` keys differently when setting shortcuts

Right now Mac users can't use Cmd or Ctrl keys to set different shortcuts -- they are treated as equivalent keys.

Need to push this fix together with #49 so the update doesn't break any previously set shortcuts involving Cmd. After this is fixed, writing a migration to the new reducer structure is possible, so any previously set shortcuts involving Ctrl can get split into two shortcuts: [Cmd+${key}, Ctrl+${key}] after the extension updates.

Option to visually center the tab search dialog

I'm a fan of Vivaldi's "Quick Commands" presentation where the dialog is vertically and horizontally centered over the current tab, as opposed to appearing in the top right corner. Something like that for TabSearch would be great.

Delete Gadget sizing change request

Feature Request:
Please make the delete gadget sensitive/fill the entire right-hand vertical space for the tab list. I often am running through hundreds of tabs, and closing them, but sometimes the vertical size of a tab listing varies and the centered delete gadget moves up/down from where my mouse is, and clicking there SELECTS the tab, rather than deletes it. (i guess this is from having 2-line title lists where some tab entries are single-line).

This would be easier to work with also if the WIDTH of the popup could be user-settable.

thanks,
--stephen

Allow keyboard shortcut even if icon is not in toolbar

As soon as I remove the icon from the toolbar (because I only use the keyboard shortcut), the keyboard shortcut stops working.

(I'm aware this might be due to the Firefox API not allowing this. Opening the issue anyway to track the issue and maybe share possible workarounds etc.)

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.