Emacs package providing a minor mode for switching to windows using IDs assigned to them automatically.
Read the manual for more information.
All releases listed in descending order.
- Rework display functions.
swsw-display-function has been replaced by
swsw-display-lighter, display functions should now be added to
For backwards compatibility,
swsw-display-function has been redefined as an obsolete alias of 'swsw-display-lighter', and
swsw-mode currently still handles cases where the value of
swsw-display-lighter is a function.
Display functions which are added to
swsw-mode-hook shouldn't require any arguments.
- Now available on NonGNU ELPA.
- Indicate that some functions are for interactive use only.
- Bump required Emacs version to 27.1.
- Update window information when switching frames.
This fixes several issues when
swsw-scope isn't set to t.
swsw-delete would not select/delete the only other window if it was on a different frame and
swsw-scope allowed tracking it.
swsw-mode is active.
By default this changes nothing since the default binding for
This change has been made to add (simple) out-of-the-box compatibility with alternative key binding sets or different Emacs distributions (provided they bind
- No user visible changes.
See the Git log for more information.
- Add a link to the info node in the customization buffer.
- Add version information to customizable variables.
swsw-delete when the only other tracked window is the minibuffer.
- Add support for custom window management commands.
Binding a command to a key in
swsw-command-map allows you to call that command instead of selecting an ID.
Currently three such commands are defined:
- Breaking changes
swsw-minibuffer-id is no longer defined or used anywhere, instead providing the same functionality through
swsw-select no longer accepts a window ID as an optional argument.
- Apply customization options immediately.
swsw-scope and applying those changes now causes all window IDs to update.
- Construct IDs without pre-computing all possible IDs.
This should hopefully help performance when dealing with a very large number of windows.
- Fix the calculation of the ID length.
Previously the ID length reported was much bigger than it needed to be.
- Prevent setting the minibuffer ID to a character which can be used to construct a regular ID, and vice versa.
- Fix window selection occurring when entering an invalid ID.
- Bump required Emacs version to 26.1.
- Add missing license information in several places.
The Info node was missing license information, and created archives were missing the LICENSE file.
- Update the homepage of the package to dsemy.com/software/swsw.
- Update documentation strings.
Documentation strings for several functions and variables have been updated to be more clear and to better comply with Emacs' conventions.
- Add the ability to customize the scope of
swsw-scope controls in which frames
swsw-mode tracks windows.
- Fix conditional display functions potentially breaking when the user presses
keyboard-quit) while reading a window ID.
C-x o to
swsw-mode-map by default.
- Add an info node.
An info node (swsw) has been added which documents all user facing parts of the package in detail.
- Add support for multi-character IDs.
IDs can now be constructed from multiple characters taken from
swsw-id-chars, when there are enough tracked windows.
- Add support for alternate display functions.
A new customization variable has been added:
If it is set to a function, that function is used to display window IDs instead of the mode line lighter.
See the documentation of the variable for more information.
Two reference functions are provided:
swsw-mode-line-display-function displays window IDs similarly to the way they were displayed before version 0.3.
swsw-mode-line-conditional-display-function displays window IDs in the same way but only when window selection is in progress.
The main repository is hosted at