Window Commander
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.
Releases
All releases listed in reverse chronological order.
Version 3.0.2
- Fix manual links.
Version 3.0.1
- Fix ELPA build.
Version 3.0
- Rename to Window Commander.
- Remove functions and vars obsoleted in version 2.x.
- Accept a
:minibuffer
keyword argument forwincom-define-window-command
instead of using a positional argument.
Version 2.3
- 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-delete-other
,swsw-split-window-below
andswsw-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+), andswsw-swap
which swaps the state of the current window and the selected window.
Version 2.2
- Rework display functions.
swsw-display-function
has been replaced byswsw-display-lighter
, display functions should now be added toswsw-mode-hook
. For backwards compatibility,swsw-display-function
has been redefined as an obsolete alias ofswsw-display-lighter
, andswsw-mode
currently still handles cases where the value ofswsw-display-lighter
is a function. Display functions which are added toswsw-mode-hook
shouldn't require any arguments.
Version 2.1.1
- Now available on NonGNU ELPA.
- Indicate that some functions are for interactive use only.
Version 2.1
- Bump required Emacs version to 27.1.
- Update window information when switching frames.
This fixes several issues when
swsw-scope
isn't set tot
. - Make
swsw-select
andswsw-delete
respectswsw-scope
. Previously,swsw-select
andswsw-delete
would not select/delete the only other window if it was on a different frame andswsw-scope
allowed tracking it. - Remap
other-window
toswsw-select
whenswsw-mode
is active. By default this changes nothing since the default binding forother-window
isC-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 bindother-window
).
Version 2.0.2
- No user visible changes. See the Git log for more information.
Version 2.0.1
- Add a link to the info node in the customization buffer.
- Add version information to customizable variables.
- Fix
swsw-delete
when the only other tracked window is the minibuffer.
Version 2.0
- 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:swsw-select
(o
),swsw-select-minibuffer
(m
),swsw-delete
(0
). - Breaking changes
- Custom variable
swsw-minibuffer-id
is no longer defined or used anywhere, instead providing the same functionality throughswsw-select-minibuffer
. - Command
swsw-select
no longer accepts a window ID as an optional argument.
- Custom variable
Version 1.1.2
- Apply customization options immediately.
Customizing
swsw-id-chars
andswsw-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.
Version 1.1.1
- 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.
Version 1.1
- Add the ability to customize the scope of
swsw-mode
.swsw-scope
controls in which framesswsw-mode
tracks windows. - Fix conditional display functions potentially breaking when the user
presses
C-g
(keyboard-quit
) while reading a window ID. - Bind
C-x o
toswsw-select
inswsw-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.
Version 1.0
- 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-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.
Development
The main repository is hosted at SourceHut.