Emacs package providing a minor mode for switching to windows or performing actions on them using IDs assigned to them automatically. Read the manual for more information.
All releases listed in reverse chronological order.
- Fix manual links.
- Fix ELPA build.
- Rename to Window Commander.
- Remove functions and vars obsoleted in version 2.x.
- Accept a
:minibufferkeyword argument for
wincom-define-window-commandinstead of using a positional argument.
- Rework window commands.
A new macro has been added (
swsw-define-window-command) which greatly simplifies the creation of window commands; existing commands now use it and 5 new window commands have been added:
swsw-split-window-right, which correspond to the built-in commands,
swsw-selected-window-prefix, which displays the buffer of the next command in the selected window (Emacs 28+), and
swsw-swapwhich swaps the state of the current window and the selected window.
- Rework display functions.
swsw-display-functionhas been replaced by
swsw-display-lighter, display functions should now be added to
swsw-mode-hook. For backwards compatibility,
swsw-display-functionhas been redefined as an obsolete alias of
swsw-modecurrently still handles cases where the value of
swsw-display-lighteris a function. Display functions which are added to
swsw-mode-hookshouldn'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-scopeisn't set to
swsw-deletewould not select/delete the only other window if it was on a different frame and
swsw-scopeallowed tracking it.
swsw-modeis active. By default this changes nothing since the default binding for
C-x o. 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-deletewhen the only other tracked window is the minibuffer.
- Add support for custom window management commands.
Binding a command to a key in
swsw-command-mapallows you to call that command instead of selecting an ID. Currently three such commands are defined:
- Breaking changes
- Custom variable
swsw-minibuffer-idis no longer defined or used anywhere, instead providing the same functionality through
swsw-selectno longer accepts a window ID as an optional argument.
- Custom variable
- Apply customization options immediately.
swsw-scopeand 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 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-scopecontrols in which frames
- Fix conditional display functions potentially breaking when the user
keyboard-quit) while reading a window ID.
- 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:
swsw-display-function. 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-functiondisplays window IDs similarly to the way they were displayed before version 0.3.
swsw-mode-line-conditional-display-functiondisplays window IDs in the same way but only when window selection is in progress.
The main repository is hosted at SourceHut.