Handling multiple windows with a searchable Window Switcher
(MS Windows, Linux, Browsers )

1. Background

A common user problem is the handling of multiple open documents (windows, buffers, tabs) with long and similar file names, titles and paths, which have similar content. For example, if you have to merge the revisions of multiple authors of the same document. The problem is to find a specific (open) document in your graphical user interface.

The standard window switchers (launchers) on MS Windows and Linux (Mint Cinnamon), which is activated by pressing the ALT + TAB keys, gives you a visual overview of Window Icons and truncated application and file names, which may work for a small set of applications and windows, but does not scale to more complex work. A more informative, scrollable view is shown by pressing the WIN + TAB keys in Windows 10, which orders activities (apps) by time, which is more useful but not searchable by document name.

Therefore, I have been looking for window switcher (launcher) which allows incremental searching of document names with regular expressions and bringing them to the front of the graphical user interface.

Note: Preference is given to tools which list the open applications and open documents (windows, buffers, tabs) (in memory) and not relevant files (on storage).

2. MS Windows 10

  1. Powertoys Run [RECOMMENDED]
    1. Install via Microsoft Store or directly from code repository at https://github.com/microsoft/PowerToys
    2. Previously known as WindowWalker, but now integrated into Powertoys Run.
    3. Activate with ALT + SPACE
    4. Enter “<” in search window to activate WindowWalker and search open document windows (not apps)
    5. See cheatsheet, https://learn.microsoft.com/en-us/windows/powertoys/run?source=recommendations
  2. Keypirinha
    1. Install from official website at https://keypirinha.com
    2. Activate with CTRL  + WIN + K
  3. Albert
    1. Install from official website at https://albertlauncher.github.io
    2. Albert does not work per default, because all extensions are disabled.
    3. Start Albert, set hot-key, e.g. F1, and enable extensions “Applications” and “Files” in settings
    4. Press hot key, here “F1”

Powertoys Run is recommended because it is provided by Microsoft, is simple and fast.

Keypirinha is also powerful and elegant, but does not focus on open documents only, but searches through files on storage.

3. Linux (Mint, Cinnamon)

  1.  ROFI [RECOMMENDED]
    1. Note: replacement of dmenu (included in the package repository) which is not recommended, because it is older and less user-friendly.
    2. Install via package repository or directly from code repository https://github.com/davatorium/rofi
    3. Create a link with shell command: rofi -show windowcd
    4. Create theme with: rofi-theme-selector    
    5. Create config file at: rofi -dump-config > ~/.config/rofi/config.rasi
    6. Edit config file:  width: 75;
    7. see Tutorial:  https://linuxconfig.org/how-to-use-and-install-rofi-on-linux-tutorial
  2. Albert
    1. Install from official website at https://albertlauncher.github.io
    2. Albert does not work per default, because all extensions are disabled.
    3. Start Albert, set hot-key, e.g. F1, and enable extensions “Applications” and “Files” in settings
    4. Press hot key, here “F1”

ROFI is recommended because it is light-weight, fast, and configurable (e.g. increase window width).

4. Browsers

  • Firefox: Enter “%” in search bar to search tabs, click on “This time, search with: [Tabs (%) Icon]”
  • Edge: Click “Actions Tabs Menu” (top left corner), Click “Search Tabs”
  • Chrome: Click “Search Tabs” (top right corner)

Overview: https://www.makeuseof.com/search-open-page-tabs-chrome-edge-firefox/

5. Honorable Mentions

  • OSQUERY
    • Installation via https://www.osquery.io
    • OSQUERY is  cross-platform command-line tool which allows  searching for system properties, incl. open files, on your system like a relational database using basic SQL commands.
    • Note: OSQUERY can only show the paths of open files via “select * from file;” but cannot bring a window to the front.

6. Future work

Features which may be helpful to discriminate various windows with similar content and find them more easily:

  • Define custom labels work specific windows and show the labels in the window list
  • Define custom colours for specific windows (e.g. for window border, window title) and show the colors in the window list.

7. Acknowledgements

  • Thanks to user NSOL from #LINUX channel on IRC platform https://libera.chat for pointing out ROFI and dmenu to me.