GithubHelp home page GithubHelp logo

mcleodd10 / iswitchw Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tvjg/iswitchw

19.0 3.0 4.0 1.69 MB

Fast keyboard-driven window switching via AutoHotKey

License: MIT License

AutoHotkey 100.00%

iswitchw's Introduction

iswitchw

fast keyboard-driven window switching via AutoHotKey

When iswitchw is triggered, the titles of all visible windows are shown in a popup. Start typing to narrow possible matches -- hit enter at any point to activate the top match. Matches are narrowed using an approximate/'fuzzy' filtering method similar to tools like Ido and CtrlP, filtering is presently handled by tcmatch.dll, originally an extended search module for TotalCommander, it supports multiple search modes, including Regex, fuzzy search, and Pinyin. See documentation in the .ahk file for further info.

Built and tested using AutoHotkeyL v1.1.36.02 on Windows 10 (x64), confirmed working on Windows 11 (x64) as well.

screenshot

Usage

  • Capslock activates iswitchw
  • Esc Ctrl + [ cancels at any time
  • Tab/Shift + Tab Down/Up Ctrl + J/K navigate next/previous row
  • Left/Right arrow keys move the insert cursor in the search box
  • Home/End jump to the top/bottom of list
  • PgDn/PgUp Ctrl + d/u jumps down/up the list 4 rows at a time
  • Ctrl + Delete/Backspace/W removes a word from the search, or, if there's no further matches or only a single match: clear the input
  • Ctrl + Left/Right arrow keys skip forward/backward by the word
  • Win + 0-9 focuses the corresponding tab
  • 1-300 hotstrings to focus any tab, enter the row number followed by a space.
  • Click a title to activate a window with the mouse
  • Any other typing should be passed through to the search
  • Start a search string with ? to search using RegEX
  • Configure watched file folders or shortcuts to display in results

Chrome and Firefox tabs will appear separately in the list. To enable support for Chrome & Vivaldi, enable the remote debugging protocol by creating a new browser shortcut and append the following to the target field: --remote-debugging-port=9222 you can set the port number to whatever you with, however ensure that they're set to different ports for each browser, then ensure you change the chromeDebugPort and/or vivaldiDebugPort in iswitchw.ahk's configuration section to match.

Firefox tab support is handled by Accv2.ahk and should work out of the box, though it can have a tendency to break after any major UI changes. I don't use it myself so please open an issue if that occurs.

By default, iswitchw is restricted to a single instance and hides itself from the tray. Run the script again at any time to replace the running instance. If you want to quit the script entirely, activate iswitchw with Win + Space and then press Alt + F4.

If you want iswitchw to run when Windows starts, make a shortcut to the iswitchw.ahk file in the folder %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup. See here also.

Options

User configurable options are presented at the top of the ahk script.

Todo

  • Add a config screen for options, hotkeys, etc.
  • See if it's possible to have browser tabs appear in MRU order?
  • Maybe AHKv2 rewrite in the future? We'll see...

History

This fork is a significant departure from previous versions, aside from portions of the function that handles drawing the list view, this is a complete rewrite. See [link] for previous fork history.

Original inspiration provided by the creators of the iswitchb package for the Emacs editor.

iswitchw's People

Contributors

mcleodd10 avatar tvjg avatar

Stargazers

mark05E avatar  avatar Aaron Meyers avatar Andrew Thompson avatar Thanh T. Tran avatar Millenicide avatar  avatar Jason avatar  avatar  avatar unitay avatar Peter Yuen avatar Linfeng Li avatar 飞 avatar Jason Davis avatar Ryah avatar Mitică avatar  avatar Leonarda avatar

Watchers

Aaron Meyers avatar  avatar  avatar

iswitchw's Issues

Support for multiple Firefox instances

I'm a new user to this script. It is exactly what I've been looking for! Thank you!

I'm seeing an error in the accv2 script when I have multiple instances of Firefox open. I typically run the standard Firefox for everyday browsing and the developer Firefox for coding. They're both always open at the same time. I think the fact that they share a common process name is causing a conflict.

image

If I close one of the Firefox instances, the error goes away.

I've confirmed I'm running the 64-bit version of AHK and it's updated to the latest v1.1.33.10 release.

Chrome config - how to set it up properly?

Please advise if I am missing something. Here is what I see in chrome://accessibility after following the instruction in ReadMe. However, all tabs in Chrome are still missing from the iswitchw window.

(go) to chrome://accessibility and checking every option under "Accessibility modes:" on the left side of the page.
image

I've tried to run iswitchw.ahk both with and without admin privilege, and the Chrome window in the screenshot is not running as admin. I started it with the --force-renderer-accessibility flag, which happens to check everything for me.

Am I missing something simple in chrome://accessibility? If not, is there some setup I can do to get iswitchw list Chrome tabs? Thanks a lot!

Any update about Vivaldi support?

I know it's broken in the current release but was wondering if support would ever return? I use Vivaldi at work and this would be extremely useful for me.

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.